oa-componentbook 1.0.1-stage.45 → 1.0.1-stage.451

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 (146) hide show
  1. package/build/components/oa-component-accordion/Accordion.js +147 -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-document-details-panel/DocumentDetailsPanel.js +154 -0
  9. package/build/components/oa-component-drawer/CustomDrawer.js +2 -0
  10. package/build/components/oa-component-dropdown/CustomDropdown.js +16 -4
  11. package/build/components/oa-component-icons/MaterialIcon.js +1 -1
  12. package/build/components/oa-component-info/CustomInfo.js +9 -4
  13. package/build/components/oa-component-info/styles.js +3 -3
  14. package/build/components/oa-component-modal/CustomModal.js +59 -48
  15. package/build/components/oa-component-modal/styles.js +3 -2
  16. package/build/components/oa-component-pagination/CustomPagination.js +111 -0
  17. package/build/components/oa-component-pagination/styles.js +12 -0
  18. package/build/components/oa-component-progress-bar/CustomProgressBar.js +8 -4
  19. package/build/components/oa-component-select/CustomSelect.js +130 -56
  20. package/build/components/oa-component-steps/CustomSteps.js +117 -0
  21. package/build/components/oa-component-steps/styles.js +12 -0
  22. package/build/components/oa-component-table/CustomTable.js +28 -5
  23. package/build/components/oa-component-table/CustomTableV1.js +613 -0
  24. package/build/components/oa-component-table/styles.js +1 -1
  25. package/build/components/oa-component-table/stylesV1.js +19 -0
  26. package/build/components/oa-component-table-with-search-and-filter/TableWithSearchAndFilter.js +469 -0
  27. package/build/components/oa-component-table-with-search-and-filter/styles.js +23 -0
  28. package/build/components/oa-component-tabs/CustomTabs.js +1 -1
  29. package/build/components/oa-component-tag/CustomTag.js +29 -11
  30. package/build/components/oa-component-tag/styles.js +30 -3
  31. package/build/components/oa-component-textarea/CustomTextArea.js +161 -0
  32. package/build/components/oa-component-textarea/constants.js +39 -0
  33. package/build/components/oa-component-textarea/styles.js +12 -3
  34. package/build/components/oa-component-tooltip/CustomTooltip.js +8 -4
  35. package/build/components/oa-component-upload/CustomUpload.js +129 -42
  36. package/build/components/oa-component-viewer/CustomViewer.js +17 -11
  37. package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +367 -0
  38. package/build/dev/oa-component-document-viewer/styles.js +12 -0
  39. package/build/dev/oa-component-upload/CustomUpload.js +116 -29
  40. package/build/dev/oa-component-upload/styles.js +2 -2
  41. package/build/dev/oa-widget-document-modal/DocumentSideModal.js +166 -0
  42. package/build/dev/oa-widget-document-modal/styles.js +12 -0
  43. package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +200 -0
  44. package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
  45. package/build/dev/oa-widget-document-viewer-with-details/DocumentViewerWithDetails.js +123 -0
  46. package/build/global-css/GlobalCss.js +2 -1
  47. package/build/global-css/GridLayout.js +1 -1
  48. package/build/global-css/commonStyles.js +11 -0
  49. package/build/images/Car.png +0 -0
  50. package/build/images/TwoWheeler.png +0 -0
  51. package/build/images/astronaut_emptystate.png +0 -0
  52. package/build/images/exportGrp01.png +0 -0
  53. package/build/images/exportGrp02.png +0 -0
  54. package/build/images/exportGrp03.png +0 -0
  55. package/build/images/outOfStock.png +0 -0
  56. package/build/index.js +131 -5
  57. package/build/layout/DetailDataLayout/DetailDataLayout.js +20 -0
  58. package/build/layout/DetailDataLayout/components/Form.js +22 -0
  59. package/build/layout/DetailDataLayout/components/Header.js +32 -0
  60. package/build/layout/DetailDataLayout/style.css +9 -0
  61. package/build/layout/DetailDataLayout/styles.js +12 -0
  62. package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +403 -0
  63. package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +85 -0
  64. package/build/layout/EntityOverviewLayout/styles.js +13 -0
  65. package/build/layout/GenricLayOut/GenricLayOut.js +2421 -0
  66. package/build/layout/GenricLayOut/components/AppliedFilters.js +90 -0
  67. package/build/layout/GenricLayOut/components/CardList.js +34 -0
  68. package/build/layout/GenricLayOut/components/DropdownSearch.js +48 -0
  69. package/build/layout/GenricLayOut/components/Header.js +74 -0
  70. package/build/layout/GenricLayOut/components/Modal.js +96 -0
  71. package/build/layout/GenricLayOut/components/ProfileSection.js +219 -0
  72. package/build/layout/GenricLayOut/components/Search.js +51 -0
  73. package/build/layout/GenricLayOut/components/StaticFilter.css +73 -0
  74. package/build/layout/GenricLayOut/components/StaticFilter.js +37 -0
  75. package/build/layout/GenricLayOut/reducer/layoutReducer.js +310 -0
  76. package/build/layout/GenricLayOut/resolver/staticConfigResolver.js +98 -0
  77. package/build/layout/GenricLayOut/styles.js +42 -0
  78. package/build/utils/download-file.js +23 -0
  79. package/build/widgets/oa-form-widget/FormWidget.js +577 -0
  80. package/build/widgets/oa-form-widget/FormWidgetStyle.js +18 -0
  81. package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +80 -16
  82. package/build/widgets/oa-widget-add-spare-part/AddSparePartWidget.js +50 -7
  83. package/build/widgets/oa-widget-address/AddressWidget.js +12 -17
  84. package/build/widgets/oa-widget-approval/ApprovalWidget.js +19 -11
  85. package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +492 -0
  86. package/build/widgets/oa-widget-approval/styles.js +2 -2
  87. package/build/widgets/oa-widget-chat/ChatWidget.js +5 -5
  88. package/build/widgets/oa-widget-close-claim/CloseClaimWidget.js +17 -5
  89. package/build/widgets/oa-widget-collapsible-key-value/CollapsibleKeyValueWidget.js +396 -0
  90. package/build/widgets/oa-widget-collapsible-key-value/styles.js +16 -0
  91. package/build/widgets/oa-widget-content-panel/ContentPanel.js +82 -0
  92. package/build/widgets/oa-widget-content-panel/styles.js +12 -0
  93. package/build/widgets/oa-widget-customer-rating-card/CustomerRatingCard.js +5 -5
  94. package/build/widgets/oa-widget-detailcard/styles.js +1 -1
  95. package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -9
  96. package/build/widgets/oa-widget-dropdown-search-input/DropdownSearchInput.js +53 -19
  97. package/build/widgets/oa-widget-dropdown-search-input/styles.js +1 -1
  98. package/build/widgets/oa-widget-guide/GuideWidget.js +70 -0
  99. package/build/widgets/oa-widget-guide/GuideWidgetStyle.js +12 -0
  100. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationDeleteBiker.js +24 -0
  101. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModal.js +34 -0
  102. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModalStyle.js +13 -0
  103. package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +74 -48
  104. package/build/widgets/oa-widget-image-carousel/styles.js +16 -5
  105. package/build/widgets/oa-widget-image-gallery/FullscreenViewer.js +169 -0
  106. package/build/widgets/oa-widget-image-gallery/ImageGallery.js +87 -0
  107. package/build/widgets/oa-widget-image-gallery/ThumbnailGrid.js +146 -0
  108. package/build/widgets/oa-widget-image-gallery/imageCache.js +15 -0
  109. package/build/widgets/oa-widget-image-gallery/imageGalleryStyle.js +16 -0
  110. package/build/widgets/oa-widget-item-info-card/InfoCardListWidget.js +60 -0
  111. package/build/widgets/oa-widget-item-info-card/ItemInfoCardWidget.js +83 -0
  112. package/build/widgets/oa-widget-item-info-card/styles.css +50 -0
  113. package/build/widgets/oa-widget-item-info-card/styles.js +14 -0
  114. package/build/widgets/oa-widget-key-value/KeyValueWidget.js +46 -12
  115. package/build/widgets/oa-widget-key-value/styles.js +1 -1
  116. package/build/widgets/oa-widget-kpi/KPICardWidget.js +86 -0
  117. package/build/widgets/oa-widget-kpi/styles.js +12 -0
  118. package/build/widgets/oa-widget-map-base-location/AddressDetails.js +21 -7
  119. package/build/widgets/oa-widget-map-base-location/AddressForm.js +32 -5
  120. package/build/widgets/oa-widget-map-base-location/MapBaseLocation.js +9 -3
  121. package/build/widgets/oa-widget-map-base-location/MapComponent.js +17 -2
  122. package/build/widgets/oa-widget-membershipcard/MembershipCard.js +14 -3
  123. package/build/widgets/oa-widget-membershipcard/styles.js +1 -1
  124. package/build/widgets/oa-widget-notes/NotesWidget.js +32 -30
  125. package/build/widgets/oa-widget-notes/styles.js +4 -3
  126. package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +165 -0
  127. package/build/widgets/oa-widget-profile-data/styles.js +13 -0
  128. package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +362 -0
  129. package/build/widgets/oa-widget-progressive-steps/styles.js +12 -0
  130. package/build/widgets/oa-widget-reimbursement-breakup/ReimbursementBreakupWidget.js +18 -9
  131. package/build/widgets/oa-widget-reimbursement-breakup/styles.js +1 -1
  132. package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +164 -0
  133. package/build/widgets/oa-widget-select-list-item-modal/SelectListItemModal.js +91 -0
  134. package/build/widgets/oa-widget-sidebar/SidebarWidget.js +175 -0
  135. package/build/widgets/oa-widget-sidebar/components/Header.js +33 -0
  136. package/build/widgets/oa-widget-sidebar/styles.js +13 -0
  137. package/build/widgets/oa-widget-spare-part/SparePartsWidget.js +63 -35
  138. package/build/widgets/oa-widget-track-shipment/TrackShipmentWidget.js +28 -6
  139. package/build/widgets/oa-widget-track-shipment-list/TrackShipmentWidgetList.js +103 -0
  140. package/build/widgets/oa-widget-track-shipment-list/fn.js +81 -0
  141. package/build/widgets/oa-widget-user-management/UserManagementWidget.js +407 -0
  142. package/build/widgets/oa-widget-user-management/styles.js +15 -0
  143. package/package.json +3 -1
  144. package/build/components/oa-component-textarea/TextArea.js +0 -74
  145. package/build/dev/oa-widget-track-shipment/TrackShipmentWidget.js +0 -195
  146. /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,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.45",
3
+ "version": "1.0.1-stage.451",
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",