oa-componentbook 1.0.1-stage.44 → 1.0.1-stage.440
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/build/components/oa-component-accordion/Accordion.js +123 -43
- package/build/components/oa-component-accordion/styles.js +2 -2
- package/build/components/oa-component-button/CustomButton.js +24 -19
- package/build/components/oa-component-button/styles.js +1 -1
- package/build/components/oa-component-checkbox/CustomCheckBox.js +20 -17
- package/build/components/oa-component-checkbox/styles.js +1 -1
- package/build/components/oa-component-datepicker/CustomDatePicker.js +37 -26
- package/build/components/oa-component-drawer/CustomDrawer.js +2 -0
- package/build/components/oa-component-dropdown/CustomDropdown.js +16 -4
- package/build/components/oa-component-icons/MaterialIcon.js +1 -1
- package/build/components/oa-component-modal/CustomModal.js +59 -48
- package/build/components/oa-component-modal/styles.js +3 -2
- package/build/components/oa-component-pagination/CustomPagination.js +111 -0
- package/build/components/oa-component-pagination/styles.js +12 -0
- package/build/components/oa-component-progress-bar/CustomProgressBar.js +8 -4
- package/build/components/oa-component-select/CustomSelect.js +130 -56
- package/build/components/oa-component-steps/CustomSteps.js +117 -0
- package/build/components/oa-component-steps/styles.js +12 -0
- package/build/components/oa-component-table/CustomTable.js +28 -5
- package/build/components/oa-component-table/CustomTableV1.js +613 -0
- package/build/components/oa-component-table/styles.js +1 -1
- package/build/components/oa-component-table/stylesV1.js +19 -0
- package/build/components/oa-component-tabs/CustomTabs.js +1 -1
- package/build/components/oa-component-tag/CustomTag.js +29 -11
- package/build/components/oa-component-tag/styles.js +30 -3
- package/build/components/oa-component-textarea/CustomTextArea.js +161 -0
- package/build/components/oa-component-textarea/constants.js +39 -0
- package/build/components/oa-component-textarea/styles.js +12 -3
- package/build/components/oa-component-tooltip/CustomTooltip.js +8 -4
- package/build/components/oa-component-upload/CustomUpload.js +129 -42
- package/build/components/oa-component-viewer/CustomViewer.js +17 -11
- package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +367 -0
- package/build/dev/oa-component-document-viewer/styles.js +12 -0
- package/build/dev/oa-component-upload/CustomUpload.js +116 -29
- package/build/dev/oa-component-upload/styles.js +2 -2
- package/build/dev/oa-widget-document-modal/DocumentSideModal.js +166 -0
- package/build/dev/oa-widget-document-modal/styles.js +12 -0
- package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +196 -0
- package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
- package/build/global-css/GlobalCss.js +2 -1
- package/build/global-css/GridLayout.js +1 -1
- package/build/global-css/commonStyles.js +11 -0
- package/build/images/Car.png +0 -0
- package/build/images/TwoWheeler.png +0 -0
- package/build/images/astronaut_emptystate.png +0 -0
- package/build/images/exportGrp01.png +0 -0
- package/build/images/exportGrp02.png +0 -0
- package/build/images/exportGrp03.png +0 -0
- package/build/images/outOfStock.png +0 -0
- package/build/index.js +114 -2
- package/build/layout/DetailDataLayout/DetailDataLayout.js +20 -0
- package/build/layout/DetailDataLayout/components/Form.js +22 -0
- package/build/layout/DetailDataLayout/components/Header.js +32 -0
- package/build/layout/DetailDataLayout/style.css +9 -0
- package/build/layout/DetailDataLayout/styles.js +12 -0
- package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +403 -0
- package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +85 -0
- package/build/layout/EntityOverviewLayout/styles.js +13 -0
- package/build/layout/GenricLayOut/GenricLayOut.js +2421 -0
- package/build/layout/GenricLayOut/components/AppliedFilters.js +90 -0
- package/build/layout/GenricLayOut/components/CardList.js +34 -0
- package/build/layout/GenricLayOut/components/DropdownSearch.js +48 -0
- package/build/layout/GenricLayOut/components/Header.js +74 -0
- package/build/layout/GenricLayOut/components/Modal.js +96 -0
- package/build/layout/GenricLayOut/components/ProfileSection.js +219 -0
- package/build/layout/GenricLayOut/components/Search.js +51 -0
- package/build/layout/GenricLayOut/components/StaticFilter.css +73 -0
- package/build/layout/GenricLayOut/components/StaticFilter.js +37 -0
- package/build/layout/GenricLayOut/reducer/layoutReducer.js +310 -0
- package/build/layout/GenricLayOut/resolver/staticConfigResolver.js +98 -0
- package/build/layout/GenricLayOut/styles.js +42 -0
- package/build/utils/download-file.js +23 -0
- package/build/widgets/oa-form-widget/FormWidget.js +577 -0
- package/build/widgets/oa-form-widget/FormWidgetStyle.js +18 -0
- package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +80 -16
- package/build/widgets/oa-widget-add-spare-part/AddSparePartWidget.js +50 -7
- package/build/widgets/oa-widget-address/AddressWidget.js +12 -17
- package/build/widgets/oa-widget-approval/ApprovalWidget.js +19 -11
- package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +492 -0
- package/build/widgets/oa-widget-approval/styles.js +2 -2
- package/build/widgets/oa-widget-chat/ChatWidget.js +5 -5
- package/build/widgets/oa-widget-close-claim/CloseClaimWidget.js +17 -5
- package/build/widgets/oa-widget-collapsible-key-value/CollapsibleKeyValueWidget.js +396 -0
- package/build/widgets/oa-widget-collapsible-key-value/styles.js +16 -0
- package/build/widgets/oa-widget-content-panel/ContentPanel.js +82 -0
- package/build/widgets/oa-widget-content-panel/styles.js +12 -0
- package/build/widgets/oa-widget-customer-rating-card/CustomerRatingCard.js +5 -5
- package/build/widgets/oa-widget-detailcard/styles.js +1 -1
- package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -9
- package/build/widgets/oa-widget-dropdown-search-input/DropdownSearchInput.js +53 -19
- package/build/widgets/oa-widget-dropdown-search-input/styles.js +1 -1
- package/build/widgets/oa-widget-guide/GuideWidget.js +70 -0
- package/build/widgets/oa-widget-guide/GuideWidgetStyle.js +12 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationDeleteBiker.js +24 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModal.js +34 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModalStyle.js +13 -0
- package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +256 -0
- package/build/widgets/oa-widget-image-carousel/styles.js +23 -0
- package/build/widgets/oa-widget-image-gallery/FullscreenViewer.js +169 -0
- package/build/widgets/oa-widget-image-gallery/ImageGallery.js +87 -0
- package/build/widgets/oa-widget-image-gallery/ThumbnailGrid.js +146 -0
- package/build/widgets/oa-widget-image-gallery/imageCache.js +15 -0
- package/build/widgets/oa-widget-image-gallery/imageGalleryStyle.js +16 -0
- package/build/widgets/oa-widget-item-info-card/InfoCardListWidget.js +60 -0
- package/build/widgets/oa-widget-item-info-card/ItemInfoCardWidget.js +83 -0
- package/build/widgets/oa-widget-item-info-card/styles.css +50 -0
- package/build/widgets/oa-widget-item-info-card/styles.js +14 -0
- package/build/widgets/oa-widget-key-value/KeyValueWidget.js +46 -12
- package/build/widgets/oa-widget-key-value/styles.js +1 -1
- package/build/widgets/oa-widget-kpi/KPICardWidget.js +86 -0
- package/build/widgets/oa-widget-kpi/styles.js +12 -0
- package/build/widgets/oa-widget-map-base-location/AddressDetails.js +21 -7
- package/build/widgets/oa-widget-map-base-location/AddressForm.js +32 -5
- package/build/widgets/oa-widget-map-base-location/MapBaseLocation.js +9 -3
- package/build/widgets/oa-widget-map-base-location/MapComponent.js +17 -2
- package/build/widgets/oa-widget-membershipcard/MembershipCard.js +14 -3
- package/build/widgets/oa-widget-membershipcard/styles.js +1 -1
- package/build/widgets/oa-widget-notes/NotesWidget.js +32 -30
- package/build/widgets/oa-widget-notes/styles.js +4 -3
- package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +165 -0
- package/build/widgets/oa-widget-profile-data/styles.js +13 -0
- package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +362 -0
- package/build/widgets/oa-widget-progressive-steps/styles.js +12 -0
- package/build/widgets/oa-widget-reimbursement-breakup/ReimbursementBreakupWidget.js +18 -9
- package/build/widgets/oa-widget-reimbursement-breakup/styles.js +1 -1
- package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +164 -0
- package/build/widgets/oa-widget-select-list-item-modal/SelectListItemModal.js +91 -0
- package/build/widgets/oa-widget-sidebar/SidebarWidget.js +175 -0
- package/build/widgets/oa-widget-sidebar/components/Header.js +33 -0
- package/build/widgets/oa-widget-sidebar/styles.js +13 -0
- package/build/widgets/oa-widget-spare-part/SparePartsWidget.js +63 -35
- package/build/widgets/oa-widget-track-shipment-list/fn.js +16 -4
- package/build/widgets/oa-widget-user-management/UserManagementWidget.js +407 -0
- package/build/widgets/oa-widget-user-management/styles.js +15 -0
- package/package.json +4 -2
- package/build/components/oa-component-textarea/TextArea.js +0 -74
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.symbol.description.js");
|
|
4
|
+
require("core-js/modules/es.weak-map.js");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = _default;
|
|
9
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
+
require("core-js/modules/es.promise.js");
|
|
11
|
+
require("core-js/modules/es.regexp.constructor.js");
|
|
12
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
13
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _antd = require("antd");
|
|
16
|
+
var _EditOutlined = _interopRequireDefault(require("@material-ui/icons/EditOutlined"));
|
|
17
|
+
var _DeleteOutlineOutlined = _interopRequireDefault(require("@material-ui/icons/DeleteOutlineOutlined"));
|
|
18
|
+
var _CustomButton = _interopRequireDefault(require("../../components/oa-component-button/CustomButton"));
|
|
19
|
+
var _CustomInput = _interopRequireDefault(require("../../components/oa-component-input/CustomInput"));
|
|
20
|
+
var _CustomSelect = _interopRequireDefault(require("../../components/oa-component-select/CustomSelect"));
|
|
21
|
+
var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
|
|
22
|
+
var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
|
|
23
|
+
var _CustomModal = _interopRequireDefault(require("../../components/oa-component-modal/CustomModal"));
|
|
24
|
+
var _CustomNotification = _interopRequireDefault(require("../../components/oa-component-notification/CustomNotification"));
|
|
25
|
+
var _styles = require("./styles");
|
|
26
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
28
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
29
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
30
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
32
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
33
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable */
|
|
34
|
+
function _default(_ref) {
|
|
35
|
+
var _drawer$data, _activeDrawerData$mis;
|
|
36
|
+
let {
|
|
37
|
+
form,
|
|
38
|
+
fieldName = "users",
|
|
39
|
+
initialData = [],
|
|
40
|
+
fields,
|
|
41
|
+
disabled = false,
|
|
42
|
+
customPageModal,
|
|
43
|
+
addUserClick,
|
|
44
|
+
deleteUserClick,
|
|
45
|
+
editUserClick,
|
|
46
|
+
misc,
|
|
47
|
+
drawer
|
|
48
|
+
} = _ref;
|
|
49
|
+
const finalFields = fields || [];
|
|
50
|
+
const [editingUserId, setEditingUserId] = (0, _react.useState)(null);
|
|
51
|
+
const [addingUser, setAddingUser] = (0, _react.useState)(false);
|
|
52
|
+
const [deleteModalVisible, setDeleteModalVisible] = (0, _react.useState)(false);
|
|
53
|
+
const [userToDelete, setUserToDelete] = (0, _react.useState)(null);
|
|
54
|
+
const notificationRef = (0, _react.useRef)(null);
|
|
55
|
+
|
|
56
|
+
// Use local state for users, initialized from initialData only
|
|
57
|
+
const [users, setUsers] = (0, _react.useState)(() => {
|
|
58
|
+
return Array.isArray(initialData) ? initialData : [];
|
|
59
|
+
});
|
|
60
|
+
const openNotification = (0, _react.useCallback)(params => notificationRef.current.openNotification(params), []);
|
|
61
|
+
const showErrorNotification = message => {
|
|
62
|
+
openNotification({
|
|
63
|
+
description: message,
|
|
64
|
+
type: "failure",
|
|
65
|
+
mode: "dark",
|
|
66
|
+
showIcon: true,
|
|
67
|
+
placement: "bottomRight"
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const showSuccessNotification = message => {
|
|
71
|
+
openNotification({
|
|
72
|
+
description: message,
|
|
73
|
+
type: "success",
|
|
74
|
+
mode: "dark",
|
|
75
|
+
showIcon: true,
|
|
76
|
+
placement: "bottomRight"
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// Update both local state and form state
|
|
81
|
+
const updateUsers = newUsers => {
|
|
82
|
+
setUsers(newUsers);
|
|
83
|
+
form.setFieldsValue({
|
|
84
|
+
[fieldName]: newUsers
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// Sync users state with form and initialData
|
|
89
|
+
(0, _react.useEffect)(() => {
|
|
90
|
+
const defaultUsers = Array.isArray(initialData) ? initialData : [];
|
|
91
|
+
setUsers(defaultUsers);
|
|
92
|
+
form.setFieldsValue({
|
|
93
|
+
[fieldName]: defaultUsers
|
|
94
|
+
});
|
|
95
|
+
}, [initialData, fieldName, form]);
|
|
96
|
+
|
|
97
|
+
// Reset form state when drawer closes or opens to ensure fresh context
|
|
98
|
+
(0, _react.useEffect)(() => {
|
|
99
|
+
if (drawer && drawer.visible === false) {
|
|
100
|
+
// Reset adding/editing state when drawer closes
|
|
101
|
+
setAddingUser(false);
|
|
102
|
+
setEditingUserId(null);
|
|
103
|
+
setDeleteModalVisible(false);
|
|
104
|
+
setUserToDelete(null);
|
|
105
|
+
|
|
106
|
+
// Clear form fields
|
|
107
|
+
const clearData = {};
|
|
108
|
+
finalFields.forEach(field => {
|
|
109
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
110
|
+
});
|
|
111
|
+
form.setFieldsValue(clearData);
|
|
112
|
+
}
|
|
113
|
+
}, [drawer === null || drawer === void 0 ? void 0 : drawer.visible, form, fieldName, finalFields]);
|
|
114
|
+
|
|
115
|
+
// Access branchId dynamically from drawer data using active drawer key
|
|
116
|
+
const activeDrawerData = drawer === null || drawer === void 0 || (_drawer$data = drawer.data) === null || _drawer$data === void 0 ? void 0 : _drawer$data[drawer === null || drawer === void 0 ? void 0 : drawer.active];
|
|
117
|
+
const branchId = activeDrawerData === null || activeDrawerData === void 0 || (_activeDrawerData$mis = activeDrawerData.misc) === null || _activeDrawerData$mis === void 0 ? void 0 : _activeDrawerData$mis.branchId;
|
|
118
|
+
const handleEdit = user => {
|
|
119
|
+
setEditingUserId(user.id);
|
|
120
|
+
setAddingUser(false);
|
|
121
|
+
|
|
122
|
+
// Set form values for editing
|
|
123
|
+
const editData = {};
|
|
124
|
+
finalFields.forEach(field => {
|
|
125
|
+
editData["".concat(fieldName, "_").concat(field.key)] = user[field.key] || "";
|
|
126
|
+
});
|
|
127
|
+
form.setFieldsValue(editData);
|
|
128
|
+
};
|
|
129
|
+
const handleAdd = () => {
|
|
130
|
+
setAddingUser(true);
|
|
131
|
+
setEditingUserId(null);
|
|
132
|
+
|
|
133
|
+
// Clear form values for adding
|
|
134
|
+
const clearData = {};
|
|
135
|
+
finalFields.forEach(field => {
|
|
136
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
137
|
+
});
|
|
138
|
+
form.setFieldsValue(clearData);
|
|
139
|
+
};
|
|
140
|
+
const handleSave = async () => {
|
|
141
|
+
// Validate only the user management fields
|
|
142
|
+
const fieldNames = finalFields.map(field => "".concat(fieldName, "_").concat(field.key));
|
|
143
|
+
try {
|
|
144
|
+
const values = await form.validateFields(fieldNames);
|
|
145
|
+
|
|
146
|
+
// Extract user data from form values
|
|
147
|
+
const userData = {};
|
|
148
|
+
finalFields.forEach(field => {
|
|
149
|
+
userData[field.key] = values["".concat(fieldName, "_").concat(field.key)];
|
|
150
|
+
});
|
|
151
|
+
if (editingUserId) {
|
|
152
|
+
// Update existing user
|
|
153
|
+
if (editUserClick) {
|
|
154
|
+
const {
|
|
155
|
+
error,
|
|
156
|
+
data
|
|
157
|
+
} = await editUserClick(editingUserId, userData, misc);
|
|
158
|
+
if (error) {
|
|
159
|
+
showErrorNotification(error);
|
|
160
|
+
} else {
|
|
161
|
+
const updatedUsers = users.map(user => user.id === editingUserId ? _objectSpread(_objectSpread({}, user), userData) : user);
|
|
162
|
+
updateUsers(updatedUsers);
|
|
163
|
+
setEditingUserId(null);
|
|
164
|
+
showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
|
|
165
|
+
// Clear the form fields only if operation was successful
|
|
166
|
+
const clearData = {};
|
|
167
|
+
finalFields.forEach(field => {
|
|
168
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
169
|
+
});
|
|
170
|
+
form.setFieldsValue(clearData);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
} else if (addingUser) {
|
|
174
|
+
// Add new user
|
|
175
|
+
if (addUserClick) {
|
|
176
|
+
console.log("userData", userData);
|
|
177
|
+
console.log("misc", misc);
|
|
178
|
+
console.log("branchId", branchId);
|
|
179
|
+
const {
|
|
180
|
+
error,
|
|
181
|
+
data
|
|
182
|
+
} = await addUserClick(userData, misc, branchId);
|
|
183
|
+
if (error) {
|
|
184
|
+
showErrorNotification(error);
|
|
185
|
+
} else {
|
|
186
|
+
var _data$data;
|
|
187
|
+
const newUser = _objectSpread({
|
|
188
|
+
id: data === null || data === void 0 || (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.userId
|
|
189
|
+
}, userData);
|
|
190
|
+
const updatedUsers = [...users, newUser];
|
|
191
|
+
updateUsers(updatedUsers);
|
|
192
|
+
setAddingUser(false);
|
|
193
|
+
showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
|
|
194
|
+
// Clear the form fields only if operation was successful
|
|
195
|
+
const clearData = {};
|
|
196
|
+
finalFields.forEach(field => {
|
|
197
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
198
|
+
});
|
|
199
|
+
form.setFieldsValue(clearData);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
} catch (errorInfo) {
|
|
204
|
+
console.log("Form validation failed:", errorInfo);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
const handleCancel = () => {
|
|
208
|
+
setEditingUserId(null);
|
|
209
|
+
setAddingUser(false);
|
|
210
|
+
|
|
211
|
+
// Clear only the user management form fields
|
|
212
|
+
const clearData = {};
|
|
213
|
+
finalFields.forEach(field => {
|
|
214
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
215
|
+
});
|
|
216
|
+
form.setFieldsValue(clearData);
|
|
217
|
+
};
|
|
218
|
+
const handleDelete = userId => {
|
|
219
|
+
setUserToDelete(userId);
|
|
220
|
+
setDeleteModalVisible(true);
|
|
221
|
+
};
|
|
222
|
+
const confirmDelete = async () => {
|
|
223
|
+
if (userToDelete) {
|
|
224
|
+
if (deleteUserClick) {
|
|
225
|
+
const {
|
|
226
|
+
error,
|
|
227
|
+
data
|
|
228
|
+
} = await deleteUserClick(userToDelete);
|
|
229
|
+
if (error) {
|
|
230
|
+
showErrorNotification(error);
|
|
231
|
+
setDeleteModalVisible(false);
|
|
232
|
+
} else {
|
|
233
|
+
const updatedUsers = users.filter(user => user.id !== userToDelete);
|
|
234
|
+
updateUsers(updatedUsers);
|
|
235
|
+
setDeleteModalVisible(false);
|
|
236
|
+
showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
|
|
237
|
+
setUserToDelete(null);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
const cancelDelete = () => {
|
|
243
|
+
setDeleteModalVisible(false);
|
|
244
|
+
setUserToDelete(null);
|
|
245
|
+
};
|
|
246
|
+
const canDelete = users.length > 1;
|
|
247
|
+
const isEditing = editingUserId !== null || addingUser;
|
|
248
|
+
|
|
249
|
+
// Process rules to handle checkValidator structure (similar to FormWidget)
|
|
250
|
+
const processRules = rules => {
|
|
251
|
+
if (!rules || !Array.isArray(rules)) {
|
|
252
|
+
return rules;
|
|
253
|
+
}
|
|
254
|
+
return rules.map(r => {
|
|
255
|
+
// If rule has checkValidator, extract the nested rule object
|
|
256
|
+
if (r !== null && r !== void 0 && r.checkValidator && r !== null && r !== void 0 && r.rule) {
|
|
257
|
+
let processedRule = _objectSpread({}, r.rule);
|
|
258
|
+
|
|
259
|
+
// Handle pattern conversion if it's a string
|
|
260
|
+
if (processedRule.pattern && typeof processedRule.pattern === "string") {
|
|
261
|
+
processedRule.pattern = new RegExp(processedRule.pattern);
|
|
262
|
+
}
|
|
263
|
+
return processedRule;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Return rule as-is if it doesn't have checkValidator structure
|
|
267
|
+
return r;
|
|
268
|
+
});
|
|
269
|
+
};
|
|
270
|
+
const renderFormField = field => {
|
|
271
|
+
var _field$options;
|
|
272
|
+
const fieldNameWithPrefix = "".concat(fieldName, "_").concat(field.key);
|
|
273
|
+
const processedRules = processRules(field.rules);
|
|
274
|
+
switch (field.widget || field.type) {
|
|
275
|
+
case "input":
|
|
276
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
277
|
+
name: fieldNameWithPrefix,
|
|
278
|
+
label: field.label,
|
|
279
|
+
rules: processedRules,
|
|
280
|
+
style: {
|
|
281
|
+
marginBottom: 16
|
|
282
|
+
}
|
|
283
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
|
|
284
|
+
placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
|
|
285
|
+
}));
|
|
286
|
+
case "select":
|
|
287
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
288
|
+
name: fieldNameWithPrefix,
|
|
289
|
+
label: field.label,
|
|
290
|
+
rules: processedRules,
|
|
291
|
+
style: {
|
|
292
|
+
marginBottom: 16
|
|
293
|
+
}
|
|
294
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomSelect.default, {
|
|
295
|
+
placeholder: field.placeholder || "Select ".concat(field.label.toLowerCase()),
|
|
296
|
+
options: ((_field$options = field.options) === null || _field$options === void 0 ? void 0 : _field$options.map(option => ({
|
|
297
|
+
value: option.value,
|
|
298
|
+
label: option.label
|
|
299
|
+
}))) || []
|
|
300
|
+
}));
|
|
301
|
+
default:
|
|
302
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
303
|
+
name: fieldNameWithPrefix,
|
|
304
|
+
label: field.label,
|
|
305
|
+
rules: processedRules,
|
|
306
|
+
style: {
|
|
307
|
+
marginBottom: 16
|
|
308
|
+
}
|
|
309
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
|
|
310
|
+
placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
|
|
311
|
+
}));
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
return /*#__PURE__*/_react.default.createElement("div", null, users && users.length > 0 && users.map(user => /*#__PURE__*/_react.default.createElement(_styles.UserItem, {
|
|
315
|
+
key: user.id
|
|
316
|
+
}, editingUserId === user.id ? /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
317
|
+
className: "form-row"
|
|
318
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
319
|
+
key: field.key,
|
|
320
|
+
className: "form-field"
|
|
321
|
+
}, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
322
|
+
className: "form-actions"
|
|
323
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
324
|
+
type: "danger-secondary",
|
|
325
|
+
onClick: handleCancel,
|
|
326
|
+
label: "Cancel"
|
|
327
|
+
}), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
328
|
+
type: "secondary",
|
|
329
|
+
onClick: handleSave,
|
|
330
|
+
label: "Save"
|
|
331
|
+
})))) : /*#__PURE__*/_react.default.createElement(_styles.UserInfo, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
332
|
+
className: "user-details"
|
|
333
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
334
|
+
key: field.key
|
|
335
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
336
|
+
typography: index === 0 ? "type-t2-700" : "type-b1-400",
|
|
337
|
+
color: index === 0 ? "primary-content" : "secondary-content"
|
|
338
|
+
}, user[field.key])))), /*#__PURE__*/_react.default.createElement("div", {
|
|
339
|
+
className: "user-actions"
|
|
340
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
341
|
+
type: "text-only",
|
|
342
|
+
onClick: () => handleEdit(user),
|
|
343
|
+
disabled: disabled || isEditing,
|
|
344
|
+
iconConfig: {
|
|
345
|
+
icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
|
|
346
|
+
icon: _EditOutlined.default,
|
|
347
|
+
size: 64,
|
|
348
|
+
color: "primary"
|
|
349
|
+
}),
|
|
350
|
+
size: 32,
|
|
351
|
+
position: "right"
|
|
352
|
+
}
|
|
353
|
+
}), canDelete && /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
354
|
+
type: "text-only",
|
|
355
|
+
onClick: () => handleDelete(user.id),
|
|
356
|
+
disabled: disabled || isEditing,
|
|
357
|
+
iconConfig: {
|
|
358
|
+
icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
|
|
359
|
+
icon: _DeleteOutlineOutlined.default,
|
|
360
|
+
color: "negative"
|
|
361
|
+
}),
|
|
362
|
+
color: "negative",
|
|
363
|
+
size: 32,
|
|
364
|
+
position: "right"
|
|
365
|
+
}
|
|
366
|
+
}))))), addingUser && /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
367
|
+
className: "form-row"
|
|
368
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
369
|
+
key: field.key,
|
|
370
|
+
className: "form-field"
|
|
371
|
+
}, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
372
|
+
className: "form-actions"
|
|
373
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
374
|
+
type: "danger-secondary",
|
|
375
|
+
onClick: handleCancel,
|
|
376
|
+
label: "Cancel"
|
|
377
|
+
}), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
378
|
+
type: "primary",
|
|
379
|
+
onClick: handleSave,
|
|
380
|
+
label: "Save"
|
|
381
|
+
})))), !isEditing && /*#__PURE__*/_react.default.createElement(_styles.AddUserButtonContainer, null, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
382
|
+
type: "secondary",
|
|
383
|
+
onClick: handleAdd,
|
|
384
|
+
disabled: disabled,
|
|
385
|
+
label: "Add Another User"
|
|
386
|
+
})), deleteModalVisible && /*#__PURE__*/_react.default.createElement(_CustomModal.default, {
|
|
387
|
+
imgSrc: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.imgSrc,
|
|
388
|
+
open: deleteModalVisible,
|
|
389
|
+
onCancel: cancelDelete,
|
|
390
|
+
title: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.heading,
|
|
391
|
+
buttonConfig: [{
|
|
392
|
+
callback: () => {
|
|
393
|
+
cancelDelete();
|
|
394
|
+
},
|
|
395
|
+
label: "Cancel",
|
|
396
|
+
type: "secondary"
|
|
397
|
+
}, {
|
|
398
|
+
callback: () => {
|
|
399
|
+
confirmDelete();
|
|
400
|
+
},
|
|
401
|
+
label: "Delete",
|
|
402
|
+
type: "danger-primary"
|
|
403
|
+
}]
|
|
404
|
+
}, customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.subHeading), /*#__PURE__*/_react.default.createElement(_CustomNotification.default, {
|
|
405
|
+
ref: notificationRef
|
|
406
|
+
}));
|
|
407
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UserItem = exports.UserInfo = exports.EditFormCard = exports.EditForm = exports.AddUserButtonContainer = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
11
|
+
const UserItem = exports.UserItem = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n margin-bottom: 16px;\n padding: 16px 0;\n width: 100%;\n"])));
|
|
12
|
+
const EditFormCard = exports.EditFormCard = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-bottom: 16px;\n border-radius: 8px;\n background: #f5f5f5;\n border: 1px solid #e8e8e8;\n padding: 16px;\n width: 100%;\n"])));
|
|
13
|
+
const UserInfo = exports.UserInfo = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n\n .user-details {\n flex: 1;\n }\n\n .user-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n"])));
|
|
14
|
+
const EditForm = exports.EditForm = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n .form-row {\n display: flex;\n gap: 16px;\n margin-bottom: 16px;\n\n .form-field {\n flex: 1;\n }\n }\n\n .form-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n }\n"])));
|
|
15
|
+
const AddUserButtonContainer = exports.AddUserButtonContainer = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-top: 16px;\n width: 100%;\n display: flex;\n justify-content: flex-start;\n"])));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oa-componentbook",
|
|
3
|
-
"version": "1.0.1-stage.
|
|
3
|
+
"version": "1.0.1-stage.440",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Reusable components",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -22,12 +22,14 @@
|
|
|
22
22
|
"antd": "^5.11.4",
|
|
23
23
|
"d3": "^7.8.5",
|
|
24
24
|
"dayjs": "^1.11.10",
|
|
25
|
+
"immer": "^10.1.1",
|
|
25
26
|
"pdfjs-dist": "^2.6.347",
|
|
26
27
|
"react-google-maps": "^9.4.5",
|
|
28
|
+
"react-intersection-observer": "^8.32.5",
|
|
27
29
|
"react-markdown": "^8.0.7",
|
|
28
30
|
"react-pattern-lock": "^12.0.12",
|
|
29
31
|
"react-pdf": "^5.3.0",
|
|
30
|
-
"react-zoom-pan-pinch": "^3.
|
|
32
|
+
"react-zoom-pan-pinch": "^3.7.0"
|
|
31
33
|
},
|
|
32
34
|
"devDependencies": {
|
|
33
35
|
"@babel/cli": "^7.22.9",
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.object.assign.js");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
-
var _antd = require("antd");
|
|
11
|
-
var _styles = _interopRequireDefault(require("./styles"));
|
|
12
|
-
var _ColorVariablesMap = _interopRequireDefault(require("../../global-css/ColorVariablesMap"));
|
|
13
|
-
const _excluded = ["rows", "placeholder", "maxLength", "className"];
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
18
|
-
/**
|
|
19
|
-
* A custom text area component.
|
|
20
|
-
*
|
|
21
|
-
* The component includes the following properties:
|
|
22
|
-
* - `rows`: The number of rows for the text area.
|
|
23
|
-
* - `placeholder`: The placeholder text for the text area.
|
|
24
|
-
* - `maxLength`: The maximum length of the input value.
|
|
25
|
-
* - `className`: Additional CSS class to apply to the text area.
|
|
26
|
-
* - `antDesignProps`: Any other props to pass to the antd Input.TextArea component.
|
|
27
|
-
*
|
|
28
|
-
* The component will apply the following styles:
|
|
29
|
-
* - A dark grey background when the component is disabled.
|
|
30
|
-
* - A dark grey text color when the component is disabled.
|
|
31
|
-
* - A custom style class of `custom-textarea` to the outer element.
|
|
32
|
-
*
|
|
33
|
-
* The component will also apply the following props to the antd Input.TextArea component:
|
|
34
|
-
* - `rows`
|
|
35
|
-
* - `placeholder`
|
|
36
|
-
* - `maxLength`
|
|
37
|
-
* - `className` (appended to the outer element)
|
|
38
|
-
* - Any other props passed in the `antDesignProps` object
|
|
39
|
-
*/
|
|
40
|
-
function TextArea(_ref) {
|
|
41
|
-
let {
|
|
42
|
-
rows,
|
|
43
|
-
placeholder,
|
|
44
|
-
maxLength,
|
|
45
|
-
className
|
|
46
|
-
} = _ref,
|
|
47
|
-
antDesignProps = _objectWithoutProperties(_ref, _excluded);
|
|
48
|
-
return /*#__PURE__*/_react.default.createElement(_antd.ConfigProvider, {
|
|
49
|
-
theme: {
|
|
50
|
-
token: {
|
|
51
|
-
colorBgContainerDisabled: _ColorVariablesMap.default['--color-divider'],
|
|
52
|
-
colorTextDisabled: _ColorVariablesMap.default['--color-secondary-content']
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}, /*#__PURE__*/_react.default.createElement(_styles.default, _extends({
|
|
56
|
-
rows: rows,
|
|
57
|
-
placeholder: placeholder,
|
|
58
|
-
maxLength: maxLength,
|
|
59
|
-
className: "custom-textarea ".concat(className)
|
|
60
|
-
}, antDesignProps)));
|
|
61
|
-
}
|
|
62
|
-
TextArea.propTypes = {
|
|
63
|
-
rows: _propTypes.default.number,
|
|
64
|
-
placeholder: _propTypes.default.string,
|
|
65
|
-
maxLength: _propTypes.default.number,
|
|
66
|
-
className: _propTypes.default.string
|
|
67
|
-
};
|
|
68
|
-
TextArea.defaultProps = {
|
|
69
|
-
rows: 2,
|
|
70
|
-
placeholder: null,
|
|
71
|
-
maxLength: 5000,
|
|
72
|
-
className: ''
|
|
73
|
-
};
|
|
74
|
-
var _default = exports.default = TextArea;
|