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.
- package/build/components/oa-component-accordion/Accordion.js +123 -43
- package/build/components/oa-component-accordion/styles.js +2 -2
- package/build/components/oa-component-button/CustomButton.js +24 -19
- package/build/components/oa-component-button/styles.js +1 -1
- package/build/components/oa-component-checkbox/CustomCheckBox.js +20 -17
- package/build/components/oa-component-checkbox/styles.js +1 -1
- package/build/components/oa-component-datepicker/CustomDatePicker.js +37 -26
- package/build/components/oa-component-drawer/CustomDrawer.js +2 -0
- package/build/components/oa-component-dropdown/CustomDropdown.js +16 -4
- package/build/components/oa-component-icons/MaterialIcon.js +1 -1
- package/build/components/oa-component-modal/CustomModal.js +59 -48
- package/build/components/oa-component-modal/styles.js +3 -2
- package/build/components/oa-component-pagination/CustomPagination.js +111 -0
- package/build/components/oa-component-pagination/styles.js +12 -0
- package/build/components/oa-component-progress-bar/CustomProgressBar.js +8 -4
- package/build/components/oa-component-select/CustomSelect.js +130 -56
- package/build/components/oa-component-steps/CustomSteps.js +117 -0
- package/build/components/oa-component-steps/styles.js +12 -0
- package/build/components/oa-component-table/CustomTable.js +28 -5
- package/build/components/oa-component-table/CustomTableV1.js +613 -0
- package/build/components/oa-component-table/styles.js +1 -1
- package/build/components/oa-component-table/stylesV1.js +19 -0
- package/build/components/oa-component-tabs/CustomTabs.js +1 -1
- package/build/components/oa-component-tag/CustomTag.js +29 -11
- package/build/components/oa-component-tag/styles.js +30 -3
- package/build/components/oa-component-textarea/CustomTextArea.js +161 -0
- package/build/components/oa-component-textarea/constants.js +39 -0
- package/build/components/oa-component-textarea/styles.js +12 -3
- package/build/components/oa-component-tooltip/CustomTooltip.js +8 -4
- package/build/components/oa-component-upload/CustomUpload.js +129 -42
- package/build/components/oa-component-viewer/CustomViewer.js +17 -11
- package/build/dev/oa-component-document-viewer/CustomDocumentViewer.js +367 -0
- package/build/dev/oa-component-document-viewer/styles.js +12 -0
- package/build/dev/oa-component-upload/CustomUpload.js +116 -29
- package/build/dev/oa-component-upload/styles.js +2 -2
- package/build/dev/oa-widget-document-modal/DocumentSideModal.js +166 -0
- package/build/dev/oa-widget-document-modal/styles.js +12 -0
- package/build/dev/oa-widget-document-side-drawer/DocumentSideDrawer.js +196 -0
- package/build/dev/oa-widget-document-side-drawer/styles.js +12 -0
- package/build/global-css/GlobalCss.js +2 -1
- package/build/global-css/GridLayout.js +1 -1
- package/build/global-css/commonStyles.js +11 -0
- package/build/images/Car.png +0 -0
- package/build/images/TwoWheeler.png +0 -0
- package/build/images/astronaut_emptystate.png +0 -0
- package/build/images/exportGrp01.png +0 -0
- package/build/images/exportGrp02.png +0 -0
- package/build/images/exportGrp03.png +0 -0
- package/build/images/outOfStock.png +0 -0
- package/build/index.js +114 -2
- package/build/layout/DetailDataLayout/DetailDataLayout.js +20 -0
- package/build/layout/DetailDataLayout/components/Form.js +22 -0
- package/build/layout/DetailDataLayout/components/Header.js +32 -0
- package/build/layout/DetailDataLayout/style.css +9 -0
- package/build/layout/DetailDataLayout/styles.js +12 -0
- package/build/layout/EntityOverviewLayout/EntityOverviewLayout.js +403 -0
- package/build/layout/EntityOverviewLayout/reducer/entityOverviewLayoutReducer.js +85 -0
- package/build/layout/EntityOverviewLayout/styles.js +13 -0
- package/build/layout/GenricLayOut/GenricLayOut.js +2421 -0
- package/build/layout/GenricLayOut/components/AppliedFilters.js +90 -0
- package/build/layout/GenricLayOut/components/CardList.js +34 -0
- package/build/layout/GenricLayOut/components/DropdownSearch.js +48 -0
- package/build/layout/GenricLayOut/components/Header.js +74 -0
- package/build/layout/GenricLayOut/components/Modal.js +96 -0
- package/build/layout/GenricLayOut/components/ProfileSection.js +219 -0
- package/build/layout/GenricLayOut/components/Search.js +51 -0
- package/build/layout/GenricLayOut/components/StaticFilter.css +73 -0
- package/build/layout/GenricLayOut/components/StaticFilter.js +37 -0
- package/build/layout/GenricLayOut/reducer/layoutReducer.js +310 -0
- package/build/layout/GenricLayOut/resolver/staticConfigResolver.js +98 -0
- package/build/layout/GenricLayOut/styles.js +42 -0
- package/build/utils/download-file.js +23 -0
- package/build/widgets/oa-form-widget/FormWidget.js +577 -0
- package/build/widgets/oa-form-widget/FormWidgetStyle.js +18 -0
- package/build/widgets/oa-widget-add-spare-part/AddSparePartCollapseWidget.js +80 -16
- package/build/widgets/oa-widget-add-spare-part/AddSparePartWidget.js +50 -7
- package/build/widgets/oa-widget-address/AddressWidget.js +12 -17
- package/build/widgets/oa-widget-approval/ApprovalWidget.js +19 -11
- package/build/widgets/oa-widget-approval/ApprovalWidgetNew.js +492 -0
- package/build/widgets/oa-widget-approval/styles.js +2 -2
- package/build/widgets/oa-widget-chat/ChatWidget.js +5 -5
- package/build/widgets/oa-widget-close-claim/CloseClaimWidget.js +17 -5
- package/build/widgets/oa-widget-collapsible-key-value/CollapsibleKeyValueWidget.js +396 -0
- package/build/widgets/oa-widget-collapsible-key-value/styles.js +16 -0
- package/build/widgets/oa-widget-content-panel/ContentPanel.js +82 -0
- package/build/widgets/oa-widget-content-panel/styles.js +12 -0
- package/build/widgets/oa-widget-customer-rating-card/CustomerRatingCard.js +5 -5
- package/build/widgets/oa-widget-detailcard/styles.js +1 -1
- package/build/widgets/oa-widget-document-upload/DocUploadWidget.js +6 -9
- package/build/widgets/oa-widget-dropdown-search-input/DropdownSearchInput.js +53 -19
- package/build/widgets/oa-widget-dropdown-search-input/styles.js +1 -1
- package/build/widgets/oa-widget-guide/GuideWidget.js +70 -0
- package/build/widgets/oa-widget-guide/GuideWidgetStyle.js +12 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationDeleteBiker.js +24 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModal.js +34 -0
- package/build/widgets/oa-widget-hub-automation-modal/HubAutomationModalStyle.js +13 -0
- package/build/widgets/oa-widget-image-carousel/ImageCarouselWidget.js +256 -0
- package/build/widgets/oa-widget-image-carousel/styles.js +23 -0
- package/build/widgets/oa-widget-image-gallery/FullscreenViewer.js +169 -0
- package/build/widgets/oa-widget-image-gallery/ImageGallery.js +87 -0
- package/build/widgets/oa-widget-image-gallery/ThumbnailGrid.js +146 -0
- package/build/widgets/oa-widget-image-gallery/imageCache.js +15 -0
- package/build/widgets/oa-widget-image-gallery/imageGalleryStyle.js +16 -0
- package/build/widgets/oa-widget-item-info-card/InfoCardListWidget.js +60 -0
- package/build/widgets/oa-widget-item-info-card/ItemInfoCardWidget.js +83 -0
- package/build/widgets/oa-widget-item-info-card/styles.css +50 -0
- package/build/widgets/oa-widget-item-info-card/styles.js +14 -0
- package/build/widgets/oa-widget-key-value/KeyValueWidget.js +46 -12
- package/build/widgets/oa-widget-key-value/styles.js +1 -1
- package/build/widgets/oa-widget-kpi/KPICardWidget.js +86 -0
- package/build/widgets/oa-widget-kpi/styles.js +12 -0
- package/build/widgets/oa-widget-map-base-location/AddressDetails.js +21 -7
- package/build/widgets/oa-widget-map-base-location/AddressForm.js +32 -5
- package/build/widgets/oa-widget-map-base-location/MapBaseLocation.js +9 -3
- package/build/widgets/oa-widget-map-base-location/MapComponent.js +17 -2
- package/build/widgets/oa-widget-membershipcard/MembershipCard.js +14 -3
- package/build/widgets/oa-widget-membershipcard/styles.js +1 -1
- package/build/widgets/oa-widget-notes/NotesWidget.js +32 -30
- package/build/widgets/oa-widget-notes/styles.js +4 -3
- package/build/widgets/oa-widget-profile-data/ProfileDataWidget.js +165 -0
- package/build/widgets/oa-widget-profile-data/styles.js +13 -0
- package/build/widgets/oa-widget-progressive-steps/ProgressiveStepsWidget.js +362 -0
- package/build/widgets/oa-widget-progressive-steps/styles.js +12 -0
- package/build/widgets/oa-widget-reimbursement-breakup/ReimbursementBreakupWidget.js +18 -9
- package/build/widgets/oa-widget-reimbursement-breakup/styles.js +1 -1
- package/build/widgets/oa-widget-reupload-drawer/ReUploadDrawer.js +164 -0
- package/build/widgets/oa-widget-select-list-item-modal/SelectListItemModal.js +91 -0
- package/build/widgets/oa-widget-sidebar/SidebarWidget.js +175 -0
- package/build/widgets/oa-widget-sidebar/components/Header.js +33 -0
- package/build/widgets/oa-widget-sidebar/styles.js +13 -0
- package/build/widgets/oa-widget-spare-part/SparePartsWidget.js +63 -35
- package/build/widgets/oa-widget-track-shipment-list/fn.js +16 -4
- package/build/widgets/oa-widget-user-management/UserManagementWidget.js +407 -0
- package/build/widgets/oa-widget-user-management/styles.js +15 -0
- package/package.json +4 -2
- 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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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.
|
|
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.
|
|
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$
|
|
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
|
|
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;
|