oa-componentbook 1.0.1-stage.41 → 1.0.1-stage.410

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/build/components/oa-component-accordion/Accordion.js +129 -40
  2. package/build/components/oa-component-accordion/styles.js +2 -2
  3. package/build/components/oa-component-button/CustomButton.js +24 -19
  4. package/build/components/oa-component-button/styles.js +1 -1
  5. package/build/components/oa-component-checkbox/CustomCheckBox.js +20 -17
  6. package/build/components/oa-component-checkbox/styles.js +1 -1
  7. package/build/components/oa-component-datepicker/CustomDatePicker.js +37 -26
  8. package/build/components/oa-component-drawer/CustomDrawer.js +2 -0
  9. package/build/components/oa-component-dropdown/CustomDropdown.js +16 -4
  10. package/build/components/oa-component-icons/MaterialIcon.js +1 -1
  11. package/build/components/oa-component-info/CustomInfo.js +9 -4
  12. package/build/components/oa-component-info/styles.js +3 -3
  13. package/build/components/oa-component-modal/CustomModal.js +51 -46
  14. package/build/components/oa-component-modal/styles.js +3 -2
  15. package/build/components/oa-component-pagination/CustomPagination.js +111 -0
  16. package/build/components/oa-component-pagination/styles.js +12 -0
  17. package/build/components/oa-component-select/CustomSelect.js +116 -56
  18. package/build/components/oa-component-steps/CustomSteps.js +117 -0
  19. package/build/components/oa-component-steps/styles.js +12 -0
  20. package/build/components/oa-component-table/CustomTable.js +28 -5
  21. package/build/components/oa-component-table/CustomTableV1.js +610 -0
  22. package/build/components/oa-component-table/styles.js +1 -1
  23. package/build/components/oa-component-table/stylesV1.js +19 -0
  24. package/build/components/oa-component-tabs/CustomTabs.js +1 -1
  25. package/build/components/oa-component-tag/CustomTag.js +29 -11
  26. package/build/components/oa-component-tag/styles.js +30 -3
  27. package/build/components/oa-component-textarea/{TextArea.js → CustomTextArea.js} +4 -4
  28. package/build/components/oa-component-tooltip/CustomTooltip.js +8 -4
  29. package/build/components/oa-component-upload/CustomUpload.js +120 -40
  30. package/build/components/oa-component-viewer/CustomViewer.js +3 -1
  31. package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +367 -0
  32. package/build/dev/oa-component-document-viewer/styles.js +12 -0
  33. package/build/dev/oa-component-upload/CustomUpload.js +3 -0
  34. package/build/dev/oa-widget-document-modal/DocumentSideModal.js +166 -0
  35. package/build/dev/oa-widget-document-modal/styles.js +12 -0
  36. package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +196 -0
  37. package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
  38. package/build/global-css/GlobalCss.js +2 -1
  39. package/build/global-css/GridLayout.js +1 -1
  40. package/build/global-css/commonStyles.js +11 -0
  41. package/build/images/Car.png +0 -0
  42. package/build/images/TwoWheeler.png +0 -0
  43. package/build/images/astronaut_emptystate.png +0 -0
  44. package/build/images/exportGrp01.png +0 -0
  45. package/build/images/exportGrp02.png +0 -0
  46. package/build/images/exportGrp03.png +0 -0
  47. package/build/images/outOfStock.png +0 -0
  48. package/build/index.js +110 -5
  49. package/build/layout/DetailDataLayout/DetailDataLayout.js +20 -0
  50. package/build/layout/DetailDataLayout/components/Form.js +22 -0
  51. package/build/layout/DetailDataLayout/components/Header.js +32 -0
  52. package/build/layout/DetailDataLayout/style.css +9 -0
  53. package/build/layout/DetailDataLayout/styles.js +12 -0
  54. package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +263 -0
  55. package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +68 -0
  56. package/build/layout/EntityOverviewLayout/styles.js +13 -0
  57. package/build/layout/GenricLayOut/GenricLayOut.js +2384 -0
  58. package/build/layout/GenricLayOut/components/AppliedFilters.js +91 -0
  59. package/build/layout/GenricLayOut/components/CardList.js +34 -0
  60. package/build/layout/GenricLayOut/components/DropdownSearch.js +48 -0
  61. package/build/layout/GenricLayOut/components/Header.js +74 -0
  62. package/build/layout/GenricLayOut/components/Modal.js +95 -0
  63. package/build/layout/GenricLayOut/components/ProfileSection.js +219 -0
  64. package/build/layout/GenricLayOut/components/Search.js +51 -0
  65. package/build/layout/GenricLayOut/components/StaticFilter.css +73 -0
  66. package/build/layout/GenricLayOut/components/StaticFilter.js +37 -0
  67. package/build/layout/GenricLayOut/reducer/layoutReducer.js +306 -0
  68. package/build/layout/GenricLayOut/resolver/staticConfigResolver.js +98 -0
  69. package/build/layout/GenricLayOut/styles.js +42 -0
  70. package/build/utils/download-file.js +23 -0
  71. package/build/widgets/oa-form-widget/FormWidget.js +576 -0
  72. package/build/widgets/oa-form-widget/FormWidgetStyle.js +18 -0
  73. package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +80 -16
  74. package/build/widgets/oa-widget-add-spare-part/AddSparePartWidget.js +50 -7
  75. package/build/widgets/oa-widget-address/AddressWidget.js +12 -17
  76. package/build/widgets/oa-widget-approval/ApprovalWidget.js +19 -11
  77. package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +492 -0
  78. package/build/widgets/oa-widget-approval/styles.js +2 -2
  79. package/build/widgets/oa-widget-chat/ChatWidget.js +5 -5
  80. package/build/widgets/oa-widget-close-claim/CloseClaimWidget.js +17 -5
  81. package/build/widgets/oa-widget-collapsible-key-value/CollapsibleKeyValueWidget.js +396 -0
  82. package/build/widgets/oa-widget-collapsible-key-value/styles.js +16 -0
  83. package/build/widgets/oa-widget-content-panel/ContentPanel.js +82 -0
  84. package/build/widgets/oa-widget-content-panel/styles.js +12 -0
  85. package/build/widgets/oa-widget-customer-rating-card/CustomerRatingCard.js +5 -5
  86. package/build/widgets/oa-widget-detailcard/styles.js +1 -1
  87. package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -9
  88. package/build/widgets/oa-widget-dropdown-search-input/DropdownSearchInput.js +53 -19
  89. package/build/widgets/oa-widget-dropdown-search-input/styles.js +1 -1
  90. package/build/widgets/oa-widget-guide/GuideWidget.js +70 -0
  91. package/build/widgets/oa-widget-guide/GuideWidgetStyle.js +12 -0
  92. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationDeleteBiker.js +24 -0
  93. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModal.js +34 -0
  94. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModalStyle.js +13 -0
  95. package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +101 -69
  96. package/build/widgets/oa-widget-image-carousel/styles.js +16 -5
  97. package/build/widgets/oa-widget-image-gallery/FullscreenViewer.js +169 -0
  98. package/build/widgets/oa-widget-image-gallery/ImageGallery.js +87 -0
  99. package/build/widgets/oa-widget-image-gallery/ThumbnailGrid.js +146 -0
  100. package/build/widgets/oa-widget-image-gallery/imageCache.js +15 -0
  101. package/build/widgets/oa-widget-image-gallery/imageGalleryStyle.js +16 -0
  102. package/build/widgets/oa-widget-item-info-card/InfoCardListWidget.js +60 -0
  103. package/build/widgets/oa-widget-item-info-card/ItemInfoCardWidget.js +83 -0
  104. package/build/widgets/oa-widget-item-info-card/styles.css +50 -0
  105. package/build/widgets/oa-widget-item-info-card/styles.js +14 -0
  106. package/build/widgets/oa-widget-key-value/KeyValueWidget.js +46 -12
  107. package/build/widgets/oa-widget-key-value/styles.js +1 -1
  108. package/build/widgets/oa-widget-kpi/KPICardWidget.js +86 -0
  109. package/build/widgets/oa-widget-kpi/styles.js +12 -0
  110. package/build/widgets/oa-widget-map-base-location/AddressDetails.js +21 -7
  111. package/build/widgets/oa-widget-map-base-location/AddressForm.js +32 -5
  112. package/build/widgets/oa-widget-map-base-location/MapBaseLocation.js +9 -3
  113. package/build/widgets/oa-widget-map-base-location/MapComponent.js +17 -2
  114. package/build/widgets/oa-widget-membershipcard/MembershipCard.js +14 -3
  115. package/build/widgets/oa-widget-membershipcard/styles.js +1 -1
  116. package/build/widgets/oa-widget-notes/NotesWidget.js +32 -30
  117. package/build/widgets/oa-widget-notes/styles.js +4 -3
  118. package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +166 -0
  119. package/build/widgets/oa-widget-profile-data/styles.js +13 -0
  120. package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +362 -0
  121. package/build/widgets/oa-widget-progressive-steps/styles.js +12 -0
  122. package/build/widgets/oa-widget-reimbursement-breakup/ReimbursementBreakupWidget.js +18 -9
  123. package/build/widgets/oa-widget-reimbursement-breakup/styles.js +1 -1
  124. package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +164 -0
  125. package/build/widgets/oa-widget-select-list-item-modal/SelectListItemModal.js +91 -0
  126. package/build/widgets/oa-widget-sidebar/SidebarWidget.js +175 -0
  127. package/build/widgets/oa-widget-sidebar/components/Header.js +33 -0
  128. package/build/widgets/oa-widget-sidebar/styles.js +13 -0
  129. package/build/widgets/oa-widget-spare-part/SparePartsWidget.js +63 -35
  130. package/build/widgets/oa-widget-track-shipment/TrackShipmentWidget.js +28 -6
  131. package/build/widgets/oa-widget-track-shipment-list/TrackShipmentWidgetList.js +103 -0
  132. package/build/widgets/oa-widget-track-shipment-list/fn.js +81 -0
  133. package/build/widgets/oa-widget-user-management/UserManagementWidget.js +352 -0
  134. package/build/widgets/oa-widget-user-management/styles.js +15 -0
  135. package/package.json +3 -1
  136. package/build/dev/oa-widget-track-shipment/TrackShipmentWidget.js +0 -195
  137. /package/build/{dev/oa-widget-track-shipment → widgets/oa-widget-track-shipment-list}/styles.js +0 -0
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _fn = require("./fn");
10
+ var _TrackShipmentWidget = _interopRequireDefault(require("../oa-widget-track-shipment/TrackShipmentWidget"));
11
+ var _Accordion = _interopRequireDefault(require("../../components/oa-component-accordion/Accordion"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function TrackShipmentWidgetList(_ref) {
14
+ var _assignments$map;
15
+ let {
16
+ shipmentData,
17
+ onChange
18
+ } = _ref;
19
+ const assignments = (shipmentData === null || shipmentData === void 0 ? void 0 : shipmentData.assignments) || [];
20
+ if (assignments.length === 0) {
21
+ return /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(shipmentData));
22
+ }
23
+ if (assignments.length === 1) {
24
+ return /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(assignments[0]));
25
+ }
26
+ const lastReassignmentId = assignments && assignments.length > 0 ? assignments[assignments.length - 1].assignmentId || 0 : 0;
27
+ return assignments === null || assignments === void 0 || (_assignments$map = assignments.map) === null || _assignments$map === void 0 ? void 0 : _assignments$map.call(assignments, (item, index) => {
28
+ const {
29
+ assignmentId,
30
+ assignmentDate,
31
+ assignmentClosedTime,
32
+ status
33
+ } = item !== null && item !== void 0 ? item : {};
34
+ return /*#__PURE__*/_react.default.createElement("div", {
35
+ className: "margin-bottom-16",
36
+ key: assignmentId
37
+ }, /*#__PURE__*/_react.default.createElement(_Accordion.default, {
38
+ defaultActiveKey: lastReassignmentId,
39
+ activeKey: assignmentId,
40
+ body: /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(item)),
41
+ headerText: (0, _fn.headerText)(index, assignmentDate, assignmentClosedTime, status)
42
+ }));
43
+ });
44
+ }
45
+ const HistoryPropType = _propTypes.default.shape({
46
+ shipmentStatus: _propTypes.default.string.isRequired,
47
+ fromDate: _propTypes.default.string.isRequired,
48
+ toDate: _propTypes.default.string.isRequired,
49
+ partnerStatus: _propTypes.default.string,
50
+ customerDisplayStatus: _propTypes.default.string.isRequired,
51
+ oneassistDisplayStatus: _propTypes.default.string.isRequired,
52
+ stageConsistent: _propTypes.default.bool.isRequired
53
+ });
54
+ const AssignmentPropType = _propTypes.default.shape({
55
+ assignmentDate: _propTypes.default.number.isRequired,
56
+ assignmentClosedTime: _propTypes.default.number.isRequired,
57
+ logisticPartnerName: _propTypes.default.string.isRequired,
58
+ assignmentId: _propTypes.default.number.isRequired,
59
+ logisticPartnerRefNum: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
60
+ originAddressLine1: _propTypes.default.string.isRequired,
61
+ originDistrict: _propTypes.default.string.isRequired,
62
+ originPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
63
+ destAddressLine1: _propTypes.default.string.isRequired,
64
+ destDistrict: _propTypes.default.string,
65
+ destPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
66
+ history: _propTypes.default.arrayOf(HistoryPropType).isRequired,
67
+ origAddressFullName: _propTypes.default.string.isRequired,
68
+ destAddressFullName: _propTypes.default.string.isRequired,
69
+ assignments: _propTypes.default.arrayOf(_propTypes.default.shape({
70
+ logisticPartnerRefNum: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
71
+ originAddressLine1: _propTypes.default.string.isRequired,
72
+ originDistrict: _propTypes.default.string.isRequired,
73
+ originPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
74
+ destAddressLine1: _propTypes.default.string.isRequired,
75
+ destDistrict: _propTypes.default.string,
76
+ destPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
77
+ history: _propTypes.default.arrayOf(HistoryPropType).isRequired,
78
+ origAddressFullName: _propTypes.default.string.isRequired,
79
+ destAddressFullName: _propTypes.default.string.isRequired,
80
+ assignments: _propTypes.default.array // Placeholder to break recursion
81
+ }))
82
+ });
83
+ TrackShipmentWidgetList.propTypes = {
84
+ shipmentData: _propTypes.default.shape({
85
+ logisticPartnerRefNum: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
86
+ originAddressLine1: _propTypes.default.string.isRequired,
87
+ originDistrict: _propTypes.default.string.isRequired,
88
+ originPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
89
+ destAddressLine1: _propTypes.default.string.isRequired,
90
+ destDistrict: _propTypes.default.string,
91
+ destPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
92
+ history: _propTypes.default.arrayOf(HistoryPropType).isRequired,
93
+ origAddressFullName: _propTypes.default.string.isRequired,
94
+ destAddressFullName: _propTypes.default.string.isRequired,
95
+ assignments: _propTypes.default.arrayOf(AssignmentPropType)
96
+ }),
97
+ onChange: _propTypes.default.func
98
+ };
99
+ TrackShipmentWidgetList.defaultProps = {
100
+ shipmentData: {},
101
+ onChange: () => {}
102
+ };
103
+ var _default = exports.default = TrackShipmentWidgetList;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isActive = exports.headerText = exports.getSingleShipmentHistory = exports.getDateString = exports.getCurrentShipmentLabel = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function numberToOrdinal(number) {
10
+ const suffixes = ['th', 'st', 'nd', 'rd'];
11
+ const value = number % 100;
12
+ const suffix = value >= 11 && value <= 13 ? suffixes[0] // 11th, 12th, 13th
13
+ : suffixes[number % 10] || suffixes[0]; // 1st, 2nd, 3rd, others
14
+ return "".concat(number).concat(suffix); // Use template literal correctly
15
+ }
16
+ const getDateFromEpoch = date => {
17
+ if (!date) {
18
+ return '';
19
+ }
20
+ const dateObj = new Date(date);
21
+ const day = dateObj.getDate();
22
+ const month = dateObj.getMonth();
23
+ const year = dateObj.getFullYear();
24
+ const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
25
+ return "".concat(day, " ").concat(months[month], " ").concat(year);
26
+ };
27
+ const getDateString = (startTime, endTime) => {
28
+ const startDate = getDateFromEpoch(startTime);
29
+ const endDate = getDateFromEpoch(endTime);
30
+ if (startDate === '' && endDate === '') {
31
+ return '';
32
+ }
33
+ if (endDate === '') {
34
+ return startDate;
35
+ }
36
+ return "".concat(startDate, " - ").concat(endDate);
37
+ };
38
+ exports.getDateString = getDateString;
39
+ const getCurrentShipmentLabel = number => {
40
+ const ordinalNumber = numberToOrdinal(number);
41
+ return "".concat(ordinalNumber, " Shipment");
42
+ };
43
+ exports.getCurrentShipmentLabel = getCurrentShipmentLabel;
44
+ const showNewLineChar = addressDetail => {
45
+ var _splitedAddress$map;
46
+ const splitedAddress = addressDetail === null || addressDetail === void 0 ? void 0 : addressDetail.split('\n');
47
+ if ((splitedAddress === null || splitedAddress === void 0 ? void 0 : splitedAddress.length) === 1) return addressDetail;
48
+ return (_splitedAddress$map = splitedAddress.map((title, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, title, index === 0 && /*#__PURE__*/_react.default.createElement("br", null)))) !== null && _splitedAddress$map !== void 0 ? _splitedAddress$map : '';
49
+ };
50
+ const isActive = time => time === null;
51
+ exports.isActive = isActive;
52
+ const headerText = (index, reassignmentTime, modifiedTime, status) => "".concat(getCurrentShipmentLabel(index + 1), " | ").concat(getDateString(reassignmentTime, modifiedTime)).concat(isActive(modifiedTime) ? ' - Present' : '');
53
+ exports.headerText = headerText;
54
+ const getSingleShipmentHistory = item => {
55
+ var _item$history;
56
+ return {
57
+ partnerName: item === null || item === void 0 ? void 0 : item.logisticPartnerName,
58
+ errorReason: item === null || item === void 0 ? void 0 : item.failureReason,
59
+ awbNumber: item === null || item === void 0 ? void 0 : item.logisticPartnerRefNum,
60
+ fromAddress: {
61
+ heading: 'From Address:',
62
+ addressLine1: item === null || item === void 0 ? void 0 : item.origAddressFullName,
63
+ addressLine2: showNewLineChar(item === null || item === void 0 ? void 0 : item.originAddressLine1),
64
+ pincode: item === null || item === void 0 ? void 0 : item.originPincode,
65
+ city: item === null || item === void 0 ? void 0 : item.originDistrict,
66
+ landmark: item === null || item === void 0 ? void 0 : item.originLandmark,
67
+ state: item === null || item === void 0 ? void 0 : item.originState
68
+ },
69
+ toAddress: {
70
+ heading: 'To Address:',
71
+ addressLine1: item === null || item === void 0 ? void 0 : item.destAddressFullName,
72
+ addressLine2: showNewLineChar(item === null || item === void 0 ? void 0 : item.destAddressLine1),
73
+ pincode: item === null || item === void 0 ? void 0 : item.destPincode,
74
+ city: item === null || item === void 0 ? void 0 : item.destDistrict,
75
+ landmark: item === null || item === void 0 ? void 0 : item.destLandmark,
76
+ state: item === null || item === void 0 ? void 0 : item.destState
77
+ },
78
+ tableData: (_item$history = item === null || item === void 0 ? void 0 : item.history) !== null && _item$history !== void 0 ? _item$history : []
79
+ };
80
+ };
81
+ exports.getSingleShipmentHistory = getSingleShipmentHistory;
@@ -0,0 +1,352 @@
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 {
126
+ error,
127
+ data
128
+ } = await editUserClick(editingUserId, userData);
129
+ if (error) {
130
+ showErrorNotification(error);
131
+ } else {
132
+ const updatedUsers = users.map(user => user.id === editingUserId ? _objectSpread(_objectSpread({}, user), userData) : user);
133
+ updateUsers(updatedUsers);
134
+ setEditingUserId(null);
135
+ showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
136
+ // Clear the form fields only if operation was successful
137
+ const clearData = {};
138
+ finalFields.forEach(field => {
139
+ clearData["".concat(fieldName, "_").concat(field.key)] = "";
140
+ });
141
+ form.setFieldsValue(clearData);
142
+ }
143
+ }
144
+ } else if (addingUser) {
145
+ // Add new user
146
+ if (addUserClick) {
147
+ const {
148
+ error,
149
+ data
150
+ } = await addUserClick(userData, misc);
151
+ if (error) {
152
+ showErrorNotification(error);
153
+ } else {
154
+ var _data$data;
155
+ const newUser = _objectSpread({
156
+ id: data === null || data === void 0 || (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.userId
157
+ }, userData);
158
+ const updatedUsers = [...users, newUser];
159
+ updateUsers(updatedUsers);
160
+ setAddingUser(false);
161
+ showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
162
+ // Clear the form fields only if operation was successful
163
+ const clearData = {};
164
+ finalFields.forEach(field => {
165
+ clearData["".concat(fieldName, "_").concat(field.key)] = "";
166
+ });
167
+ form.setFieldsValue(clearData);
168
+ }
169
+ }
170
+ }
171
+ } catch (errorInfo) {
172
+ console.log("Form validation failed:", errorInfo);
173
+ }
174
+ };
175
+ const handleCancel = () => {
176
+ setEditingUserId(null);
177
+ setAddingUser(false);
178
+
179
+ // Clear only the user management form fields
180
+ const clearData = {};
181
+ finalFields.forEach(field => {
182
+ clearData["".concat(fieldName, "_").concat(field.key)] = "";
183
+ });
184
+ form.setFieldsValue(clearData);
185
+ };
186
+ const handleDelete = userId => {
187
+ setUserToDelete(userId);
188
+ setDeleteModalVisible(true);
189
+ };
190
+ const confirmDelete = async () => {
191
+ if (userToDelete) {
192
+ if (deleteUserClick) {
193
+ const {
194
+ error,
195
+ data
196
+ } = await deleteUserClick(userToDelete);
197
+ if (error) {
198
+ showErrorNotification(error);
199
+ setDeleteModalVisible(false);
200
+ } else {
201
+ const updatedUsers = users.filter(user => user.id !== userToDelete);
202
+ updateUsers(updatedUsers);
203
+ setDeleteModalVisible(false);
204
+ showSuccessNotification(data === null || data === void 0 ? void 0 : data.message);
205
+ setUserToDelete(null);
206
+ }
207
+ }
208
+ }
209
+ };
210
+ const cancelDelete = () => {
211
+ setDeleteModalVisible(false);
212
+ setUserToDelete(null);
213
+ };
214
+ const canDelete = users.length > 1;
215
+ const isEditing = editingUserId !== null || addingUser;
216
+ const renderFormField = field => {
217
+ var _field$options;
218
+ const fieldNameWithPrefix = "".concat(fieldName, "_").concat(field.key);
219
+ switch (field.widget || field.type) {
220
+ case "input":
221
+ return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
222
+ name: fieldNameWithPrefix,
223
+ label: field.label,
224
+ rules: field.rules,
225
+ style: {
226
+ marginBottom: 16
227
+ }
228
+ }, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
229
+ placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
230
+ }));
231
+ case "select":
232
+ return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
233
+ name: fieldNameWithPrefix,
234
+ label: field.label,
235
+ rules: field.rules,
236
+ style: {
237
+ marginBottom: 16
238
+ }
239
+ }, /*#__PURE__*/_react.default.createElement(_CustomSelect.default, {
240
+ placeholder: field.placeholder || "Select ".concat(field.label.toLowerCase()),
241
+ options: ((_field$options = field.options) === null || _field$options === void 0 ? void 0 : _field$options.map(option => ({
242
+ value: option.value,
243
+ label: option.label
244
+ }))) || []
245
+ }));
246
+ default:
247
+ return /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
248
+ name: fieldNameWithPrefix,
249
+ label: field.label,
250
+ rules: field.rules,
251
+ style: {
252
+ marginBottom: 16
253
+ }
254
+ }, /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
255
+ placeholder: field.placeholder || "Enter ".concat(field.label.toLowerCase())
256
+ }));
257
+ }
258
+ };
259
+ return /*#__PURE__*/_react.default.createElement("div", null, users && users.length > 0 && users.map(user => /*#__PURE__*/_react.default.createElement(_styles.UserItem, {
260
+ key: user.id
261
+ }, editingUserId === user.id ? /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
262
+ className: "form-row"
263
+ }, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
264
+ key: field.key,
265
+ className: "form-field"
266
+ }, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
267
+ className: "form-actions"
268
+ }, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
269
+ type: "danger-secondary",
270
+ onClick: handleCancel,
271
+ label: "Cancel"
272
+ }), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
273
+ type: "secondary",
274
+ onClick: handleSave,
275
+ label: "Save"
276
+ })))) : /*#__PURE__*/_react.default.createElement(_styles.UserInfo, null, /*#__PURE__*/_react.default.createElement("div", {
277
+ className: "user-details"
278
+ }, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
279
+ key: field.key
280
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
281
+ typography: index === 0 ? "type-t2-700" : "type-b1-400",
282
+ color: index === 0 ? "primary-content" : "secondary-content"
283
+ }, user[field.key])))), /*#__PURE__*/_react.default.createElement("div", {
284
+ className: "user-actions"
285
+ }, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
286
+ type: "text-only",
287
+ onClick: () => handleEdit(user),
288
+ disabled: disabled || isEditing,
289
+ iconConfig: {
290
+ icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
291
+ icon: _EditOutlined.default,
292
+ size: 64,
293
+ color: "primary"
294
+ }),
295
+ size: 32,
296
+ position: "right"
297
+ }
298
+ }), canDelete && /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
299
+ type: "text-only",
300
+ onClick: () => handleDelete(user.id),
301
+ disabled: disabled || isEditing,
302
+ iconConfig: {
303
+ icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
304
+ icon: _DeleteOutlineOutlined.default,
305
+ color: "negative"
306
+ }),
307
+ color: "negative",
308
+ size: 32,
309
+ position: "right"
310
+ }
311
+ }))))), addingUser && /*#__PURE__*/_react.default.createElement(_styles.EditFormCard, null, /*#__PURE__*/_react.default.createElement(_styles.EditForm, null, /*#__PURE__*/_react.default.createElement("div", {
312
+ className: "form-row"
313
+ }, finalFields.map((field, index) => /*#__PURE__*/_react.default.createElement("div", {
314
+ key: field.key,
315
+ className: "form-field"
316
+ }, renderFormField(field)))), /*#__PURE__*/_react.default.createElement("div", {
317
+ className: "form-actions"
318
+ }, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
319
+ type: "danger-secondary",
320
+ onClick: handleCancel,
321
+ label: "Cancel"
322
+ }), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
323
+ type: "primary",
324
+ onClick: handleSave,
325
+ label: "Save"
326
+ })))), !isEditing && /*#__PURE__*/_react.default.createElement(_styles.AddUserButtonContainer, null, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
327
+ type: "secondary",
328
+ onClick: handleAdd,
329
+ disabled: disabled,
330
+ label: "Add Another User"
331
+ })), deleteModalVisible && /*#__PURE__*/_react.default.createElement(_CustomModal.default, {
332
+ imgSrc: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.imgSrc,
333
+ open: deleteModalVisible,
334
+ onCancel: cancelDelete,
335
+ title: customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.heading,
336
+ buttonConfig: [{
337
+ callback: () => {
338
+ cancelDelete();
339
+ },
340
+ label: "Cancel",
341
+ type: "secondary"
342
+ }, {
343
+ callback: () => {
344
+ confirmDelete();
345
+ },
346
+ label: "Delete",
347
+ type: "danger-primary"
348
+ }]
349
+ }, customPageModal === null || customPageModal === void 0 ? void 0 : customPageModal.subHeading), /*#__PURE__*/_react.default.createElement(_CustomNotification.default, {
350
+ ref: notificationRef
351
+ }));
352
+ }
@@ -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.41",
3
+ "version": "1.0.1-stage.410",
4
4
  "private": false,
5
5
  "description": "Reusable components",
6
6
  "main": "build/index.js",
@@ -22,8 +22,10 @@
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",