@solidxai/core-ui 0.1.18-beta.1 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/components/core/form/SolidVersionHistory.d.ts.map +1 -1
  2. package/dist/components/core/form/SolidVersionHistory.js +1 -1
  3. package/dist/components/core/form/SolidVersionHistory.js.map +1 -1
  4. package/dist/components/core/form/SolidVersionHistory.tsx +1 -9
  5. package/dist/components/core/form/fields/SolidDateField.js +1 -1
  6. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  7. package/dist/components/core/form/fields/SolidDateField.tsx +1 -1
  8. package/dist/components/core/form/fields/SolidDateTimeField.js +1 -1
  9. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  10. package/dist/components/core/form/fields/SolidDateTimeField.tsx +1 -1
  11. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  12. package/dist/components/core/form/fields/SolidIntegerField.js +10 -10
  13. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  14. package/dist/components/core/form/fields/SolidIntegerField.tsx +22 -23
  15. package/dist/components/core/form/fields/SolidTimeField.js +1 -1
  16. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  17. package/dist/components/core/form/fields/SolidTimeField.tsx +1 -1
  18. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  19. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +3 -3
  20. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  21. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +3 -5
  22. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  23. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +41 -41
  24. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  25. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +6 -12
  26. package/dist/components/core/model/FieldMetaDataForm.css +22 -2
  27. package/dist/components/core/model/FieldMetaDataForm.js +2 -2
  28. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  29. package/dist/components/core/model/FieldMetaDataForm.tsx +2 -2
  30. package/dist/components/core/users/CreateUser.js +1 -1
  31. package/dist/components/core/users/CreateUser.js.map +1 -1
  32. package/dist/components/core/users/CreateUser.tsx +6 -6
  33. package/dist/resources/solid-custom.css +21 -3
  34. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidVersionHistory.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidVersionHistory.tsx"],"names":[],"mappings":"AAKA,KAAK,wBAAwB,GAAG;IAC5B,MAAM,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAAY,GAAG,uCAQjD,CAAC;AA4BF,eAAO,MAAM,mBAAmB,8BAA+B,wBAAwB,4CA4GtF,CAAC"}
1
+ {"version":3,"file":"SolidVersionHistory.d.ts","sourceRoot":"","sources":["../../../../src/components/core/form/SolidVersionHistory.tsx"],"names":[],"mappings":"AAKA,KAAK,wBAAwB,GAAG;IAC5B,MAAM,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,WAAY,GAAG,uCAQjD,CAAC;AA4BF,eAAO,MAAM,mBAAmB,8BAA+B,wBAAwB,4CAoGtF,CAAC"}
@@ -120,6 +120,6 @@ export var SolidVersionHistory = function (_a) {
120
120
  if (!chainId) {
121
121
  return (_jsx("div", { className: "p-3 text-sm text-color-secondary", children: "Version history will be available after this record is saved." }));
122
122
  }
123
- return (_jsxs("div", { className: "w-full p-2", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 pb-2", children: [_jsx("h3", { className: "m-0 text-base font-semibold", children: "Version History" }), _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", icon: "si si-refresh", onClick: fetchVersions, loading: isLoading })] }), _jsx("div", { className: "overflow-x-auto rounded border border-[var(--surface-border)]", children: _jsxs("table", { className: "w-full border-collapse text-sm", children: [_jsx("thead", { className: "bg-[var(--surface-ground)] text-left", children: _jsxs("tr", { children: [_jsx("th", { className: "p-2 font-semibold", children: "Version" }), _jsx("th", { className: "p-2 font-semibold", children: "Status" }), _jsx("th", { className: "p-2 font-semibold", children: "Created" }), _jsx("th", { className: "p-2 font-semibold", children: "Updated By" }), _jsx("th", { className: "p-2 font-semibold", children: "Published" }), _jsx("th", { className: "p-2 font-semibold text-right", children: "Action" })] }) }), _jsxs("tbody", { children: [versionRecords.length === 0 && (_jsx("tr", { children: _jsx("td", { className: "p-3 text-center text-color-secondary", colSpan: 6, children: isLoading ? 'Loading versions...' : 'No versions found' }) })), versionRecords.map(function (record) { return (_jsxs("tr", { className: "border-t border-[var(--surface-border)]", children: [_jsxs("td", { className: "p-2", children: ["#", record.id, record.isLatest ? ' · Latest' : ''] }), _jsx("td", { className: "p-2", children: _jsx("span", { className: "solid-version-status-pill ".concat(getVersionStatusClassName(record)), children: getWorkflowStatusLabel(record) }) }), _jsxs("td", { className: "p-2", children: [_jsx("div", { children: formatVersionDate(record.createdAt) }), _jsx("div", { className: "text-xs text-color-secondary", children: getUserDisplay(record.createdBy) })] }), _jsx("td", { className: "p-2", children: getUserDisplay(record.updatedBy) }), _jsx("td", { className: "p-2", children: record.publishedAt ? formatVersionDate(record.publishedAt) : '-' }), _jsx("td", { className: "p-2 text-right", children: _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", icon: "si si-eye", className: "solid-icon-button", tooltip: "Open version", "aria-label": "Open version", onClick: function () { return openVersionInNewTab(record.id); } }) })] }, record.id)); })] })] }) })] }));
123
+ return (_jsxs("div", { className: "w-full p-2", children: [_jsx("div", { className: "flex items-center gap-2 pb-2", children: _jsx("h3", { className: "m-0 text-base font-semibold", children: "Version History" }) }), _jsx("div", { className: "overflow-x-auto rounded border border-[var(--surface-border)]", children: _jsxs("table", { className: "w-full border-collapse text-sm", children: [_jsx("thead", { className: "bg-[var(--surface-ground)] text-left", children: _jsxs("tr", { children: [_jsx("th", { className: "p-2 font-semibold", children: "Version" }), _jsx("th", { className: "p-2 font-semibold", children: "Status" }), _jsx("th", { className: "p-2 font-semibold", children: "Created" }), _jsx("th", { className: "p-2 font-semibold", children: "Updated By" }), _jsx("th", { className: "p-2 font-semibold", children: "Published" }), _jsx("th", { className: "p-2 font-semibold text-right", children: "Action" })] }) }), _jsxs("tbody", { children: [versionRecords.length === 0 && (_jsx("tr", { children: _jsx("td", { className: "p-3 text-center text-color-secondary", colSpan: 6, children: isLoading ? 'Loading versions...' : 'No versions found' }) })), versionRecords.map(function (record) { return (_jsxs("tr", { className: "border-t border-[var(--surface-border)]", children: [_jsxs("td", { className: "p-2", children: ["#", record.id, record.isLatest ? ' · Latest' : ''] }), _jsx("td", { className: "p-2", children: _jsx("span", { className: "solid-version-status-pill ".concat(getVersionStatusClassName(record)), children: getWorkflowStatusLabel(record) }) }), _jsxs("td", { className: "p-2", children: [_jsx("div", { children: formatVersionDate(record.createdAt) }), _jsx("div", { className: "text-xs text-color-secondary", children: getUserDisplay(record.createdBy) })] }), _jsx("td", { className: "p-2", children: getUserDisplay(record.updatedBy) }), _jsx("td", { className: "p-2", children: record.publishedAt ? formatVersionDate(record.publishedAt) : '-' }), _jsx("td", { className: "p-2 text-right", children: _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", icon: "si si-eye", className: "solid-icon-button", tooltip: "Open version", "aria-label": "Open version", onClick: function () { return openVersionInNewTab(record.id); } }) })] }, record.id)); })] })] }) })] }));
124
124
  };
125
125
  //# sourceMappingURL=SolidVersionHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidVersionHistory.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidVersionHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport qs from \"qs\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\ntype SolidVersionHistoryProps = {\n params: {\n moduleName: string;\n modelName: string;\n };\n currentRecord: any;\n onRefresh?: () => void;\n};\n\nexport const getWorkflowStatusLabel = (record: any) => {\n if (record?.isPublished) {\n return 'Published';\n }\n if (record?.publishedAt && record?.isLatest === false) {\n return 'Archived';\n }\n return 'Draft';\n};\n\nconst getVersionStatusClassName = (record: any) => {\n const status = getWorkflowStatusLabel(record);\n if (status === 'Archived') return 'solid-version-status-pill--archived';\n if (status === 'Published') return 'solid-version-status-pill--published';\n return 'solid-version-status-pill--draft';\n};\n\nconst formatVersionDate = (value?: string | null) => {\n if (!value) return '-';\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return date.toLocaleString([], {\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n });\n};\n\nconst getUserDisplay = (value: any) => {\n if (!value) return '-';\n if (typeof value === 'object') return value.fullName || value.name || value.id || '-';\n return value;\n};\n\nexport const SolidVersionHistory = ({ params, currentRecord }: SolidVersionHistoryProps) => {\n const entityApi = useMemo(() => createSolidEntityApi(params.modelName), [params.modelName]);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [getVersions, { data, isLoading }] = useLazyGetSolidEntitiesQuery();\n const chainId = currentRecord?.initialEntityVersionId || currentRecord?.id;\n\n const fetchVersions = async () => {\n if (!chainId) return;\n const queryString = qs.stringify({\n filters: {\n $or: [\n { initialEntityVersionId: { $eq: chainId } },\n { id: { $eq: chainId } },\n ],\n },\n sort: ['createdAt:desc'],\n populate: ['createdBy', 'updatedBy'],\n }, { encodeValuesOnly: true });\n await getVersions(queryString);\n };\n\n useEffect(() => {\n fetchVersions();\n }, [chainId]);\n\n const openVersionInNewTab = (recordId: number | string) => {\n const versionUrl = `/admin/core/${params.moduleName}/${params.modelName}/form/${recordId}?viewMode=view`;\n window.open(versionUrl, '_blank', 'noopener,noreferrer');\n };\n\n const records = data?.records || [];\n const hasCopiedVersions = records.some((record: any) => String(record.id) !== String(chainId));\n const versionRecords = hasCopiedVersions ? records : [];\n\n if (!chainId) {\n return (\n <div className=\"p-3 text-sm text-color-secondary\">\n Version history will be available after this record is saved.\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n <div className=\"flex items-center justify-between gap-2 pb-2\">\n <h3 className=\"m-0 text-base font-semibold\">Version History</h3>\n <SolidButton\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n icon=\"si si-refresh\"\n onClick={fetchVersions}\n loading={isLoading}\n />\n </div>\n <div className=\"overflow-x-auto rounded border border-[var(--surface-border)]\">\n <table className=\"w-full border-collapse text-sm\">\n <thead className=\"bg-[var(--surface-ground)] text-left\">\n <tr>\n <th className=\"p-2 font-semibold\">Version</th>\n <th className=\"p-2 font-semibold\">Status</th>\n <th className=\"p-2 font-semibold\">Created</th>\n <th className=\"p-2 font-semibold\">Updated By</th>\n <th className=\"p-2 font-semibold\">Published</th>\n <th className=\"p-2 font-semibold text-right\">Action</th>\n </tr>\n </thead>\n <tbody>\n {versionRecords.length === 0 && (\n <tr>\n <td className=\"p-3 text-center text-color-secondary\" colSpan={6}>\n {isLoading ? 'Loading versions...' : 'No versions found'}\n </td>\n </tr>\n )}\n {versionRecords.map((record: any) => (\n <tr key={record.id} className=\"border-t border-[var(--surface-border)]\">\n <td className=\"p-2\">#{record.id}{record.isLatest ? ' · Latest' : ''}</td>\n <td className=\"p-2\">\n <span className={`solid-version-status-pill ${getVersionStatusClassName(record)}`}>\n {getWorkflowStatusLabel(record)}\n </span>\n </td>\n <td className=\"p-2\">\n <div>{formatVersionDate(record.createdAt)}</div>\n <div className=\"text-xs text-color-secondary\">{getUserDisplay(record.createdBy)}</div>\n </td>\n <td className=\"p-2\">{getUserDisplay(record.updatedBy)}</td>\n <td className=\"p-2\">{record.publishedAt ? formatVersionDate(record.publishedAt) : '-'}</td>\n <td className=\"p-2 text-right\">\n <SolidButton\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n icon=\"si si-eye\"\n className=\"solid-icon-button\"\n tooltip=\"Open version\"\n aria-label=\"Open version\"\n onClick={() => openVersionInNewTab(record.id)}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidVersionHistory.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidVersionHistory.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport qs from \"qs\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { SolidButton } from \"../../shad-cn-ui\";\n\ntype SolidVersionHistoryProps = {\n params: {\n moduleName: string;\n modelName: string;\n };\n currentRecord: any;\n onRefresh?: () => void;\n};\n\nexport const getWorkflowStatusLabel = (record: any) => {\n if (record?.isPublished) {\n return 'Published';\n }\n if (record?.publishedAt && record?.isLatest === false) {\n return 'Archived';\n }\n return 'Draft';\n};\n\nconst getVersionStatusClassName = (record: any) => {\n const status = getWorkflowStatusLabel(record);\n if (status === 'Archived') return 'solid-version-status-pill--archived';\n if (status === 'Published') return 'solid-version-status-pill--published';\n return 'solid-version-status-pill--draft';\n};\n\nconst formatVersionDate = (value?: string | null) => {\n if (!value) return '-';\n const date = new Date(value);\n if (Number.isNaN(date.getTime())) return value;\n return date.toLocaleString([], {\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n });\n};\n\nconst getUserDisplay = (value: any) => {\n if (!value) return '-';\n if (typeof value === 'object') return value.fullName || value.name || value.id || '-';\n return value;\n};\n\nexport const SolidVersionHistory = ({ params, currentRecord }: SolidVersionHistoryProps) => {\n const entityApi = useMemo(() => createSolidEntityApi(params.modelName), [params.modelName]);\n const { useLazyGetSolidEntitiesQuery } = entityApi;\n const [getVersions, { data, isLoading }] = useLazyGetSolidEntitiesQuery();\n const chainId = currentRecord?.initialEntityVersionId || currentRecord?.id;\n\n const fetchVersions = async () => {\n if (!chainId) return;\n const queryString = qs.stringify({\n filters: {\n $or: [\n { initialEntityVersionId: { $eq: chainId } },\n { id: { $eq: chainId } },\n ],\n },\n sort: ['createdAt:desc'],\n populate: ['createdBy', 'updatedBy'],\n }, { encodeValuesOnly: true });\n await getVersions(queryString);\n };\n\n useEffect(() => {\n fetchVersions();\n }, [chainId]);\n\n const openVersionInNewTab = (recordId: number | string) => {\n const versionUrl = `/admin/core/${params.moduleName}/${params.modelName}/form/${recordId}?viewMode=view`;\n window.open(versionUrl, '_blank', 'noopener,noreferrer');\n };\n\n const records = data?.records || [];\n const hasCopiedVersions = records.some((record: any) => String(record.id) !== String(chainId));\n const versionRecords = hasCopiedVersions ? records : [];\n\n if (!chainId) {\n return (\n <div className=\"p-3 text-sm text-color-secondary\">\n Version history will be available after this record is saved.\n </div>\n );\n }\n\n return (\n <div className=\"w-full p-2\">\n <div className=\"flex items-center gap-2 pb-2\">\n <h3 className=\"m-0 text-base font-semibold\">Version History</h3>\n </div>\n <div className=\"overflow-x-auto rounded border border-[var(--surface-border)]\">\n <table className=\"w-full border-collapse text-sm\">\n <thead className=\"bg-[var(--surface-ground)] text-left\">\n <tr>\n <th className=\"p-2 font-semibold\">Version</th>\n <th className=\"p-2 font-semibold\">Status</th>\n <th className=\"p-2 font-semibold\">Created</th>\n <th className=\"p-2 font-semibold\">Updated By</th>\n <th className=\"p-2 font-semibold\">Published</th>\n <th className=\"p-2 font-semibold text-right\">Action</th>\n </tr>\n </thead>\n <tbody>\n {versionRecords.length === 0 && (\n <tr>\n <td className=\"p-3 text-center text-color-secondary\" colSpan={6}>\n {isLoading ? 'Loading versions...' : 'No versions found'}\n </td>\n </tr>\n )}\n {versionRecords.map((record: any) => (\n <tr key={record.id} className=\"border-t border-[var(--surface-border)]\">\n <td className=\"p-2\">#{record.id}{record.isLatest ? ' · Latest' : ''}</td>\n <td className=\"p-2\">\n <span className={`solid-version-status-pill ${getVersionStatusClassName(record)}`}>\n {getWorkflowStatusLabel(record)}\n </span>\n </td>\n <td className=\"p-2\">\n <div>{formatVersionDate(record.createdAt)}</div>\n <div className=\"text-xs text-color-secondary\">{getUserDisplay(record.createdBy)}</div>\n </td>\n <td className=\"p-2\">{getUserDisplay(record.updatedBy)}</td>\n <td className=\"p-2\">{record.publishedAt ? formatVersionDate(record.publishedAt) : '-'}</td>\n <td className=\"p-2 text-right\">\n <SolidButton\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n icon=\"si si-eye\"\n className=\"solid-icon-button\"\n tooltip=\"Open version\"\n aria-label=\"Open version\"\n onClick={() => openVersionInNewTab(record.id)}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n"]}
@@ -92,16 +92,8 @@ export const SolidVersionHistory = ({ params, currentRecord }: SolidVersionHisto
92
92
 
93
93
  return (
94
94
  <div className="w-full p-2">
95
- <div className="flex items-center justify-between gap-2 pb-2">
95
+ <div className="flex items-center gap-2 pb-2">
96
96
  <h3 className="m-0 text-base font-semibold">Version History</h3>
97
- <SolidButton
98
- type="button"
99
- size="sm"
100
- variant="outline"
101
- icon="si si-refresh"
102
- onClick={fetchVersions}
103
- loading={isLoading}
104
- />
105
97
  </div>
106
98
  <div className="overflow-x-auto rounded border border-[var(--surface-border)]">
107
99
  <table className="w-full border-collapse text-sm">
@@ -147,7 +147,7 @@ export var DefaultDateFormEditWidget = function (_a) {
147
147
  fieldContext.onChange(syntheticEvent, "onFieldChange");
148
148
  };
149
149
  return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: styles.fieldWrapper, children: [showFieldLabel != false &&
150
- _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidDatePicker, { selected: parsedValue !== null && parsedValue !== void 0 ? parsedValue : undefined, onChange: function (date) { return handleChange(date); }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: formReadonly || fieldReadonly || readOnlyPermission, placeholderText: fieldLayoutInfo.attrs.placeholder, className: "" })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", 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() }) }))] }));
150
+ _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidDatePicker, { selected: parsedValue !== null && parsedValue !== void 0 ? parsedValue : undefined, onChange: function (date) { return handleChange(date); }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: formReadonly || fieldReadonly || readOnlyPermission, placeholderText: fieldLayoutInfo.attrs.placeholder, inputClassName: styles.fieldInput })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", 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() }) }))] }));
151
151
  };
152
152
  export var DefaultDateFormViewWidget = function (_a) {
153
153
  var _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDateField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDateField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidDatePicker } from \"../../../shad-cn-ui/SolidDatePicker\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { DateFieldViewComponent } from '../../../../components/core/common/DateFieldViewComponent';\nimport styles from \"./solidFields.module.css\";\n\nconst toDateValue = (value: any) => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nexport class SolidDateField 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 instanceof Date && !isNaN(value.getTime())) {\n const localDate = new Date(value);\n const utcDate = new Date(Date.UTC(localDate.getFullYear(), localDate.getMonth(), localDate.getDate()));\n // \"2025-06-10T00:00:00.000Z\"\n const isoString = utcDate.toISOString();\n formData.append(fieldLayoutInfo.attrs.name, isoString.split('T')[0]);\n } else 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.DateSchema<Date | null | undefined> = Yup.date();\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();\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDateFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDateFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\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 DefaultDateFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\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 isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const parsedValue = toDateValue(formik.values[fieldLayoutInfo.attrs.name]);\n\n const handleChange = (date: Date | null) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, date, \"date\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n };\n\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <SolidDatePicker\n selected={parsedValue ?? undefined}\n onChange={(date: Date | null) => handleChange(date as Date | null)}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n placeholderText={fieldLayoutInfo.attrs.placeholder}\n className=\"\"\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\nexport const DefaultDateFormViewWidget = ({ formik, fieldContext, }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const rawValue = formik.values[fieldName];\n const format = fieldLayoutInfo.attrs?.format as string | undefined;\n\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>\n {fieldLabel}\n </p>\n )}\n <p className={styles.fieldViewValue}>\n <DateFieldViewComponent value={rawValue} format={format} fallback=\"-\"></DateFieldViewComponent>\n </p>\n </div>\n );\n};\n\n"]}
1
+ {"version":3,"file":"SolidDateField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDateField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidDatePicker } from \"../../../shad-cn-ui/SolidDatePicker\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { DateFieldViewComponent } from '../../../../components/core/common/DateFieldViewComponent';\nimport styles from \"./solidFields.module.css\";\n\nconst toDateValue = (value: any) => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nexport class SolidDateField 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 instanceof Date && !isNaN(value.getTime())) {\n const localDate = new Date(value);\n const utcDate = new Date(Date.UTC(localDate.getFullYear(), localDate.getMonth(), localDate.getDate()));\n // \"2025-06-10T00:00:00.000Z\"\n const isoString = utcDate.toISOString();\n formData.append(fieldLayoutInfo.attrs.name, isoString.split('T')[0]);\n } else 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.DateSchema<Date | null | undefined> = Yup.date();\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();\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDateFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDateFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\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 DefaultDateFormEditWidget = ({ formik, fieldContext }: SolidFormFieldWidgetProps) => {\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 isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n\n const fieldDisabled = fieldLayoutInfo.attrs?.disabled;\n const fieldReadonly = fieldLayoutInfo.attrs?.readonly;\n const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const parsedValue = toDateValue(formik.values[fieldLayoutInfo.attrs.name]);\n\n const handleChange = (date: Date | null) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, date, \"date\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n };\n\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n <SolidDatePicker\n selected={parsedValue ?? undefined}\n onChange={(date: Date | null) => handleChange(date as Date | null)}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n placeholderText={fieldLayoutInfo.attrs.placeholder}\n inputClassName={styles.fieldInput}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\nexport const DefaultDateFormViewWidget = ({ formik, fieldContext, }: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const rawValue = formik.values[fieldName];\n const format = fieldLayoutInfo.attrs?.format as string | undefined;\n\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>\n {fieldLabel}\n </p>\n )}\n <p className={styles.fieldViewValue}>\n <DateFieldViewComponent value={rawValue} format={format} fallback=\"-\"></DateFieldViewComponent>\n </p>\n </div>\n );\n};\n\n"]}
@@ -153,7 +153,7 @@ export const DefaultDateFormEditWidget = ({ formik, fieldContext }: SolidFormFie
153
153
  disabled={formDisabled || fieldDisabled || readOnlyPermission}
154
154
  readOnly={formReadonly || fieldReadonly || readOnlyPermission}
155
155
  placeholderText={fieldLayoutInfo.attrs.placeholder}
156
- className=""
156
+ inputClassName={styles.fieldInput}
157
157
  />
158
158
  </div>
159
159
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
@@ -145,7 +145,7 @@ export var DefaultDateTimeFormEditWidget = function (_a) {
145
145
  fieldContext.onChange(syntheticEvent, "onFieldChange");
146
146
  };
147
147
  return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: styles.fieldWrapper, children: [showFieldLabel != false &&
148
- _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidDatePicker, { selected: parsedValue !== null && parsedValue !== void 0 ? parsedValue : undefined, onChange: function (date) { return handleChange(date); }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: formReadonly || fieldReadonly || readOnlyPermission, showTimeSelect: true, dateFormat: "yyyy-MM-dd h:mm aa", placeholderText: fieldLayoutInfo.attrs.placeholder, className: "" })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", 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() }) }))] }));
148
+ _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidDatePicker, { selected: parsedValue !== null && parsedValue !== void 0 ? parsedValue : undefined, onChange: function (date) { return handleChange(date); }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: formReadonly || fieldReadonly || readOnlyPermission, showTimeSelect: true, dateFormat: "yyyy-MM-dd h:mm aa", placeholderText: fieldLayoutInfo.attrs.placeholder, inputClassName: styles.fieldInput })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", 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() }) }))] }));
149
149
  };
150
150
  export var DefaultDateTimeFormViewWidget = function (_a) {
151
151
  var _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidDateTimeField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDateTimeField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { SolidDatePicker } from \"../../../shad-cn-ui/SolidDatePicker\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { DateFieldViewComponent } from '../../../../components/core/common/DateFieldViewComponent';\nimport dayjs from \"dayjs\";\nimport styles from \"./solidFields.module.css\";\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\n\nconst toDateValue = (value: any) => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nexport class SolidDateTimeField 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 instanceof Date && !isNaN(value.getTime())) {\n formData.append(fieldLayoutInfo.attrs.name, dayjs(value).utc().format('YYYY-MM-DD HH:mm:ss'));\n } else 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.DateSchema<Date | null | undefined> = Yup.date();\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();\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDateTimeFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDateTimeFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\n\nexport const DefaultDateTimeFormEditWidget = ({ 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 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 formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const parsedValue = toDateValue(formik.values[fieldLayoutInfo.attrs.name]);\n\n const handleChange = (date: Date | null) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, date, \"datetime-local\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n };\n\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* &nbsp; {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n <SolidDatePicker\n selected={parsedValue ?? undefined}\n onChange={(date: Date | null) => handleChange(date as Date | null)}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n showTimeSelect\n dateFormat=\"yyyy-MM-dd h:mm aa\"\n placeholderText={fieldLayoutInfo.attrs.placeholder}\n className=\"\"\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\n\nexport const DefaultDateTimeFormViewWidget = ({\n formik,\n fieldContext,\n}: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const rawValue = formik.values[fieldName];\n const format = fieldLayoutInfo.attrs?.format as string | undefined;\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>\n {fieldLabel}\n </p>\n )}\n <p className={styles.fieldViewValue}>\n <DateFieldViewComponent value={rawValue} format={format} showTime={true} fallback=\"-\"></DateFieldViewComponent>\n </p>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidDateTimeField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidDateTimeField.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,GAAG,MAAM,kBAAkB,CAAC;AAEnC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAElB,IAAM,WAAW,GAAG,UAAC,KAAU;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAM,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC,CAAC;AAEF;IAII,4BAAY,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,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;gBAClD,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;aACjG;iBAAM,IAAI,KAAK,EAAE;gBACd,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;YAEzE,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,GAA4C,GAAG,CAAC,IAAI,EAAE,CAAC;YACjE,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;aAC9B;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;;;;;;eAED,UAAO,MAAoB;;YACvB,IAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACtD,IAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAChD,IAAM,SAAS,GAAG,CAAA,MAAA,eAAe,CAAC,KAAK,0CAAE,SAAS,KAAI,wBAAwB,CAAC;YAE/E,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,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,+BAA+B,CAAC;aAChD;YACD,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,+BAA+B,CAAC;aAChD;YACD,IAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAEpD,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;;;;;;eACD,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,yBAAC;AAAD,CAAC,AAvFD,IAuFC;;AAKD,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAAmD;;QAAjD,MAAM,YAAA,EAAE,YAAY,kBAAA;IAEhE,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,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,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,IAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAM,YAAY,GAAG,UAAC,IAAiB;QACnC,IAAM,cAAc,GAAG,yBAAyB,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACrG,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAC,UAAU,aACrB,eAAK,SAAS,EAAE,MAAM,CAAC,YAAY,aAC9B,cAAc,IAAI,KAAK;wBACpB,iBAAO,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,UAAG,MAAM,CAAC,UAAU,sBAAmB,aAAG,UAAU,EACtG,aAAa,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,cAAc,mBAAU,EACnE,KAAC,iBAAiB,IAAC,YAAY,EAAE,YAAY,GAAI,IAE7C,EAEZ,KAAC,eAAe,IACZ,QAAQ,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,SAAS,EAClC,QAAQ,EAAE,UAAC,IAAiB,IAAK,OAAA,YAAY,CAAC,IAAmB,CAAC,EAAjC,CAAiC,EAClE,QAAQ,EAAE,YAAY,IAAI,aAAa,IAAI,kBAAkB,EAC7D,QAAQ,EAAE,YAAY,IAAI,aAAa,IAAI,kBAAkB,EAC7D,cAAc,QACd,UAAU,EAAC,oBAAoB,EAC/B,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,WAAW,EAClD,cAAc,EAAE,MAAM,CAAC,UAAU,GACnC,IACA,EACL,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CACrD,cAAK,SAAS,EAAC,eAAe,YAC1B,KAAC,YAAY,IAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAE,QAAQ,EAAE,GAAI,GAC7F,CACT,IACC,CACT,CAAC;AACN,CAAC,CAAA;AAGD,MAAM,CAAC,IAAM,6BAA6B,GAAG,UAAC,EAGlB;;QAFxB,MAAM,YAAA,EACN,YAAY,kBAAA;IAEZ,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;IACjD,IAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;IAE3C,IAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;IAC7C,IAAM,UAAU,GACZ,MAAA,eAAe,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAC7D,IAAM,cAAc,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,0CAAE,SAAS,CAAC;IAEzD,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAM,MAAM,GAAG,MAAA,eAAe,CAAC,KAAK,0CAAE,MAA4B,CAAC;IAEnE,OAAO,CACH,eAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,aAClC,cAAc,KAAK,KAAK,IAAI,CACzB,YAAG,SAAS,EAAE,UAAG,MAAM,CAAC,cAAc,sBAAmB,YACpD,UAAU,GACX,CACP,EACD,YAAG,SAAS,EAAE,MAAM,CAAC,cAAc,YAC/B,KAAC,sBAAsB,IAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,GAA0B,GAC/G,IACF,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["\nimport { SolidDatePicker } from \"../../../shad-cn-ui/SolidDatePicker\";\nimport { SolidMessage } from \"../../../shad-cn-ui/SolidMessage\";\nimport { buildSyntheticChangeEvent } from \"./fieldEventUtils\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\nimport { DateFieldViewComponent } from '../../../../components/core/common/DateFieldViewComponent';\nimport dayjs from \"dayjs\";\nimport styles from \"./solidFields.module.css\";\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\n\nconst toDateValue = (value: any) => {\n if (!value) return null;\n const date = value instanceof Date ? value : new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nexport class SolidDateTimeField 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 instanceof Date && !isNaN(value.getTime())) {\n formData.append(fieldLayoutInfo.attrs.name, dayjs(value).utc().format('YYYY-MM-DD HH:mm:ss'));\n } else 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.DateSchema<Date | null | undefined> = Yup.date();\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();\n }\n return schema;\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field w-full px-2 pt-2';\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n let viewWidget = fieldLayoutInfo.attrs.viewWidget;\n let editWidget = fieldLayoutInfo.attrs.editWidget;\n if (!editWidget) {\n editWidget = 'DefaultDateTimeFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultDateTimeFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" && (\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n )\n }\n </div>\n </>\n );\n }\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\n\nexport const DefaultDateTimeFormEditWidget = ({ 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 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 formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;\n const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;\n\n const parsedValue = toDateValue(formik.values[fieldLayoutInfo.attrs.name]);\n\n const handleChange = (date: Date | null) => {\n const syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, date, \"datetime-local\");\n fieldContext.onChange(syntheticEvent, \"onFieldChange\");\n };\n\n return (\n <div className=\"relative\">\n <div className={styles.fieldWrapper}>\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className={`${styles.fieldLabel} form-field-label`}>{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* &nbsp; {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n <SolidDatePicker\n selected={parsedValue ?? undefined}\n onChange={(date: Date | null) => handleChange(date as Date | null)}\n disabled={formDisabled || fieldDisabled || readOnlyPermission}\n readOnly={formReadonly || fieldReadonly || readOnlyPermission}\n showTimeSelect\n dateFormat=\"yyyy-MM-dd h:mm aa\"\n placeholderText={fieldLayoutInfo.attrs.placeholder}\n inputClassName={styles.fieldInput}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <SolidMessage severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n );\n}\n\n\nexport const DefaultDateTimeFormViewWidget = ({\n formik,\n fieldContext,\n}: SolidFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n\n const fieldName = fieldLayoutInfo.attrs.name;\n const fieldLabel =\n fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n const rawValue = formik.values[fieldName];\n const format = fieldLayoutInfo.attrs?.format as string | undefined;\n\n return (\n <div className={styles.fieldViewWrapper}>\n {showFieldLabel !== false && (\n <p className={`${styles.fieldViewLabel} form-field-label`}>\n {fieldLabel}\n </p>\n )}\n <p className={styles.fieldViewValue}>\n <DateFieldViewComponent value={rawValue} format={format} showTime={true} fallback=\"-\"></DateFieldViewComponent>\n </p>\n </div>\n );\n};\n"]}
@@ -156,7 +156,7 @@ export const DefaultDateTimeFormEditWidget = ({ formik, fieldContext }: SolidFor
156
156
  showTimeSelect
157
157
  dateFormat="yyyy-MM-dd h:mm aa"
158
158
  placeholderText={fieldLayoutInfo.attrs.placeholder}
159
- className=""
159
+ inputClassName={styles.fieldInput}
160
160
  />
161
161
  </div>
162
162
  {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,4CAyD/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;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"}
@@ -152,16 +152,16 @@ export var DefaultIntegerFormEditWidget = function (_a) {
152
152
  var formDisabled = (_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.disabled;
153
153
  var formReadonly = (_p = (_o = (_m = solidFormViewMetaData.data.solidView) === null || _m === void 0 ? void 0 : _m.layout) === null || _o === void 0 ? void 0 : _o.attrs) === null || _p === void 0 ? void 0 : _p.readonly;
154
154
  return (_jsxs("div", { className: styles.fieldWrapper, children: [showFieldLabel != false &&
155
- _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: "*" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx("div", { className: styles.fieldNumberWrapper, children: _jsx(SolidNumberInput, { readOnly: formReadonly || fieldReadonly || readOnlyPermission, disabled: formDisabled || fieldDisabled, id: fieldLayoutInfo.attrs.name, "aria-describedby": "".concat(fieldLayoutInfo.attrs.name, "-help"), onChange: function (e) {
156
- var nextVal = typeof e.value === "number" ? e.value : null;
157
- fieldContext.onChange({
158
- target: {
159
- name: fieldLayoutInfo.attrs.name,
160
- value: nextVal,
161
- type: "number",
162
- },
163
- }, "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() }))] }));
155
+ _jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "".concat(styles.fieldLabel, " form-field-label"), children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: "*" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsx(SolidNumberInput, { className: styles.fieldInput, readOnly: formReadonly || fieldReadonly || readOnlyPermission, disabled: formDisabled || fieldDisabled, id: fieldLayoutInfo.attrs.name, "aria-describedby": "".concat(fieldLayoutInfo.attrs.name, "-help"), onChange: function (e) {
156
+ var nextVal = typeof e.value === "number" ? e.value : null;
157
+ fieldContext.onChange({
158
+ target: {
159
+ name: fieldLayoutInfo.attrs.name,
160
+ value: nextVal,
161
+ type: "number",
162
+ },
163
+ }, "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() }))] }));
165
165
  };
166
166
  export var SolidIntegerSliderStyleFormEditWidget = function (_a) {
167
167
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
@@ -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 <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 autoComplete={autoComplete}\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\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 && 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"]}
@@ -161,29 +161,28 @@ export const DefaultIntegerFormEditWidget = ({ formik, fieldContext }: SolidForm
161
161
  <SolidFieldTooltip fieldContext={fieldContext} />
162
162
  </label>
163
163
  }
164
- <div className={styles.fieldNumberWrapper}>
165
- <SolidNumberInput
166
- readOnly={formReadonly || fieldReadonly || readOnlyPermission}
167
- disabled={formDisabled || fieldDisabled}
168
- id={fieldLayoutInfo.attrs.name}
169
- aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
170
- onChange={(e: any) => {
171
- const nextVal = typeof e.value === "number" ? e.value : null;
172
- fieldContext.onChange(
173
- {
174
- target: {
175
- name: fieldLayoutInfo.attrs.name,
176
- value: nextVal,
177
- type: "number",
178
- },
179
- } as any,
180
- "onFieldChange"
181
- );
182
- }}
183
- value={formik.values[fieldLayoutInfo.attrs.name] || ''}
184
- autoComplete={autoComplete}
185
- />
186
- </div>
164
+ <SolidNumberInput
165
+ className={styles.fieldInput}
166
+ readOnly={formReadonly || fieldReadonly || readOnlyPermission}
167
+ disabled={formDisabled || fieldDisabled}
168
+ id={fieldLayoutInfo.attrs.name}
169
+ aria-describedby={`${fieldLayoutInfo.attrs.name}-help`}
170
+ onChange={(e: any) => {
171
+ const nextVal = typeof e.value === "number" ? e.value : null;
172
+ fieldContext.onChange(
173
+ {
174
+ target: {
175
+ name: fieldLayoutInfo.attrs.name,
176
+ value: nextVal,
177
+ type: "number",
178
+ },
179
+ } as any,
180
+ "onFieldChange"
181
+ );
182
+ }}
183
+ value={formik.values[fieldLayoutInfo.attrs.name] || ''}
184
+ autoComplete={autoComplete}
185
+ />
187
186
  {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (
188
187
  <p className={styles.fieldError}>{formik?.errors[fieldLayoutInfo.attrs.name]?.toString()}</p>
189
188
  )}
@@ -178,7 +178,7 @@ export var DefaultTimeFormEditWidget = function (_a) {
178
178
  var nextValue = (_a = date) !== null && _a !== void 0 ? _a : null;
179
179
  var syntheticEvent = buildSyntheticChangeEvent(fieldLayoutInfo.attrs.name, nextValue, "time", nextValue ? true : undefined);
180
180
  fieldContext.onChange(syntheticEvent, "onFieldChange");
181
- }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: readOnlyPermission, timeOnly: true, showTimeSelect: true, dateFormat: "HH:mm", className: "" })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(SolidMessage, { severity: "error", text: (_l = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _l === void 0 ? void 0 : _l.toString() }) }))] }));
181
+ }, disabled: formDisabled || fieldDisabled || readOnlyPermission, readOnly: readOnlyPermission, timeOnly: true, showTimeSelect: true, dateFormat: "HH:mm", inputClassName: styles.fieldInput })] }), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(SolidMessage, { severity: "error", text: (_l = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _l === void 0 ? void 0 : _l.toString() }) }))] }));
182
182
  };
183
183
  export var DefaultTimeFormViewWidget = function (_a) {
184
184
  var _b, _c, _d;