@solidxai/core-ui 0.1.18-beta.2 → 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.
- package/dist/components/common/SolidThemeLink.d.ts.map +1 -1
- package/dist/components/common/SolidThemeLink.js +2 -2
- package/dist/components/common/SolidThemeLink.js.map +1 -1
- package/dist/components/common/SolidThemeLink.tsx +5 -2
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -1
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -4
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts +2 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts.map +1 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.js +3 -2
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.js.map +1 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.tsx +5 -3
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +29 -13
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +34 -10
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +2 -2
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +6 -6
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +12 -9
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +11 -8
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +16 -14
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +13 -10
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +2 -0
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +1 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +94 -50
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +26 -31
- package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +2 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -0
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -0
- package/dist/components/core/module/CreateModule.css +42 -0
- package/dist/components/core/module/CreateModule.js +1 -1
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +5 -5
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +3 -2
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +7 -3
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +8 -3
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +3 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/resources/solid-custom.css +36 -12
- package/dist/resources/themes/solid-light-modern/theme.css +2 -4
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +41 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +3 -1
- package/dist/types/dashboard.d.ts +4 -0
- package/dist/types/dashboard.d.ts.map +1 -1
- package/dist/types/dashboard.js.map +1 -1
- package/dist/types/dashboard.ts +5 -0
- package/dist/types/list-row-action.d.ts +18 -0
- package/dist/types/list-row-action.d.ts.map +1 -0
- package/dist/types/list-row-action.js +2 -0
- package/dist/types/list-row-action.js.map +1 -0
- package/dist/types/list-row-action.ts +18 -0
- 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
|
|
491
|
-
|
|
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
|
|
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 {
|
|
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
|
|
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,
|
|
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,
|
|
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:
|
|
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;
|
|
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,
|
|
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
|
|
71
|
-
schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.
|
|
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
|
|
74
|
-
schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.
|
|
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]
|
|
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
|
-
|
|
22
|
-
|
|
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
|
|
50
|
-
schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.
|
|
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
|
|
53
|
-
schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.
|
|
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;
|
|
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 &&
|
|
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
|
|
80
|
-
schema = schema.min(fieldMetadata.min, ERROR_MESSAGES.
|
|
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
|
|
83
|
-
schema = schema.max(fieldMetadata.max, ERROR_MESSAGES.
|
|
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]
|
|
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
|
|
180
|
-
var max = fieldMetadata.max
|
|
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((
|
|
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: (
|
|
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":";;;;;;;;;;;;;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,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBACzE,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,IAAI,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,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE;gBAC5C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,uBAAuB,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;aACjH;YACD,IAAI,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE;gBAC5C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,uBAAuB,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;aACjH;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,AAnGD,IAmGC;;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,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,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,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IACnC,IAAM,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,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,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;4BAC3D,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 && 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":"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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 &&\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"]}
|