@solidxai/core-ui 0.1.5-beta.1 → 0.1.5-beta.11
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/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +5 -2
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +5 -2
- package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts +5 -2
- package/dist/components/core/chatter/SolidChatterAuditMessage.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js +19 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +29 -5
- package/dist/components/core/chatter/SolidChatterDateDivider.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.js +4 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterDateDivider.tsx +5 -1
- package/dist/components/core/common/SolidCreateButton.js +3 -3
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +3 -3
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.js +305 -0
- package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.tsx +356 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts +0 -1
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.js +51 -22
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.module.css +6 -2
- package/dist/components/core/dashboard/SolidDashboard.tsx +133 -56
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts +13 -1
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardBody.js +134 -48
- package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardBody.tsx +143 -91
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -1
- package/dist/components/core/dashboard/SolidQuestionRenderer.js +1 -1
- package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -1
- package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +12 -10
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -1
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +29 -2
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -1
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +33 -3
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +2 -2
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +2 -2
- package/dist/components/core/form/SolidFormView.js +1 -1
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
- package/dist/components/core/kanban/SolidKanbanView.js +2 -2
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +2 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +14 -11
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +8 -7
- package/dist/components/core/list/columns/SolidDateColumn.d.ts +2 -0
- package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.js +9 -1
- package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.tsx +13 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +1 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +277 -43
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +436 -4
- package/dist/constants/error-messages.d.ts +3 -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 +24 -20
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +10 -0
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +12 -0
- package/dist/helpers/routePaths.d.ts +1 -1
- package/dist/helpers/routePaths.d.ts.map +1 -1
- package/dist/helpers/routePaths.js +2 -2
- package/dist/helpers/routePaths.js.map +1 -1
- package/dist/helpers/routePaths.ts +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +8 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.js +34 -0
- package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.ts +55 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +4 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +3 -2
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +4 -2
- package/dist/resources/globals.css +8 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +3 -7
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.tsx +2 -5
- package/dist/routes/pages/admin/core/FormPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/FormPage.js +6 -1
- package/dist/routes/pages/admin/core/FormPage.js.map +1 -1
- package/dist/routes/pages/admin/core/FormPage.tsx +7 -1
- package/dist/routes/solidRoutes.js +1 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +1 -1
- package/package.json +13 -11
|
@@ -1761,7 +1761,7 @@ const SolidFormView = (params: SolidFormViewProps) => {
|
|
|
1761
1761
|
size="small"
|
|
1762
1762
|
className="px-0"
|
|
1763
1763
|
style={{ width: 30 }}
|
|
1764
|
-
onClick={() => handleChatterExpandClick('
|
|
1764
|
+
onClick={() => handleChatterExpandClick('chatter')}
|
|
1765
1765
|
/>
|
|
1766
1766
|
</div>
|
|
1767
1767
|
:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidMediaSingleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAM3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAI9E,qBAAa,qBAAsB,YAAW,WAAW;IAErD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAyC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAMD,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,
|
|
1
|
+
{"version":3,"file":"SolidMediaSingleField.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAM3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAI9E,qBAAa,qBAAsB,YAAW,WAAW;IAErD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAyD;IACjF,OAAO,CAAC,eAAe,CAAC,CAA0B;gBACtC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,EAC/G,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;IAM7C,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAOnD,YAAY,IAAI,GAAG;IAKnB,gBAAgB,IAAI,GAAG,CAAC,MAAM;IAyC9B,MAAM,CAAC,MAAM,EAAE,YAAY;IAoC3B,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY;CAcjE;AAMD,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CA0S1I,CAAA;AAED,eAAO,MAAM,gCAAgC,+DAAgE,8BAA8B,4CAqH1I,CAAA"}
|
|
@@ -150,7 +150,7 @@ var SolidMediaSingleField = /** @class */ (function () {
|
|
|
150
150
|
}());
|
|
151
151
|
export { SolidMediaSingleField };
|
|
152
152
|
export var DefaultMediaSingleFormEditWidget = function (_a) {
|
|
153
|
-
var _b, _c, _d, _e, _f;
|
|
153
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
154
154
|
var formik = _a.formik, fieldContext = _a.fieldContext, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox;
|
|
155
155
|
var fieldMetadata = fieldContext.fieldMetadata;
|
|
156
156
|
var fieldLayoutInfo = fieldContext.field;
|
|
@@ -159,20 +159,26 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
|
|
|
159
159
|
var fieldDescription = (_d = fieldLayoutInfo.attrs.description) !== null && _d !== void 0 ? _d : fieldMetadata.description;
|
|
160
160
|
var solidFormViewMetaData = fieldContext.solidFormViewMetaData;
|
|
161
161
|
var showFieldLabel = (_e = fieldLayoutInfo === null || fieldLayoutInfo === void 0 ? void 0 : fieldLayoutInfo.attrs) === null || _e === void 0 ? void 0 : _e.showLabel;
|
|
162
|
-
var readOnlyPermission = fieldContext.readOnly
|
|
162
|
+
var readOnlyPermission = fieldContext.readOnly;
|
|
163
163
|
var viewMode = fieldContext.viewMode;
|
|
164
|
-
var
|
|
165
|
-
var
|
|
166
|
-
var _j =
|
|
167
|
-
var
|
|
168
|
-
var
|
|
169
|
-
var
|
|
164
|
+
var fieldDisabled = (_f = fieldLayoutInfo.attrs) === null || _f === void 0 ? void 0 : _f.disabled;
|
|
165
|
+
var fieldReadonly = (_g = fieldLayoutInfo.attrs) === null || _g === void 0 ? void 0 : _g.readonly;
|
|
166
|
+
var formDisabled = (_k = (_j = (_h = solidFormViewMetaData.data.solidView) === null || _h === void 0 ? void 0 : _h.layout) === null || _j === void 0 ? void 0 : _j.attrs) === null || _k === void 0 ? void 0 : _k.disabled;
|
|
167
|
+
var formReadonly = (_o = (_m = (_l = solidFormViewMetaData.data.solidView) === null || _l === void 0 ? void 0 : _l.layout) === null || _m === void 0 ? void 0 : _m.attrs) === null || _o === void 0 ? void 0 : _o.readonly;
|
|
168
|
+
var isFieldDisabled = formDisabled || fieldDisabled;
|
|
169
|
+
var isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;
|
|
170
|
+
var _q = useState(false), isDeleteImageDialogVisible = _q[0], setDeleteImageDialogVisible = _q[1];
|
|
171
|
+
var _r = useState(), imageToBeDeletedData = _r[0], setImageToBeDeletedData = _r[1];
|
|
172
|
+
var _s = useState(null), fileDetails = _s[0], setFileDetails = _s[1];
|
|
173
|
+
var _t = useState(false), isReplaceImageDialogVisible = _t[0], setReplaceImageDialogVisible = _t[1];
|
|
174
|
+
var _u = useState(null), newFileToUpload = _u[0], setNewFileToUpload = _u[1];
|
|
175
|
+
var _v = useState(null), fileSizeError = _v[0], setFileSizeError = _v[1];
|
|
170
176
|
var formatFileSize = function (size) {
|
|
171
177
|
return size >= 1024 * 1024
|
|
172
178
|
? "".concat((size / (1024 * 1024)).toFixed(1), " MB")
|
|
173
179
|
: "".concat((size / 1024).toFixed(1), " KB");
|
|
174
180
|
};
|
|
175
|
-
var
|
|
181
|
+
var _w = useDeleteMediaMutation(), deleteMedia = _w[0], _x = _w[1], isMediaDeleted = _x.isLoading, isDeleteMediaSuceess = _x.isSuccess, isMediaDeleteError = _x.isError, mediaDeleteError = _x.error, DeletedMedia = _x.data;
|
|
176
182
|
var handleCancelUpload = function (e) {
|
|
177
183
|
e.stopPropagation();
|
|
178
184
|
if (imageToBeDeletedData) {
|
|
@@ -251,7 +257,7 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
|
|
|
251
257
|
formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);
|
|
252
258
|
}
|
|
253
259
|
}, [formik.values, fieldLayoutInfo.attrs.name]);
|
|
254
|
-
var
|
|
260
|
+
var _y = useDropzone({
|
|
255
261
|
onDrop: handleDropImage,
|
|
256
262
|
onDropRejected: function (fileRejections) {
|
|
257
263
|
var _a;
|
|
@@ -266,7 +272,8 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
|
|
|
266
272
|
},
|
|
267
273
|
accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
|
|
268
274
|
maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
|
|
269
|
-
|
|
275
|
+
disabled: isFieldDisabled || isFieldReadonly
|
|
276
|
+
}), getRootProps = _y.getRootProps, getInputProps = _y.getInputProps, isDragActive = _y.isDragActive;
|
|
270
277
|
var isFormFieldValid = function (formik, fieldName) { return formik.touched[fieldName] && formik.errors[fieldName]; };
|
|
271
278
|
var DynamicWidget = getExtensionComponent("SolidFormFieldViewMediaSingleWidget");
|
|
272
279
|
var widgetProps = {
|
|
@@ -302,16 +309,16 @@ export var DefaultMediaSingleFormEditWidget = function (_a) {
|
|
|
302
309
|
setOpenLightbox === null || setOpenLightbox === void 0 ? void 0 : setOpenLightbox(true);
|
|
303
310
|
}
|
|
304
311
|
};
|
|
305
|
-
return (_jsxs("div", { style:
|
|
306
|
-
_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "relative", children: [_jsxs("div", __assign({}, getRootProps(), { className: "solid-dropzone-wrapper", children: [_jsx("input", __assign({}, getInputProps())), _jsx(DropzonePlaceholder, { mediaTypes: fieldMetadata.mediaTypes, mediaMaxSizeKb: fieldMetadata.mediaMaxSizeKb })] })), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (
|
|
312
|
+
return (_jsxs("div", { style: (isFieldDisabled === true || isFieldReadonly === true) ? { filter: 'opacity(50%)', pointerEvents: 'none' } : {}, children: [_jsxs("div", { className: "flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative", children: [showFieldLabel != false &&
|
|
313
|
+
_jsxs("label", { htmlFor: fieldLayoutInfo.attrs.name, className: "form-field-label", children: [fieldLabel, fieldMetadata.required && _jsx("span", { className: "text-red-500", children: " *" }), _jsx(SolidFieldTooltip, { fieldContext: fieldContext })] }), _jsxs("div", { className: "relative", children: [_jsxs("div", __assign({}, getRootProps(), { className: "solid-dropzone-wrapper", children: [_jsx("input", __assign({}, getInputProps())), _jsx(DropzonePlaceholder, { mediaTypes: fieldMetadata.mediaTypes, mediaMaxSizeKb: fieldMetadata.mediaMaxSizeKb })] })), isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (_jsx("div", { className: "absolute mt-1", children: _jsx(Message, { severity: "error", text: (_p = formik === null || formik === void 0 ? void 0 : formik.errors[fieldLayoutInfo.attrs.name]) === null || _p === void 0 ? void 0 : _p.toString() }) }))] }), fileSizeError &&
|
|
307
314
|
_jsx(Message, { severity: "error", text: fileSizeError === null || fileSizeError === void 0 ? void 0 : fileSizeError.toString() }), fileDetails && (_jsx("div", { className: "solid-file-upload-wrapper mt-4", children: _jsxs("div", { className: "flex align-items-center md:gap-2", children: [_jsx(FileReaderExt, { fileDetails: fileDetails }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-start justify-content-between", children: [_jsx("p", { className: "font-normal w-9 text-primary m-0 solid-img-text-wrapper", style: { cursor: 'pointer' }, onClick: function () { return handleFileView(fileDetails); }, children: fileDetails.name }), _jsxs("div", { className: "flex align-items-center md:gap-2", children: [_jsx("div", { children: _jsx(Button, { type: "button", text: true, icon: "pi pi-download", size: "small", severity: "secondary",
|
|
308
315
|
// className="p-2"
|
|
309
|
-
style: {
|
|
316
|
+
disabled: isFieldDisabled || isFieldReadonly, style: {
|
|
310
317
|
height: 16,
|
|
311
318
|
width: 16
|
|
312
319
|
}, onClick: function () { return downloadMediaFile(fileDetails === null || fileDetails === void 0 ? void 0 : fileDetails.fileUrl, fileDetails === null || fileDetails === void 0 ? void 0 : fileDetails.name); } }) }), _jsx("div", { children: _jsx(Button, { type: "button", text: true, icon: "pi pi-times", size: "small", severity: "secondary",
|
|
313
320
|
// className="p-2"
|
|
314
|
-
style: {
|
|
321
|
+
disabled: isFieldDisabled || isFieldReadonly, style: {
|
|
315
322
|
height: 16,
|
|
316
323
|
width: 16
|
|
317
324
|
}, onClick: function () { return setDeleteImageDialogVisible(true); } }) })] })] }), _jsx("div", { className: "flex align-items-center gap-2 text-sm", children: fileDetails && formatFileSize(fileDetails.fileSize) })] })] }) }))] }), _jsx(Dialog, { visible: isDeleteImageDialogVisible, header: "Confirm Delete", modal: true, className: "solid-confirm-dialog", footer: function () { return (_jsxs("div", { className: "flex justify-content-center", children: [_jsx(Button, { type: "button", label: "Yes", icon: "pi pi-check", className: 'small-button', severity: "danger", autoFocus: true, onClick: handleCancelUpload }), _jsx(Button, { type: "button", label: "No", icon: "pi pi-times", className: 'small-button', onClick: function () { return setDeleteImageDialogVisible(false); } })] })); }, onHide: function () { return setDeleteImageDialogVisible(false); }, children: _jsx("p", { children: "Are you sure you want to delete media?" }) }), _jsx(Dialog, { visible: isReplaceImageDialogVisible, header: "Replace Image", modal: true, className: "solid-confirm-dialog", footer: function () { return (_jsxs("div", { className: "flex justify-content-center", children: [_jsx(Button, { type: "button", label: "Yes, Replace", icon: "pi pi-check", className: 'small-button', severity: "danger", onClick: handleReplaceFile }), _jsx(Button, { type: "button", label: "Cancel", icon: "pi pi-times", className: 'small-button', onClick: function () { return setReplaceImageDialogVisible(false); } })] })); }, onHide: function () { return setReplaceImageDialogVisible(false); }, children: _jsx("p", { children: "An media is already uploaded. Do you want to delete it and upload a new one?" }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidMediaSingleField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { DropzonePlaceholder } from \"../../../../components/common/DropzonePlaceholder\";\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { FileReaderExt } from \"../../../../components/common/FileReaderExt\";\nimport { ProgressBar } from \"primereact/progressbar\";\nimport getAcceptedFileTypes from \"../../../../helpers/getAcceptedFileTypes\";\nimport { downloadMediaFile } from \"../../../../helpers/downloadMediaFile\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidMediaFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\nexport class SolidMediaSingleField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n private setLightboxUrls?: (urls: { src: string; downloadUrl: string }[]) => void;\n private setOpenLightbox?: (open: boolean) => void;\n constructor(fieldContext: SolidFieldProps, setLightboxUrls?: (urls: { src: string; downloadUrl: string }[]) => void,\n setOpenLightbox?: (open: boolean) => void) {\n this.fieldContext = fieldContext;\n this.setLightboxUrls = setLightboxUrls;\n this.setOpenLightbox = setOpenLightbox;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value instanceof File) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const mediaUrls = this.fieldContext.data && this.fieldContext.data._media && this.fieldContext.data._media[this.fieldContext.field.attrs.name][0];\n return mediaUrls;\n }\n\n validationSchema(): Yup.Schema {\n // let schema: Yup.StringSchema = Yup.object();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n // Dynamically determine the base type based on the 'required' flag\n\n // Define base schema\n let schema: Yup.MixedSchema<File | object>;\n\n if (fieldMetadata.required) {\n // For required fields: disallow null and undefined\n schema = Yup.mixed<File | object>()\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .test(\n ERROR_MESSAGES.FILE_OBJECT,\n ERROR_MESSAGES.MUST_BE_FILE_OBJECT(fieldLabel),\n (value) =>\n value instanceof File || typeof value === \"object\" // Validate File or object\n );\n } else {\n // For optional fields: allow null or undefined\n schema = Yup.mixed<any>()\n .nullable() // Allow null explicitly\n .test(\n ERROR_MESSAGES.FILE_OBJECT,\n ERROR_MESSAGES.MUST_BE_FILE_OBJECT(fieldLabel),\n (value) =>\n value === null || // Allow null\n value === undefined || // Allow undefined\n value instanceof File || // Allow File\n value === 'false' ||\n typeof value === \"object\" // Allow object\n );\n }\n return schema;\n\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n 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 = 'DefaultMediaSingleFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultMediaSingleFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidMediaFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n setLightboxUrls: this.setLightboxUrls,\n setOpenLightbox: this.setOpenLightbox\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\n\n\nexport const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly ? fieldContext.readOnly : fieldLayoutInfo.attrs.readonly;\n const viewMode: string = fieldContext.viewMode;\n\n const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);\n const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);\n const [isReplaceImageDialogVisible, setReplaceImageDialogVisible] = useState(false);\n const [newFileToUpload, setNewFileToUpload] = useState<any>(null);\n const [fileSizeError, setFileSizeError] = useState<string | null>(null);\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (imageToBeDeletedData) {\n deleteMedia(imageToBeDeletedData);\n }\n e.stopPropagation();\n setFileDetails(null);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, null);\n setDeleteImageDialogVisible(false);\n };\n\n const handleDropImage = (acceptedFiles: any[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n setFileSizeError(null);\n if (fileDetails) {\n // If a file is already uploaded, show the confirmation dialog\n setNewFileToUpload(file);\n setReplaceImageDialogVisible(true);\n } else {\n // If no file is present, proceed with upload\n uploadFile(file);\n }\n };\n\n const uploadFile = (file: File) => {\n setFileDetails({\n name: file.name,\n type: file.type,\n fileUrl: URL.createObjectURL(file),\n fileSize: file.size\n });\n\n const reader = new FileReader();\n reader.readAsDataURL(file);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, file);\n };\n\n const handleReplaceFile = () => {\n // Delete the existing file first\n if (imageToBeDeletedData) {\n deleteMedia(imageToBeDeletedData);\n }\n setFileDetails(null);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, null);\n\n // Proceed with uploading new file\n if (newFileToUpload) {\n uploadFile(newFileToUpload);\n setNewFileToUpload(null);\n }\n\n setReplaceImageDialogVisible(false);\n };\n\n useEffect(() => {\n const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];\n\n if (fieldValue && typeof fieldValue === \"object\") {\n let fileUrl = \"\";\n let fileName = \"Unknown File\";\n let fileSize = 0;\n\n if (fieldValue instanceof File) {\n fileUrl = URL.createObjectURL(fieldValue);\n fileName = fieldValue.name;\n fileSize = fieldValue.size;\n } else if (fieldValue._full_url) {\n fileUrl = fieldValue._full_url;\n fileName = fieldValue.originalFileName;\n fileSize = fieldValue.fileSize;\n }\n\n setFileDetails({\n name: fileName,\n type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,\n fileUrl,\n fileSize\n });\n\n // Set file ID for delete operation\n setImageToBeDeletedData(fieldValue.id);\n\n // Ensure formik has the correct value\n formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);\n }\n }, [formik.values, fieldLayoutInfo.attrs.name]);\n\n const {\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n isDragActive: isDragActive,\n } = useDropzone({\n onDrop: handleDropImage,\n onDropRejected: (fileRejections) => {\n const rejection = fileRejections[0];\n const sizeError = rejection.errors.find(err => err.code === 'file-too-large');\n if (sizeError) {\n setFileSizeError(ERROR_MESSAGES.FILE_TOO_LAREG(fieldMetadata.mediaMaxSizeKb));\n } else {\n setFileSizeError(rejection.errors[0]?.message || ERROR_MESSAGES.FILE_NOT_ACCEPT);\n }\n },\n accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),\n maxSize: fieldMetadata.mediaMaxSizeKb * 1024,\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n let DynamicWidget = getExtensionComponent(\"SolidFormFieldViewMediaSingleWidget\");\n const widgetProps = {\n formik: formik,\n fieldContext: fieldContext,\n setLightboxUrls: setLightboxUrls,\n setOpenLightbox: setOpenLightbox\n }\n\n const handleFileView = (url: any) => {\n const downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\"\n ];\n\n const fileUrl = url?.fileUrl || \"\";\n const cleanUrl = fileUrl.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n const link = document.createElement('a');\n link.href = url.fileUrl;\n link.download = ''; // or specify a file name like 'file.pdf'\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n } else {\n setLightboxUrls?.([\n { src: url.fileUrl, downloadUrl: url.fileUrl },\n ]);\n setOpenLightbox?.(true);\n }\n }\n\n\n return (\n <div style={readOnlyPermission === true ? { filter: 'opacity(50%)', pointerEvents: 'none' } : {}}>\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n <div className=\"relative\">\n <div\n {...getRootProps()}\n className=\"solid-dropzone-wrapper\"\n >\n <input {...getInputProps()} />\n <DropzonePlaceholder\n mediaTypes={fieldMetadata.mediaTypes}\n mediaMaxSizeKb={fieldMetadata.mediaMaxSizeKb}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n {\n fileSizeError &&\n <Message severity=\"error\" text={fileSizeError?.toString()} />\n }\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex align-items-center md:gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-start justify-content-between\">\n <p className=\"font-normal w-9 text-primary m-0 solid-img-text-wrapper\" style={{ cursor: 'pointer' }} onClick={() => handleFileView(fileDetails)}>{fileDetails.name}</p>\n <div className=\"flex align-items-center md:gap-2\">\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-download\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}\n />\n </div>\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-times\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => setDeleteImageDialogVisible(true)}\n />\n </div>\n </div>\n </div>\n <div className=\"flex align-items-center gap-2 text-sm\">\n {fileDetails && formatFileSize(fileDetails.fileSize)}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n <Dialog\n visible={isDeleteImageDialogVisible}\n header=\"Confirm Delete\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button type=\"button\" label=\"Yes\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" autoFocus onClick={handleCancelUpload} />\n <Button type=\"button\" label=\"No\" icon=\"pi pi-times\" className='small-button' onClick={() => setDeleteImageDialogVisible(false)} />\n </div>\n )}\n onHide={() => setDeleteImageDialogVisible(false)}\n >\n <p>Are you sure you want to delete media?</p>\n </Dialog>\n <Dialog\n visible={isReplaceImageDialogVisible}\n header=\"Replace Image\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button type=\"button\" label=\"Yes, Replace\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" onClick={handleReplaceFile} />\n <Button type=\"button\" label=\"Cancel\" icon=\"pi pi-times\" className='small-button' onClick={() => setReplaceImageDialogVisible(false)} />\n </div>\n )}\n onHide={() => setReplaceImageDialogVisible(false)}\n >\n <p>An media is already uploaded. Do you want to delete it and upload a new one?</p>\n </Dialog>\n </div>\n );\n}\n\nexport const DefaultMediaSingleFormViewWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n useEffect(() => {\n const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];\n\n if (fieldValue && typeof fieldValue === \"object\") {\n let fileUrl = \"\";\n let fileName = \"Unknown File\";\n let fileSize = 0;\n\n if (fieldValue instanceof File) {\n fileUrl = URL.createObjectURL(fieldValue);\n fileName = fieldValue.name;\n fileSize = fieldValue.size;\n } else if (fieldValue._full_url) {\n fileUrl = fieldValue._full_url;\n fileName = fieldValue.originalFileName;\n fileSize = fieldValue.fileSize;\n }\n\n setFileDetails({\n name: fileName,\n type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,\n fileUrl,\n fileSize\n });\n // Ensure formik has the correct value\n formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);\n }\n }, [formik.values, fieldLayoutInfo.attrs.name]);\n\n const handleFileView = (url: any) => {\n const downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\"\n ];\n\n const fileUrl = url?.fileUrl || \"\";\n const cleanUrl = fileUrl.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n const link = document.createElement('a');\n link.href = url.fileUrl;\n link.download = ''; // or specify a file name like 'file.pdf'\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n } else {\n setLightboxUrls?.([\n { src: url.fileUrl, downloadUrl: url.fileUrl },\n ]);\n setOpenLightbox?.(true);\n }\n }\n\n return (\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n\n {fileDetails && (\n <div className=\"solid-file-view-wrapper mt-4\">\n <div className=\"flex align-items-center md:gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-start justify-content-between\">\n <p className=\"font-normal w-9 text-primary m-0 solid-img-text-wrapper\" style={{ cursor: 'pointer' }} onClick={() => handleFileView(fileDetails)}>{fileDetails.name}</p>\n <div className=\"flex align-items-center md:gap-2\">\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-download\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}\n />\n </div>\n </div>\n </div>\n <div className=\"flex align-items-center gap-2 text-sm\">\n {fileDetails && formatFileSize(fileDetails.fileSize)}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}"]}
|
|
1
|
+
{"version":3,"file":"SolidMediaSingleField.js","sourceRoot":"","sources":["../../../../../src/components/core/form/fields/SolidMediaSingleField.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { DropzonePlaceholder } from \"../../../../components/common/DropzonePlaceholder\";\nimport { useDeleteMediaMutation } from \"../../../../redux/api/mediaApi\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\nimport { Message } from \"primereact/message\";\nimport { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from 'yup';\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./ISolidField\";\nimport { FileReaderExt } from \"../../../../components/common/FileReaderExt\";\nimport { ProgressBar } from \"primereact/progressbar\";\nimport getAcceptedFileTypes from \"../../../../helpers/getAcceptedFileTypes\";\nimport { downloadMediaFile } from \"../../../../helpers/downloadMediaFile\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidMediaFormFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidFieldTooltip } from \"../../../../components/common/SolidFieldTooltip\";\nimport { ERROR_MESSAGES } from \"../../../../constants/error-messages\";\n\nexport class SolidMediaSingleField implements ISolidField {\n\n private fieldContext: SolidFieldProps;\n private setLightboxUrls?: (urls: { src: string; downloadUrl: string }[]) => void;\n private setOpenLightbox?: (open: boolean) => void;\n constructor(fieldContext: SolidFieldProps, setLightboxUrls?: (urls: { src: string; downloadUrl: string }[]) => void,\n setOpenLightbox?: (open: boolean) => void) {\n this.fieldContext = fieldContext;\n this.setLightboxUrls = setLightboxUrls;\n this.setOpenLightbox = setOpenLightbox;\n }\n\n updateFormData(value: any, formData: FormData): any {\n const fieldLayoutInfo = this.fieldContext.field;\n if (value instanceof File) {\n formData.append(fieldLayoutInfo.attrs.name, value);\n }\n }\n\n initialValue(): any {\n const mediaUrls = this.fieldContext.data && this.fieldContext.data._media && this.fieldContext.data._media[this.fieldContext.field.attrs.name][0];\n return mediaUrls;\n }\n\n validationSchema(): Yup.Schema {\n // let schema: Yup.StringSchema = Yup.object();\n\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n // Dynamically determine the base type based on the 'required' flag\n\n // Define base schema\n let schema: Yup.MixedSchema<File | object>;\n\n if (fieldMetadata.required) {\n // For required fields: disallow null and undefined\n schema = Yup.mixed<File | object>()\n .required(ERROR_MESSAGES.FIELD_REUQIRED(fieldLabel))\n .test(\n ERROR_MESSAGES.FILE_OBJECT,\n ERROR_MESSAGES.MUST_BE_FILE_OBJECT(fieldLabel),\n (value) =>\n value instanceof File || typeof value === \"object\" // Validate File or object\n );\n } else {\n // For optional fields: allow null or undefined\n schema = Yup.mixed<any>()\n .nullable() // Allow null explicitly\n .test(\n ERROR_MESSAGES.FILE_OBJECT,\n ERROR_MESSAGES.MUST_BE_FILE_OBJECT(fieldLabel),\n (value) =>\n value === null || // Allow null\n value === undefined || // Allow undefined\n value instanceof File || // Allow File\n value === 'false' ||\n typeof value === \"object\" // Allow object\n );\n }\n return schema;\n\n }\n\n render(formik: FormikObject) {\n const fieldMetadata = this.fieldContext.fieldMetadata;\n const fieldLayoutInfo = this.fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n 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 = 'DefaultMediaSingleFormEditWidget';\n }\n if (!viewWidget) {\n viewWidget = 'DefaultMediaSingleFormViewWidget';\n }\n const viewMode: string = this.fieldContext.viewMode;\n\n\n return (\n <>\n <div className={className}>\n {viewMode === \"view\" &&\n this.renderExtensionRenderMode(viewWidget, formik)\n }\n {viewMode === \"edit\" &&\n <>\n {editWidget &&\n this.renderExtensionRenderMode(editWidget, formik)\n }\n </>\n }\n </div>\n </>\n );\n }\n\n\n renderExtensionRenderMode(widget: string, formik: FormikObject) {\n let DynamicWidget = getExtensionComponent(widget);\n const widgetProps: SolidMediaFormFieldWidgetProps = {\n formik: formik,\n fieldContext: this.fieldContext,\n setLightboxUrls: this.setLightboxUrls,\n setOpenLightbox: this.setOpenLightbox\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n}\n\n\n\n\n\nexport const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;\n const solidFormViewMetaData = fieldContext.solidFormViewMetaData;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n const readOnlyPermission = fieldContext.readOnly;\n const viewMode: string = fieldContext.viewMode;\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 const isFieldDisabled = formDisabled || fieldDisabled;\n const isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;\n\n const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);\n const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);\n const [isReplaceImageDialogVisible, setReplaceImageDialogVisible] = useState(false);\n const [newFileToUpload, setNewFileToUpload] = useState<any>(null);\n const [fileSizeError, setFileSizeError] = useState<string | null>(null);\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (imageToBeDeletedData) {\n deleteMedia(imageToBeDeletedData);\n }\n e.stopPropagation();\n setFileDetails(null);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, null);\n setDeleteImageDialogVisible(false);\n };\n\n const handleDropImage = (acceptedFiles: any[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n setFileSizeError(null);\n if (fileDetails) {\n // If a file is already uploaded, show the confirmation dialog\n setNewFileToUpload(file);\n setReplaceImageDialogVisible(true);\n } else {\n // If no file is present, proceed with upload\n uploadFile(file);\n }\n };\n\n const uploadFile = (file: File) => {\n setFileDetails({\n name: file.name,\n type: file.type,\n fileUrl: URL.createObjectURL(file),\n fileSize: file.size\n });\n\n const reader = new FileReader();\n reader.readAsDataURL(file);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, file);\n };\n\n const handleReplaceFile = () => {\n // Delete the existing file first\n if (imageToBeDeletedData) {\n deleteMedia(imageToBeDeletedData);\n }\n setFileDetails(null);\n formik.setFieldValue(fieldLayoutInfo.attrs.name, null);\n\n // Proceed with uploading new file\n if (newFileToUpload) {\n uploadFile(newFileToUpload);\n setNewFileToUpload(null);\n }\n\n setReplaceImageDialogVisible(false);\n };\n\n useEffect(() => {\n const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];\n\n if (fieldValue && typeof fieldValue === \"object\") {\n let fileUrl = \"\";\n let fileName = \"Unknown File\";\n let fileSize = 0;\n\n if (fieldValue instanceof File) {\n fileUrl = URL.createObjectURL(fieldValue);\n fileName = fieldValue.name;\n fileSize = fieldValue.size;\n } else if (fieldValue._full_url) {\n fileUrl = fieldValue._full_url;\n fileName = fieldValue.originalFileName;\n fileSize = fieldValue.fileSize;\n }\n\n setFileDetails({\n name: fileName,\n type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,\n fileUrl,\n fileSize\n });\n\n // Set file ID for delete operation\n setImageToBeDeletedData(fieldValue.id);\n\n // Ensure formik has the correct value\n formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);\n }\n }, [formik.values, fieldLayoutInfo.attrs.name]);\n\n const {\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n isDragActive: isDragActive,\n } = useDropzone({\n onDrop: handleDropImage,\n onDropRejected: (fileRejections) => {\n const rejection = fileRejections[0];\n const sizeError = rejection.errors.find(err => err.code === 'file-too-large');\n if (sizeError) {\n setFileSizeError(ERROR_MESSAGES.FILE_TOO_LAREG(fieldMetadata.mediaMaxSizeKb));\n } else {\n setFileSizeError(rejection.errors[0]?.message || ERROR_MESSAGES.FILE_NOT_ACCEPT);\n }\n },\n accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),\n maxSize: fieldMetadata.mediaMaxSizeKb * 1024,\n disabled: isFieldDisabled || isFieldReadonly\n });\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n let DynamicWidget = getExtensionComponent(\"SolidFormFieldViewMediaSingleWidget\");\n const widgetProps = {\n formik: formik,\n fieldContext: fieldContext,\n setLightboxUrls: setLightboxUrls,\n setOpenLightbox: setOpenLightbox\n }\n\n const handleFileView = (url: any) => {\n const downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\"\n ];\n\n const fileUrl = url?.fileUrl || \"\";\n const cleanUrl = fileUrl.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n const link = document.createElement('a');\n link.href = url.fileUrl;\n link.download = ''; // or specify a file name like 'file.pdf'\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n } else {\n setLightboxUrls?.([\n { src: url.fileUrl, downloadUrl: url.fileUrl },\n ]);\n setOpenLightbox?.(true);\n }\n }\n\n\n return (\n <div style={(isFieldDisabled === true || isFieldReadonly === true) ? { filter: 'opacity(50%)', pointerEvents: 'none' } : {}}>\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label\">{fieldLabel}\n {fieldMetadata.required && <span className=\"text-red-500\"> *</span>}\n <SolidFieldTooltip fieldContext={fieldContext} />\n {/* {fieldDescription && <span className=\"form_field_help\">({fieldDescription}) </span>} */}\n </label>\n }\n <div className=\"relative\">\n <div\n {...getRootProps()}\n className=\"solid-dropzone-wrapper\"\n >\n <input {...getInputProps()} />\n <DropzonePlaceholder\n mediaTypes={fieldMetadata.mediaTypes}\n mediaMaxSizeKb={fieldMetadata.mediaMaxSizeKb}\n />\n </div>\n {isFormFieldValid(formik, fieldLayoutInfo.attrs.name) && (\n <div className=\"absolute mt-1\">\n <Message severity=\"error\" text={formik?.errors[fieldLayoutInfo.attrs.name]?.toString()} />\n </div>\n )}\n </div>\n {\n fileSizeError &&\n <Message severity=\"error\" text={fileSizeError?.toString()} />\n }\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex align-items-center md:gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-start justify-content-between\">\n <p className=\"font-normal w-9 text-primary m-0 solid-img-text-wrapper\" style={{ cursor: 'pointer' }} onClick={() => handleFileView(fileDetails)}>{fileDetails.name}</p>\n <div className=\"flex align-items-center md:gap-2\">\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-download\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n disabled={isFieldDisabled || isFieldReadonly}\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}\n />\n </div>\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-times\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n disabled={isFieldDisabled || isFieldReadonly}\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => setDeleteImageDialogVisible(true)}\n />\n </div>\n </div>\n </div>\n <div className=\"flex align-items-center gap-2 text-sm\">\n {fileDetails && formatFileSize(fileDetails.fileSize)}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n <Dialog\n visible={isDeleteImageDialogVisible}\n header=\"Confirm Delete\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button type=\"button\" label=\"Yes\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" autoFocus onClick={handleCancelUpload} />\n <Button type=\"button\" label=\"No\" icon=\"pi pi-times\" className='small-button' onClick={() => setDeleteImageDialogVisible(false)} />\n </div>\n )}\n onHide={() => setDeleteImageDialogVisible(false)}\n >\n <p>Are you sure you want to delete media?</p>\n </Dialog>\n <Dialog\n visible={isReplaceImageDialogVisible}\n header=\"Replace Image\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button type=\"button\" label=\"Yes, Replace\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" onClick={handleReplaceFile} />\n <Button type=\"button\" label=\"Cancel\" icon=\"pi pi-times\" className='small-button' onClick={() => setReplaceImageDialogVisible(false)} />\n </div>\n )}\n onHide={() => setReplaceImageDialogVisible(false)}\n >\n <p>An media is already uploaded. Do you want to delete it and upload a new one?</p>\n </Dialog>\n </div>\n );\n}\n\nexport const DefaultMediaSingleFormViewWidget = ({ formik, fieldContext, setLightboxUrls, setOpenLightbox }: SolidMediaFormFieldWidgetProps) => {\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);\n const fieldMetadata = fieldContext.fieldMetadata;\n const fieldLayoutInfo = fieldContext.field;\n const className = fieldLayoutInfo.attrs?.className || 'field col-12';\n const fieldLabel = fieldLayoutInfo.attrs.label ?? fieldMetadata.displayName;\n const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;\n\n // useEffect(() => { formik.setFieldValue(fieldLayoutInfo.attrs.name, \"false\") }, [])\n\n const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n useEffect(() => {\n const fieldValue = formik?.values[fieldLayoutInfo.attrs.name];\n\n if (fieldValue && typeof fieldValue === \"object\") {\n let fileUrl = \"\";\n let fileName = \"Unknown File\";\n let fileSize = 0;\n\n if (fieldValue instanceof File) {\n fileUrl = URL.createObjectURL(fieldValue);\n fileName = fieldValue.name;\n fileSize = fieldValue.size;\n } else if (fieldValue._full_url) {\n fileUrl = fieldValue._full_url;\n fileName = fieldValue.originalFileName;\n fileSize = fieldValue.fileSize;\n }\n\n setFileDetails({\n name: fileName,\n type: fieldValue.mimeType ? fieldValue.mimeType : fieldValue.type,\n fileUrl,\n fileSize\n });\n // Ensure formik has the correct value\n formik.setFieldValue(fieldLayoutInfo.attrs.name, fieldValue);\n }\n }, [formik.values, fieldLayoutInfo.attrs.name]);\n\n const handleFileView = (url: any) => {\n const downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\"\n ];\n\n const fileUrl = url?.fileUrl || \"\";\n const cleanUrl = fileUrl.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n const link = document.createElement('a');\n link.href = url.fileUrl;\n link.download = ''; // or specify a file name like 'file.pdf'\n link.target = '_blank';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n } else {\n setLightboxUrls?.([\n { src: url.fileUrl, downloadUrl: url.fileUrl },\n ]);\n setOpenLightbox?.(true);\n }\n }\n\n return (\n <div className=\"flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative\">\n {showFieldLabel != false &&\n <label htmlFor={fieldLayoutInfo.attrs.name} className=\"form-field-label font-medium\">{fieldLabel}\n <SolidFieldTooltip fieldContext={fieldContext} />\n </label>\n }\n\n {fileDetails && (\n <div className=\"solid-file-view-wrapper mt-4\">\n <div className=\"flex align-items-center md:gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-start justify-content-between\">\n <p className=\"font-normal w-9 text-primary m-0 solid-img-text-wrapper\" style={{ cursor: 'pointer' }} onClick={() => handleFileView(fileDetails)}>{fileDetails.name}</p>\n <div className=\"flex align-items-center md:gap-2\">\n <div>\n <Button\n type=\"button\"\n text\n icon={\"pi pi-download\"}\n size=\"small\"\n severity=\"secondary\"\n // className=\"p-2\"\n style={{\n height: 16,\n width: 16\n }}\n onClick={() => downloadMediaFile(fileDetails?.fileUrl, fileDetails?.name)}\n />\n </div>\n </div>\n </div>\n <div className=\"flex align-items-center gap-2 text-sm\">\n {fileDetails && formatFileSize(fileDetails.fileSize)}\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}"]}
|
|
@@ -146,9 +146,18 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
|
|
|
146
146
|
const fieldDescription = fieldLayoutInfo.attrs.description ?? fieldMetadata.description;
|
|
147
147
|
const solidFormViewMetaData = fieldContext.solidFormViewMetaData;
|
|
148
148
|
const showFieldLabel = fieldLayoutInfo?.attrs?.showLabel;
|
|
149
|
-
const readOnlyPermission = fieldContext.readOnly
|
|
149
|
+
const readOnlyPermission = fieldContext.readOnly;
|
|
150
150
|
const viewMode: string = fieldContext.viewMode;
|
|
151
151
|
|
|
152
|
+
const fieldDisabled = fieldLayoutInfo.attrs?.disabled;
|
|
153
|
+
const fieldReadonly = fieldLayoutInfo.attrs?.readonly;
|
|
154
|
+
|
|
155
|
+
const formDisabled = solidFormViewMetaData.data.solidView?.layout?.attrs?.disabled;
|
|
156
|
+
const formReadonly = solidFormViewMetaData.data.solidView?.layout?.attrs?.readonly;
|
|
157
|
+
|
|
158
|
+
const isFieldDisabled = formDisabled || fieldDisabled;
|
|
159
|
+
const isFieldReadonly = formReadonly || fieldReadonly || readOnlyPermission;
|
|
160
|
+
|
|
152
161
|
const [isDeleteImageDialogVisible, setDeleteImageDialogVisible] = useState(false);
|
|
153
162
|
const [imageToBeDeletedData, setImageToBeDeletedData] = useState<any>();
|
|
154
163
|
const [fileDetails, setFileDetails] = useState<{ name: string; type: string, fileUrl: string, fileSize: number } | null>(null);
|
|
@@ -272,6 +281,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
|
|
|
272
281
|
},
|
|
273
282
|
accept: getAcceptedFileTypes(fieldMetadata.mediaTypes),
|
|
274
283
|
maxSize: fieldMetadata.mediaMaxSizeKb * 1024,
|
|
284
|
+
disabled: isFieldDisabled || isFieldReadonly
|
|
275
285
|
});
|
|
276
286
|
|
|
277
287
|
const isFormFieldValid = (formik: any, fieldName: string) => formik.touched[fieldName] && formik.errors[fieldName];
|
|
@@ -314,7 +324,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
|
|
|
314
324
|
|
|
315
325
|
|
|
316
326
|
return (
|
|
317
|
-
<div style={
|
|
327
|
+
<div style={(isFieldDisabled === true || isFieldReadonly === true) ? { filter: 'opacity(50%)', pointerEvents: 'none' } : {}}>
|
|
318
328
|
<div className="flex flex-column gap-2 mt-1 sm:mt-2 md:mt-3 lg:mt-4 relative">
|
|
319
329
|
{showFieldLabel != false &&
|
|
320
330
|
<label htmlFor={fieldLayoutInfo.attrs.name} className="form-field-label">{fieldLabel}
|
|
@@ -360,6 +370,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
|
|
|
360
370
|
size="small"
|
|
361
371
|
severity="secondary"
|
|
362
372
|
// className="p-2"
|
|
373
|
+
disabled={isFieldDisabled || isFieldReadonly}
|
|
363
374
|
style={{
|
|
364
375
|
height: 16,
|
|
365
376
|
width: 16
|
|
@@ -375,6 +386,7 @@ export const DefaultMediaSingleFormEditWidget = ({ formik, fieldContext, setLigh
|
|
|
375
386
|
size="small"
|
|
376
387
|
severity="secondary"
|
|
377
388
|
// className="p-2"
|
|
389
|
+
disabled={isFieldDisabled || isFieldReadonly}
|
|
378
390
|
style={{
|
|
379
391
|
height: 16,
|
|
380
392
|
width: 16
|
|
@@ -84,7 +84,7 @@ import { setFilterObjectToLocalStorage, getFilterObjectFromLocalStorage } from "
|
|
|
84
84
|
import { Toast } from "primereact/toast";
|
|
85
85
|
import { ERROR_MESSAGES } from "../../../constants/error-messages";
|
|
86
86
|
import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
|
|
87
|
-
import {
|
|
87
|
+
import { normalizeSolidListTreeKanbanActionPath } from "../../../helpers/routePaths";
|
|
88
88
|
import showToast from "../../../helpers/showToast";
|
|
89
89
|
export var SolidKanbanView = function (params) {
|
|
90
90
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
@@ -254,7 +254,7 @@ export var SolidKanbanView = function (params) {
|
|
|
254
254
|
var _21 = useState(false), showSaveFilterPopup = _21[0], setShowSaveFilterPopup = _21[1];
|
|
255
255
|
var _22 = useState(0), maxSwimLanesCount = _22[0], setMaxSwimLanesCount = _22[1];
|
|
256
256
|
// @ts-ignore
|
|
257
|
-
var editBaseUrl =
|
|
257
|
+
var editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || "form");
|
|
258
258
|
// Get the kanban view data.
|
|
259
259
|
// const [triggerGetSolidEntitiesForKanban, { data: solidEntityKanbanViewData, isLoading, error }] = useLazyGetSolidKanbanEntitiesQuery();
|
|
260
260
|
var _23 = useLazyGetSolidEntitiesQuery(), triggerGetSolidEntities = _23[0], solidEntityKanbanViewData = _23[1].data;
|