oa-componentbook 1.0.1-stage.363 → 1.0.1-stage.365
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 +102 -42
- package/build/components/oa-component-accordion/styles.js +2 -2
- package/build/components/oa-component-button/CustomButton.js +6 -4
- package/build/components/oa-component-icons/MaterialIcon.js +1 -1
- package/build/components/oa-component-modal/styles.js +1 -1
- package/build/components/oa-component-tag/CustomTag.js +18 -12
- package/build/index.js +14 -0
- package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +215 -0
- package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +77 -0
- package/build/layout/EntityOverviewLayout/styles.js +13 -0
- package/build/layout/GenricLayOut/GenricLayOut.js +299 -173
- package/build/layout/GenricLayOut/components/Header.js +7 -1
- package/build/layout/GenricLayOut/components/ProfileSection.js +85 -0
- package/build/layout/GenricLayOut/reducer/layoutReducer.js +5 -1
- package/build/layout/GenricLayOut/styles.js +6 -3
- package/build/widgets/oa-form-widget/FormWidget.js +89 -22
- package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +91 -46
- package/build/widgets/oa-widget-key-value/KeyValueWidget.js +3 -0
- package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +115 -0
- package/build/widgets/oa-widget-profile-data/styles.js +13 -0
- package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +104 -105
- package/build/widgets/oa-widget-user-management/UserManagementWidget.js +332 -0
- package/build/widgets/oa-widget-user-management/styles.js +15 -0
- package/package.json +1 -1
|
@@ -0,0 +1,332 @@
|
|
|
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 = UserManagementWidget;
|
|
9
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
+
require("core-js/modules/es.promise.js");
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _antd = require("antd");
|
|
13
|
+
var _EditOutlined = _interopRequireDefault(require("@material-ui/icons/EditOutlined"));
|
|
14
|
+
var _DeleteOutlineOutlined = _interopRequireDefault(require("@material-ui/icons/DeleteOutlineOutlined"));
|
|
15
|
+
var _CustomButton = _interopRequireDefault(require("../../components/oa-component-button/CustomButton"));
|
|
16
|
+
var _CustomInput = _interopRequireDefault(require("../../components/oa-component-input/CustomInput"));
|
|
17
|
+
var _CustomSelect = _interopRequireDefault(require("../../components/oa-component-select/CustomSelect"));
|
|
18
|
+
var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
|
|
19
|
+
var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
|
|
20
|
+
var _CustomModal = _interopRequireDefault(require("../../components/oa-component-modal/CustomModal"));
|
|
21
|
+
var _CustomNotification = _interopRequireDefault(require("../../components/oa-component-notification/CustomNotification"));
|
|
22
|
+
var _styles = require("./styles");
|
|
23
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
+
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); }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
29
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
30
|
+
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 */
|
|
31
|
+
function UserManagementWidget(_ref) {
|
|
32
|
+
let {
|
|
33
|
+
form,
|
|
34
|
+
fieldName = "users",
|
|
35
|
+
initialData = [],
|
|
36
|
+
fields,
|
|
37
|
+
disabled = false,
|
|
38
|
+
customPageModal,
|
|
39
|
+
addUserClick,
|
|
40
|
+
deleteUserClick,
|
|
41
|
+
editUserClick,
|
|
42
|
+
misc
|
|
43
|
+
} = _ref;
|
|
44
|
+
const finalFields = fields || [];
|
|
45
|
+
const [editingUserId, setEditingUserId] = (0, _react.useState)(null);
|
|
46
|
+
const [addingUser, setAddingUser] = (0, _react.useState)(false);
|
|
47
|
+
const [deleteModalVisible, setDeleteModalVisible] = (0, _react.useState)(false);
|
|
48
|
+
const [userToDelete, setUserToDelete] = (0, _react.useState)(null);
|
|
49
|
+
const [updateTrigger, setUpdateTrigger] = (0, _react.useState)(0);
|
|
50
|
+
const notificationRef = (0, _react.useRef)(null);
|
|
51
|
+
const openNotification = (0, _react.useCallback)(params => notificationRef.current.openNotification(params), []);
|
|
52
|
+
const showErrorNotification = message => {
|
|
53
|
+
openNotification({
|
|
54
|
+
description: message,
|
|
55
|
+
type: "failure",
|
|
56
|
+
mode: "dark",
|
|
57
|
+
showIcon: true,
|
|
58
|
+
placement: "bottomRight"
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const showSuccessNotification = message => {
|
|
62
|
+
openNotification({
|
|
63
|
+
description: message,
|
|
64
|
+
type: "success",
|
|
65
|
+
mode: "dark",
|
|
66
|
+
showIcon: true,
|
|
67
|
+
placement: "bottomRight"
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// Get current users from form state
|
|
72
|
+
const users = form.getFieldValue(fieldName) || initialData;
|
|
73
|
+
|
|
74
|
+
// Update form state with new user list and trigger re-render
|
|
75
|
+
const updateUsers = newUsers => {
|
|
76
|
+
form.setFieldsValue({
|
|
77
|
+
[fieldName]: newUsers
|
|
78
|
+
});
|
|
79
|
+
setUpdateTrigger(prev => prev + 1); // Trigger re-render
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Initialize form field if not already set
|
|
83
|
+
(0, _react.useEffect)(() => {
|
|
84
|
+
const currentUsers = form.getFieldValue(fieldName);
|
|
85
|
+
if (!currentUsers) {
|
|
86
|
+
updateFormUsers(initialData);
|
|
87
|
+
}
|
|
88
|
+
}, [initialData, fieldName, form]);
|
|
89
|
+
const handleEdit = user => {
|
|
90
|
+
setEditingUserId(user.id);
|
|
91
|
+
setAddingUser(false);
|
|
92
|
+
|
|
93
|
+
// Set form values for editing
|
|
94
|
+
const editData = {};
|
|
95
|
+
finalFields.forEach(field => {
|
|
96
|
+
editData["".concat(fieldName, "_").concat(field.key)] = user[field.key] || "";
|
|
97
|
+
});
|
|
98
|
+
form.setFieldsValue(editData);
|
|
99
|
+
};
|
|
100
|
+
const handleAdd = () => {
|
|
101
|
+
setAddingUser(true);
|
|
102
|
+
setEditingUserId(null);
|
|
103
|
+
|
|
104
|
+
// Clear form values for adding
|
|
105
|
+
const clearData = {};
|
|
106
|
+
finalFields.forEach(field => {
|
|
107
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
108
|
+
});
|
|
109
|
+
form.setFieldsValue(clearData);
|
|
110
|
+
};
|
|
111
|
+
const handleSave = async () => {
|
|
112
|
+
// Validate only the user management fields
|
|
113
|
+
const fieldNames = finalFields.map(field => "".concat(fieldName, "_").concat(field.key));
|
|
114
|
+
try {
|
|
115
|
+
const values = await form.validateFields(fieldNames);
|
|
116
|
+
|
|
117
|
+
// Extract user data from form values
|
|
118
|
+
const userData = {};
|
|
119
|
+
finalFields.forEach(field => {
|
|
120
|
+
userData[field.key] = values["".concat(fieldName, "_").concat(field.key)];
|
|
121
|
+
});
|
|
122
|
+
if (editingUserId) {
|
|
123
|
+
// Update existing user
|
|
124
|
+
if (editUserClick) {
|
|
125
|
+
const success = await editUserClick(editingUserId, userData);
|
|
126
|
+
if (success) {
|
|
127
|
+
showSuccessNotification("success");
|
|
128
|
+
const updatedUsers = users.map(user => user.id === editingUserId ? _objectSpread(_objectSpread({}, user), userData) : user);
|
|
129
|
+
updateUsers(updatedUsers);
|
|
130
|
+
setEditingUserId(null);
|
|
131
|
+
} else {
|
|
132
|
+
showErrorNotification("error");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} else if (addingUser) {
|
|
136
|
+
// Add new user
|
|
137
|
+
if (addUserClick) {
|
|
138
|
+
const success = await addUserClick(userData, misc);
|
|
139
|
+
if (success) {
|
|
140
|
+
const newUser = _objectSpread({
|
|
141
|
+
id: Date.now()
|
|
142
|
+
}, userData);
|
|
143
|
+
const updatedUsers = [...users, newUser];
|
|
144
|
+
updateUsers(updatedUsers);
|
|
145
|
+
setAddingUser(false);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Clear the form fields only if operation was successful
|
|
151
|
+
const clearData = {};
|
|
152
|
+
finalFields.forEach(field => {
|
|
153
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
154
|
+
});
|
|
155
|
+
form.setFieldsValue(clearData);
|
|
156
|
+
} catch (errorInfo) {
|
|
157
|
+
console.log("Form validation failed:", errorInfo);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const handleCancel = () => {
|
|
161
|
+
setEditingUserId(null);
|
|
162
|
+
setAddingUser(false);
|
|
163
|
+
|
|
164
|
+
// Clear only the user management form fields
|
|
165
|
+
const clearData = {};
|
|
166
|
+
finalFields.forEach(field => {
|
|
167
|
+
clearData["".concat(fieldName, "_").concat(field.key)] = "";
|
|
168
|
+
});
|
|
169
|
+
form.setFieldsValue(clearData);
|
|
170
|
+
};
|
|
171
|
+
const handleDelete = userId => {
|
|
172
|
+
setUserToDelete(userId);
|
|
173
|
+
setDeleteModalVisible(true);
|
|
174
|
+
};
|
|
175
|
+
const confirmDelete = async () => {
|
|
176
|
+
if (userToDelete) {
|
|
177
|
+
if (deleteUserClick) {
|
|
178
|
+
const success = await deleteUserClick(userToDelete);
|
|
179
|
+
if (success) {
|
|
180
|
+
showSuccessNotification("success");
|
|
181
|
+
const updatedUsers = users.filter(user => user.id !== userToDelete);
|
|
182
|
+
updateUsers(updatedUsers);
|
|
183
|
+
setUserToDelete(null);
|
|
184
|
+
} else {
|
|
185
|
+
showErrorNotification("error");
|
|
186
|
+
setDeleteModalVisible(false);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
const cancelDelete = () => {
|
|
192
|
+
setDeleteModalVisible(false);
|
|
193
|
+
setUserToDelete(null);
|
|
194
|
+
};
|
|
195
|
+
const canDelete = users.length > 1;
|
|
196
|
+
const isEditing = editingUserId !== null || addingUser;
|
|
197
|
+
const renderFormField = field => {
|
|
198
|
+
var _field$options;
|
|
199
|
+
const fieldNameWithPrefix = "".concat(fieldName, "_").concat(field.key);
|
|
200
|
+
switch (field.widget || field.type) {
|
|
201
|
+
case "input":
|
|
202
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
203
|
+
name: fieldNameWithPrefix,
|
|
204
|
+
label: field.label,
|
|
205
|
+
rules: field.rules,
|
|
206
|
+
style: {
|
|
207
|
+
marginBottom: 16
|
|
208
|
+
}
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
|
|
210
|
+
placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
|
|
211
|
+
}));
|
|
212
|
+
case "select":
|
|
213
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
214
|
+
name: fieldNameWithPrefix,
|
|
215
|
+
label: field.label,
|
|
216
|
+
rules: field.rules,
|
|
217
|
+
style: {
|
|
218
|
+
marginBottom: 16
|
|
219
|
+
}
|
|
220
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomSelect.default, {
|
|
221
|
+
placeholder: field.placeholder || "Select ".concat(field.label.toLowerCase()),
|
|
222
|
+
options: ((_field$options = field.options) === null || _field$options === void 0 ? void 0 : _field$options.map(option => ({
|
|
223
|
+
value: option.value,
|
|
224
|
+
label: option.label
|
|
225
|
+
}))) || []
|
|
226
|
+
}));
|
|
227
|
+
default:
|
|
228
|
+
return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
|
|
229
|
+
name: fieldNameWithPrefix,
|
|
230
|
+
label: field.label,
|
|
231
|
+
rules: field.rules,
|
|
232
|
+
style: {
|
|
233
|
+
marginBottom: 16
|
|
234
|
+
}
|
|
235
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
|
|
236
|
+
placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
|
|
237
|
+
}));
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
return /*#__PURE__*/_react.default.createElement("div", null, users && users.length > 0 && users.map(user => /*#__PURE__*/_react.default.createElement(_styles.UserItem, {
|
|
241
|
+
key: user.id
|
|
242
|
+
}, editingUserId === user.id ? /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
243
|
+
className: "form-row"
|
|
244
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
245
|
+
key: field.key,
|
|
246
|
+
className: "form-field"
|
|
247
|
+
}, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
248
|
+
className: "form-actions"
|
|
249
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
250
|
+
type: "danger-secondary",
|
|
251
|
+
onClick: handleCancel,
|
|
252
|
+
label: "Cancel"
|
|
253
|
+
}), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
254
|
+
type: "secondary",
|
|
255
|
+
onClick: handleSave,
|
|
256
|
+
label: "Save"
|
|
257
|
+
})))) : /*#__PURE__*/_react.default.createElement(_styles.UserInfo, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
258
|
+
className: "user-details"
|
|
259
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
260
|
+
key: field.key
|
|
261
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
262
|
+
typography: index === 0 ? "type-t2-700" : "type-b1-400",
|
|
263
|
+
color: index === 0 ? "primary-content" : "secondary-content"
|
|
264
|
+
}, user[field.key])))), /*#__PURE__*/_react.default.createElement("div", {
|
|
265
|
+
className: "user-actions"
|
|
266
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
267
|
+
type: "text-only",
|
|
268
|
+
onClick: () => handleEdit(user),
|
|
269
|
+
disabled: disabled || isEditing,
|
|
270
|
+
iconConfig: {
|
|
271
|
+
icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
|
|
272
|
+
icon: _EditOutlined.default,
|
|
273
|
+
size: 64,
|
|
274
|
+
color: "primary"
|
|
275
|
+
}),
|
|
276
|
+
size: 32,
|
|
277
|
+
position: "right"
|
|
278
|
+
}
|
|
279
|
+
}), canDelete && /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
280
|
+
type: "text-only",
|
|
281
|
+
onClick: () => handleDelete(user.id),
|
|
282
|
+
disabled: disabled || isEditing,
|
|
283
|
+
iconConfig: {
|
|
284
|
+
icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
|
|
285
|
+
icon: _DeleteOutlineOutlined.default,
|
|
286
|
+
color: "negative"
|
|
287
|
+
}),
|
|
288
|
+
size: 32,
|
|
289
|
+
position: "right"
|
|
290
|
+
}
|
|
291
|
+
}))))), addingUser && /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
292
|
+
className: "form-row"
|
|
293
|
+
}, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
|
|
294
|
+
key: field.key,
|
|
295
|
+
className: "form-field"
|
|
296
|
+
}, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
297
|
+
className: "form-actions"
|
|
298
|
+
}, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
299
|
+
type: "danger-secondary",
|
|
300
|
+
onClick: handleCancel,
|
|
301
|
+
label: "Cancel"
|
|
302
|
+
}), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
303
|
+
type: "primary",
|
|
304
|
+
onClick: handleSave,
|
|
305
|
+
label: "Save"
|
|
306
|
+
})))), !isEditing && /*#__PURE__*/_react.default.createElement(_styles.AddUserButtonContainer, null, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
|
|
307
|
+
type: "secondary",
|
|
308
|
+
onClick: handleAdd,
|
|
309
|
+
disabled: disabled,
|
|
310
|
+
label: "Add Another User"
|
|
311
|
+
})), deleteModalVisible && /*#__PURE__*/_react.default.createElement(_CustomModal.default, {
|
|
312
|
+
imgSrc: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.imgSrc,
|
|
313
|
+
open: deleteModalVisible,
|
|
314
|
+
onCancel: cancelDelete,
|
|
315
|
+
title: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.heading,
|
|
316
|
+
buttonConfig: [{
|
|
317
|
+
callback: () => {
|
|
318
|
+
cancelDelete();
|
|
319
|
+
},
|
|
320
|
+
label: "Cancel",
|
|
321
|
+
type: "secondary"
|
|
322
|
+
}, {
|
|
323
|
+
callback: () => {
|
|
324
|
+
confirmDelete();
|
|
325
|
+
},
|
|
326
|
+
label: "Delete",
|
|
327
|
+
type: "danger-primary"
|
|
328
|
+
}]
|
|
329
|
+
}, customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.subHeading), /*#__PURE__*/_react.default.createElement(_CustomNotification.default, {
|
|
330
|
+
ref: notificationRef
|
|
331
|
+
}));
|
|
332
|
+
}
|
|
@@ -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"])));
|