oa-componentbook 1.0.1-stage.44 → 1.0.1-stage.440

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 (136) hide show
  1. package/build/components/oa-component-accordion/Accordion.js +123 -43
  2. package/build/components/oa-component-accordion/styles.js +2 -2
  3. package/build/components/oa-component-button/CustomButton.js +24 -19
  4. package/build/components/oa-component-button/styles.js +1 -1
  5. package/build/components/oa-component-checkbox/CustomCheckBox.js +20 -17
  6. package/build/components/oa-component-checkbox/styles.js +1 -1
  7. package/build/components/oa-component-datepicker/CustomDatePicker.js +37 -26
  8. package/build/components/oa-component-drawer/CustomDrawer.js +2 -0
  9. package/build/components/oa-component-dropdown/CustomDropdown.js +16 -4
  10. package/build/components/oa-component-icons/MaterialIcon.js +1 -1
  11. package/build/components/oa-component-modal/CustomModal.js +59 -48
  12. package/build/components/oa-component-modal/styles.js +3 -2
  13. package/build/components/oa-component-pagination/CustomPagination.js +111 -0
  14. package/build/components/oa-component-pagination/styles.js +12 -0
  15. package/build/components/oa-component-progress-bar/CustomProgressBar.js +8 -4
  16. package/build/components/oa-component-select/CustomSelect.js +130 -56
  17. package/build/components/oa-component-steps/CustomSteps.js +117 -0
  18. package/build/components/oa-component-steps/styles.js +12 -0
  19. package/build/components/oa-component-table/CustomTable.js +28 -5
  20. package/build/components/oa-component-table/CustomTableV1.js +613 -0
  21. package/build/components/oa-component-table/styles.js +1 -1
  22. package/build/components/oa-component-table/stylesV1.js +19 -0
  23. package/build/components/oa-component-tabs/CustomTabs.js +1 -1
  24. package/build/components/oa-component-tag/CustomTag.js +29 -11
  25. package/build/components/oa-component-tag/styles.js +30 -3
  26. package/build/components/oa-component-textarea/CustomTextArea.js +161 -0
  27. package/build/components/oa-component-textarea/constants.js +39 -0
  28. package/build/components/oa-component-textarea/styles.js +12 -3
  29. package/build/components/oa-component-tooltip/CustomTooltip.js +8 -4
  30. package/build/components/oa-component-upload/CustomUpload.js +129 -42
  31. package/build/components/oa-component-viewer/CustomViewer.js +17 -11
  32. package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +367 -0
  33. package/build/dev/oa-component-document-viewer/styles.js +12 -0
  34. package/build/dev/oa-component-upload/CustomUpload.js +116 -29
  35. package/build/dev/oa-component-upload/styles.js +2 -2
  36. package/build/dev/oa-widget-document-modal/DocumentSideModal.js +166 -0
  37. package/build/dev/oa-widget-document-modal/styles.js +12 -0
  38. package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +196 -0
  39. package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
  40. package/build/global-css/GlobalCss.js +2 -1
  41. package/build/global-css/GridLayout.js +1 -1
  42. package/build/global-css/commonStyles.js +11 -0
  43. package/build/images/Car.png +0 -0
  44. package/build/images/TwoWheeler.png +0 -0
  45. package/build/images/astronaut_emptystate.png +0 -0
  46. package/build/images/exportGrp01.png +0 -0
  47. package/build/images/exportGrp02.png +0 -0
  48. package/build/images/exportGrp03.png +0 -0
  49. package/build/images/outOfStock.png +0 -0
  50. package/build/index.js +114 -2
  51. package/build/layout/DetailDataLayout/DetailDataLayout.js +20 -0
  52. package/build/layout/DetailDataLayout/components/Form.js +22 -0
  53. package/build/layout/DetailDataLayout/components/Header.js +32 -0
  54. package/build/layout/DetailDataLayout/style.css +9 -0
  55. package/build/layout/DetailDataLayout/styles.js +12 -0
  56. package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +403 -0
  57. package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +85 -0
  58. package/build/layout/EntityOverviewLayout/styles.js +13 -0
  59. package/build/layout/GenricLayOut/GenricLayOut.js +2421 -0
  60. package/build/layout/GenricLayOut/components/AppliedFilters.js +90 -0
  61. package/build/layout/GenricLayOut/components/CardList.js +34 -0
  62. package/build/layout/GenricLayOut/components/DropdownSearch.js +48 -0
  63. package/build/layout/GenricLayOut/components/Header.js +74 -0
  64. package/build/layout/GenricLayOut/components/Modal.js +96 -0
  65. package/build/layout/GenricLayOut/components/ProfileSection.js +219 -0
  66. package/build/layout/GenricLayOut/components/Search.js +51 -0
  67. package/build/layout/GenricLayOut/components/StaticFilter.css +73 -0
  68. package/build/layout/GenricLayOut/components/StaticFilter.js +37 -0
  69. package/build/layout/GenricLayOut/reducer/layoutReducer.js +310 -0
  70. package/build/layout/GenricLayOut/resolver/staticConfigResolver.js +98 -0
  71. package/build/layout/GenricLayOut/styles.js +42 -0
  72. package/build/utils/download-file.js +23 -0
  73. package/build/widgets/oa-form-widget/FormWidget.js +577 -0
  74. package/build/widgets/oa-form-widget/FormWidgetStyle.js +18 -0
  75. package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +80 -16
  76. package/build/widgets/oa-widget-add-spare-part/AddSparePartWidget.js +50 -7
  77. package/build/widgets/oa-widget-address/AddressWidget.js +12 -17
  78. package/build/widgets/oa-widget-approval/ApprovalWidget.js +19 -11
  79. package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +492 -0
  80. package/build/widgets/oa-widget-approval/styles.js +2 -2
  81. package/build/widgets/oa-widget-chat/ChatWidget.js +5 -5
  82. package/build/widgets/oa-widget-close-claim/CloseClaimWidget.js +17 -5
  83. package/build/widgets/oa-widget-collapsible-key-value/CollapsibleKeyValueWidget.js +396 -0
  84. package/build/widgets/oa-widget-collapsible-key-value/styles.js +16 -0
  85. package/build/widgets/oa-widget-content-panel/ContentPanel.js +82 -0
  86. package/build/widgets/oa-widget-content-panel/styles.js +12 -0
  87. package/build/widgets/oa-widget-customer-rating-card/CustomerRatingCard.js +5 -5
  88. package/build/widgets/oa-widget-detailcard/styles.js +1 -1
  89. package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -9
  90. package/build/widgets/oa-widget-dropdown-search-input/DropdownSearchInput.js +53 -19
  91. package/build/widgets/oa-widget-dropdown-search-input/styles.js +1 -1
  92. package/build/widgets/oa-widget-guide/GuideWidget.js +70 -0
  93. package/build/widgets/oa-widget-guide/GuideWidgetStyle.js +12 -0
  94. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationDeleteBiker.js +24 -0
  95. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModal.js +34 -0
  96. package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModalStyle.js +13 -0
  97. package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +256 -0
  98. package/build/widgets/oa-widget-image-carousel/styles.js +23 -0
  99. package/build/widgets/oa-widget-image-gallery/FullscreenViewer.js +169 -0
  100. package/build/widgets/oa-widget-image-gallery/ImageGallery.js +87 -0
  101. package/build/widgets/oa-widget-image-gallery/ThumbnailGrid.js +146 -0
  102. package/build/widgets/oa-widget-image-gallery/imageCache.js +15 -0
  103. package/build/widgets/oa-widget-image-gallery/imageGalleryStyle.js +16 -0
  104. package/build/widgets/oa-widget-item-info-card/InfoCardListWidget.js +60 -0
  105. package/build/widgets/oa-widget-item-info-card/ItemInfoCardWidget.js +83 -0
  106. package/build/widgets/oa-widget-item-info-card/styles.css +50 -0
  107. package/build/widgets/oa-widget-item-info-card/styles.js +14 -0
  108. package/build/widgets/oa-widget-key-value/KeyValueWidget.js +46 -12
  109. package/build/widgets/oa-widget-key-value/styles.js +1 -1
  110. package/build/widgets/oa-widget-kpi/KPICardWidget.js +86 -0
  111. package/build/widgets/oa-widget-kpi/styles.js +12 -0
  112. package/build/widgets/oa-widget-map-base-location/AddressDetails.js +21 -7
  113. package/build/widgets/oa-widget-map-base-location/AddressForm.js +32 -5
  114. package/build/widgets/oa-widget-map-base-location/MapBaseLocation.js +9 -3
  115. package/build/widgets/oa-widget-map-base-location/MapComponent.js +17 -2
  116. package/build/widgets/oa-widget-membershipcard/MembershipCard.js +14 -3
  117. package/build/widgets/oa-widget-membershipcard/styles.js +1 -1
  118. package/build/widgets/oa-widget-notes/NotesWidget.js +32 -30
  119. package/build/widgets/oa-widget-notes/styles.js +4 -3
  120. package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +165 -0
  121. package/build/widgets/oa-widget-profile-data/styles.js +13 -0
  122. package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +362 -0
  123. package/build/widgets/oa-widget-progressive-steps/styles.js +12 -0
  124. package/build/widgets/oa-widget-reimbursement-breakup/ReimbursementBreakupWidget.js +18 -9
  125. package/build/widgets/oa-widget-reimbursement-breakup/styles.js +1 -1
  126. package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +164 -0
  127. package/build/widgets/oa-widget-select-list-item-modal/SelectListItemModal.js +91 -0
  128. package/build/widgets/oa-widget-sidebar/SidebarWidget.js +175 -0
  129. package/build/widgets/oa-widget-sidebar/components/Header.js +33 -0
  130. package/build/widgets/oa-widget-sidebar/styles.js +13 -0
  131. package/build/widgets/oa-widget-spare-part/SparePartsWidget.js +63 -35
  132. package/build/widgets/oa-widget-track-shipment-list/fn.js +16 -4
  133. package/build/widgets/oa-widget-user-management/UserManagementWidget.js +407 -0
  134. package/build/widgets/oa-widget-user-management/styles.js +15 -0
  135. package/package.json +4 -2
  136. package/build/components/oa-component-textarea/TextArea.js +0 -74
@@ -0,0 +1,362 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.assign.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.symbol.description.js");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _icons = require("@ant-design/icons");
14
+ var _CustomButton = _interopRequireDefault(require("../../components/oa-component-button/CustomButton"));
15
+ var _CustomInput = _interopRequireDefault(require("../../components/oa-component-input/CustomInput"));
16
+ var _CustomUpload = _interopRequireDefault(require("../../components/oa-component-upload/CustomUpload"));
17
+ var _CustomRadio = _interopRequireDefault(require("../../components/oa-component-radio/CustomRadio"));
18
+ var _CustomCheckBox = _interopRequireDefault(require("../../components/oa-component-checkbox/CustomCheckBox"));
19
+ var _CustomSelect = _interopRequireDefault(require("../../components/oa-component-select/CustomSelect"));
20
+ var _CustomTextArea = _interopRequireDefault(require("../../components/oa-component-textarea/CustomTextArea"));
21
+ var _CustomSteps = _interopRequireDefault(require("../../components/oa-component-steps/CustomSteps"));
22
+ var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
23
+ var _utils = require("../../utils");
24
+ var _styles = require("./styles");
25
+ const _excluded = ["data", "data-test", "current", "initialAnswers", "onComplete", "onStepChange", "style", "showSubmitButton"];
26
+ /* eslint-disable */
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 _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); }
31
+ 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; }
32
+ 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; }
33
+ 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; }
34
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
35
+ 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); }
36
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
37
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
38
+ /**
39
+ * ProgressiveStepsWidget: Advanced progressive question stepper with answer capturing
40
+ * - Shows questions progressively as user answers previous ones
41
+ * - Handles different answer types (singleSelect, text, upload, etc.)
42
+ * - Manages internal state and emits complete answers
43
+ * - Uses the original CustomSteps component for step display
44
+ */
45
+ function ProgressiveStepsWidget(_ref) {
46
+ let {
47
+ data,
48
+ "data-test": dataTest,
49
+ current: externalCurrent,
50
+ initialAnswers = {},
51
+ onComplete,
52
+ onStepChange,
53
+ style,
54
+ showSubmitButton = true
55
+ } = _ref,
56
+ otherProps = _objectWithoutProperties(_ref, _excluded);
57
+ const [currentStep, setCurrentStep] = (0, _react.useState)(externalCurrent || 0);
58
+ const [answers, setAnswers] = (0, _react.useState)(initialAnswers);
59
+ const [visibleSteps, setVisibleSteps] = (0, _react.useState)(1);
60
+ const steps = (data === null || data === void 0 ? void 0 : data.steps) || [];
61
+
62
+ // Update current step when external prop changes
63
+ (0, _react.useEffect)(() => {
64
+ if (externalCurrent !== undefined) {
65
+ setCurrentStep(externalCurrent);
66
+ }
67
+ }, [externalCurrent]);
68
+
69
+ // Initialize answers with provided initialAnswers
70
+ (0, _react.useEffect)(() => {
71
+ if (Object.keys(initialAnswers).length > 0) {
72
+ setAnswers(initialAnswers);
73
+ }
74
+ }, [initialAnswers]);
75
+
76
+ // Calculate visible steps based on current step
77
+ (0, _react.useEffect)(() => {
78
+ // Show current step + 1 (for the disabled next step)
79
+ const maxVisible = Math.min(currentStep + 2, steps.length);
80
+ setVisibleSteps(maxVisible);
81
+ }, [currentStep, steps.length]);
82
+ const handleAnswer = (stepIndex, answer) => {
83
+ const step = steps[stepIndex];
84
+ const stepId = step.key || stepIndex;
85
+ const newAnswers = _objectSpread(_objectSpread({}, answers), {}, {
86
+ [stepId]: answer
87
+ });
88
+ setAnswers(newAnswers);
89
+
90
+ // Only auto-advance if this is the current active step and not the last step
91
+ if (stepIndex === currentStep && stepIndex < steps.length - 1) {
92
+ const nextStep = stepIndex + 1;
93
+ setCurrentStep(nextStep);
94
+ if (onStepChange) {
95
+ onStepChange(nextStep, newAnswers, stepId);
96
+ }
97
+ } else if (onStepChange) {
98
+ // For editing previous answers, just notify about the change
99
+ onStepChange(currentStep, newAnswers, stepId);
100
+ }
101
+ };
102
+ const handleSubmit = () => {
103
+ if (onComplete) {
104
+ onComplete(answers, currentStep);
105
+ }
106
+ };
107
+
108
+ // Check if all steps are completed (including pre-populated ones)
109
+ const isAllStepsCompleted = () => steps.every((step, index) => {
110
+ const stepId = step.key || index;
111
+ return answers[stepId] !== undefined;
112
+ });
113
+ const renderAnswerInput = (step, stepIndex) => {
114
+ const {
115
+ answerType,
116
+ answerOptions,
117
+ placeholder,
118
+ customComponent
119
+ } = step;
120
+ const stepId = step.key || stepIndex;
121
+ const currentAnswer = answers[stepId];
122
+ switch (answerType) {
123
+ case "singleSelect":
124
+ return /*#__PURE__*/_react.default.createElement("div", {
125
+ className: "optionBtnSec"
126
+ }, answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
127
+ key: idx,
128
+ type: currentAnswer === (option.value || option) ? "primary" : "secondary",
129
+ onClick: () => handleAnswer(stepIndex, option.value || option),
130
+ label: option.label || option,
131
+ "data-test": dataTest ? "".concat(dataTest, "--button-").concat(stepIndex, "-").concat(idx) : undefined
132
+ })));
133
+ case "button":
134
+ return /*#__PURE__*/_react.default.createElement("div", null, answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
135
+ key: idx,
136
+ type: option.type || "primary",
137
+ onClick: () => {
138
+ // Execute custom click function if provided
139
+ if (option.onClick) {
140
+ option.onClick(option.value || option, stepIndex, answers);
141
+ }
142
+ // Optionally also save the answer if needed
143
+ if (option.saveAnswer !== false) {
144
+ handleAnswer(stepIndex, option.value || option);
145
+ }
146
+ },
147
+ label: option.label || option,
148
+ size: option.size || "default",
149
+ "data-test": dataTest ? "".concat(dataTest, "--button-").concat(stepIndex, "-").concat(idx) : undefined
150
+ })));
151
+ case "custom":
152
+ // Render custom component with props for integration
153
+ if (customComponent) {
154
+ const CustomComponent = customComponent;
155
+ return /*#__PURE__*/_react.default.createElement(CustomComponent, _extends({
156
+ value: currentAnswer,
157
+ onChange: value => handleAnswer(stepIndex, value),
158
+ stepIndex: stepIndex,
159
+ dataTest: dataTest ? "".concat(dataTest, "--custom-").concat(stepIndex) : undefined
160
+ }, step.customProps));
161
+ }
162
+ return null;
163
+ case "paymentOptions":
164
+ return /*#__PURE__*/_react.default.createElement("ul", {
165
+ className: "bankDetailSec"
166
+ }, answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => /*#__PURE__*/_react.default.createElement("li", {
167
+ key: idx
168
+ // onClick={() => handleAnswer(stepIndex, option.value || option)}
169
+ ,
170
+ "data-test": dataTest ? "".concat(dataTest, "--payment-option-").concat(stepIndex, "-").concat(idx) : undefined
171
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
172
+ typography: "type-button-500"
173
+ }, option.label || option), option.description && /*#__PURE__*/_react.default.createElement(_Typography.default, {
174
+ typography: "type-b2-400",
175
+ color: "secondary-content"
176
+ }, option.description)), /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
177
+ type: "text-only",
178
+ size: "medium",
179
+ label: option.detailsText || "Enter details",
180
+ onClick: e => {
181
+ e.stopPropagation();
182
+ if (option.onDetailsClick) {
183
+ option.onDetailsClick(option.value || option);
184
+ }
185
+ }
186
+ }))));
187
+ case "text":
188
+ return /*#__PURE__*/_react.default.createElement(_CustomInput.default, {
189
+ placeholder: placeholder || "Enter your answer...",
190
+ value: currentAnswer || "",
191
+ onChange: e => handleAnswer(stepIndex, e.target.value),
192
+ "data-test": dataTest ? "".concat(dataTest, "--text-input-").concat(stepIndex) : undefined
193
+ });
194
+ case "textarea":
195
+ return /*#__PURE__*/_react.default.createElement(_CustomTextArea.default, {
196
+ placeholder: placeholder || "Enter your answer...",
197
+ value: currentAnswer || "",
198
+ onChange: e => handleAnswer(stepIndex, e.target.value),
199
+ rows: 4,
200
+ "data-test": dataTest ? "".concat(dataTest, "--textarea-").concat(stepIndex) : undefined
201
+ });
202
+ case "upload":
203
+ return /*#__PURE__*/_react.default.createElement(_CustomUpload.default, {
204
+ beforeUpload: file => {
205
+ handleAnswer(stepIndex, file);
206
+ return false; // Prevent default upload
207
+ },
208
+ "data-test": dataTest ? "".concat(dataTest, "--upload-").concat(stepIndex) : undefined
209
+ }, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
210
+ iconConfig: {
211
+ icon: /*#__PURE__*/_react.default.createElement(_icons.UploadOutlined, null),
212
+ position: "left"
213
+ },
214
+ label: "Upload File"
215
+ }));
216
+ case "radio":
217
+ return /*#__PURE__*/_react.default.createElement(_CustomRadio.default.Group, {
218
+ value: currentAnswer,
219
+ onChange: e => handleAnswer(stepIndex, e.target.value),
220
+ "data-test": dataTest ? "".concat(dataTest, "--radio-").concat(stepIndex) : undefined
221
+ }, answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => /*#__PURE__*/_react.default.createElement(_CustomRadio.default, {
222
+ key: idx,
223
+ value: option.value || option,
224
+ label: option.label || option
225
+ })));
226
+ case "checkbox":
227
+ return /*#__PURE__*/_react.default.createElement(_CustomCheckBox.default.Group, {
228
+ value: currentAnswer || [],
229
+ onChange: values => handleAnswer(stepIndex, values),
230
+ "data-test": dataTest ? "".concat(dataTest, "--checkbox-").concat(stepIndex) : undefined
231
+ }, answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => /*#__PURE__*/_react.default.createElement(_CustomCheckBox.default, {
232
+ key: idx,
233
+ value: option.value || option,
234
+ label: option.label || option
235
+ })));
236
+ case "select":
237
+ return /*#__PURE__*/_react.default.createElement(_CustomSelect.default, {
238
+ placeholder: placeholder || "Select an option...",
239
+ value: currentAnswer,
240
+ onSelectionChange: value => handleAnswer(stepIndex, value.value),
241
+ options: answerOptions === null || answerOptions === void 0 ? void 0 : answerOptions.map((option, idx) => ({
242
+ label: option.label || option,
243
+ value: option.value || option
244
+ })),
245
+ "data-test": dataTest ? "".concat(dataTest, "--select-").concat(stepIndex) : undefined
246
+ });
247
+ default:
248
+ return null;
249
+ }
250
+ };
251
+
252
+ // Prepare steps data for CustomSteps component
253
+ const prepareStepsForCustomSteps = () => steps.map((step, stepIndex) => {
254
+ const stepId = step.key || stepIndex;
255
+ const isActive = stepIndex === currentStep;
256
+ const isCompleted = stepIndex < currentStep && answers[stepId] !== undefined;
257
+ const isDisabled = stepIndex > currentStep;
258
+ const isVisible = stepIndex < visibleSteps;
259
+ const hasAnswer = answers[stepId] !== undefined;
260
+ if (!isVisible) return null;
261
+
262
+ // Get dynamic content based on answer state
263
+ const getDynamicContent = () => {
264
+ if (!hasAnswer || !step.dynamicContent) return null;
265
+ const {
266
+ dynamicContent
267
+ } = step;
268
+
269
+ // Check if we should show dynamic content for this answer
270
+ const shouldShowDynamic = typeof dynamicContent.showFor === "function" ? dynamicContent.showFor(answers[stepId]) : dynamicContent.showFor === answers[stepId] || dynamicContent.showFor === true;
271
+ if (!shouldShowDynamic) return null;
272
+ return {
273
+ title: dynamicContent.title || step.title,
274
+ description: typeof dynamicContent.description === "function" ? dynamicContent.description(answers[stepId]) : dynamicContent.description,
275
+ descriptionStyle: dynamicContent.descriptionStyle,
276
+ hideAnswerInput: dynamicContent.hideAnswerInput || false
277
+ };
278
+ };
279
+ const dynamicContent = getDynamicContent();
280
+ const displayTitle = (dynamicContent === null || dynamicContent === void 0 ? void 0 : dynamicContent.title) || step.title;
281
+ const displayDescription = (dynamicContent === null || dynamicContent === void 0 ? void 0 : dynamicContent.description) || step.description;
282
+ const displayDescriptionStyle = dynamicContent === null || dynamicContent === void 0 ? void 0 : dynamicContent.descriptionStyle;
283
+ const shouldHideAnswerInput = (dynamicContent === null || dynamicContent === void 0 ? void 0 : dynamicContent.hideAnswerInput) || false;
284
+
285
+ // Create the step content with question and answer
286
+ const stepContent = /*#__PURE__*/_react.default.createElement("div", {
287
+ className: "stepQanAnsBox"
288
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
289
+ color: isActive ? "primary-content" : isCompleted ? "secondary-content" : isDisabled ? "secondary-content" : "secondary-content",
290
+ typography: isActive ? "type-button-500" : isCompleted ? "type-b2-400" : isDisabled ? "type-b2-400" : "type-b2-400"
291
+ }, (0, _utils.isString)(displayTitle) || (0, _utils.isNumber)(displayTitle) ? /*#__PURE__*/_react.default.createElement("span", {
292
+ "data-test": "".concat(dataTest, "--title-(").concat(displayTitle, ")")
293
+ }, displayTitle) : displayTitle), displayDescription && /*#__PURE__*/_react.default.createElement("div", {
294
+ className: "margin-top-4"
295
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, _extends({}, displayDescriptionStyle, {
296
+ color: "secondary-content",
297
+ typography: "type-b2-400"
298
+ }), displayDescription)), (isActive || isCompleted) && !shouldHideAnswerInput && /*#__PURE__*/_react.default.createElement("div", {
299
+ className: "margin-top-12"
300
+ }, renderAnswerInput(step, stepIndex)));
301
+ return {
302
+ key: step.key || stepIndex,
303
+ title: stepContent,
304
+ disabled: isDisabled
305
+ };
306
+ }).filter(Boolean); // Remove null entries
307
+ return /*#__PURE__*/_react.default.createElement(_styles.StepsContainer, null, /*#__PURE__*/_react.default.createElement(_CustomSteps.default, _extends({
308
+ data: {
309
+ steps: prepareStepsForCustomSteps()
310
+ },
311
+ current: currentStep,
312
+ direction: "vertical",
313
+ "data-test": dataTest
314
+ }, otherProps)), showSubmitButton && isAllStepsCompleted() && /*#__PURE__*/_react.default.createElement(_styles.SubmitButton, null, /*#__PURE__*/_react.default.createElement(_CustomButton.default, {
315
+ type: "primary",
316
+ size: "large",
317
+ onClick: handleSubmit,
318
+ label: "Submit All Answers",
319
+ "data-test": dataTest ? "".concat(dataTest, "--submit-button") : undefined
320
+ })));
321
+ }
322
+ ProgressiveStepsWidget.propTypes = {
323
+ data: _propTypes.default.shape({
324
+ steps: _propTypes.default.arrayOf(_propTypes.default.shape({
325
+ key: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
326
+ title: _propTypes.default.node,
327
+ description: _propTypes.default.node,
328
+ answerType: _propTypes.default.oneOf(["singleSelect", "button", "paymentOptions", "text", "textarea", "upload", "radio", "checkbox", "select", "custom"]),
329
+ answerOptions: _propTypes.default.array,
330
+ placeholder: _propTypes.default.string,
331
+ customComponent: _propTypes.default.elementType,
332
+ customProps: _propTypes.default.object,
333
+ dynamicContent: _propTypes.default.shape({
334
+ showFor: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string, _propTypes.default.func]),
335
+ title: _propTypes.default.node,
336
+ description: _propTypes.default.node,
337
+ descriptionStyle: _propTypes.default.object,
338
+ hideAnswerInput: _propTypes.default.bool
339
+ })
340
+ }))
341
+ }),
342
+ "data-test": _propTypes.default.string,
343
+ current: _propTypes.default.number,
344
+ initialAnswers: _propTypes.default.object,
345
+ onComplete: _propTypes.default.func,
346
+ onStepChange: _propTypes.default.func,
347
+ style: _propTypes.default.object,
348
+ showSubmitButton: _propTypes.default.bool
349
+ };
350
+ ProgressiveStepsWidget.defaultProps = {
351
+ data: {
352
+ steps: []
353
+ },
354
+ "data-test": null,
355
+ current: 0,
356
+ initialAnswers: {},
357
+ onComplete: undefined,
358
+ onStepChange: undefined,
359
+ style: {},
360
+ showSubmitButton: true
361
+ };
362
+ var _default = exports.default = ProgressiveStepsWidget;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SubmitButton = exports.StepsContainer = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _templateObject, _templateObject2;
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 StepsContainer = exports.StepsContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .stepQanAnsBox {\n line-height: normal;\n margin-bottom: 24px;\n }\n .ant-steps.ant-steps-vertical > .ant-steps-item .ant-steps-item-icon {\n margin-inline-end: 12px;\n border: none;\n width: 28px;\n height: 28px;\n line-height: normal;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .ant-steps\n .ant-steps-item-process\n > .ant-steps-item-container\n > .ant-steps-item-tail::after,\n .ant-steps\n .ant-steps-item-finish\n > .ant-steps-item-container\n > .ant-steps-item-tail::after {\n background-color: #e0e0e0;\n }\n .ant-steps .ant-steps-item-finish .ant-steps-item-icon {\n background-color: #00875a;\n }\n .ant-steps .ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {\n color: #fff;\n }\n .ant-steps .ant-steps-item-process .ant-steps-item-icon {\n background-color: #014fc5;\n }\n .ant-steps.ant-steps-vertical > .ant-steps-item .ant-steps-item-title {\n padding-inline-end: 0;\n line-height: normal;\n width: 100%;\n }\n\n ul.bankDetailSec {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 0;\n margin: 0;\n }\n ul.bankDetailSec li {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: row;\n border: 1px solid rgb(217, 217, 217);\n border-radius: 6px;\n padding: 12px;\n margin: 0;\n }\n\n .ant-steps-item-tail {\n inset-inline-start: 15px !important;\n }\n .optionBtnSec {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n }\n .optionBtnSec button {\n width: 50%;\n }\n .optionBtnSec button {\n width: calc(50% - 6px);\n }\n"])));
12
+ const SubmitButton = exports.SubmitButton = _styledComponents.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-top: 32px;\n text-align: center;\n padding-top: 20px;\n border-top: 1px solid #f0f0f0;\n"])));
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = ReimbursementBreakupWidget;
7
+ require("core-js/modules/es.symbol.description.js");
7
8
  var _react = _interopRequireDefault(require("react"));
8
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
10
  var _InfoRounded = _interopRequireDefault(require("@material-ui/icons/InfoRounded"));
10
- var _CustomModal = _interopRequireDefault(require("../../components/oa-component-modal/CustomModal"));
11
11
  var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
12
12
  var _styles = require("./styles");
13
13
  var _utils = require("../../utils");
14
14
  var _CustomDrawer = _interopRequireDefault(require("../../components/oa-component-drawer/CustomDrawer"));
15
+ var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
15
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
17
  /**
17
18
  * A React component that displays a reimbursement amount breakup in a modal dialog.
@@ -40,10 +41,10 @@ function ReimbursementBreakupWidget(props) {
40
41
  }];
41
42
 
42
43
  /**
43
- * Determines the class name based on the type of table row.
44
- * @param {string} type - The type of the table row
45
- * @returns {string} The class name for the table row
46
- */
44
+ * Determines the class name based on the type of table row.
45
+ * @param {string} type - The type of the table row
46
+ * @returns {string} The class name for the table row
47
+ */
47
48
  const getClassForTableRow = type => {
48
49
  switch (type) {
49
50
  case 'HEADER':
@@ -59,11 +60,11 @@ function ReimbursementBreakupWidget(props) {
59
60
  title: heading,
60
61
  onClose: closeBreakUpModal
61
62
  }, /*#__PURE__*/_react.default.createElement(_styles.WidgetContainer, null, cardData === null || cardData === void 0 ? void 0 : cardData.map(item => {
62
- var _item$tableRows, _item$tableRows2;
63
+ var _item$tableRows, _item$gridInfo, _item$gridInfo2, _item$gridInfo3, _item$gridInfo4, _item$tableRows2, _item$tableRows3;
63
64
  return /*#__PURE__*/_react.default.createElement("div", {
64
65
  className: "rmbsProdAmt",
65
66
  key: (0, _utils.getUUID)()
66
- }, item.title && /*#__PURE__*/_react.default.createElement("h5", null, item.title), item.tableType === 'NON_GRID' && /*#__PURE__*/_react.default.createElement("ul", {
67
+ }, item.tableType === 'NON_GRID' && /*#__PURE__*/_react.default.createElement("ul", {
67
68
  className: "calSecBox",
68
69
  id: "Claimgrid"
69
70
  }, item === null || item === void 0 || (_item$tableRows = item.tableRows) === null || _item$tableRows === void 0 ? void 0 : _item$tableRows.map(tableRow => {
@@ -84,10 +85,18 @@ function ReimbursementBreakupWidget(props) {
84
85
  "data-test": dataTest ? "".concat(dataTest, "--info-button-").concat(index) : null
85
86
  // onClick={this.scrollToRef}
86
87
  })), ' ')));
87
- })), item.tableType === 'GRID' && /*#__PURE__*/_react.default.createElement("ul", {
88
+ })), (item === null || item === void 0 || (_item$gridInfo = item.gridInfo) === null || _item$gridInfo === void 0 ? void 0 : _item$gridInfo.length) > 0 && /*#__PURE__*/_react.default.createElement(_Typography.default, {
89
+ typography: "type-b3-400",
90
+ className: "margin-bottom-8 margin-top-4",
91
+ color: "primary-content"
92
+ }, item === null || item === void 0 || (_item$gridInfo2 = item.gridInfo) === null || _item$gridInfo2 === void 0 || (_item$gridInfo2 = _item$gridInfo2[0]) === null || _item$gridInfo2 === void 0 ? void 0 : _item$gridInfo2.title), (item === null || item === void 0 || (_item$gridInfo3 = item.gridInfo) === null || _item$gridInfo3 === void 0 ? void 0 : _item$gridInfo3.length) > 0 && /*#__PURE__*/_react.default.createElement(_Typography.default, {
93
+ typography: "type-b3-400",
94
+ className: "margin-bottom-16",
95
+ color: "secondary-content"
96
+ }, item === null || item === void 0 || (_item$gridInfo4 = item.gridInfo) === null || _item$gridInfo4 === void 0 || (_item$gridInfo4 = _item$gridInfo4[0]) === null || _item$gridInfo4 === void 0 ? void 0 : _item$gridInfo4.description), item.tableType === 'GRID' && (item === null || item === void 0 || (_item$tableRows2 = item.tableRows) === null || _item$tableRows2 === void 0 ? void 0 : _item$tableRows2.length) && /*#__PURE__*/_react.default.createElement("ul", {
88
97
  className: "listofProd",
89
98
  id: "gridView"
90
- }, item === null || item === void 0 || (_item$tableRows2 = item.tableRows) === null || _item$tableRows2 === void 0 ? void 0 : _item$tableRows2.map(tableRow => {
99
+ }, item === null || item === void 0 || (_item$tableRows3 = item.tableRows) === null || _item$tableRows3 === void 0 ? void 0 : _item$tableRows3.map(tableRow => {
91
100
  var _tableRow$data2;
92
101
  return /*#__PURE__*/_react.default.createElement("li", {
93
102
  className: tableRow.type === 'HEADER' ? 'nonGridTableHeader' : ''
@@ -9,4 +9,4 @@ var _templateObject;
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
11
11
  var _default = exports.default = {};
12
- const WidgetContainer = exports.WidgetContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n.oaReimbursFlow {\n background: #fff;\n border-radius: 8px 8px 0px 0px;\n color: #212121;\n padding: 16px 12px;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%;\n display: flex;\n flex-direction: column;\n}\n\n.amoutCalculat {\n color: #0282F0;\n padding: 16px 12px 0;\n border-top: solid 1px var(--color-divider);\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 150%;\n width: calc(100% + 24px);\n display: flex;\n flex-direction: row;\n align-items: center;\n margin: 12px 0 0 -12px;\n cursor: pointer;\n justify-content: space-between;\n}\n\n.rmbsProdAmt {\n display: flex;\n flex-direction: column;\n}\n\n.rmbsProdAmt h5 {\n font-style: normal;\n color: #212121;\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n border-top: solid 1px var(--color-divider);\n padding: 36px 0 16px;\n}\n\nul.calSecBox {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n}\n\nul.calSecBox li {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 0 16px;\n gap: 16px;\n}\n\n.gridtableFooter {\n border-top: solid 1px var(--color-divider);\n padding: 16px 0 0 0; \n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 22px;\n}\n\n.gridtableFooter aside {\n font-weight: 700;\n}\n.gridtableFooter aside p{\n color: var(--color-positive) !important;\n}\nul.calSecBox li aside {\n color: #212121;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n.gridtableFooter aside p{\n font-weight: 700;\n}\n\nul.calSecBox li aside+aside {\n font-weight: 700;\n text-align: right;\n}\n\nul.calSecBox li aside p {\n margin: 0;\n}\n\n.infoIconScroll img {\n width: 12px;\n height: 12px;\n margin: 0 0 0 5px;\n}\n\n.rmbsProdAmt ul.listofProd {\n display: flex;\n flex-direction: column;\n border-radius: 4px 4px 0px 0px;\n border: 1px solid #F6F6F6;\n overflow: hidden;\n border-top: none !important;\n border-bottom: none !important;\n background: #FFF;\n margin: 0;\n padding: 0;\n}\n\n.rmbsProdAmt ul.listofProd li {\n border-bottom: solid 1px var(--color-divider);\n padding: 16px;\n display: flex;\n flex-direction: row;\n gap: 16px;\n\n}\n\n.nonGridTableHeader {\n background: #F6F6F6;\n border-bottom: none;\n}\n\n.rmbsProdAmt ul.listofProd li aside {\n color: #212121;\n width: 100%;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; \n}\n\n.rmbsProdAmt ul.listofProd li aside.boldText {\n font-weight: 700;\n}\n.nonGridTableHeader aside {\n white-space: nowrap;\n color: var(--color-secondary-content) !important;\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px; /* 133.333% */\n letter-spacing: 0.24px;\n text-transform: uppercase;\n}\n#gridView{\n border: solid 1px var(--color-divider);\n}\n.rmbsProdAmt ul#gridView{\n border: solid 1px var(--color-divider);\n border-radius: 4px;\n border-top: solid 1px var(--color-divider) !important;\n}\n#gridView li aside {\n font-size: 14px !important;\n line-height: 20px !important;\n}\n#gridView li.nonGridTableHeader aside {\n font-size: 12px !important;\n white-space: normal;\n font-weight: 700 !important;\n line-height: 16px; /* 133.333% */\n letter-spacing: 0.24px;\n text-transform: uppercase;\n}\n"])));
12
+ const WidgetContainer = exports.WidgetContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .oaReimbursFlow {\n background: #fff;\n border-radius: 8px 8px 0px 0px;\n color: #212121;\n padding: 16px 12px;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 150%;\n display: flex;\n flex-direction: column;\n }\n\n .amoutCalculat {\n color: #0282f0;\n padding: 16px 12px 0;\n border-top: solid 1px var(--color-divider);\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 150%;\n width: calc(100% + 24px);\n display: flex;\n flex-direction: row;\n align-items: center;\n margin: 12px 0 0 -12px;\n cursor: pointer;\n justify-content: space-between;\n }\n\n .rmbsProdAmt {\n display: flex;\n flex-direction: column;\n }\n\n .rmbsProdAmt h5 {\n font-style: normal;\n color: #212121;\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n border-top: solid 1px var(--color-divider);\n padding: 36px 0 16px;\n }\n\n ul.calSecBox {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n }\n\n ul.calSecBox li {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 0 0 16px;\n gap: 16px;\n }\n ul.calSecBox li:last-child {\n padding-bottom: 16px;\n }\n\n .gridtableFooter {\n border-top: solid 1px var(--color-divider);\n border-bottom: solid 1px var(--color-divider);\n padding: 16px 0 0 0;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 22px;\n }\n\n .gridtableFooter aside {\n font-weight: 700;\n }\n .gridtableFooter aside p {\n color: var(--color-positive) !important;\n }\n ul.calSecBox li aside {\n color: #212121;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n .gridtableFooter aside p {\n font-weight: 700;\n }\n\n ul.calSecBox li aside + aside {\n font-weight: 700;\n text-align: right;\n }\n\n ul.calSecBox li aside p {\n margin: 0;\n }\n\n .infoIconScroll img {\n width: 12px;\n height: 12px;\n margin: 0 0 0 5px;\n }\n\n .rmbsProdAmt ul.listofProd {\n display: flex;\n flex-direction: column;\n border-radius: 4px 4px 0px 0px;\n border: 1px solid #f6f6f6;\n overflow: hidden;\n border-top: none !important;\n border-bottom: none !important;\n background: #fff;\n margin: 0;\n padding: 0;\n }\n\n .rmbsProdAmt ul.listofProd li {\n border-bottom: solid 1px var(--color-divider);\n padding: 16px;\n display: flex;\n flex-direction: row;\n gap: 16px;\n }\n\n .nonGridTableHeader {\n background: #f6f6f6;\n border-bottom: none;\n }\n\n .rmbsProdAmt ul.listofProd li aside {\n color: #212121;\n width: 100%;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n .rmbsProdAmt ul.listofProd li aside.boldText {\n font-weight: 700;\n }\n .nonGridTableHeader aside {\n white-space: nowrap;\n color: var(--color-secondary-content) !important;\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px; /* 133.333% */\n letter-spacing: 0.24px;\n text-transform: uppercase;\n }\n #gridView {\n border: solid 1px var(--color-divider);\n }\n .rmbsProdAmt ul#gridView {\n border: solid 1px var(--color-divider);\n border-radius: 4px;\n border-top: solid 1px var(--color-divider) !important;\n }\n #gridView li aside {\n font-size: 14px !important;\n line-height: 20px !important;\n }\n #gridView li.nonGridTableHeader aside {\n font-size: 12px !important;\n white-space: normal;\n font-weight: 700 !important;\n line-height: 16px; /* 133.333% */\n letter-spacing: 0.24px;\n text-transform: uppercase;\n }\n"])));
@@ -0,0 +1,164 @@
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 _InfoOutlined = _interopRequireDefault(require("@material-ui/icons/InfoOutlined"));
16
+ var _CustomDrawer = _interopRequireDefault(require("../../components/oa-component-drawer/CustomDrawer"));
17
+ var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
18
+ var _CustomInfo = _interopRequireDefault(require("../../components/oa-component-info/CustomInfo"));
19
+ var _Typography = _interopRequireDefault(require("../../components/oa-component-typography/Typography"));
20
+ var _CustomUpload = _interopRequireDefault(require("../../dev/oa-component-upload/CustomUpload"));
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ 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); }
23
+ function GenericUpload(_ref) {
24
+ var _config$documents;
25
+ let {
26
+ config,
27
+ uploadHandler,
28
+ deleteHandler: _deleteHandler,
29
+ downloadHandler,
30
+ previewHandler,
31
+ visible,
32
+ onClose,
33
+ validationConfig = {
34
+ maxSize: 5,
35
+ allowedTypes: ['image/jpeg', 'image/png', 'image/jpg', 'application/pdf'],
36
+ customValidation: null
37
+ },
38
+ uploadedDocuments,
39
+ showDelete = true,
40
+ showPreview = false,
41
+ form
42
+ } = _ref;
43
+ const validateFile = (file, docTypeId) => {
44
+ const isValidType = validationConfig.allowedTypes.includes(file.type);
45
+ if (!isValidType) {
46
+ form.setFields([{
47
+ name: docTypeId,
48
+ errors: ["Only ".concat(validationConfig.allowedTypes.map(type => type.split('/')[1].toUpperCase()).join('/'), " files are allowed!")]
49
+ }]);
50
+ return false;
51
+ }
52
+ const isValidSize = file.size / 1024 / 1024 < validationConfig.maxSize;
53
+ if (!isValidSize) {
54
+ form.setFields([{
55
+ name: docTypeId,
56
+ errors: ["File must be smaller than ".concat(validationConfig.maxSize, "MB!")]
57
+ }]);
58
+ return false;
59
+ }
60
+ if (validationConfig.customValidation) {
61
+ return validationConfig.customValidation(file, docTypeId);
62
+ }
63
+ return true;
64
+ };
65
+ const handleUpload = async (file, docTypeId, documentId) => {
66
+ if (!validateFile(file, docTypeId)) {
67
+ return null;
68
+ }
69
+ return uploadHandler(file, docTypeId, documentId);
70
+ };
71
+ return /*#__PURE__*/_react.default.createElement(_CustomDrawer.default, {
72
+ title: config.title,
73
+ width: config.width,
74
+ open: visible,
75
+ onClose: onClose,
76
+ buttonConfig: config.buttonConfig
77
+ }, config.systemInfo && /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "margin-bottom-32"
79
+ }, /*#__PURE__*/_react.default.createElement(_CustomInfo.default, _extends({}, config.systemInfo, {
80
+ iconConfig: {
81
+ icon: /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
82
+ icon: _InfoOutlined.default,
83
+ size: 24,
84
+ color: "negative"
85
+ }),
86
+ position: 'left'
87
+ }
88
+ }))), (config === null || config === void 0 ? void 0 : config.heading) && /*#__PURE__*/_react.default.createElement("div", {
89
+ className: "padding-bottom-32"
90
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
91
+ className: "type-t1-500",
92
+ color: "primary-content"
93
+ }, config.heading, ' ')), /*#__PURE__*/_react.default.createElement(_antd.Form, {
94
+ form: form
95
+ }, (_config$documents = config.documents) === null || _config$documents === void 0 ? void 0 : _config$documents.map(item => /*#__PURE__*/_react.default.createElement("div", {
96
+ key: item.docTypeId
97
+ }, /*#__PURE__*/_react.default.createElement("div", {
98
+ className: "padding-bottom-4"
99
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
100
+ typography: "type-b2-500",
101
+ color: "primary-content"
102
+ }, item === null || item === void 0 ? void 0 : item.docName)), /*#__PURE__*/_react.default.createElement(_CustomUpload.default, {
103
+ isMandatory: true,
104
+ handleCustomOnChange: (file, status) => handleUpload(file, item.docTypeId, item.documentId),
105
+ formName: item.docTypeId,
106
+ uploadedDocuments: uploadedDocuments && uploadedDocuments[item.docTypeId] ? [uploadedDocuments[item.docTypeId]] : [],
107
+ deleteHandler: selectedFile => _deleteHandler(item.docTypeId),
108
+ downloadCallback: file => downloadHandler(item.docTypeId),
109
+ getPreview: previewHandler || (() => {}),
110
+ showDelete: showDelete,
111
+ showPreview: showPreview,
112
+ accept: validationConfig.allowedTypes.join(', '),
113
+ docName: item.docName
114
+ })))));
115
+ }
116
+ GenericUpload.propTypes = {
117
+ config: _propTypes.default.shape({
118
+ title: _propTypes.default.string.isRequired,
119
+ width: _propTypes.default.number,
120
+ buttonConfig: _propTypes.default.arrayOf(_propTypes.default.shape({
121
+ callback: _propTypes.default.func,
122
+ label: _propTypes.default.string,
123
+ type: _propTypes.default.string
124
+ })),
125
+ systemInfo: _propTypes.default.shape({
126
+ title: _propTypes.default.string,
127
+ color: _propTypes.default.string,
128
+ description: _propTypes.default.node
129
+ }),
130
+ heading: _propTypes.default.string,
131
+ documents: _propTypes.default.arrayOf(_propTypes.default.shape({
132
+ title: _propTypes.default.string,
133
+ docTypeId: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
134
+ docName: _propTypes.default.string
135
+ }))
136
+ }).isRequired,
137
+ uploadHandler: _propTypes.default.func.isRequired,
138
+ deleteHandler: _propTypes.default.func.isRequired,
139
+ downloadHandler: _propTypes.default.func.isRequired,
140
+ previewHandler: _propTypes.default.func,
141
+ validationConfig: _propTypes.default.shape({
142
+ maxSize: _propTypes.default.number,
143
+ allowedTypes: _propTypes.default.arrayOf(_propTypes.default.string),
144
+ customValidation: _propTypes.default.func
145
+ }),
146
+ uploadedDocuments: _propTypes.default.object,
147
+ showDelete: _propTypes.default.bool,
148
+ showPreview: _propTypes.default.bool,
149
+ form: _propTypes.default.object.isRequired,
150
+ visible: _propTypes.default.bool.isRequired,
151
+ onClose: _propTypes.default.func.isRequired
152
+ };
153
+ GenericUpload.defaultProps = {
154
+ previewHandler: () => {},
155
+ validationConfig: {
156
+ maxSize: 5,
157
+ allowedTypes: ['image/jpeg', 'image/png', 'image/jpg', 'application/pdf'],
158
+ customValidation: null
159
+ },
160
+ uploadedDocuments: {},
161
+ showDelete: true,
162
+ showPreview: false
163
+ };
164
+ var _default = exports.default = GenericUpload;