@solidxai/core-ui 0.1.18 → 0.1.19-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/components/common/SolidThemeLink.d.ts.map +1 -1
  2. package/dist/components/common/SolidThemeLink.js +2 -2
  3. package/dist/components/common/SolidThemeLink.js.map +1 -1
  4. package/dist/components/common/SolidThemeLink.tsx +5 -2
  5. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  6. package/dist/components/core/chatter/SolidChatterHeader.js +2 -1
  7. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  8. package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -4
  9. package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts +2 -1
  10. package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidCollectionRowActionMenuItems.js +3 -2
  12. package/dist/components/core/common/SolidCollectionRowActionMenuItems.js.map +1 -1
  13. package/dist/components/core/common/SolidCollectionRowActionMenuItems.tsx +5 -3
  14. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  15. package/dist/components/core/common/SolidGlobalSearchElement.js +29 -13
  16. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  17. package/dist/components/core/common/SolidGlobalSearchElement.tsx +34 -10
  18. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -1
  19. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +2 -2
  20. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -1
  21. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +6 -6
  22. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  23. package/dist/components/core/form/fields/SolidDecimalField.js +12 -9
  24. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  25. package/dist/components/core/form/fields/SolidDecimalField.tsx +11 -8
  26. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  27. package/dist/components/core/form/fields/SolidIntegerField.js +16 -14
  28. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  29. package/dist/components/core/form/fields/SolidIntegerField.tsx +13 -10
  30. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  31. package/dist/components/core/list/SolidDataTable.js +2 -0
  32. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  33. package/dist/components/core/list/SolidDataTable.tsx +1 -0
  34. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  35. package/dist/components/core/list/SolidListView.js +94 -50
  36. package/dist/components/core/list/SolidListView.js.map +1 -1
  37. package/dist/components/core/list/SolidListView.tsx +26 -31
  38. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  39. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  40. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +2 -1
  41. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  42. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -0
  43. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  44. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -0
  45. package/dist/components/core/module/CreateModule.css +42 -0
  46. package/dist/components/core/module/CreateModule.js +1 -1
  47. package/dist/components/core/module/CreateModule.js.map +1 -1
  48. package/dist/components/core/module/CreateModule.tsx +5 -5
  49. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  50. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  51. package/dist/components/core/tree/SolidTreeView.tsx +3 -2
  52. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  53. package/dist/components/layout/AdminTopHeader.js +7 -3
  54. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  55. package/dist/components/layout/AdminTopHeader.tsx +8 -3
  56. package/dist/constants/error-messages.d.ts +2 -0
  57. package/dist/constants/error-messages.d.ts.map +1 -1
  58. package/dist/constants/error-messages.js +3 -0
  59. package/dist/constants/error-messages.js.map +1 -1
  60. package/dist/constants/error-messages.ts +4 -0
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.ts +4 -0
  65. package/dist/resources/solid-custom.css +36 -12
  66. package/dist/resources/themes/solid-light-modern/theme.css +2 -4
  67. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +41 -0
  68. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  69. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +1 -1
  70. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  71. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +3 -1
  72. package/dist/types/dashboard.d.ts +4 -0
  73. package/dist/types/dashboard.d.ts.map +1 -1
  74. package/dist/types/dashboard.js.map +1 -1
  75. package/dist/types/dashboard.ts +5 -0
  76. package/dist/types/list-row-action.d.ts +18 -0
  77. package/dist/types/list-row-action.d.ts.map +1 -0
  78. package/dist/types/list-row-action.js +2 -0
  79. package/dist/types/list-row-action.js.map +1 -0
  80. package/dist/types/list-row-action.ts +18 -0
  81. package/package.json +1 -1
@@ -487,8 +487,8 @@ const SavedFilterList = ({ savedfilter, activeSavedFilterReference, activeSavedF
487
487
  className="solid-saved-filter-icon-btn is-danger"
488
488
  onMouseDown={(e) => {
489
489
  e.preventDefault();
490
- setSavedFilterTobeDeleted(savedfilter.id),
491
- setIsDeleteSQDialogVisible(true);
490
+ setSavedFilterTobeDeleted(savedfilter);
491
+ setIsDeleteSQDialogVisible(true);
492
492
  }}
493
493
  aria-label={`Delete ${savedfilter.name}`}
494
494
  >
@@ -695,7 +695,7 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
695
695
  const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);
696
696
 
697
697
 
698
- const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any>();
698
+ const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any | null>(null);
699
699
  const [isDeleteSQDialogVisible, setIsDeleteSQDialogVisible] = useState<boolean>(false);
700
700
  const [savedFilterQueryString, setSavedFilterQueryString] = useState<string>();
701
701
  const [showOverlay, setShowOverlay] = useState(false);
@@ -1497,8 +1497,14 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1497
1497
  };
1498
1498
 
1499
1499
  const deleteSavedFilter = async () => {
1500
+ if (!savedFilterTobeDeleted?.id) {
1501
+ setIsDeleteSQDialogVisible(false);
1502
+ setSavedFilterTobeDeleted(null);
1503
+ return;
1504
+ }
1505
+
1500
1506
  try {
1501
- await deleteEntity(savedFilterTobeDeleted).unwrap();
1507
+ await deleteEntity(savedFilterTobeDeleted?.id).unwrap();
1502
1508
  dispatch(showToast({
1503
1509
  severity: "success",
1504
1510
  summary: ERROR_MESSAGES.DELETED,
@@ -1506,9 +1512,9 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1506
1512
  }));
1507
1513
 
1508
1514
  if (allowMultipleSavedFilters) {
1509
- const nextItems = activeSavedFilters.filter((item: any) => String(item.data?.id) !== String(savedFilterTobeDeleted));
1515
+ const nextItems = activeSavedFilters.filter((item: any) => String(item.data?.id) !== String(savedFilterTobeDeleted?.id));
1510
1516
  setActiveSavedFilters(nextItems);
1511
- if (String(savedFilterTobeDeleted) === String(currentSavedFilterData?.id)) {
1517
+ if (String(savedFilterTobeDeleted?.id) === String(currentSavedFilterData?.id)) {
1512
1518
  setCurrentSavedFilterData(null);
1513
1519
  setCurrentSavedFilterQuery(null);
1514
1520
  setCurrentSavedFilterVariables({});
@@ -1516,10 +1522,11 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
1516
1522
  persistActiveSavedFilters(nextItems);
1517
1523
  setHasSearched(true);
1518
1524
  setRefreshKey((prev) => prev + 1);
1519
- } else if (String(savedFilterTobeDeleted) === String(currentSavedFilterData?.id)) {
1525
+ } else if (String(savedFilterTobeDeleted?.id) === String(currentSavedFilterData?.id)) {
1520
1526
  removeSavedFilter();
1521
1527
  }
1522
1528
  setIsDeleteSQDialogVisible(false);
1529
+ setSavedFilterTobeDeleted(null);
1523
1530
  setTimeout(() => {
1524
1531
  setSavedFilterFetchDataRefreshKey(prev => prev + 1)
1525
1532
  }, 500)
@@ -2706,11 +2713,21 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
2706
2713
  </SolidDialogBody>
2707
2714
  </SolidDialog>
2708
2715
 
2709
- <SolidDialog open={isDeleteSQDialogVisible} onOpenChange={setIsDeleteSQDialogVisible} className="solid-confirm-dialog" style={{ width: "min(420px, calc(100vw - 2rem))" }}>
2716
+ <SolidDialog
2717
+ open={isDeleteSQDialogVisible}
2718
+ onOpenChange={(open) => {
2719
+ setIsDeleteSQDialogVisible(open);
2720
+ if (!open) {
2721
+ setSavedFilterTobeDeleted(null);
2722
+ }
2723
+ }}
2724
+ className="solid-confirm-dialog"
2725
+ style={{ width: "min(420px, calc(100vw - 2rem))" }}
2726
+ >
2710
2727
  <SolidDialogHeader>
2711
2728
  <div>
2712
2729
  <SolidDialogTitle>Confirm Delete</SolidDialogTitle>
2713
- <SolidDialogDescription>Are you sure you want to delete the {currentSavedFilterData?.name} saved query?</SolidDialogDescription>
2730
+ <SolidDialogDescription>Are you sure you want to delete the {savedFilterTobeDeleted?.name} saved query?</SolidDialogDescription>
2714
2731
  </div>
2715
2732
  <SolidDialogClose />
2716
2733
  </SolidDialogHeader>
@@ -2720,7 +2737,14 @@ export const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handle
2720
2737
  <Check size={14} />
2721
2738
  Yes
2722
2739
  </SolidButton>
2723
- <SolidButton variant="outline" size="sm" onClick={() => setIsDeleteSQDialogVisible(false)}>
2740
+ <SolidButton
2741
+ variant="outline"
2742
+ size="sm"
2743
+ onClick={() => {
2744
+ setIsDeleteSQDialogVisible(false);
2745
+ setSavedFilterTobeDeleted(null);
2746
+ }}
2747
+ >
2724
2748
  <X size={14} />
2725
2749
  No
2726
2750
  </SolidButton>
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDashboardTableWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEjF,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAoCrF"}
1
+ {"version":3,"file":"DefaultDashboardTableWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEvG,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,6BAA6B,2CAoCrF"}
@@ -4,9 +4,9 @@ export function DefaultDashboardTableWidget(_a) {
4
4
  var runtime = _a.runtime;
5
5
  var columns = Array.isArray((_b = runtime === null || runtime === void 0 ? void 0 : runtime.data) === null || _b === void 0 ? void 0 : _b.columns) ? runtime.data.columns : [];
6
6
  var records = Array.isArray((_c = runtime === null || runtime === void 0 ? void 0 : runtime.data) === null || _c === void 0 ? void 0 : _c.records) ? runtime.data.records : [];
7
- return (_jsx("div", { style: { overflow: "auto", maxHeight: "100%" }, children: _jsxs("table", { style: { width: "100%", borderCollapse: "collapse" }, children: [_jsx("thead", { children: _jsx("tr", { children: columns.map(function (column) { return (_jsx("th", { style: { textAlign: "left", borderBottom: "1px solid #eceff3", padding: "6px 8px", fontSize: "0.84rem" }, children: column }, column)); }) }) }), _jsx("tbody", { children: records.slice(0, 25).map(function (record, index) { return (_jsx("tr", { children: columns.map(function (column) {
7
+ return (_jsx("div", { style: { overflow: "auto", maxHeight: "100%" }, children: _jsxs("table", { style: { width: "100%", borderCollapse: "collapse" }, children: [_jsx("thead", { children: _jsx("tr", { children: columns.map(function (column) { return (_jsx("th", { style: { textAlign: "left", borderBottom: "1px solid #eceff3", padding: "6px 8px", fontSize: "0.84rem" }, children: column.header }, column.field)); }) }) }), _jsx("tbody", { children: records.slice(0, 25).map(function (record, index) { return (_jsx("tr", { children: columns.map(function (column) {
8
8
  var _a;
9
- return (_jsx("td", { style: { textAlign: "left", borderBottom: "1px solid #f3f4f6", padding: "6px 8px", fontSize: "0.83rem", whiteSpace: "nowrap" }, children: "".concat((_a = record === null || record === void 0 ? void 0 : record[column]) !== null && _a !== void 0 ? _a : "") }, "".concat(index, "-").concat(column)));
9
+ return (_jsx("td", { style: { textAlign: "left", borderBottom: "1px solid #f3f4f6", padding: "6px 8px", fontSize: "0.83rem", whiteSpace: "nowrap" }, children: "".concat((_a = record === null || record === void 0 ? void 0 : record[column.field]) !== null && _a !== void 0 ? _a : "") }, "".concat(index, "-").concat(column.field)));
10
10
  }) }, "record-".concat(index))); }) })] }) }));
11
11
  }
12
12
  //# sourceMappingURL=DefaultDashboardTableWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultDashboardTableWidget.js","sourceRoot":"","sources":["../../../../../src/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,2BAA2B,CAAC,EAA0C;;QAAxC,OAAO,aAAA;IACnD,IAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,IAAM,OAAO,GAA0B,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzG,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YACjD,iBAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,aACzD,0BACE,uBACG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CACvB,aAEE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAEvG,MAAM,IAHF,MAAM,CAIR,CACN,EAPwB,CAOxB,CAAC,GACC,GACC,EACR,0BACG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,IAAK,OAAA,CAC3C,uBACG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;;4BAAK,OAAA,CACvB,aAEE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAE7H,UAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,MAAM,CAAC,mCAAI,EAAE,CAAE,IAHvB,UAAG,KAAK,cAAI,MAAM,CAAE,CAItB,CACN,CAAA;yBAAA,CAAC,IARK,iBAAU,KAAK,CAAE,CASrB,CACN,EAX4C,CAW5C,CAAC,GACI,IACF,GACJ,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type { DashboardWidgetComponentProps } from \"../../../../types/dashboard\";\n\nexport function DefaultDashboardTableWidget({ runtime }: DashboardWidgetComponentProps) {\n const columns: string[] = Array.isArray(runtime?.data?.columns) ? runtime.data.columns : [];\n const records: Record<string, any>[] = Array.isArray(runtime?.data?.records) ? runtime.data.records : [];\n\n return (\n <div style={{ overflow: \"auto\", maxHeight: \"100%\" }}>\n <table style={{ width: \"100%\", borderCollapse: \"collapse\" }}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th\n key={column}\n style={{ textAlign: \"left\", borderBottom: \"1px solid #eceff3\", padding: \"6px 8px\", fontSize: \"0.84rem\" }}\n >\n {column}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {records.slice(0, 25).map((record, index) => (\n <tr key={`record-${index}`}>\n {columns.map((column) => (\n <td\n key={`${index}-${column}`}\n style={{ textAlign: \"left\", borderBottom: \"1px solid #f3f4f6\", padding: \"6px 8px\", fontSize: \"0.83rem\", whiteSpace: \"nowrap\" }}\n >\n {`${record?.[column] ?? \"\"}`}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"DefaultDashboardTableWidget.js","sourceRoot":"","sources":["../../../../../src/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,2BAA2B,CAAC,EAA0C;;QAAxC,OAAO,aAAA;IACnD,IAAM,OAAO,GAA2B,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,IAAM,OAAO,GAA0B,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzG,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YACjD,iBAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,aACzD,0BACE,uBACG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CACvB,aAEE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAEvG,MAAM,CAAC,MAAM,IAHT,MAAM,CAAC,KAAK,CAId,CACN,EAPwB,CAOxB,CAAC,GACC,GACC,EACR,0BACG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,IAAK,OAAA,CAC3C,uBACG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM;;4BAAK,OAAA,CACvB,aAEE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAE7H,UAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,MAAM,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAE,IAH7B,UAAG,KAAK,cAAI,MAAM,CAAC,KAAK,CAAE,CAI5B,CACN,CAAA;yBAAA,CAAC,IARK,iBAAU,KAAK,CAAE,CASrB,CACN,EAX4C,CAW5C,CAAC,GACI,IACF,GACJ,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type { DashboardTableColumn, DashboardWidgetComponentProps } from \"../../../../types/dashboard\";\n\nexport function DefaultDashboardTableWidget({ runtime }: DashboardWidgetComponentProps) {\n const columns: DashboardTableColumn[] = Array.isArray(runtime?.data?.columns) ? runtime.data.columns : [];\n const records: Record<string, any>[] = Array.isArray(runtime?.data?.records) ? runtime.data.records : [];\n\n return (\n <div style={{ overflow: \"auto\", maxHeight: \"100%\" }}>\n <table style={{ width: \"100%\", borderCollapse: \"collapse\" }}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th\n key={column.field}\n style={{ textAlign: \"left\", borderBottom: \"1px solid #eceff3\", padding: \"6px 8px\", fontSize: \"0.84rem\" }}\n >\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {records.slice(0, 25).map((record, index) => (\n <tr key={`record-${index}`}>\n {columns.map((column) => (\n <td\n key={`${index}-${column.field}`}\n style={{ textAlign: \"left\", borderBottom: \"1px solid #f3f4f6\", padding: \"6px 8px\", fontSize: \"0.83rem\", whiteSpace: \"nowrap\" }}\n >\n {`${record?.[column.field] ?? \"\"}`}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
- import type { DashboardWidgetComponentProps } from "../../../../types/dashboard";
1
+ import type { DashboardTableColumn, DashboardWidgetComponentProps } from "../../../../types/dashboard";
2
2
 
3
3
  export function DefaultDashboardTableWidget({ runtime }: DashboardWidgetComponentProps) {
4
- const columns: string[] = Array.isArray(runtime?.data?.columns) ? runtime.data.columns : [];
4
+ const columns: DashboardTableColumn[] = Array.isArray(runtime?.data?.columns) ? runtime.data.columns : [];
5
5
  const records: Record<string, any>[] = Array.isArray(runtime?.data?.records) ? runtime.data.records : [];
6
6
 
7
7
  return (
@@ -11,10 +11,10 @@ export function DefaultDashboardTableWidget({ runtime }: DashboardWidgetComponen
11
11
  <tr>
12
12
  {columns.map((column) => (
13
13
  <th
14
- key={column}
14
+ key={column.field}
15
15
  style={{ textAlign: "left", borderBottom: "1px solid #eceff3", padding: "6px 8px", fontSize: "0.84rem" }}
16
16
  >
17
- {column}
17
+ {column.header}
18
18
  </th>
19
19
  ))}
20
20
  </tr>
@@ -24,10 +24,10 @@ export function DefaultDashboardTableWidget({ runtime }: DashboardWidgetComponen
24
24
  <tr key={`record-${index}`}>
25
25
  {columns.map((column) => (
26
26
  <td
27
- key={`${index}-${column}`}
27
+ key={`${index}-${column.field}`}
28
28
  style={{ textAlign: "left", borderBottom: "1px solid #f3f4f6", padding: "6px 8px", fontSize: "0.83rem", whiteSpace: "nowrap" }}
29
29
  >
30
- {`${record?.[column] ?? ""}`}
30
+ {`${record?.[column.field] ?? ""}`}
31
31
  </td>
32
32
  ))}
33
33
  </tr>
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDecimalField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDecimalField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IASnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAuB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAiC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAe/F,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAqD/F,CAAA"}
1
+ {"version":3,"file":"SolidDecimalField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDecimalField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAKzE,qBAAa,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAUnD,YAAY,IAAI,GAAG;IASnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAuB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAiC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAe/F,CAAA;AAED,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAqD/F,CAAA"}
@@ -32,8 +32,11 @@ var SolidDecimalField = /** @class */ (function () {
32
32
  writable: true,
33
33
  value: function (value, formData) {
34
34
  var fieldLayoutInfo = this.fieldContext.field;
35
- if (value) {
36
- formData.append(fieldLayoutInfo.attrs.name, value);
35
+ if (value === undefined || value === null || value === "") {
36
+ formData.append(fieldLayoutInfo.attrs.name, "");
37
+ }
38
+ else {
39
+ formData.append(fieldLayoutInfo.attrs.name, String(value));
37
40
  }
38
41
  }
39
42
  });
@@ -46,7 +49,7 @@ var SolidDecimalField = /** @class */ (function () {
46
49
  var fieldName = this.fieldContext.field.attrs.name;
47
50
  var fieldDefaultValue = (_b = (_a = this.fieldContext) === null || _a === void 0 ? void 0 : _a.fieldMetadata) === null || _b === void 0 ? void 0 : _b.defaultValue;
48
51
  var existingValue = this.fieldContext.data[fieldName];
49
- return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';
52
+ return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue !== null && fieldDefaultValue !== void 0 ? fieldDefaultValue : '';
50
53
  }
51
54
  });
52
55
  Object.defineProperty(SolidDecimalField.prototype, "validationSchema", {
@@ -67,11 +70,11 @@ var SolidDecimalField = /** @class */ (function () {
67
70
  schema = schema.nullable(); // Allow null when not required
68
71
  }
69
72
  // 2. length (min/max)
70
- if (fieldMetadata.min && fieldMetadata.min > 0) {
71
- schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel, fieldMetadata.min));
73
+ if (fieldMetadata.min != null) {
74
+ schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_INTEGER(fieldLabel, fieldMetadata.min));
72
75
  }
73
- if (fieldMetadata.max && fieldMetadata.max > 0) {
74
- schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel, fieldMetadata.max));
76
+ if (fieldMetadata.max != null) {
77
+ schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_INTEGER(fieldLabel, fieldMetadata.max));
75
78
  }
76
79
  return schema;
77
80
  }
@@ -126,7 +129,7 @@ export var DefaultDecimalFormViewWidget = function (_a) {
126
129
  return (_jsxs("div", { className: styles.fieldViewWrapper, children: [showFieldLabel !== false && (_jsx("p", { className: "".concat(styles.fieldViewLabel, " form-field-label"), children: fieldLabel })), _jsx("p", { className: styles.fieldViewValue, children: value != null && typeof value !== "object" ? value : '' })] }));
127
130
  };
128
131
  export var DefaultDecimalFormEditWidget = function (_a) {
129
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
132
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
130
133
  var formik = _a.formik, fieldContext = _a.fieldContext;
131
134
  var fieldMetadata = fieldContext.fieldMetadata;
132
135
  var fieldLayoutInfo = fieldContext.field;
@@ -149,6 +152,6 @@ export var DefaultDecimalFormEditWidget = function (_a) {
149
152
  type: "number",
150
153
  },
151
154
  }, "onFieldChange");
152
- }, value: formik.values[fieldLayoutInfo.attrs.name] || '' }) }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_m = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _m === void 0 ? void 0 : _m.toString() }))] }));
155
+ }, value: (_m = formik.values[fieldLayoutInfo.attrs.name]) !== null && _m !== void 0 ? _m : '' }) }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_o = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _o === void 0 ? void 0 : _o.toString() }))] }));
153
156
  };
154
157
  //# sourceMappingURL=SolidDecimalField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDecimalField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDecimalField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport * as Yup from \"yup\";\nimport styles from \"./solidFields.module.css\";\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\";\nimport { SolidNumberInput } from \"../../../shad-cn-ui\";\n\nexport class SolidDecimalField 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 if (value) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.NumberSchema<number | null | undefined> = Yup.number();\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(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min && fieldMetadata.min > 0) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel,fieldMetadata.min));\n }\n if (fieldMetadata.max && fieldMetadata.max > 0) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel,fieldMetadata.max));\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDecimalFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDecimalFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\nexport const DefaultDecimalFormViewWidget = ({ 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 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}>{value != null && typeof value !== \"object\" ? value : ''}</p>\n </div>\n );\n}\n\nexport const DefaultDecimalFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\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\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\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\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: any) => {\n const nextVal = typeof e.value === \"number\" ? e.value : null;\n fieldContext.onChange(\n {\n target: {\n name: fieldLayoutInfo.attrs.name,\n value: nextVal,\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidDecimalField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDecimalField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport * as Yup from \"yup\";\nimport styles from \"./solidFields.module.css\";\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\";\nimport { SolidNumberInput } from \"../../../shad-cn-ui\";\n\nexport class SolidDecimalField 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\n if (value === undefined || value === null || value === \"\") {\n formData.append(fieldLayoutInfo.attrs.name,\"\");\n } else {\n formData.append(fieldLayoutInfo.attrs.name,String(value));\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue ?? '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.NumberSchema<number | null | undefined> = Yup.number();\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(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min != null) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_INTEGER(fieldLabel,fieldMetadata.min));\n }\n if (fieldMetadata.max != null) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_INTEGER(fieldLabel,fieldMetadata.max));\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDecimalFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDecimalFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\nexport const DefaultDecimalFormViewWidget = ({ 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 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}>{value != null && typeof value !== \"object\" ? value : ''}</p>\n </div>\n );\n}\n\nexport const DefaultDecimalFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\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\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\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\n return (\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>\n {fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\">*</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <div className={styles.fieldNumberWrapper}>\n <SolidNumberInput\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: any) => {\n const nextVal = typeof e.value === \"number\" ? e.value : null;\n fieldContext.onChange(\n {\n target: {\n name: fieldLayoutInfo.attrs.name,\n value: nextVal,\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n value={formik.values[fieldLayoutInfo.attrs.name] ?? ''}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n"]}
@@ -18,8 +18,11 @@ export class SolidDecimalField implements ISolidField {
18
18
 
19
19
  updateFormData(value: any, formData: FormData): any {
20
20
  const fieldLayoutInfo = this.fieldContext.field;
21
- if (value) {
22
- formData.append(fieldLayoutInfo.attrs.name, value);
21
+
22
+ if (value === undefined || value === null || value === "") {
23
+ formData.append(fieldLayoutInfo.attrs.name,"");
24
+ } else {
25
+ formData.append(fieldLayoutInfo.attrs.name,String(value));
23
26
  }
24
27
  }
25
28
 
@@ -29,7 +32,7 @@ export class SolidDecimalField implements ISolidField {
29
32
 
30
33
  const existingValue = this.fieldContext.data[fieldName];
31
34
 
32
- return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';
35
+ return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue ?? '';
33
36
  }
34
37
 
35
38
  validationSchema(): Yup.Schema {
@@ -46,11 +49,11 @@ export class SolidDecimalField implements ISolidField {
46
49
  schema = schema.nullable(); // Allow null when not required
47
50
  }
48
51
  // 2. length (min/max)
49
- if (fieldMetadata.min && fieldMetadata.min > 0) {
50
- schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel,fieldMetadata.min));
52
+ if (fieldMetadata.min != null) {
53
+ schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_INTEGER(fieldLabel,fieldMetadata.min));
51
54
  }
52
- if (fieldMetadata.max && fieldMetadata.max > 0) {
53
- schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel,fieldMetadata.max));
55
+ if (fieldMetadata.max != null) {
56
+ schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_INTEGER(fieldLabel,fieldMetadata.max));
54
57
  }
55
58
  return schema;
56
59
  }
@@ -166,7 +169,7 @@ export const DefaultDecimalFormEditWidget = ({ formik, fieldContext }: SolidForm
166
169
  "onFieldChange"
167
170
  );
168
171
  }}
169
- value={formik.values[fieldLayoutInfo.attrs.name] || ''}
172
+ value={formik.values[fieldLayoutInfo.attrs.name] ?? ''}
170
173
  />
171
174
  </div>
172
175
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
@@ -1 +1 @@
1
- {"version":3,"file":"SolidIntegerField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidIntegerField.tsx"],"names":[],"mappings":"AACA,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,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAenB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAwB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAiC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAGD,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAe/F,CAAA;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAwD/F,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2GxG,CAAC"}
1
+ {"version":3,"file":"SolidIntegerField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidIntegerField.tsx"],"names":[],"mappings":"AACA,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,iBAAkB,YAAW,WAAW;IAEjD,OAAO,CAAC,YAAY,CAAkB;gBAE1B,YAAY,EAAE,eAAe;IAIzC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAkBnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAwB9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAiC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAYjE;AAGD,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAe/F,CAAA;AAID,eAAO,MAAM,4BAA4B,6BAA8B,yBAAyB,4CAwD/F,CAAA;AAED,eAAO,MAAM,qCAAqC,6BAA8B,yBAAyB,4CA2GxG,CAAC"}
@@ -48,14 +48,16 @@ var SolidIntegerField = /** @class */ (function () {
48
48
  var _a, _b;
49
49
  var fieldName = this.fieldContext.field.attrs.name;
50
50
  var fieldDefaultValue = (_b = (_a = this.fieldContext) === null || _a === void 0 ? void 0 : _a.fieldMetadata) === null || _b === void 0 ? void 0 : _b.defaultValue;
51
- if (this.fieldContext.parentData && this.fieldContext.parentData[fieldName]) {
51
+ if (this.fieldContext.parentData &&
52
+ this.fieldContext.parentData[fieldName] !== undefined &&
53
+ this.fieldContext.parentData[fieldName] !== null) {
52
54
  var parentDataForKey = this.fieldContext.parentData[fieldName];
53
55
  if (parentDataForKey && typeof parentDataForKey !== 'object') {
54
56
  return this.fieldContext.parentData[fieldName];
55
57
  }
56
58
  }
57
59
  var existingValue = this.fieldContext.data[fieldName];
58
- return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';
60
+ return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue !== null && fieldDefaultValue !== void 0 ? fieldDefaultValue : '';
59
61
  }
60
62
  });
61
63
  Object.defineProperty(SolidIntegerField.prototype, "validationSchema", {
@@ -76,11 +78,11 @@ var SolidIntegerField = /** @class */ (function () {
76
78
  schema = schema.nullable(); // Allow null when not required
77
79
  }
78
80
  // 2. length (min/max)
79
- if (fieldMetadata.min && fieldMetadata.min > 0) {
80
- schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel, fieldMetadata.min));
81
+ if (fieldMetadata.min != null) {
82
+ schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_INTEGER(fieldLabel, fieldMetadata.min));
81
83
  }
82
- if (fieldMetadata.max && fieldMetadata.max > 0) {
83
- schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel, fieldMetadata.max));
84
+ if (fieldMetadata.max != null) {
85
+ schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_INTEGER(fieldLabel, fieldMetadata.max));
84
86
  }
85
87
  return schema;
86
88
  }
@@ -135,7 +137,7 @@ export var DefaultIntegerFormViewWidget = function (_a) {
135
137
  return (_jsxs("div", { className: styles.fieldViewWrapper, children: [showFieldLabel !== false && (_jsx("p", { className: "".concat(styles.fieldViewLabel, " form-field-label"), children: fieldLabel })), _jsx("p", { className: styles.fieldViewValue, children: value != null && typeof value !== "object" ? value : '' })] }));
136
138
  };
137
139
  export var DefaultIntegerFormEditWidget = function (_a) {
138
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
140
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
139
141
  var formik = _a.formik, fieldContext = _a.fieldContext;
140
142
  var fieldMetadata = fieldContext.fieldMetadata;
141
143
  var fieldLayoutInfo = fieldContext.field;
@@ -161,10 +163,10 @@ export var DefaultIntegerFormEditWidget = function (_a) {
161
163
  type: "number",
162
164
  },
163
165
  }, "onFieldChange");
164
- }, value: formik.values[fieldLayoutInfo.attrs.name] || '', autoComplete: autoComplete }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_q = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _q === void 0 ? void 0 : _q.toString() }))] }));
166
+ }, value: (_q = formik.values[fieldLayoutInfo.attrs.name]) !== null && _q !== void 0 ? _q : '', autoComplete: autoComplete }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("p", { className: styles.fieldError, children: (_r = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _r === void 0 ? void 0 : _r.toString() }))] }));
165
167
  };
166
168
  export var SolidIntegerSliderStyleFormEditWidget = function (_a) {
167
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
169
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
168
170
  var formik = _a.formik, fieldContext = _a.fieldContext;
169
171
  var fieldMetadata = fieldContext.fieldMetadata;
170
172
  var fieldLayoutInfo = fieldContext.field;
@@ -176,11 +178,11 @@ export var SolidIntegerSliderStyleFormEditWidget = function (_a) {
176
178
  var solidFormViewMetaData = fieldContext.solidFormViewMetaData;
177
179
  var formDisabled = (_h = (_g = (_f = solidFormViewMetaData.data.solidView) === null || _f === void 0 ? void 0 : _f.layout) === null || _g === void 0 ? void 0 : _g.attrs) === null || _h === void 0 ? void 0 : _h.disabled;
178
180
  var formReadonly = (_l = (_k = (_j = solidFormViewMetaData.data.solidView) === null || _j === void 0 ? void 0 : _j.layout) === null || _k === void 0 ? void 0 : _k.attrs) === null || _l === void 0 ? void 0 : _l.readonly;
179
- var min = fieldMetadata.min || 0;
180
- var max = fieldMetadata.max || 5;
181
+ var min = (_m = fieldMetadata.min) !== null && _m !== void 0 ? _m : 0;
182
+ var max = (_o = fieldMetadata.max) !== null && _o !== void 0 ? _o : 5;
181
183
  var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
182
184
  var fieldName = fieldLayoutInfo.attrs.name;
183
- var currentValue = Number((_m = formik.values[fieldName]) !== null && _m !== void 0 ? _m : min);
185
+ var currentValue = Number((_p = formik.values[fieldName]) !== null && _p !== void 0 ? _p : min);
184
186
  return (_jsxs("div", { className: "w-full", style: { height: '60px' }, children: [showFieldLabel != false && (_jsxs("div", { className: "font-medium mb-2", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" })] })), _jsxs("div", { className: "relative h-12", children: [_jsx(Range, { step: 1, min: min, max: max, values: [currentValue], onChange: function (values) {
185
187
  fieldContext.onChange({
186
188
  target: {
@@ -191,7 +193,7 @@ export var SolidIntegerSliderStyleFormEditWidget = function (_a) {
191
193
  }, "onFieldChange");
192
194
  }, renderTrack: function (_a) {
193
195
  var props = _a.props, children = _a.children;
194
- var percent = ((currentValue - min) / (max - min)) * 100;
196
+ var percent = max === min ? 0 : ((currentValue - min) / (max - min)) * 100;
195
197
  return (_jsxs("div", __assign({}, props, { style: __assign(__assign({}, props.style), { height: "10px", width: "100%", borderRadius: "8px", backgroundColor: "var(--primary-light-color)", position: "relative" }), children: [_jsx("div", { style: {
196
198
  position: "absolute",
197
199
  height: "100%",
@@ -207,6 +209,6 @@ export var SolidIntegerSliderStyleFormEditWidget = function (_a) {
207
209
  } }), _jsx("div", { className: "flex items-center justify-between mt-2", children: Array.from({ length: max - min + 1 }, function (_, i) {
208
210
  var num = i + min;
209
211
  return (_jsx("span", { className: "text-sm", children: num === 0 ? '' : num }, num));
210
- }) }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-2", children: _jsx(SolidMessage, { severity: "error", text: (_o = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _o === void 0 ? void 0 : _o.toString() }) }))] })] }));
212
+ }) }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-2", children: _jsx(SolidMessage, { severity: "error", text: (_q = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _q === void 0 ? void 0 : _q.toString() }) }))] })] }));
211
213
  };
212
214
  //# sourceMappingURL=SolidIntegerField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidIntegerField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidIntegerField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport styles from \"./solidFields.module.css\";\nimport { useState } from \"react\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { Range } from \"react-range\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidNumberInput } from \"../../../shad-cn-ui\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\n\nexport class SolidIntegerField 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 if (value !== undefined && value !== null) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n if (this.fieldContext.parentData && this.fieldContext.parentData[fieldName]) {\n const parentDataForKey = this.fieldContext.parentData[fieldName];\n if (parentDataForKey && typeof parentDataForKey !== 'object') {\n return this.fieldContext.parentData[fieldName]\n }\n }\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue || '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.NumberSchema<number | null | undefined> = Yup.number();\n\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(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min && fieldMetadata.min > 0) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_CHARACTER(fieldLabel, fieldMetadata.min));\n }\n if (fieldMetadata.max && fieldMetadata.max > 0) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_CHARACTER(fieldLabel, fieldMetadata.max));\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultIntegerFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultIntegerFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\nexport const DefaultIntegerFormViewWidget = ({ 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 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}>{value != null && typeof value !== \"object\" ? value : ''}</p>\n </div>\n );\n}\n\n\n\nexport const DefaultIntegerFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\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 isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const autoComplete = fieldLayoutInfo?.attrs?.autoComplete || 'on';\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\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 <SolidNumberInput\n className={styles.fieldInput}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: any) => {\n const nextVal = typeof e.value === \"number\" ? e.value : null;\n fieldContext.onChange(\n {\n target: {\n name: fieldLayoutInfo.attrs.name,\n value: nextVal,\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n value={formik.values[fieldLayoutInfo.attrs.name] || ''}\n autoComplete={autoComplete}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const SolidIntegerSliderStyleFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const min = fieldMetadata.min || 0;\n const max = fieldMetadata.max || 5;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const fieldName = fieldLayoutInfo.attrs.name;\n const currentValue = Number(formik.values[fieldName] ?? min);\n\n return (\n <div className=\"w-full\" style={{ height: '60px' }}>\n {showFieldLabel != false && (\n <div className=\"font-medium mb-2\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n </div>\n )}\n <div className=\"relative h-12\">\n <Range\n step={1}\n min={min}\n max={max}\n values={[currentValue]}\n onChange={(values) => {\n fieldContext.onChange(\n {\n target: {\n name: fieldName,\n value: values[0],\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n renderTrack={({ props, children }) => {\n const percent = ((currentValue - min) / (max - min)) * 100;\n return (\n <div\n {...props}\n style={{\n ...props.style,\n height: \"10px\",\n width: \"100%\",\n borderRadius: \"8px\",\n backgroundColor: \"var(--primary-light-color)\",\n position: \"relative\",\n }}\n >\n <div\n style={{\n position: \"absolute\",\n height: \"100%\",\n width: `${percent}%`,\n backgroundColor: \"var(--primary-color)\",\n borderRadius: \"5px\",\n top: 0,\n left: 0,\n }}\n />\n {children}\n </div>\n )\n }}\n renderThumb={({ props }) => (\n <div\n {...props}\n key={props.key}\n style={{\n ...props.style,\n height: \"18px\",\n width: \"18px\",\n border: \"4px solid var(--surface-0)\",\n borderRadius: '50%',\n backgroundColor: \"var(--primary-color)\",\n }}\n />\n )}\n />\n <div className=\"flex items-center justify-between mt-2\">\n {Array.from({ length: max - min + 1 }, (_, i) => {\n const num = i + min;\n return (\n <span\n key={num}\n className=\"text-sm\"\n >\n {num === 0 ? '' : num}\n </span>\n );\n })}\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-2\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidIntegerField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidIntegerField.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE;IAII,2BAAY,YAA6B;QAFjC;;;;;WAA8B;QAGlC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;;;;;eAED,UAAe,KAAU,EAAE,QAAkB;YACzC,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBACvC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACtD;QACL,CAAC;;;;;;eAED;;YACI,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;YACrD,IAAM,iBAAiB,GAAG,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,aAAa,0CAAE,YAAY,CAAC;YACzE,IAAK,IAAI,CAAC,YAAY,CAAC,UAAU;gBACjC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS;gBACrD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;gBAE9C,IAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACjE,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;oBAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;iBACjD;aACJ;YAED,IAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExD,OAAO,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC;QAC3G,CAAC;;;;;;eAED;;YACI,IAAI,MAAM,GAAgD,GAAG,CAAC,MAAM,EAAE,CAAC;YAGvE,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,eAAe;YACf,IAAI,aAAa,CAAC,QAAQ,EAAE;gBACxB,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;aACvE;iBAAM;gBACH,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,+BAA+B;aAC9D;YACD,sBAAsB;YACtB,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,EAAE;gBAC3B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/G;YACD,IAAI,aAAa,CAAC,GAAG,IAAI,IAAI,EAAE;gBAC3B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;aAC/G;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;;;;;;eAED,UAAO,MAAoB;;YACvB,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChD,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB,IAAK,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAArD,CAAqD,CAAC;YACnH,IAAM,SAAS,GAAG,CAAA,MAAA,eAAe,CAAC,KAAK,0CAAE,SAAS,KAAI,wBAAwB,CAAC;YAE/E,IAAI,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,IAAI,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,8BAA8B,CAAC;aAC/C;YACD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,8BAA8B,CAAC;aAC/C;YACD,IAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YACpD,OAAO,CACH,4BACI,eAAK,SAAS,EAAE,SAAS,aACpB,QAAQ,KAAK,MAAM;4BAChB,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,EAErD,QAAQ,KAAK,MAAM,IAAI,CACpB,4BACK,UAAU;gCACP,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,GAEvD,CACN,IAEC,GACP,CACN,CAAC;QACN,CAAC;;;;;;eAED,UAA0B,MAAc,EAAE,MAAoB;YAC1D,IAAI,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAClD,IAAM,WAAW,GAA8B;gBAC3C,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC;;IACL,wBAAC;AAAD,CAAC,AAtGD,IAsGC;;AAGD,MAAM,CAAC,IAAM,4BAA4B,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IAE/D,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,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CACH,eAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,aAClC,cAAc,KAAK,KAAK,IAAI,CACzB,YAAG,SAAS,EAAE,UAAG,MAAM,CAAC,cAAc,sBAAmB,YAAG,UAAU,GAAK,CAC9E,EACD,YAAG,SAAS,EAAE,MAAM,CAAC,cAAc,YAAG,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAK,IAChG,CACT,CAAC;AACN,CAAC,CAAA;AAID,MAAM,CAAC,IAAM,4BAA4B,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IAE/D,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAC3C,IAAM,SAAS,GAAG,CAAA,MAAA,eAAe,CAAC,KAAK,0CAAE,SAAS,KAAI,wBAAwB,CAAC;IAC/E,IAAM,UAAU,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC5E,IAAM,gBAAgB,GAAG,MAAA,eAAe,CAAC,KAAK,CAAC,WAAW,mCAAI,aAAa,CAAC,WAAW,CAAC;IACxF,IAAM,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;IACjE,IAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,SAAS,CAAC;IACzD,IAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;IAEjD,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB,IAAK,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAArD,CAAqD,CAAC;IAEnH,IAAM,aAAa,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACtD,IAAM,aAAa,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACtD,IAAM,YAAY,GAAG,CAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,YAAY,KAAI,IAAI,CAAC;IAElE,IAAM,YAAY,GAAG,MAAA,MAAA,MAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,QAAQ,CAAC;IACnF,IAAM,YAAY,GAAG,MAAA,MAAA,MAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,QAAQ,CAAC;IAEnF,OAAO,CACH,eAAK,SAAS,EAAE,MAAM,CAAC,YAAY,aAC9B,cAAc,IAAI,KAAK;gBACpB,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,kBAAS,EAClE,KAAC,iBAAiB,IAAC,YAAY,EAAE,YAAY,GAAI,IAC7C,EAEZ,KAAC,gBAAgB,IACb,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,YAAY,IAAI,aAAa,IAAI,kBAAkB,EAC7D,QAAQ,EAAE,YAAY,IAAI,aAAa,EACvC,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,sBACZ,UAAG,eAAe,CAAC,KAAK,CAAC,IAAI,UAAO,EACtD,QAAQ,EAAE,UAAC,CAAM;oBACb,IAAM,OAAO,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC7D,YAAY,CAAC,QAAQ,CACjB;wBACI,MAAM,EAAE;4BACJ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI;4BAChC,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,QAAQ;yBACjB;qBACG,EACR,eAAe,CAClB,CAAC;gBACN,CAAC,EACD,KAAK,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,EACtD,YAAY,EAAE,YAAY,GAC5B,EACD,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACrD,YAAG,SAAS,EAAE,MAAM,CAAC,UAAU,YAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,QAAQ,EAAE,GAAK,CAChG,IACC,CACT,CAAC;AACN,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,qCAAqC,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IACxE,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,aAAa,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACtD,IAAM,aAAa,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,QAAQ,CAAC;IACtD,IAAM,qBAAqB,GAAG,YAAY,CAAC,qBAAqB,CAAC;IACjE,IAAM,YAAY,GAAG,MAAA,MAAA,MAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,QAAQ,CAAC;IACnF,IAAM,YAAY,GAAG,MAAA,MAAA,MAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,QAAQ,CAAC;IACnF,IAAM,GAAG,GAAG,MAAA,aAAa,CAAC,GAAG,mCAAI,CAAC,CAAC;IACnC,IAAM,GAAG,GAAG,MAAA,aAAa,CAAC,GAAG,mCAAI,CAAC,CAAC;IACnC,IAAM,gBAAgB,GAAG,UAAC,MAAW,EAAE,SAAiB,IAAK,OAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAArD,CAAqD,CAAC;IACnH,IAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7C,IAAM,YAAY,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mCAAI,GAAG,CAAC,CAAC;IAE7D,OAAO,CACH,eAAK,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAC5C,cAAc,IAAI,KAAK,IAAI,CACxB,eAAK,SAAS,EAAC,kBAAkB,aAAE,UAAU,EACxC,aAAa,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,cAAc,mBAAU,IACjE,CACT,EACD,eAAK,SAAS,EAAC,eAAe,aAC1B,KAAC,KAAK,IACF,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,CAAC,YAAY,CAAC,EACtB,QAAQ,EAAE,UAAC,MAAM;4BACb,YAAY,CAAC,QAAQ,CACjB;gCACI,MAAM,EAAE;oCACJ,IAAI,EAAE,SAAS;oCACf,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;oCAChB,IAAI,EAAE,QAAQ;iCACjB;6BACG,EACR,eAAe,CAClB,CAAC;wBACN,CAAC,EACD,WAAW,EAAE,UAAC,EAAmB;gCAAjB,KAAK,WAAA,EAAE,QAAQ,cAAA;4BAC3B,IAAM,OAAO,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;4BAC7E,OAAO,CACH,0BACQ,KAAK,IACT,KAAK,wBACE,KAAK,CAAC,KAAK,KACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,KAAK,EACnB,eAAe,EAAE,4BAA4B,EAC7C,QAAQ,EAAE,UAAU,gBAGxB,cACI,KAAK,EAAE;4CACH,QAAQ,EAAE,UAAU;4CACpB,MAAM,EAAE,MAAM;4CACd,KAAK,EAAE,UAAG,OAAO,MAAG;4CACpB,eAAe,EAAE,sBAAsB;4CACvC,YAAY,EAAE,KAAK;4CACnB,GAAG,EAAE,CAAC;4CACN,IAAI,EAAE,CAAC;yCACV,GACH,EACD,QAAQ,KACP,CACT,CAAA;wBACL,CAAC,EACD,WAAW,EAAE,UAAC,EAAS;gCAAP,KAAK,WAAA;4BAAO,OAAA,CACxB,mCACQ,KAAK,IACT,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,wBACE,KAAK,CAAC,KAAK,KACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,4BAA4B,EACpC,YAAY,EAAE,KAAK,EACnB,eAAe,EAAE,sBAAsB,OAE7C,CACL;wBAb2B,CAa3B,GACH,EACF,cAAK,SAAS,EAAC,wCAAwC,YAClD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,UAAC,CAAC,EAAE,CAAC;4BACxC,IAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;4BACpB,OAAO,CACH,eAEI,SAAS,EAAC,SAAS,YAElB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAHhB,GAAG,CAIL,CACV,CAAC;wBACN,CAAC,CAAC,GACA,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,IACJ,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport styles from \"./solidFields.module.css\";\nimport { useState } from \"react\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { Range } from \"react-range\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { SolidNumberInput } from \"../../../shad-cn-ui\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\n\nexport class SolidIntegerField 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 if (value !== undefined && value !== null) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const fieldName = this.fieldContext.field.attrs.name;\n const fieldDefaultValue = this.fieldContext?.fieldMetadata?.defaultValue;\n if ( this.fieldContext.parentData &&\n this.fieldContext.parentData[fieldName] !== undefined &&\n this.fieldContext.parentData[fieldName] !== null) {\n\n const parentDataForKey = this.fieldContext.parentData[fieldName];\n if (parentDataForKey && typeof parentDataForKey !== 'object') {\n return this.fieldContext.parentData[fieldName]\n }\n }\n\n const existingValue = this.fieldContext.data[fieldName];\n\n return existingValue !== undefined && existingValue !== null ? existingValue : fieldDefaultValue ?? '';\n }\n\n validationSchema(): Yup.Schema {\n let schema: Yup.NumberSchema<number | null | undefined> = Yup.number();\n\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(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel));\n } else {\n schema = schema.nullable(); // Allow null when not required\n }\n // 2. length (min/max)\n if (fieldMetadata.min != null) {\n schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.FIELD_MINIMUM_INTEGER(fieldLabel, fieldMetadata.min));\n }\n if (fieldMetadata.max != null) {\n schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.FIELD_MAXIMUM_INTEGER(fieldLabel, fieldMetadata.max));\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldLayoutInfo = this.fieldContext.field;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultIntegerFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultIntegerFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\nexport const DefaultIntegerFormViewWidget = ({ 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 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}>{value != null && typeof value !== \"object\" ? value : ''}</p>\n </div>\n );\n}\n\n\n\nexport const DefaultIntegerFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\n\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\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 isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const autoComplete = fieldLayoutInfo?.attrs?.autoComplete || 'on';\n\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n return (\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 <SolidNumberInput\n className={styles.fieldInput}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n disabled={formDisabled || fieldDisabled}\n id={fieldLayoutInfo.attrs.name}\n aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}\n onChange={(e: any) => {\n const nextVal = typeof e.value === \"number\" ? e.value : null;\n fieldContext.onChange(\n {\n target: {\n name: fieldLayoutInfo.attrs.name,\n value: nextVal,\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n value={formik.values[fieldLayoutInfo.attrs.name] ?? ''}\n autoComplete={autoComplete}\n />\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>\n )}\n </div>\n );\n}\n\nexport const SolidIntegerSliderStyleFormEditWidget = ({ 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 fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n const min = fieldMetadata.min ?? 0;\n const max = fieldMetadata.max ?? 5;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const fieldName = fieldLayoutInfo.attrs.name;\n const currentValue = Number(formik.values[fieldName] ?? min);\n\n return (\n <div className=\"w-full\" style={{ height: '60px' }}>\n {showFieldLabel != false && (\n <div className=\"font-medium mb-2\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n </div>\n )}\n <div className=\"relative h-12\">\n <Range\n step={1}\n min={min}\n max={max}\n values={[currentValue]}\n onChange={(values) => {\n fieldContext.onChange(\n {\n target: {\n name: fieldName,\n value: values[0],\n type: \"number\",\n },\n } as any,\n \"onFieldChange\"\n );\n }}\n renderTrack={({ props, children }) => {\n const percent = max === min ? 0 : ((currentValue - min) / (max - min)) * 100;\n return (\n <div\n {...props}\n style={{\n ...props.style,\n height: \"10px\",\n width: \"100%\",\n borderRadius: \"8px\",\n backgroundColor: \"var(--primary-light-color)\",\n position: \"relative\",\n }}\n >\n <div\n style={{\n position: \"absolute\",\n height: \"100%\",\n width: `${percent}%`,\n backgroundColor: \"var(--primary-color)\",\n borderRadius: \"5px\",\n top: 0,\n left: 0,\n }}\n />\n {children}\n </div>\n )\n }}\n renderThumb={({ props }) => (\n <div\n {...props}\n key={props.key}\n style={{\n ...props.style,\n height: \"18px\",\n width: \"18px\",\n border: \"4px solid var(--surface-0)\",\n borderRadius: '50%',\n backgroundColor: \"var(--primary-color)\",\n }}\n />\n )}\n />\n <div className=\"flex items-center justify-between mt-2\">\n {Array.from({ length: max - min + 1 }, (_, i) => {\n const num = i + min;\n return (\n <span\n key={num}\n className=\"text-sm\"\n >\n {num === 0 ? '' : num}\n </span>\n );\n })}\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-2\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n </div>\n );\n};\n"]}