oa-componentbook 0.18.135 → 0.18.136

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.
@@ -46,6 +46,7 @@ const valuesArrayToOptionArray = (valuesArray, valueLabelMap) => valuesArray.map
46
46
  label: valueLabelMap === null || valueLabelMap === void 0 ? void 0 : valueLabelMap[value]
47
47
  }));
48
48
  function CustomSelect(_ref) {
49
+ var _selectedOptions$inde2;
49
50
  let {
50
51
  allText,
51
52
  children,
@@ -120,7 +121,8 @@ function CustomSelect(_ref) {
120
121
  });
121
122
  const [selectedOptions, setSelectedOptions] = (0, _react.useState)(actualDefaultValue);
122
123
  const getMaxTagPlaceholder = omittedValues => {
123
- if (selectedOptions.indexOf(allText) !== -1) {
124
+ var _selectedOptions$inde;
125
+ if ((selectedOptions === null || selectedOptions === void 0 || (_selectedOptions$inde = selectedOptions.indexOf) === null || _selectedOptions$inde === void 0 ? void 0 : _selectedOptions$inde.call(selectedOptions, allText)) !== -1) {
124
126
  return null;
125
127
  }
126
128
  return "".concat("+".concat(omittedValues.length, " more"));
@@ -153,8 +155,9 @@ function CustomSelect(_ref) {
153
155
  });
154
156
  };
155
157
  const onOptionsChangeForMultiple = (select, value) => {
156
- const newlySelectedOptions = selectedOptions.slice(0);
157
- const allIndex = newlySelectedOptions.indexOf(allText);
158
+ var _newlySelectedOptions;
159
+ const newlySelectedOptions = selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.slice(0);
160
+ const allIndex = newlySelectedOptions === null || newlySelectedOptions === void 0 || (_newlySelectedOptions = newlySelectedOptions.indexOf) === null || _newlySelectedOptions === void 0 ? void 0 : _newlySelectedOptions.call(newlySelectedOptions, allText);
158
161
  if (allIndex !== -1) {
159
162
  newlySelectedOptions.splice(allIndex, 1);
160
163
  }
@@ -171,13 +174,14 @@ function CustomSelect(_ref) {
171
174
  return !((_option$disabled2 = option === null || option === void 0 ? void 0 : option.disabled) !== null && _option$disabled2 !== void 0 ? _option$disabled2 : false);
172
175
  });
173
176
  if (newlySelectedOptions.length === enabledOptions.length && allText) {
174
- newlySelectedOptions.unshift(allText);
177
+ newlySelectedOptions === null || newlySelectedOptions === void 0 || newlySelectedOptions.unshift(allText);
175
178
  }
176
179
  }
177
180
  } else if (value === allText) {
178
181
  newlySelectedOptions.length = 0; // Emptying the array.
179
182
  } else {
180
- newlySelectedOptions.splice(newlySelectedOptions.indexOf(value), 1);
183
+ var _newlySelectedOptions2;
184
+ newlySelectedOptions.splice((_newlySelectedOptions2 = newlySelectedOptions.indexOf) === null || _newlySelectedOptions2 === void 0 ? void 0 : _newlySelectedOptions2.call(newlySelectedOptions, value), 1);
181
185
  }
182
186
  const optionsWithoutAllText = newlySelectedOptions.filter(option => option !== allText);
183
187
 
@@ -186,6 +190,7 @@ function CustomSelect(_ref) {
186
190
  setSelectedOptions(newlySelectedOptions);
187
191
  };
188
192
  const onOptionsChange = mode === 'multiple' ? onOptionsChangeForMultiple : onOptionsChangeForSingle;
193
+ console.log(selectedOptions, 'selectedOptions');
189
194
  return /*#__PURE__*/_react.default.createElement(_antd.ConfigProvider, {
190
195
  theme: {
191
196
  components: {
@@ -255,7 +260,7 @@ function CustomSelect(_ref) {
255
260
  padding: '0px'
256
261
  },
257
262
  mode: mode,
258
- maxTagCount: selectedOptions.indexOf(allText) === -1 ? 'responsive' : 1,
263
+ maxTagCount: (selectedOptions === null || selectedOptions === void 0 || (_selectedOptions$inde2 = selectedOptions.indexOf) === null || _selectedOptions$inde2 === void 0 ? void 0 : _selectedOptions$inde2.call(selectedOptions, allText)) === -1 ? 'responsive' : 1,
259
264
  maxTagPlaceholder: getMaxTagPlaceholder,
260
265
  onDeselect: (0, _utils.isFunction)(onSelectionChange) ? value => onOptionsChange(false, value) : undefined,
261
266
  onSelect: (0, _utils.isFunction)(onSelectionChange) ? value => onOptionsChange(true, value) : undefined,
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/es.parse-int.js");
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _antd = require("antd");
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _Done = _interopRequireDefault(require("@material-ui/icons/Done"));
14
+ var _dayjs3 = _interopRequireDefault(require("dayjs"));
15
+ var _styles = require("./styles");
16
+ var _CustomSelect = _interopRequireDefault(require("../../components/oa-component-select/CustomSelect"));
17
+ var _MaterialIcon = _interopRequireDefault(require("../../components/oa-component-icons/MaterialIcon"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ 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); }
20
+ 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; }
21
+ const {
22
+ RangePicker
23
+ } = _antd.DatePicker;
24
+ function getDateOffset(day) {
25
+ if (day === -1) return null;
26
+ const days = parseInt(day, 10);
27
+ const date = new Date();
28
+ date.setDate(date.getDate() - days);
29
+ return date;
30
+ }
31
+ let rangePickerLable;
32
+ function DateDropDown(_ref) {
33
+ var _selectValue$label;
34
+ let {
35
+ options,
36
+ format,
37
+ getValues,
38
+ defaultLabel,
39
+ disabledDate,
40
+ subLine
41
+ } = _ref;
42
+ const [showRangePicker, setshowRangePicker] = (0, _react.useState)(false);
43
+ const [selectValue, setSelectValue] = (0, _react.useState)({
44
+ label: defaultLabel,
45
+ dateSelected: false,
46
+ prevLabel: ''
47
+ });
48
+ const labelWithDate = {};
49
+ (0, _react.useEffect)(() => {
50
+ options.forEach(option => {
51
+ if (option.value === -1) {
52
+ rangePickerLable = option.label;
53
+ }
54
+ labelWithDate[option.label] = option.value;
55
+ });
56
+ if (selectValue !== null && selectValue !== void 0 && selectValue.label && labelWithDate[selectValue.label] !== -1 && selectValue.label in labelWithDate) {
57
+ getValues({
58
+ startDate: (0, _dayjs3.default)(getDateOffset(labelWithDate[selectValue.label])).format(format),
59
+ endDate: (0, _dayjs3.default)(getDateOffset(0)).format(format)
60
+ });
61
+ }
62
+ }, []);
63
+ const showTickIcon = (label, selectedLabel, dateSelected, isCustomRange) => label === selectedLabel || isCustomRange && dateSelected;
64
+ const optionRender = option => {
65
+ var _option$label;
66
+ const selectedLabel = option === null || option === void 0 || (_option$label = option.label) === null || _option$label === void 0 || (_option$label = _option$label.props) === null || _option$label === void 0 ? void 0 : _option$label.children;
67
+ const isCustomRange = selectedLabel === rangePickerLable;
68
+ const {
69
+ label,
70
+ dateSelected
71
+ } = selectValue !== null && selectValue !== void 0 ? selectValue : {};
72
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
73
+ className: "label-date-dropdown",
74
+ style: {
75
+ display: 'flex',
76
+ flexDirection: 'row',
77
+ justifyContent: 'space-between'
78
+ }
79
+ }, option.label, showTickIcon(label, selectedLabel, dateSelected, isCustomRange) && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_MaterialIcon.default, {
80
+ icon: _Done.default,
81
+ size: 20,
82
+ color: "primary"
83
+ })), isCustomRange && /*#__PURE__*/_react.default.createElement("span", null, subLine)));
84
+ };
85
+ const onSelect = event => {
86
+ if ((event === null || event === void 0 ? void 0 : event.label) === rangePickerLable) {
87
+ setSelectValue(prev => {
88
+ setshowRangePicker(true);
89
+ return {
90
+ label: 'Start date -End date',
91
+ dateSelected: false,
92
+ prevLabel: prev.label
93
+ };
94
+ });
95
+ } else {
96
+ getValues({
97
+ startDate: (0, _dayjs3.default)(getDateOffset(event.value)).format(format),
98
+ endDate: (0, _dayjs3.default)(getDateOffset(0)).format(format)
99
+ });
100
+ setSelectValue({
101
+ label: event === null || event === void 0 ? void 0 : event.label,
102
+ dateSelected: false
103
+ });
104
+ setshowRangePicker(false);
105
+ }
106
+ };
107
+ const handleDateRangeValue = e => {
108
+ var _dayjs, _dayjs$format, _e$, _dayjs2, _dayjs2$format, _e$2;
109
+ const fromDateApi = _dayjs3.default === null || _dayjs3.default === void 0 || (_dayjs = (0, _dayjs3.default)(e === null || e === void 0 || (_e$ = e[0]) === null || _e$ === void 0 ? void 0 : _e$.$d)) === null || _dayjs === void 0 || (_dayjs$format = _dayjs.format) === null || _dayjs$format === void 0 ? void 0 : _dayjs$format.call(_dayjs, format);
110
+ const toDateApi = _dayjs3.default === null || _dayjs3.default === void 0 || (_dayjs2 = (0, _dayjs3.default)(e === null || e === void 0 || (_e$2 = e[1]) === null || _e$2 === void 0 ? void 0 : _e$2.$d)) === null || _dayjs2 === void 0 || (_dayjs2$format = _dayjs2.format) === null || _dayjs2$format === void 0 ? void 0 : _dayjs2$format.call(_dayjs2, format);
111
+ const date = "".concat(fromDateApi, " - ").concat(toDateApi);
112
+ setSelectValue({
113
+ label: date,
114
+ dateSelected: true
115
+ });
116
+ getValues({
117
+ startDate: fromDateApi,
118
+ endDate: toDateApi
119
+ });
120
+ setshowRangePicker(false);
121
+ };
122
+ const handleOnSelectClick = () => {
123
+ setshowRangePicker(false);
124
+ if (selectValue !== null && selectValue !== void 0 && selectValue.prevLabel) {
125
+ const getParsedValue = labelWithDate[selectValue === null || selectValue === void 0 ? void 0 : selectValue.prevLabel];
126
+ getValues({
127
+ startDate: (0, _dayjs3.default)(getParsedValue).format(format),
128
+ endDate: (0, _dayjs3.default)(getDateOffset(0)).format(format)
129
+ });
130
+ setSelectValue(prev => ({
131
+ label: prev === null || prev === void 0 ? void 0 : prev.prevLabel,
132
+ dateSelected: false,
133
+ prevLabel: ''
134
+ }));
135
+ }
136
+ };
137
+ return /*#__PURE__*/_react.default.createElement(_styles.StyledContainer, null, /*#__PURE__*/_react.default.createElement(_CustomSelect.default, {
138
+ defaultValue: (_selectValue$label = selectValue.label) !== null && _selectValue$label !== void 0 ? _selectValue$label : '',
139
+ value: selectValue === null || selectValue === void 0 ? void 0 : selectValue.label,
140
+ className: "temp" // Need to remove this
141
+ ,
142
+ placeholder: "Please select a date",
143
+ optionRender: optionRender,
144
+ options: options,
145
+ onSelectionChange: onSelect,
146
+ onBlur: handleOnSelectClick
147
+ }), showRangePicker && /*#__PURE__*/_react.default.createElement(RangePicker, {
148
+ open: true,
149
+ allowClear: true,
150
+ format: format,
151
+ disabledDate: disabledDate,
152
+ onChange: value => handleDateRangeValue(value),
153
+ className: "custom-picker"
154
+ }));
155
+ }
156
+ DateDropDown.propTypes = {
157
+ options: _propTypes.default.arrayOf(_propTypes.default.shape({
158
+ label: _propTypes.default.node,
159
+ value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired
160
+ })),
161
+ getValues: _propTypes.default.func,
162
+ format: _propTypes.default.string,
163
+ defaultLabel: _propTypes.default.string,
164
+ disabledDate: _propTypes.default.func,
165
+ subLine: _propTypes.default.string
166
+ };
167
+ DateDropDown.defaultProps = {
168
+ options: [],
169
+ format: 'DD-MMM-YYYY',
170
+ getValues: () => {},
171
+ defaultLabel: null,
172
+ disabledDate: () => {},
173
+ subLine: ''
174
+ };
175
+ var _default = exports.default = DateDropDown;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.StyledContainer = void 0;
7
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
+ var _templateObject;
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
+ var _default = exports.default = {};
12
+ const StyledContainer = exports.StyledContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .custom-picker {\n visibility: hidden;\n }\n .temp{\n width:100%;\n }\n .label-date-dropdown { display:'flex', flexDirection:'row', justifyContent:'space-between'}\n"])));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oa-componentbook",
3
- "version": "0.18.135",
3
+ "version": "0.18.136",
4
4
  "private": false,
5
5
  "description": "Reusable components",
6
6
  "main": "build/index.js",