oa-componentbook 1.0.1-stage.6 → 1.0.1-stage.61

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 (43) hide show
  1. package/build/components/oa-component-accordion/Accordion.js +16 -5
  2. package/build/components/oa-component-feedback-form/FeedbackForm.js +75 -0
  3. package/build/components/oa-component-feedback-tooltip/FeedbackTooltip.js +69 -0
  4. package/build/components/oa-component-info/CustomInfo.js +9 -4
  5. package/build/components/oa-component-info/styles.js +3 -3
  6. package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +276 -0
  7. package/build/dev/oa-component-document-viewer/styles.js +12 -0
  8. package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +119 -0
  9. package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
  10. package/build/global-css/GlobalCss.js +2 -1
  11. package/build/global-css/GridLayout.js +1 -1
  12. package/build/global-css/commonStyles.js +11 -0
  13. package/build/images/oaChat.svg +5 -0
  14. package/build/index.js +63 -0
  15. package/build/layout/paymentAndConsent/CancelScreen.js +46 -0
  16. package/build/layout/paymentAndConsent/ConsentCard.js +68 -0
  17. package/build/layout/paymentAndConsent/DetailsCard.js +75 -0
  18. package/build/layout/paymentAndConsent/DetailsList.js +38 -0
  19. package/build/layout/paymentAndConsent/Header.js +33 -0
  20. package/build/layout/paymentAndConsent/InProgressScreen.js +46 -0
  21. package/build/layout/paymentAndConsent/Loader.js +21 -0
  22. package/build/layout/paymentAndConsent/Modal.js +28 -0
  23. package/build/layout/paymentAndConsent/PaymentAndConsent.js +22 -0
  24. package/build/layout/paymentAndConsent/PaymentCard.js +83 -0
  25. package/build/layout/paymentAndConsent/Section.js +34 -0
  26. package/build/layout/paymentAndConsent/SuccessScreen.js +46 -0
  27. package/build/layout/paymentAndConsent/TimeLineCard.js +28 -0
  28. package/build/layout/paymentAndConsent/TncList.js +32 -0
  29. package/build/layout/paymentAndConsent/style.js +12 -0
  30. package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +17 -11
  31. package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +269 -0
  32. package/build/widgets/oa-widget-approval/styles.js +2 -2
  33. package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -6
  34. package/build/widgets/oa-widget-feedback/FeedbackWidget.js +83 -0
  35. package/build/widgets/oa-widget-feedback/styles.js +13 -0
  36. package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +257 -0
  37. package/build/widgets/oa-widget-image-carousel/styles.js +23 -0
  38. package/build/widgets/oa-widget-notes/NotesWidget.js +2 -1
  39. package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +161 -0
  40. package/build/widgets/oa-widget-track-shipment/TrackShipmentWidget.js +4 -2
  41. package/build/widgets/oa-widget-track-shipment-list/TrackShipmentWidgetList.js +77 -38
  42. package/build/widgets/oa-widget-track-shipment-list/fn.js +8 -7
  43. package/package.json +6 -3
@@ -0,0 +1,257 @@
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 = void 0;
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 _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _antd = require("antd");
14
+ var _icons = require("@ant-design/icons");
15
+ var _TouchAppRounded = _interopRequireDefault(require("@material-ui/icons/TouchAppRounded"));
16
+ var _reactZoomPanPinch = require("react-zoom-pan-pinch");
17
+ var _Fullscreen = _interopRequireDefault(require("@material-ui/icons/Fullscreen"));
18
+ var _ArrowForwardRounded = _interopRequireDefault(require("@material-ui/icons/ArrowForwardRounded"));
19
+ var _ArrowBackRounded = _interopRequireDefault(require("@material-ui/icons/ArrowBackRounded"));
20
+ var _CustomButton = _interopRequireDefault(require("../../components/oa-component-button/CustomButton"));
21
+ var _CustomModal = _interopRequireDefault(require("../../components/oa-component-modal/CustomModal"));
22
+ var _styles = require("./styles");
23
+ var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
24
+ var _CustomLoader = _interopRequireDefault(require("../../components/oa-component-loader/CustomLoader"));
25
+ var _CustomDrawer = _interopRequireDefault(require("../../components/oa-component-drawer/CustomDrawer"));
26
+ var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
27
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+ 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); }
29
+ 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; }
30
+ 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; }
31
+ 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; }
32
+ 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; }
33
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
34
+ 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); }
35
+ /**
36
+ * ImageCarouselWidget is a component that displays images in a carousel and allows zooming and switching between original and heatmap images.
37
+ * @param {object} props The props passed to the component
38
+ * @param {array} [props.images={}] An object with keys representing image types and values as arrays of images
39
+ * @param {boolean} [props.visible=false] Whether the modal is visible
40
+ * @param {function} [props.onClose] A function that is called when the modal is closed
41
+ * @returns {object} A React component
42
+ */
43
+ function ImageCarouselWidget(_ref) {
44
+ let {
45
+ images = [],
46
+ visible,
47
+ onClose,
48
+ headingSuffixText,
49
+ typeToNamemapping,
50
+ s3DownloadApiUrl,
51
+ initialImageType
52
+ } = _ref;
53
+ const [currentIndex, setCurrentIndex] = (0, _react.useState)(0);
54
+ const [showHeatmap, setShowHeatmap] = (0, _react.useState)(initialImageType === 'heatmap');
55
+ const [fullscreen, setFullscreen] = (0, _react.useState)(false);
56
+ const [imageUrls, setImageUrls] = (0, _react.useState)([]);
57
+ const [loading, setLoading] = (0, _react.useState)(false);
58
+ const carouselRef = _react.default.useRef(null);
59
+
60
+ // Fetch image URL by UUID
61
+ const fetchImageUrl = uuid => fetch("".concat(s3DownloadApiUrl).concat(uuid)).then(response => response.json()).then(data => {
62
+ var _data$data;
63
+ return data === null || data === void 0 || (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.downloadUrl;
64
+ }) // Assuming the API response has `src` key for the image URL
65
+ .catch(error => {
66
+ console.error('Error fetching image URL:', error);
67
+ return ''; // Return an empty string if there's an error
68
+ });
69
+
70
+ // Fetch image URLs for all grouped images
71
+ (0, _react.useEffect)(() => {
72
+ const fetchImages = async () => {
73
+ setLoading(true);
74
+ const urls = await Promise.all(images.map(async img => {
75
+ const imageSrcUrl = await fetchImageUrl(showHeatmap ? img.heatmapDocId : img.originalDocId); // Fetch URL for the image
76
+ return _objectSpread(_objectSpread({}, img), showHeatmap ? {
77
+ heatmapImageUrl: imageSrcUrl
78
+ } : {
79
+ originalImageUrl: imageSrcUrl
80
+ });
81
+ }));
82
+ console.log(urls);
83
+ setImageUrls(urls);
84
+ setLoading(false);
85
+ };
86
+ fetchImages();
87
+ }, [images === null || images === void 0 ? void 0 : images.length]);
88
+
89
+ // Enter fullscreen for the whole document
90
+ const enterFullscreen = () => {
91
+ if (document.documentElement.requestFullscreen) {
92
+ document.documentElement.requestFullscreen();
93
+ } else if (document.documentElement.mozRequestFullScreen) {
94
+ // Firefox
95
+ document.documentElement.mozRequestFullScreen();
96
+ } else if (document.documentElement.webkitRequestFullscreen) {
97
+ // Chrome, Safari, Opera
98
+ document.documentElement.webkitRequestFullscreen();
99
+ } else if (document.documentElement.msRequestFullscreen) {
100
+ // IE/Edge
101
+ document.documentElement.msRequestFullscreen();
102
+ }
103
+ setFullscreen(true);
104
+ };
105
+
106
+ // Exit fullscreen
107
+ const exitFullscreen = () => {
108
+ if (document.exitFullscreen) {
109
+ document.exitFullscreen();
110
+ } else if (document.mozCancelFullScreen) {
111
+ // Firefox
112
+ document.mozCancelFullScreen();
113
+ } else if (document.webkitExitFullscreen) {
114
+ // Chrome, Safari and Opera
115
+ document.webkitExitFullscreen();
116
+ } else if (document.msExitFullscreen) {
117
+ // IE/Edge
118
+ document.msExitFullscreen();
119
+ }
120
+ setFullscreen(false);
121
+ };
122
+ const handleFullscreenToggle = () => {
123
+ if (fullscreen) {
124
+ exitFullscreen();
125
+ } else {
126
+ enterFullscreen();
127
+ }
128
+ };
129
+ const handleImageChange = newIndex => {
130
+ setCurrentIndex(newIndex);
131
+ };
132
+ const handleShowHeatmap = async () => {
133
+ const currentViewType = !showHeatmap; // Toggle the current view mode (show heatmap or not)
134
+ setLoading(true);
135
+
136
+ // Fetching URLs for all images based on the new view mode
137
+ const updatedImages = await Promise.all(imageUrls.map(async img => {
138
+ var _img$heatmapImageUrl, _img$originalImageUrl;
139
+ // Check if the image is already fetched
140
+ const isImageAlreadyFetched = currentViewType && ((_img$heatmapImageUrl = img.heatmapImageUrl) === null || _img$heatmapImageUrl === void 0 ? void 0 : _img$heatmapImageUrl.length) > 0 || !currentViewType && ((_img$originalImageUrl = img.originalImageUrl) === null || _img$originalImageUrl === void 0 ? void 0 : _img$originalImageUrl.length) > 0;
141
+ // Fetch the image URL only if it's not already fetched
142
+ if (!isImageAlreadyFetched) {
143
+ const imageSrcUrl = await fetchImageUrl(currentViewType ? img.heatmapDocId : img.originalDocId);
144
+ // Return the updated image object with the appropriate URL
145
+ return _objectSpread(_objectSpread({}, img), currentViewType ? {
146
+ heatmapImageUrl: imageSrcUrl
147
+ } : {
148
+ originalImageUrl: imageSrcUrl
149
+ });
150
+ }
151
+ // If image is already fetched, return it as is
152
+ return img;
153
+ }));
154
+
155
+ // Update state with the new image URLs
156
+ setImageUrls(updatedImages);
157
+ setLoading(false);
158
+ setShowHeatmap(currentViewType); // Toggle the view mode
159
+ };
160
+ const currentImage = imageUrls[currentIndex];
161
+
162
+ // Conditionally hide the buttons when on the first or last image
163
+ const isFirstImage = currentIndex === 0;
164
+ const isLastImage = currentIndex === imageUrls.length - 1;
165
+ return /*#__PURE__*/_react.default.createElement(_styles.ImageCarouselModalStyle, null, /*#__PURE__*/_react.default.createElement(_styles.GlobalStyleForImageCarousel, null), /*#__PURE__*/_react.default.createElement(_CustomModal.default, {
166
+ open: visible,
167
+ onCancel: onClose,
168
+ footer: null,
169
+ className: fullscreen ? 'fullscreenModal imageCarouselModalStyle' : 'imageCarouselModalStyle'
170
+ }, /*#__PURE__*/_react.default.createElement(_CustomLoader.default, {
171
+ spinning: loading
172
+ }, !fullscreen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
173
+ className: "type-t2-700",
174
+ color: "primary-content"
175
+ }, typeToNamemapping && typeToNamemapping[currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType] ? typeToNamemapping[currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType] : currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType, ' ', headingSuffixText), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
176
+ className: "type-b3-400",
177
+ color: "negative"
178
+ }, currentImage === null || currentImage === void 0 ? void 0 : currentImage.rejectReason)), /*#__PURE__*/_react.default.createElement("div", {
179
+ className: "margin-top-24 margin-bottom-12"
180
+ }, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
181
+ onClick: handleShowHeatmap,
182
+ type: "text-only",
183
+ label: showHeatmap ? 'View Original Image' : 'View Heatmap Image'
184
+ })), /*#__PURE__*/_react.default.createElement(_styles.ImageCarouselModalStyle, null, /*#__PURE__*/_react.default.createElement(_antd.Carousel, {
185
+ ref: carouselRef,
186
+ afterChange: handleImageChange,
187
+ dots: true,
188
+ infinite: true
189
+ }, imageUrls.map(img => /*#__PURE__*/_react.default.createElement("div", {
190
+ className: "carouselItem",
191
+ key: img.imageType
192
+ }, /*#__PURE__*/_react.default.createElement("div", {
193
+ className: "imageCarouselIconZoom"
194
+ }, /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
195
+ icon: _Fullscreen.default,
196
+ onClick: handleFullscreenToggle
197
+ })), /*#__PURE__*/_react.default.createElement("img", {
198
+ src: showHeatmap ? img.heatmapImageUrl : img.originalImageUrl,
199
+ alt: img.imageType,
200
+ style: {
201
+ width: '100%',
202
+ objectFit: 'contain'
203
+ }
204
+ })))), window.innerWidth > 600 && /*#__PURE__*/_react.default.createElement(_styles.CarouselButtons, null, /*#__PURE__*/_react.default.createElement("div", {
205
+ className: "sliderArrowSection"
206
+ }, !isFirstImage && /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
207
+ color: "primary-content",
208
+ className: "leftArrow",
209
+ size: 24,
210
+ icon: _ArrowBackRounded.default,
211
+ onClick: () => carouselRef.current.prev()
212
+ }), !isLastImage && /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
213
+ color: "primary-content",
214
+ className: "rightArrow",
215
+ size: 24,
216
+ icon: _ArrowForwardRounded.default,
217
+ onClick: () => carouselRef.current.next()
218
+ }))))), fullscreen && /*#__PURE__*/_react.default.createElement(_styles.FullscreenZoom, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
219
+ className: "type-t2-700",
220
+ color: "primary-background"
221
+ }, typeToNamemapping && typeToNamemapping[currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType] ? typeToNamemapping[currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType] : currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType, ' ', headingSuffixText), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
222
+ className: "type-b3-400",
223
+ color: "primary-background"
224
+ }, currentImage === null || currentImage === void 0 ? void 0 : currentImage.rejectReason)), /*#__PURE__*/_react.default.createElement(_styles.CloseButtonStyle, null, /*#__PURE__*/_react.default.createElement(_icons.CloseOutlined, {
225
+ onClick: handleFullscreenToggle
226
+ })), /*#__PURE__*/_react.default.createElement(_styles.ZoomImgBox, null, /*#__PURE__*/_react.default.createElement(_reactZoomPanPinch.TransformWrapper, null, /*#__PURE__*/_react.default.createElement(_reactZoomPanPinch.TransformComponent, null, /*#__PURE__*/_react.default.createElement("img", {
227
+ src: showHeatmap ? currentImage === null || currentImage === void 0 ? void 0 : currentImage.heatmapImageUrl : currentImage === null || currentImage === void 0 ? void 0 : currentImage.originalImageUrl,
228
+ alt: currentImage === null || currentImage === void 0 ? void 0 : currentImage.imageType
229
+ })))), /*#__PURE__*/_react.default.createElement("div", {
230
+ className: "pinchZoom"
231
+ }, /*#__PURE__*/_react.default.createElement("div", {
232
+ className: "margin-right-16"
233
+ }, /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
234
+ icon: _TouchAppRounded.default,
235
+ size: 20,
236
+ color: "primary-background"
237
+ })), /*#__PURE__*/_react.default.createElement(_Typography.default, {
238
+ className: "type-b2-400",
239
+ color: "primary-background"
240
+ }, "Pinch in/out to zoom"))))));
241
+ }
242
+ ImageCarouselWidget.propTypes = {
243
+ images: _propTypes.default.array.isRequired,
244
+ visible: _propTypes.default.bool.isRequired,
245
+ onClose: _propTypes.default.func.isRequired,
246
+ headingSuffixText: _propTypes.default.string,
247
+ typeToNamemapping: _propTypes.default.object,
248
+ s3DownloadApiUrl: _propTypes.default.string,
249
+ initialImageType: _propTypes.default.string
250
+ };
251
+ ImageCarouselWidget.defaultProps = {
252
+ headingSuffixText: 'Damage',
253
+ typeToNamemapping: {},
254
+ s3DownloadApiUrl: '',
255
+ initialImageType: 'heatmap'
256
+ };
257
+ var _default = exports.default = ImageCarouselWidget;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ require("core-js/modules/web.dom-collections.iterator.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.ZoomImgBox = exports.PinchZoom = exports.ImageCarouselWidgetStyle = exports.ImageCarouselModalStyle = exports.GlobalStyleForImageCarousel = exports.FullscreenZoom = exports.CloseButtonStyle = exports.CarouselStyle = exports.CarouselButtons = void 0;
9
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
10
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
11
+ 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); }
12
+ 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; }
13
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
14
+ var _default = exports.default = {};
15
+ const ImageCarouselWidgetStyle = exports.ImageCarouselWidgetStyle = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\n\n\n"])));
16
+ const CarouselStyle = exports.CarouselStyle = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\n"])));
17
+ const ZoomImgBox = exports.ZoomImgBox = _styledComponents.default.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\nheight: calc(100vh - 150px);\n display: flex;\n align-items: center;\n justify-content: center; margin-bottom: 12px;\n\n"])));
18
+ const PinchZoom = exports.PinchZoom = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
19
+ const CloseButtonStyle = exports.CloseButtonStyle = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n background: #fff;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: -12px;\n right: 0;\n cursor: pointer\n"])));
20
+ const FullscreenZoom = exports.FullscreenZoom = _styledComponents.default.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n .pinchZoom{ \n display: flex;\n justify-content: center;\n align-items: center;\n\n .closeBtn{background: #fff;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: -12px;\n right: 0;\n cursor: pointer;\n}\n}\n"])));
21
+ const ImageCarouselModalStyle = exports.ImageCarouselModalStyle = _styledComponents.default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n\n.ant-carousel{ background:#F6F6F6; max-width:550px; padding:24px 48px 56px 48px; border-radius:16px;}\n\n\n\n.ant-carousel .slick-dots li {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n margin-inline: 4px;\n padding: 0;\n text-align: center;\n text-indent: -999px;\n vertical-align: top;\n}\n\n.ant-carousel .slick-dots li button {\n width: 10px;\n height: 10px;\n background: #959595;\n border: 0;\n opacity: 1;\n border-radius: 50%;\n}\n\n.ant-carousel .slick-dots li.slick-active button {background: #014FC5 !important;}\n.carouselItem{ display: flex !important;\n align-items: center;\n justify-content: center;}\n\n\n @media only screen and (max-width: 600px) {\n .imageCarouselIconZoom{display:flex !important;}\n .ant-carousel{ background: no-repeat;\n max-width: none;\n padding: 0;\n border-radius: 0;}\n\n}\n\n\n\n.imageCarouselIconZoom{background: #fff; display: none;\n border-radius: 4px;\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center; right: 8px;\n position: absolute;\n top: 8px; z-index:9;\n}\n.imageCarouselIconZoom svg{font-size:20px !important; margin-top:3px;}\n.imageCarouselIconZoom button{ height: auto;\n line-height: normal;}\n.carouselItem {position: relative;}\n.carouselItem img{border-radius:8px;}\n\n.ant-carousel .slick-dots-bottom { bottom: -30px;}\n.carouselItem{height:100%};\n.slick-slide > div{height:100%;}\n.fullscreenModal .ant-modal-close{display:none;}\n.closeBtn{background: #fff;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: -12px;\n right: 0;\n cursor: pointer;}\n\n .zoomImgBox{display:block;}\n\n"])));
22
+ const GlobalStyleForImageCarousel = exports.GlobalStyleForImageCarousel = (0, _styledComponents.createGlobalStyle)(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n\n.imageCarouselModalStyle .ant-modal-body{max-height: none; height:100%;}\n.fullscreenModal .ant-modal-content{background:#000;}\n.fullscreenModal .ant-modal-close{display:none;}\n.ant-modal{ width:auto !important;}\n\n\n@media only screen and (max-width: 600px) {\n .imageCarouselModalStyle .ant-modal-content {top: 0; border-radius: 0px;}\n .slick-slide{height:calc(100vh - 210px) !important; background:#000; border-radius:8px;}\n\n}\n"])));
23
+ const CarouselButtons = exports.CarouselButtons = _styledComponents.default.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n\n.sliderArrowSection{position: absolute;\n top: 57%;\n width: 100%;}\n\n .leftArrow {\n position: absolute;\n left: 6px;\n top: 0;\n}\n .rightArrow{position: absolute;\n right: 6px;\n top: 0;}\n\n\n"])));
@@ -76,7 +76,8 @@ function NotesWidget(_ref) {
76
76
  value: noteInputValue,
77
77
  onChange: event => setNoteInputValue(event.target.value),
78
78
  onBlur: handleBlur,
79
- placeholder: "Type here .."
79
+ placeholder: "Type here ..",
80
+ maxLength: 500
80
81
  });
81
82
  }
82
83
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.assign.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/es.array.includes.js");
9
+ require("core-js/modules/es.string.includes.js");
10
+ require("core-js/modules/es.promise.js");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _antd = require("antd");
15
+ var _CustomDrawer = _interopRequireDefault(require("../../components/oa-component-drawer/CustomDrawer"));
16
+ var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
17
+ var _CustomInfo = _interopRequireDefault(require("../../components/oa-component-info/CustomInfo"));
18
+ var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
19
+ var _CustomUpload = _interopRequireDefault(require("../../dev/oa-component-upload/CustomUpload"));
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function GenericUpload(_ref) {
23
+ var _config$documents;
24
+ let {
25
+ config,
26
+ uploadHandler,
27
+ deleteHandler: _deleteHandler,
28
+ downloadHandler,
29
+ previewHandler,
30
+ visible,
31
+ onClose,
32
+ validationConfig = {
33
+ maxSize: 5,
34
+ allowedTypes: ['image/jpeg', 'image/png', 'image/jpg', 'application/pdf'],
35
+ customValidation: null
36
+ },
37
+ uploadedDocuments,
38
+ showDelete = true,
39
+ showPreview = false,
40
+ form
41
+ } = _ref;
42
+ const validateFile = (file, docTypeId) => {
43
+ const isValidType = validationConfig.allowedTypes.includes(file.type);
44
+ if (!isValidType) {
45
+ form.setFields([{
46
+ name: docTypeId,
47
+ errors: ["Only ".concat(validationConfig.allowedTypes.map(type => type.split('/')[1].toUpperCase()).join('/'), " files are allowed!")]
48
+ }]);
49
+ return false;
50
+ }
51
+ const isValidSize = file.size / 1024 / 1024 < validationConfig.maxSize;
52
+ if (!isValidSize) {
53
+ form.setFields([{
54
+ name: docTypeId,
55
+ errors: ["File must be smaller than ".concat(validationConfig.maxSize, "MB!")]
56
+ }]);
57
+ return false;
58
+ }
59
+ if (validationConfig.customValidation) {
60
+ return validationConfig.customValidation(file, docTypeId);
61
+ }
62
+ return true;
63
+ };
64
+ const handleUpload = async (file, docTypeId, documentId) => {
65
+ if (!validateFile(file, docTypeId)) {
66
+ return null;
67
+ }
68
+ return uploadHandler(file, docTypeId, documentId);
69
+ };
70
+ return /*#__PURE__*/_react.default.createElement(_CustomDrawer.default, {
71
+ title: config.title,
72
+ width: config.width,
73
+ open: visible,
74
+ onClose: onClose,
75
+ buttonConfig: config.buttonConfig
76
+ }, config.systemInfo && /*#__PURE__*/_react.default.createElement("div", {
77
+ className: "margin-bottom-32"
78
+ }, /*#__PURE__*/_react.default.createElement(_CustomInfo.default, _extends({}, config.systemInfo, {
79
+ iconConfig: {
80
+ icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
81
+ icon: _Info.default
82
+ }),
83
+ position: 'left'
84
+ }
85
+ }))), (config === null || config === void 0 ? void 0 : config.heading) && /*#__PURE__*/_react.default.createElement("div", {
86
+ className: "padding-bottom-32"
87
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
88
+ className: "type-t1-500",
89
+ color: "primary-content"
90
+ }, config.heading, ' ')), /*#__PURE__*/_react.default.createElement(_antd.Form, {
91
+ form: form
92
+ }, (_config$documents = config.documents) === null || _config$documents === void 0 ? void 0 : _config$documents.map(item => /*#__PURE__*/_react.default.createElement("div", {
93
+ key: item.docTypeId
94
+ }, /*#__PURE__*/_react.default.createElement("div", {
95
+ className: "padding-bottom-4"
96
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
97
+ typography: "type-b2-500",
98
+ color: "primary-content"
99
+ }, item === null || item === void 0 ? void 0 : item.docName)), /*#__PURE__*/_react.default.createElement(_CustomUpload.default, {
100
+ handleCustomOnChange: (file, status) => handleUpload(file, item.docTypeId, item.documentId),
101
+ formName: item.docTypeId,
102
+ uploadedDocuments: uploadedDocuments && uploadedDocuments[item.docTypeId] ? [uploadedDocuments[item.docTypeId]] : [],
103
+ deleteHandler: selectedFile => _deleteHandler(item.docTypeId),
104
+ downloadCallback: file => downloadHandler(item.docTypeId),
105
+ getPreview: previewHandler || (() => {}),
106
+ showDelete: showDelete,
107
+ showPreview: showPreview,
108
+ accept: validationConfig.allowedTypes.join(', '),
109
+ docName: item.docName,
110
+ isMandatory: false
111
+ })))));
112
+ }
113
+ GenericUpload.propTypes = {
114
+ config: _propTypes.default.shape({
115
+ title: _propTypes.default.string.isRequired,
116
+ width: _propTypes.default.number,
117
+ buttonConfig: _propTypes.default.arrayOf(_propTypes.default.shape({
118
+ callback: _propTypes.default.func,
119
+ label: _propTypes.default.string,
120
+ type: _propTypes.default.string
121
+ })),
122
+ systemInfo: _propTypes.default.shape({
123
+ title: _propTypes.default.string,
124
+ color: _propTypes.default.string,
125
+ description: _propTypes.default.node
126
+ }),
127
+ heading: _propTypes.default.string,
128
+ documents: _propTypes.default.arrayOf(_propTypes.default.shape({
129
+ title: _propTypes.default.string,
130
+ docTypeId: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
131
+ docName: _propTypes.default.string
132
+ }))
133
+ }).isRequired,
134
+ uploadHandler: _propTypes.default.func.isRequired,
135
+ deleteHandler: _propTypes.default.func.isRequired,
136
+ downloadHandler: _propTypes.default.func.isRequired,
137
+ previewHandler: _propTypes.default.func,
138
+ validationConfig: _propTypes.default.shape({
139
+ maxSize: _propTypes.default.number,
140
+ allowedTypes: _propTypes.default.arrayOf(_propTypes.default.string),
141
+ customValidation: _propTypes.default.func
142
+ }),
143
+ uploadedDocuments: _propTypes.default.object,
144
+ showDelete: _propTypes.default.bool,
145
+ showPreview: _propTypes.default.bool,
146
+ form: _propTypes.default.object.isRequired,
147
+ visible: _propTypes.default.bool.isRequired,
148
+ onClose: _propTypes.default.func.isRequired
149
+ };
150
+ GenericUpload.defaultProps = {
151
+ previewHandler: () => {},
152
+ validationConfig: {
153
+ maxSize: 5,
154
+ allowedTypes: ['image/jpeg', 'image/png', 'image/jpg', 'application/pdf'],
155
+ customValidation: null
156
+ },
157
+ uploadedDocuments: {},
158
+ showDelete: true,
159
+ showPreview: false
160
+ };
161
+ var _default = exports.default = GenericUpload;
@@ -121,7 +121,9 @@ function TrackShipmentWidget(_ref) {
121
121
  }, /*#__PURE__*/_react.default.createElement(_CustomTimeline.default, {
122
122
  currentStep: isOnDeliveryStage ? stepsData.length : stepsData.length - 1,
123
123
  stepsData: stepsData
124
- })), errorReason && /*#__PURE__*/_react.default.createElement(_CustomInfo.default, {
124
+ })), errorReason && /*#__PURE__*/_react.default.createElement("div", {
125
+ className: "margin-top-16 margin-bottom-16"
126
+ }, /*#__PURE__*/_react.default.createElement(_CustomInfo.default, {
125
127
  iconConfig: {
126
128
  icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
127
129
  color: "warning",
@@ -131,7 +133,7 @@ function TrackShipmentWidget(_ref) {
131
133
  position: 'left'
132
134
  },
133
135
  description: errorReason
134
- }), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 0 && /*#__PURE__*/_react.default.createElement(_CustomTable.default, {
136
+ })), (tableData === null || tableData === void 0 ? void 0 : tableData.length) > 0 && /*#__PURE__*/_react.default.createElement(_CustomTable.default, {
135
137
  bordered: true,
136
138
  rowKey: "key",
137
139
  columns: [{
@@ -1,64 +1,103 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.weak-map.js");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
- require("core-js/modules/web.dom-collections.iterator.js");
9
- require("core-js/modules/es.promise.js");
10
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = _interopRequireDefault(require("react"));
11
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
9
  var _fn = require("./fn");
13
10
  var _TrackShipmentWidget = _interopRequireDefault(require("../oa-widget-track-shipment/TrackShipmentWidget"));
14
11
  var _Accordion = _interopRequireDefault(require("../../components/oa-component-accordion/Accordion"));
15
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- 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); }
17
- 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; }
18
13
  function TrackShipmentWidgetList(_ref) {
19
- var _shipmentData$map;
14
+ var _assignments$map;
20
15
  let {
21
- shipmentData
16
+ shipmentData,
17
+ onChange
22
18
  } = _ref;
23
- const [historyData, setHistoryData] = (0, _react.useState)({});
24
- const [loading, setLoading] = (0, _react.useState)({});
25
- const fetchStatusXData = async reassignmentId => {};
26
- if (!shipmentData || shipmentData.length === 0) {
27
- return /*#__PURE__*/_react.default.createElement("p", null, "No shipment data available.");
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));
28
22
  }
29
- if (shipmentData.length === 1) {
30
- return /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(shipmentData[0]));
23
+ if (assignments.length === 1) {
24
+ return /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(assignments[0]));
31
25
  }
32
- return shipmentData === null || shipmentData === void 0 || (_shipmentData$map = shipmentData.map) === null || _shipmentData$map === void 0 ? void 0 : _shipmentData$map.call(shipmentData, (item, index) => {
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) => {
33
28
  const {
34
- reassignmentId,
35
- reassignmentTime,
36
- modifiedTime,
29
+ assignmentId,
30
+ assignmentDate,
31
+ assignmentClosedTime,
37
32
  status
38
33
  } = item !== null && item !== void 0 ? item : {};
39
- return /*#__PURE__*/_react.default.createElement(_Accordion.default, {
40
- key: reassignmentId,
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,
41
40
  body: /*#__PURE__*/_react.default.createElement(_TrackShipmentWidget.default, (0, _fn.getSingleShipmentHistory)(item)),
42
- headerText: (0, _fn.headerText)(index, reassignmentTime, modifiedTime, status)
43
- });
41
+ headerText: (0, _fn.headerText)(index, assignmentDate, assignmentClosedTime, status)
42
+ }));
44
43
  });
45
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
+ });
46
83
  TrackShipmentWidgetList.propTypes = {
47
- shipmentData: _propTypes.default.arrayOf(_propTypes.default.shape({
48
- reassignmentId: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
49
- status: _propTypes.default.string.isRequired,
50
- awb: _propTypes.default.string,
51
- origAddressFullName: _propTypes.default.string,
52
- originAddressLine1: _propTypes.default.string,
53
- originPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
54
- originDistrict: _propTypes.default.string,
55
- destAddressFullName: _propTypes.default.string,
56
- destAddressLine1: _propTypes.default.string,
57
- destPincode: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
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,
58
90
  destDistrict: _propTypes.default.string,
59
- reassignmentTime: _propTypes.default.string,
60
- modifiedTime: _propTypes.default.string,
61
- stages: _propTypes.default.array
62
- })).isRequired
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: () => {}
63
102
  };
64
103
  var _default = exports.default = TrackShipmentWidgetList;