oa-componentbook 1.0.1-stage.5 → 1.0.1-stage.50

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 (35) 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/global-css/GlobalCss.js +2 -1
  7. package/build/global-css/GridLayout.js +1 -1
  8. package/build/global-css/commonStyles.js +11 -0
  9. package/build/images/oaChat.svg +5 -0
  10. package/build/index.js +28 -0
  11. package/build/layout/paymentAndConsent/CancelScreen.js +46 -0
  12. package/build/layout/paymentAndConsent/ConsentCard.js +68 -0
  13. package/build/layout/paymentAndConsent/DetailsCard.js +75 -0
  14. package/build/layout/paymentAndConsent/DetailsList.js +38 -0
  15. package/build/layout/paymentAndConsent/Header.js +33 -0
  16. package/build/layout/paymentAndConsent/InProgressScreen.js +46 -0
  17. package/build/layout/paymentAndConsent/Loader.js +21 -0
  18. package/build/layout/paymentAndConsent/Modal.js +28 -0
  19. package/build/layout/paymentAndConsent/PaymentAndConsent.js +22 -0
  20. package/build/layout/paymentAndConsent/PaymentCard.js +83 -0
  21. package/build/layout/paymentAndConsent/Section.js +34 -0
  22. package/build/layout/paymentAndConsent/SuccessScreen.js +46 -0
  23. package/build/layout/paymentAndConsent/TimeLineCard.js +28 -0
  24. package/build/layout/paymentAndConsent/TncList.js +32 -0
  25. package/build/layout/paymentAndConsent/style.js +12 -0
  26. package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +10 -9
  27. package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +28 -28
  28. package/build/widgets/oa-widget-feedback/FeedbackWidget.js +83 -0
  29. package/build/widgets/oa-widget-feedback/styles.js +13 -0
  30. package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +257 -0
  31. package/build/widgets/oa-widget-image-carousel/styles.js +23 -0
  32. package/build/widgets/oa-widget-track-shipment/TrackShipmentWidget.js +4 -2
  33. package/build/widgets/oa-widget-track-shipment-list/TrackShipmentWidgetList.js +82 -84
  34. package/build/widgets/oa-widget-track-shipment-list/fn.js +32 -4
  35. package/package.json +5 -2
@@ -44,9 +44,9 @@ const getBase64 = file => new Promise((resolve, reject) => {
44
44
  * @returns {undefined}
45
45
  */
46
46
  const downloadFile = (base64String, fileName) => {
47
- const link = document.createElement('a');
47
+ const link = document.createElement("a");
48
48
  link.href = base64String;
49
- link.download = fileName || 'download';
49
+ link.download = fileName || "download";
50
50
  link.click();
51
51
  };
52
52
 
@@ -80,21 +80,21 @@ function DocumentUpload(props) {
80
80
  } = props;
81
81
  const [previewOpen, setPreviewOpen] = (0, _react.useState)(false);
82
82
  const [previewImage, setPreviewImage] = (0, _react.useState)(null);
83
- const [previewTitle, setPreviewTitle] = (0, _react.useState)('');
83
+ const [previewTitle, setPreviewTitle] = (0, _react.useState)("");
84
84
  const [loading, setLoading] = (0, _react.useState)(false);
85
85
  const [fileList, setFileList] = (0, _react.useState)(uploadedDocuments);
86
86
  const handleCancel = () => setPreviewOpen(false);
87
87
 
88
88
  /**
89
- * Determines if the given file is an image file based on its file extension.
90
- */
89
+ * Determines if the given file is an image file based on its file extension.
90
+ */
91
91
  function isImageFile(fileName) {
92
92
  var _fileName$split;
93
93
  // Extract the file extension from the file name
94
- const fileExtension = fileName === null || fileName === void 0 || (_fileName$split = fileName.split('.')) === null || _fileName$split === void 0 || (_fileName$split = _fileName$split.pop()) === null || _fileName$split === void 0 ? void 0 : _fileName$split.toLowerCase();
94
+ const fileExtension = fileName === null || fileName === void 0 || (_fileName$split = fileName.split(".")) === null || _fileName$split === void 0 || (_fileName$split = _fileName$split.pop()) === null || _fileName$split === void 0 ? void 0 : _fileName$split.toLowerCase();
95
95
 
96
96
  // Define an array of image file extensions
97
- const imageFileExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'];
97
+ const imageFileExtensions = ["jpg", "jpeg", "png", "gif", "bmp", "tiff", "svg"];
98
98
 
99
99
  // Check if the file extension is in the array of image file extensions
100
100
  if (imageFileExtensions.indexOf(fileExtension) !== -1) {
@@ -143,15 +143,15 @@ function DocumentUpload(props) {
143
143
  fileList: newFileList,
144
144
  file
145
145
  } = _ref;
146
- if (file.status === 'removed') {
147
- onChange(null, 'removed');
146
+ if (file.status === "removed") {
147
+ onChange(null, "removed");
148
148
  }
149
149
  const modifiedList = await Promise.all(newFileList.map(async files => {
150
150
  let modifiedFile = files;
151
151
  setLoading(true);
152
152
  try {
153
153
  await onChange(files);
154
- modifiedFile.status = 'done';
154
+ modifiedFile.status = "done";
155
155
  if (!isImageFile(file === null || file === void 0 ? void 0 : file.name)) {
156
156
  var _modifiedFile, _modifiedFile2;
157
157
  modifiedFile.url = _PdfSampleImage.default;
@@ -170,7 +170,7 @@ function DocumentUpload(props) {
170
170
  const uploadButton = /*#__PURE__*/_react.default.createElement("button", {
171
171
  style: {
172
172
  border: 0,
173
- background: 'none'
173
+ background: "none"
174
174
  },
175
175
  type: "button"
176
176
  }, loading ? /*#__PURE__*/_react.default.createElement(_icons.LoadingOutlined, null) : /*#__PURE__*/_react.default.createElement(_CustomIcon.default, {
@@ -187,25 +187,25 @@ function DocumentUpload(props) {
187
187
  color: "negative"
188
188
  }, " *"))), subText && /*#__PURE__*/_react.default.createElement("div", {
189
189
  style: {
190
- whiteSpace: 'pre-line'
190
+ whiteSpace: "pre-line"
191
191
  }
192
192
  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
193
193
  color: "secondary-content",
194
194
  className: "type-b2-400"
195
- }, subText)), infoText && /*#__PURE__*/_react.default.createElement(_CustomInfo.default, {
196
- color: "background-warning",
197
- description: infoText
198
- })), /*#__PURE__*/_react.default.createElement("div", {
195
+ }, subText)), infoText && /*#__PURE__*/_react.default.createElement(_Typography.default, {
196
+ color: "negative",
197
+ className: "type-b2-400"
198
+ }, infoText)), /*#__PURE__*/_react.default.createElement("div", {
199
199
  className: "uploadDiv"
200
200
  }, multipleDoc > 0 && /*#__PURE__*/_react.default.createElement("em", null, multipleDoc), /*#__PURE__*/_react.default.createElement(_antd.ConfigProvider, {
201
201
  theme: {
202
202
  token: {
203
- colorBorder: _ColorVariablesMap.default['--color-primary'],
203
+ colorBorder: _ColorVariablesMap.default["--color-primary"],
204
204
  borderRadiusLG: 4,
205
- colorPrimaryBorder: _ColorVariablesMap.default['--color-divider'],
206
- colorFillAlter: _ColorVariablesMap.default['--color-secondary-background'],
207
- colorError: _ColorVariablesMap.default['--color-negative'],
208
- colorText: _ColorVariablesMap.default['--color-primary']
205
+ colorPrimaryBorder: _ColorVariablesMap.default["--color-divider"],
206
+ colorFillAlter: _ColorVariablesMap.default["--color-secondary-background"],
207
+ colorError: _ColorVariablesMap.default["--color-negative"],
208
+ colorText: _ColorVariablesMap.default["--color-primary"]
209
209
  }
210
210
  }
211
211
  }, /*#__PURE__*/_react.default.createElement(_antd.Form.Item, {
@@ -229,12 +229,12 @@ function DocumentUpload(props) {
229
229
  onCancel: handleCancel
230
230
  }, /*#__PURE__*/_react.default.createElement("div", {
231
231
  style: {
232
- textAlign: 'center'
232
+ textAlign: "center"
233
233
  }
234
- }, ' ', previewImage ? /*#__PURE__*/_react.default.createElement("img", {
234
+ }, " ", previewImage ? /*#__PURE__*/_react.default.createElement("img", {
235
235
  alt: "example",
236
236
  style: {
237
- width: '100%'
237
+ width: "100%"
238
238
  },
239
239
  src: previewImage
240
240
  }) : /*#__PURE__*/_react.default.createElement(_CustomLoader.default, null))));
@@ -255,10 +255,10 @@ DocumentUpload.propTypes = {
255
255
  DocumentUpload.defaultProps = {
256
256
  uploadedDocuments: [],
257
257
  onChange: () => {},
258
- subText: '',
259
- heading: '',
260
- formName: '',
261
- infoText: '',
258
+ subText: "",
259
+ heading: "",
260
+ formName: "",
261
+ infoText: "",
262
262
  multipleDoc: 0,
263
263
  showDelete: true,
264
264
  getPreview: () => {},
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/web.dom-collections.iterator.js");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _FeedbackForm = _interopRequireDefault(require("../../components/oa-component-feedback-form/FeedbackForm"));
11
+ var _FeedbackTooltip = _interopRequireDefault(require("../../components/oa-component-feedback-tooltip/FeedbackTooltip"));
12
+ var _styles = require("./styles");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ 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; }
16
+ /** *********** ✨ Codeium Command ⭐ ************ */
17
+ /**
18
+ * FeedbackWidget renders a feedback form and a tooltip with a button to open the form.
19
+ * The widget uses a useEffect hook to set the initial state of the component based on
20
+ * whether the feedback button has been clicked in the past (stored in localStorage).
21
+ * The component also uses a useCallback hook to memoize the functions used to set the
22
+ * state and to handle the button clicks.
23
+ *
24
+ * @param {Object} props - The properties object.
25
+ * @param {string} props.scriptSrc - The source URL for the script tag.
26
+ * @param {string} props.iframeSrc - The source URL for the iframe.
27
+ * @param {ReactElement} props.WrapperComponent - The component to wrap the FeedbackForm component.
28
+ * @param {Function} props.setOpen - The function to call when the feedback button is clicked.
29
+ * @param {boolean} props.open - The current state of the feedback form.
30
+ *
31
+ * @returns {ReactElement} The FeedbackWidget component.
32
+ */
33
+ /** **** 1deff343-01ad-4bdd-848d-22d1f519f3ff ****** */
34
+
35
+ function FeedbackWidget(props) {
36
+ const {
37
+ scriptSrc,
38
+ iframeSrc,
39
+ WrapperComponent,
40
+ setOpen,
41
+ open,
42
+ onClose
43
+ } = props !== null && props !== void 0 ? props : {};
44
+ const [hasClickedFeedback, setHasClickedFeedback] = (0, _react.useState)(true);
45
+ const [tooltipOpen, setTooltipOpen] = (0, _react.useState)(true);
46
+ (0, _react.useEffect)(() => {
47
+ const feedbackClicked = localStorage.getItem('feedbackButtonClicked');
48
+ if (!feedbackClicked) {
49
+ setHasClickedFeedback(false);
50
+ }
51
+ }, []);
52
+ const onFeedbackButtonClick = (0, _react.useCallback)(() => {
53
+ setTooltipOpen(false);
54
+ setOpen(true);
55
+ localStorage.setItem('feedbackButtonClicked', true);
56
+ setHasClickedFeedback(true);
57
+ }, [setOpen]);
58
+ const onButtonClick = (0, _react.useCallback)(() => {
59
+ setTooltipOpen(false);
60
+ localStorage.setItem('feedbackButtonClicked', true);
61
+ setHasClickedFeedback(true);
62
+ }, [setOpen]);
63
+ return /*#__PURE__*/_react.default.createElement(_styles.OaFeedBackStyle, null, /*#__PURE__*/_react.default.createElement("div", {
64
+ className: !hasClickedFeedback && 'OaMask'
65
+ }), /*#__PURE__*/_react.default.createElement(_FeedbackTooltip.default, {
66
+ setOpen: setOpen,
67
+ hasClickedFeedback: hasClickedFeedback,
68
+ setHasClickedFeedback: setHasClickedFeedback,
69
+ tooltipTitle: "We Value Your Feedback!",
70
+ tooltipDescription: "Please let us know your thoughts.",
71
+ tooltipButtonLabel: "Okay",
72
+ feedbackButtonLabel: "Give Feedback",
73
+ onFeedbackButtonClick: onFeedbackButtonClick,
74
+ onButtonClick: onButtonClick,
75
+ tooltipOpen: tooltipOpen
76
+ }), /*#__PURE__*/_react.default.createElement(WrapperComponent, null, /*#__PURE__*/_react.default.createElement(_FeedbackForm.default, {
77
+ scriptSrc: scriptSrc,
78
+ iframeSrc: iframeSrc,
79
+ open: open,
80
+ onClose: onClose
81
+ })));
82
+ }
83
+ var _default = exports.default = FeedbackWidget;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.OaFeedBackStyle = void 0;
7
+ var _antd = require("antd");
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _templateObject;
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
12
+ var _default = exports.default = {};
13
+ const OaFeedBackStyle = exports.OaFeedBackStyle = _styledComponents.default.aside(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .whiteBg{\n position: fixed;\n top: 50%;\n right: 0;\n transform: translate(0%, -50%) rotate(-90deg);\n cursor: pointer;\n z-index: 999;\n }\n .whiteBg button{\n background: #212121 !important;\n border: 1px solid #212121;\n }\n\n .OaMask{\n width: 100%;\n position: fixed;\n background: rgb(0 0 0 / 70%);\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 9;\n top: 0;\n }\n"])));
@@ -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"])));
@@ -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: [{