@capillarytech/blaze-ui 6.3.0 → 6.4.0

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 (94) hide show
  1. package/CapDateRangePicker/index.d.ts.map +1 -1
  2. package/CapDateRangePicker/index.js +1 -5
  3. package/CapDateRangePicker/styles.css +0 -28
  4. package/CapDateRangePicker/styles.module.scss.js +1 -2
  5. package/CapDateRangePicker/styles.scss +0 -37
  6. package/CapDateRangePicker/types.d.ts +0 -5
  7. package/CapDateRangePicker/types.d.ts.map +1 -1
  8. package/CapDragAndDrop/index.d.ts +3 -19
  9. package/CapDragAndDrop/index.d.ts.map +1 -1
  10. package/CapDragAndDrop/index.js +24 -29
  11. package/CapDragAndDrop/messages.d.ts +25 -0
  12. package/CapDragAndDrop/messages.d.ts.map +1 -0
  13. package/CapDragAndDrop/messages.js +28 -0
  14. package/CapDragAndDrop/styles.css +17 -15
  15. package/CapDragAndDrop/styles.module.scss.js +21 -0
  16. package/CapDragAndDrop/styles.scss +18 -16
  17. package/CapDragAndDrop/types.d.ts +17 -0
  18. package/CapDragAndDrop/types.d.ts.map +1 -0
  19. package/CapMobileDateRangePicker/ReactMobileDatePickerModule.d.ts.map +1 -1
  20. package/CapMobileDateRangePicker/ReactMobileDatePickerModule.js +1 -2
  21. package/CapMobileDateRangePicker/index.d.ts +21 -5
  22. package/CapMobileDateRangePicker/index.d.ts.map +1 -1
  23. package/CapMobileDateRangePicker/index.js +309 -262
  24. package/CapMobileDateRangePicker/styles.css +144 -107
  25. package/CapMobileDateRangePicker/styles.scss +192 -188
  26. package/CapTimeline/CapTimelineCard.d.ts +4 -27
  27. package/CapTimeline/CapTimelineCard.d.ts.map +1 -1
  28. package/CapTimeline/CapTimelineCard.js +40 -157
  29. package/CapTimeline/CapTimelinePanesWrapper.d.ts +4 -25
  30. package/CapTimeline/CapTimelinePanesWrapper.d.ts.map +1 -1
  31. package/CapTimeline/CapTimelinePanesWrapper.js +24 -20
  32. package/CapTimeline/index.d.ts +2 -17
  33. package/CapTimeline/index.d.ts.map +1 -1
  34. package/CapTimeline/index.js +62 -23
  35. package/CapTimeline/messages.d.ts +21 -0
  36. package/CapTimeline/messages.d.ts.map +1 -0
  37. package/CapTimeline/messages.js +24 -0
  38. package/CapTimeline/styles.css +40 -40
  39. package/CapTimeline/styles.module.scss.js +30 -0
  40. package/CapTimeline/styles.scss +76 -57
  41. package/CapTimeline/tests/CapTimeline.mockData.d.ts +14 -0
  42. package/CapTimeline/tests/CapTimeline.mockData.d.ts.map +1 -0
  43. package/CapTimeline/types.d.ts +60 -0
  44. package/CapTimeline/types.d.ts.map +1 -0
  45. package/CapTimeline/types.js +1 -0
  46. package/index.d.ts +4 -2
  47. package/index.d.ts.map +1 -1
  48. package/index.js +99 -97
  49. package/package.json +1 -1
  50. package/utils/dayjs.d.ts +0 -29
  51. package/utils/dayjs.d.ts.map +1 -1
  52. package/utils/dayjs.js +0 -30
  53. package/utils/getCapThemeConfig.d.ts.map +1 -1
  54. package/utils/getCapThemeConfig.js +9 -1
  55. package/CapMobileDateRangePicker/DateRangeInputSelectors.d.ts +0 -7
  56. package/CapMobileDateRangePicker/DateRangeInputSelectors.d.ts.map +0 -1
  57. package/CapMobileDateRangePicker/DateRangeInputSelectors.js +0 -68
  58. package/CapMobileDateRangePicker/messages.d.ts +0 -17
  59. package/CapMobileDateRangePicker/messages.d.ts.map +0 -1
  60. package/CapMobileDateRangePicker/messages.js +0 -20
  61. package/CapMobileDateRangePicker/styles.module.scss.js +0 -21
  62. package/CapMobileDateRangePicker/tests/CapMobileDateRangePicker.mockData.d.ts +0 -18
  63. package/CapMobileDateRangePicker/tests/CapMobileDateRangePicker.mockData.d.ts.map +0 -1
  64. package/CapMobileDateRangePicker/types.d.ts +0 -95
  65. package/CapMobileDateRangePicker/types.d.ts.map +0 -1
  66. package/CapVirtualSelect/actions.d.ts +0 -16
  67. package/CapVirtualSelect/actions.d.ts.map +0 -1
  68. package/CapVirtualSelect/actions.js +0 -21
  69. package/CapVirtualSelect/constants.d.ts +0 -13
  70. package/CapVirtualSelect/constants.d.ts.map +0 -1
  71. package/CapVirtualSelect/constants.js +0 -26
  72. package/CapVirtualSelect/index.d.ts +0 -169
  73. package/CapVirtualSelect/index.d.ts.map +0 -1
  74. package/CapVirtualSelect/index.js +0 -409
  75. package/CapVirtualSelect/messages.d.ts +0 -9
  76. package/CapVirtualSelect/messages.d.ts.map +0 -1
  77. package/CapVirtualSelect/messages.js +0 -12
  78. package/CapVirtualSelect/reducer.d.ts +0 -4
  79. package/CapVirtualSelect/reducer.d.ts.map +0 -1
  80. package/CapVirtualSelect/reducer.js +0 -63
  81. package/CapVirtualSelect/saga.d.ts +0 -40
  82. package/CapVirtualSelect/saga.d.ts.map +0 -1
  83. package/CapVirtualSelect/saga.js +0 -91
  84. package/CapVirtualSelect/selectors.d.ts +0 -28
  85. package/CapVirtualSelect/selectors.d.ts.map +0 -1
  86. package/CapVirtualSelect/selectors.js +0 -30
  87. package/CapVirtualSelect/styles.css +0 -110
  88. package/CapVirtualSelect/styles.scss +0 -106
  89. package/CapVirtualSelect/tests/mockData.d.ts +0 -7
  90. package/CapVirtualSelect/tests/mockData.d.ts.map +0 -1
  91. package/CapVirtualSelect/utils.d.ts +0 -2
  92. package/CapVirtualSelect/utils.d.ts.map +0 -1
  93. package/CapVirtualSelect/utils.js +0 -12
  94. /package/{CapMobileDateRangePicker → CapDragAndDrop}/types.js +0 -0
@@ -1,308 +1,355 @@
1
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import classNames from "classnames";
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
3
2
  import moment from "moment";
4
- import { useState, useMemo, useEffect, useCallback } from "react";
5
- import { injectIntl } from "react-intl";
6
- import { RANGE_PICKER, FORMAT_TOKENS, TIME_UNITS, WEEKDAY_MAP, MONTH_MAP } from "../utils/dayjs.js";
3
+ import PropTypes from "prop-types";
4
+ import React from "react";
7
5
  import CapColumn from "../CapColumn/index.js";
8
6
  import CapDateRangePicker from "../CapDateRangePicker/index.js";
9
7
  import CapDivider from "../CapDivider/index.js";
10
- import CapLabelWithStatic from "../CapLabel/index.js";
8
+ import InputFinal from "../CapInput/index.js";
11
9
  import CapModalWithHoc from "../CapModal/index.js";
12
10
  import CapRow from "../CapRow/index.js";
13
- import DateRangeInputSelectors_default from "./DateRangeInputSelectors.js";
14
- import messages from "./messages.js";
15
11
  import ReactMobileDatePicker from "./ReactMobileDatePickerModule.js";
16
- import styles from "./styles.module.scss.js";
17
- const clsPrefix = "cap-mobile-date-range-picker";
12
+ import './styles.css';/* empty css */
13
+ const DATE_FORMAT = "YYYY-MM-DD";
14
+ const monthMap = {
15
+ 1: "Jan",
16
+ 2: "Feb",
17
+ 3: "Mar",
18
+ 4: "Apr",
19
+ 5: "May",
20
+ 6: "Jun",
21
+ 7: "Jul",
22
+ 8: "Aug",
23
+ 9: "Sep",
24
+ 10: "Oct",
25
+ 11: "Nov",
26
+ 12: "Dec"
27
+ };
18
28
  const dateConfig = {
19
29
  date: {
20
- format: FORMAT_TOKENS.DAY_OF_MONTH_PADDED,
21
- caption: TIME_UNITS.DAY,
30
+ format: "DD",
31
+ caption: "Day",
22
32
  step: 1
23
33
  },
24
34
  month: {
25
- format: (value) => MONTH_MAP[value.getMonth() + 1],
26
- caption: WEEKDAY_MAP[1],
35
+ format: (value) => monthMap[value.getMonth() + 1],
36
+ caption: "Mon",
27
37
  step: 1
28
38
  },
29
39
  year: {
30
- format: FORMAT_TOKENS.YEAR,
31
- caption: TIME_UNITS.YEAR,
40
+ format: "YYYY",
41
+ caption: "Year",
32
42
  step: 1
33
43
  }
34
44
  };
35
- const CapMobileDateRangePicker = ({
36
- intl: { formatMessage },
37
- cancelText,
38
- resetText,
39
- dateDisplayFormat,
40
- doneText,
41
- startDate: startDateProp,
42
- endDate: endDateProp,
43
- minDate,
44
- maxDate,
45
- type,
46
- minimumNights,
47
- onDone,
48
- switchBackToScrollerText,
49
- switchBackToCalenderText,
50
- title
51
- }) => {
52
- const [startDate, setStartDate] = useState(startDateProp);
53
- const [endDate, setEndDate] = useState(endDateProp);
54
- const [isModalOpen, setIsModalOpen] = useState(false);
55
- const [focusedInput, setFocusedInput] = useState(RANGE_PICKER.START_DATE);
56
- const [isDatePickerVisible, setIsDatePickerVisible] = useState(false);
57
- const isComparing = useMemo(() => type === "compare", [type]);
58
- const isStartDateFocused = useMemo(
59
- () => focusedInput === RANGE_PICKER.START_DATE,
60
- [focusedInput]
61
- );
62
- const isEndDateFocused = useMemo(() => focusedInput === RANGE_PICKER.END_DATE, [focusedInput]);
63
- useEffect(() => {
64
- const isSameStart = checkIfSameDate(startDateProp, startDate);
65
- const isSameEnd = checkIfSameDate(endDateProp, endDate);
66
- if (!(isSameStart && isSameEnd)) {
67
- setStartDate(startDateProp);
68
- setEndDate(endDateProp);
69
- }
70
- }, [startDateProp, endDateProp]);
71
- const checkIfSameDate = useCallback(
72
- (d1, d2) => d1.format(FORMAT_TOKENS.ISO_8601_DATE) === d2.format(FORMAT_TOKENS.ISO_8601_DATE),
73
- []
74
- );
75
- const toggleFocusedInput = useCallback(
76
- (inputType = "", onClickHandler) => {
45
+ class CapMobileDateRangePicker extends React.Component {
46
+ constructor(props) {
47
+ super(props);
48
+ this.handleDatePickerVisible = (val) => this.setState(() => ({ isDatePickerVisible: val }));
49
+ this.handleModalVisible = () => this.setState((prevState) => ({ isModalOpen: !prevState.isModalOpen }));
50
+ this.checkIfSameDate = (d1, d2) => d1.format(DATE_FORMAT) === d2.format(DATE_FORMAT);
51
+ this.toggleFocusedInput = (inputType = "", onClickHandler) => {
77
52
  if (inputType === "") {
78
- setFocusedInput(
79
- (prev) => prev === RANGE_PICKER.START_DATE ? RANGE_PICKER.END_DATE : RANGE_PICKER.START_DATE
53
+ this.setState(
54
+ (prevState) => ({
55
+ focusedInput: prevState.focusedInput === "startDate" ? "endDate" : "startDate"
56
+ }),
57
+ () => onClickHandler && onClickHandler()
80
58
  );
81
59
  } else {
82
- setFocusedInput(inputType);
60
+ this.setState({ focusedInput: inputType }, () => onClickHandler && onClickHandler());
83
61
  }
84
- onClickHandler == null ? void 0 : onClickHandler();
85
- },
86
- []
87
- );
88
- const handleStartDateClick = useCallback(() => {
89
- toggleFocusedInput(RANGE_PICKER.START_DATE);
90
- setIsModalOpen(true);
91
- }, [toggleFocusedInput]);
92
- const handleEndDateClick = useCallback(() => {
93
- toggleFocusedInput(RANGE_PICKER.END_DATE);
94
- setIsModalOpen(true);
95
- }, [toggleFocusedInput]);
96
- const formatDate = useCallback((date) => new Date(moment(date).format()), []);
97
- const handleOnSelect = useCallback(
98
- (date) => {
99
- const newDate = moment(date);
100
- if (isStartDateFocused) {
101
- setStartDate(newDate);
102
- } else {
103
- setEndDate(newDate);
62
+ };
63
+ this.handleDateRangeChange = (date) => {
64
+ const dateRange = {
65
+ start: moment(this.state.startDate),
66
+ end: moment(this.state.endDate)
67
+ };
68
+ let newRange = {
69
+ start: date[0] || moment(dateRange.start),
70
+ end: date[1] || moment(dateRange.end)
71
+ };
72
+ const prevRange = {
73
+ start: moment(dateRange.start),
74
+ end: moment(dateRange.end)
75
+ };
76
+ let dateIndexModified = 0;
77
+ if (!this.checkIfSameDate(newRange.start, moment(dateRange.start))) {
78
+ dateIndexModified = 0;
79
+ } else if (!this.checkIfSameDate(newRange.end, moment(dateRange.end))) {
80
+ dateIndexModified = 1;
104
81
  }
105
- },
106
- [isStartDateFocused]
107
- );
108
- const checkMaxDateForScrollDatepicker = useCallback(() => {
109
- if (isStartDateFocused) {
110
- return formatDate(endDate);
111
- }
112
- return formatDate(maxDate);
113
- }, [isStartDateFocused, endDate, maxDate, formatDate]);
114
- const checkMinDateForScrollDatepicker = useCallback(() => {
115
- if (isStartDateFocused) {
116
- return formatDate(minDate);
117
- }
118
- return formatDate(startDate);
119
- }, [isStartDateFocused, minDate, startDate, formatDate]);
120
- const currentScrollDate = useMemo(
121
- () => formatDate(isStartDateFocused ? startDate : endDate),
122
- [isStartDateFocused, startDate, endDate, formatDate]
123
- );
124
- const handleCalendarChange = useCallback(
125
- (dates) => {
126
- if (!dates) return;
127
- const [rawStart, rawEnd] = dates;
128
- const raw = rawStart || rawEnd;
129
- if (!raw) return;
130
- const clicked = moment(raw.toDate());
131
- if (isStartDateFocused) {
132
- setStartDate(clicked);
133
- setFocusedInput(RANGE_PICKER.END_DATE);
134
- } else {
135
- if (clicked.diff(startDate, TIME_UNITS.DAY) >= 0) {
136
- setEndDate(clicked);
137
- setFocusedInput(RANGE_PICKER.START_DATE);
82
+ const { focusedInput } = this.state;
83
+ if (focusedInput === "startDate") {
84
+ newRange.start = date[dateIndexModified];
85
+ newRange.end = moment(dateRange.end);
86
+ } else if (focusedInput === "endDate") {
87
+ newRange.start = moment(dateRange.start);
88
+ newRange.end = date[dateIndexModified];
89
+ }
90
+ if (date[0] && date[1]) {
91
+ if (this.checkIfSameDate(date[0], date[1])) {
92
+ newRange = {
93
+ start: date[0],
94
+ end: date[1]
95
+ };
96
+ } else if (this.checkIfSameDate(date[0], prevRange.start) && this.checkIfSameDate(date[1], prevRange.end)) {
97
+ newRange = {
98
+ start: date[1],
99
+ end: date[1]
100
+ };
138
101
  }
139
102
  }
140
- },
141
- [startDate, isStartDateFocused]
142
- );
143
- const checkIfDateDisabled = useCallback(
144
- (current) => {
145
- const currentMoment = moment(current.toDate());
146
- const itd = moment(minDate, FORMAT_TOKENS.ISO_8601_DATE);
147
- let isDisabled = currentMoment.isAfter(moment(maxDate), TIME_UNITS.DAY) || currentMoment.isBefore(itd, TIME_UNITS.DAY);
148
- if (isStartDateFocused && currentMoment.isAfter(moment(endDate), TIME_UNITS.DAY)) {
103
+ if (newRange.start.diff(newRange.end, "days") <= 0) {
104
+ this.setState({
105
+ startDate: newRange.start,
106
+ endDate: newRange.end,
107
+ dateRange: newRange
108
+ });
109
+ this.toggleFocusedInput();
110
+ }
111
+ };
112
+ this.handleOnSelect = (date) => {
113
+ const newDate = moment(date);
114
+ const { focusedInput } = this.state;
115
+ this.setState({ [focusedInput]: newDate });
116
+ };
117
+ this.checkIfDateDisabled = (current) => {
118
+ const { focusedInput } = this.state;
119
+ let isDisabled = false;
120
+ const currentMoment = moment(current);
121
+ const itd = moment(this.props.minDate, DATE_FORMAT);
122
+ const { maxDate } = this.props;
123
+ isDisabled = currentMoment.isAfter(moment(maxDate), "day") || currentMoment.isBefore(itd, "day");
124
+ if (focusedInput === "startDate" && currentMoment.isAfter(moment(this.state.endDate), "day")) {
149
125
  isDisabled = true;
150
- } else if (isEndDateFocused && currentMoment.isBefore(moment(startDate), TIME_UNITS.DAY)) {
126
+ } else if (focusedInput === "endDate" && currentMoment.isBefore(moment(this.state.startDate), "day")) {
151
127
  isDisabled = true;
152
128
  }
153
129
  return isDisabled;
154
- },
155
- [isStartDateFocused, isEndDateFocused, minDate, maxDate, startDate, endDate]
156
- );
157
- const handleModalVisible = useCallback(() => {
158
- setIsModalOpen((prev) => !prev);
159
- }, []);
160
- const resetDate = useCallback(() => {
161
- setStartDate(startDateProp);
162
- setEndDate(endDateProp);
163
- }, [startDateProp, endDateProp]);
164
- const handleCancel = useCallback(() => {
165
- resetDate();
166
- handleModalVisible();
167
- }, [resetDate, handleModalVisible]);
168
- const handleDone = useCallback(() => {
169
- const dateRange = {
170
- start: moment(startDate),
171
- end: moment(endDate)
172
130
  };
173
- onDone(dateRange);
174
- handleModalVisible();
175
- }, [startDate, endDate, onDone, handleModalVisible]);
176
- return /* @__PURE__ */ jsxs(CapRow, { className: styles[clsPrefix], children: [
177
- isModalOpen && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
178
- CapModalWithHoc,
179
- {
180
- open: true,
181
- title,
182
- centered: true,
183
- destroyOnHidden: true,
184
- width: "90%",
185
- onCancel: handleCancel,
186
- className: styles[`${clsPrefix}-modal`],
187
- classNames: {
188
- header: styles[`${clsPrefix}-modal-header`],
189
- footer: styles[`${clsPrefix}-modal-footer`]
190
- },
191
- closable: false,
192
- footer: /* @__PURE__ */ jsxs(CapRow, { align: "middle", justify: "space-between", children: [
193
- /* @__PURE__ */ jsx(
194
- CapLabelWithStatic,
195
- {
196
- className: styles[`${clsPrefix}-modal-footer-cancel-button`],
197
- onClick: handleCancel,
198
- children: cancelText
199
- }
200
- ),
201
- /* @__PURE__ */ jsx(
202
- CapLabelWithStatic,
203
- {
204
- className: styles[`${clsPrefix}-modal-footer-done-button`],
205
- onClick: handleDone,
206
- children: doneText
207
- }
208
- )
209
- ] }),
210
- children: [
211
- /* @__PURE__ */ jsxs(CapRow, { justify: "start", align: "middle", children: [
212
- /* @__PURE__ */ jsx(CapColumn, { span: 21, children: /* @__PURE__ */ jsx(
213
- DateRangeInputSelectors_default,
131
+ this.formatDate = (date) => new Date(moment(date).format());
132
+ this.checkMaxDateForScrollDatepicker = () => {
133
+ const { endDate, focusedInput } = this.state;
134
+ const { maxDate } = this.props;
135
+ if (focusedInput === "startDate") {
136
+ return this.formatDate(endDate);
137
+ }
138
+ return this.formatDate(maxDate);
139
+ };
140
+ this.checkMinDateForScrollDatepicker = () => {
141
+ const { startDate, focusedInput } = this.state;
142
+ const { minDate } = this.props;
143
+ if (focusedInput === "startDate") {
144
+ return this.formatDate(minDate);
145
+ }
146
+ return this.formatDate(startDate);
147
+ };
148
+ this.resetDate = () => {
149
+ const { startDate, endDate } = this.props;
150
+ this.setState({ startDate, endDate });
151
+ };
152
+ this.handleCancel = () => {
153
+ this.resetDate();
154
+ this.handleModalVisible();
155
+ };
156
+ this.handleDone = () => {
157
+ const dateRange = {
158
+ start: moment(this.state.startDate),
159
+ end: moment(this.state.endDate)
160
+ };
161
+ this.props.onDone(dateRange);
162
+ this.handleModalVisible();
163
+ };
164
+ this.getDaySize = () => {
165
+ const screenWidth = window.screen.width;
166
+ return 40 + Math.ceil((screenWidth - 360) / 10);
167
+ };
168
+ this.state = {
169
+ startDate: props.startDate,
170
+ endDate: props.endDate,
171
+ isModalOpen: false,
172
+ focusedInput: "startDate",
173
+ isDatePickerVisible: false
174
+ };
175
+ }
176
+ componentWillReceiveProps(nextProps) {
177
+ if (!(this.checkIfSameDate(nextProps.startDate, this.props.startDate) && this.checkIfSameDate(nextProps.endDate, this.props.endDate))) {
178
+ this.setState({
179
+ startDate: nextProps.startDate,
180
+ endDate: nextProps.endDate
181
+ });
182
+ }
183
+ }
184
+ render() {
185
+ const { dateDisplayFormat, type, minimumNights } = this.props;
186
+ const { startDate, endDate, focusedInput } = this.state;
187
+ const DateRangePickerInputs = ({ showPlaceholders = false, onClick }) => /* @__PURE__ */ jsxs(CapRow, { className: "mobile-dateRange-picker-inputs", children: [
188
+ /* @__PURE__ */ jsxs(
189
+ CapColumn,
190
+ {
191
+ span: 11,
192
+ onClick: () => {
193
+ this.toggleFocusedInput("startDate", onClick);
194
+ },
195
+ children: [
196
+ showPlaceholders && /* @__PURE__ */ jsx("span", { className: "placeholder-text", children: "Start Date" }),
197
+ /* @__PURE__ */ jsx(
198
+ InputFinal,
214
199
  {
215
- focusedInput,
216
- startDate,
217
- endDate,
218
- dateDisplayFormat,
219
- handleStartDateClick,
220
- handleEndDateClick,
221
- showPlaceholders: true
200
+ className: `${focusedInput === "startDate" ? "focused" : ""}`,
201
+ value: moment(startDate).format(dateDisplayFormat),
202
+ size: "default",
203
+ disabled: true
222
204
  }
223
- ) }),
205
+ )
206
+ ]
207
+ }
208
+ ),
209
+ /* @__PURE__ */ jsx(CapColumn, { span: 2, className: `date-range-hyphen ${showPlaceholders && "vertical-align"}`, children: "-" }),
210
+ /* @__PURE__ */ jsxs(
211
+ CapColumn,
212
+ {
213
+ span: 11,
214
+ onClick: () => {
215
+ this.toggleFocusedInput("endDate", onClick);
216
+ },
217
+ children: [
218
+ showPlaceholders && /* @__PURE__ */ jsx("span", { className: "placeholder-text", children: "End Date" }),
224
219
  /* @__PURE__ */ jsx(
225
- CapColumn,
220
+ InputFinal,
221
+ {
222
+ className: `${focusedInput === "endDate" ? "focused" : ""}`,
223
+ value: moment(endDate).format(dateDisplayFormat),
224
+ size: "default",
225
+ disabled: true
226
+ }
227
+ )
228
+ ]
229
+ }
230
+ )
231
+ ] });
232
+ const { isModalOpen, isDatePickerVisible } = this.state;
233
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
234
+ /* @__PURE__ */ jsxs(
235
+ CapModalWithHoc,
236
+ {
237
+ title: this.props.title,
238
+ visible: isModalOpen,
239
+ centered: true,
240
+ okText: this.props.yesText,
241
+ cancelText: this.props.noText,
242
+ width: "90%",
243
+ onCancel: this.handleCancel,
244
+ className: "mobile-date-range-picker-modal",
245
+ closable: false,
246
+ footer: /* @__PURE__ */ jsxs(CapRow, { className: "modal-footer", children: [
247
+ /* @__PURE__ */ jsx("span", { span: 3, onClick: this.handleCancel, className: "action-item", children: this.props.cancelText && this.props.cancelText }),
248
+ /* @__PURE__ */ jsx(
249
+ "span",
226
250
  {
227
- onClick: resetDate,
228
251
  span: 3,
229
- className: styles[`${clsPrefix}-reset-button`],
230
- children: resetText
252
+ style: { marginLeft: "39px" },
253
+ className: "action-item",
254
+ onClick: this.handleDone,
255
+ children: this.props.doneText
231
256
  }
232
257
  )
233
258
  ] }),
234
- /* @__PURE__ */ jsx(CapDivider, { className: styles[`${clsPrefix}-divider`] }),
235
- /* @__PURE__ */ jsx(CapRow, { children: /* @__PURE__ */ jsx(
236
- CapColumn,
237
- {
238
- onClick: () => setIsDatePickerVisible(!isDatePickerVisible),
239
- span: 24,
240
- className: classNames(styles[`${clsPrefix}-switch-label`]),
241
- children: !isDatePickerVisible ? switchBackToScrollerText : switchBackToCalenderText
242
- }
243
- ) }),
244
- isDatePickerVisible ? /* @__PURE__ */ jsx(
245
- "div",
246
- {
247
- className: classNames(styles[`${clsPrefix}-scroller-datepicker`], {
248
- [styles[`${clsPrefix}-compare-mobile-date-picker`]]: isComparing
249
- }),
250
- children: /* @__PURE__ */ jsx(
251
- ReactMobileDatePicker,
259
+ children: [
260
+ /* @__PURE__ */ jsxs(CapRow, { type: "flex", align: "middle", className: "control-section", children: [
261
+ /* @__PURE__ */ jsx(CapColumn, { span: 21, children: /* @__PURE__ */ jsx(
262
+ DateRangePickerInputs,
252
263
  {
253
- isPopup: false,
254
- title: formatMessage(messages.datePicker),
255
- onChange: handleOnSelect,
256
- value: currentScrollDate,
257
- min: checkMinDateForScrollDatepicker(),
258
- max: checkMaxDateForScrollDatepicker(),
259
- showHeader: false,
260
- showFooter: false,
261
- dateConfig
264
+ context: "inner",
265
+ showPlaceholders: true,
266
+ onClick: () => this.handleDatePickerVisible(true)
262
267
  }
263
- )
264
- }
265
- ) : /* @__PURE__ */ jsx(
266
- "div",
267
- {
268
- className: classNames(styles[`${clsPrefix}-calender-only`], {
269
- [styles[`${clsPrefix}-compare-mobile-date-range-picker`]]: isComparing
270
- }),
271
- children: /* @__PURE__ */ jsx(
272
- CapDateRangePicker,
268
+ ) }),
269
+ /* @__PURE__ */ jsx(
270
+ CapColumn,
273
271
  {
274
- showCalendarOnly: true,
275
- isSingleMonthRangePicker: true,
276
- autoFocus: true,
277
- previewValue: false,
278
- value: [startDate, endDate],
279
- onCalendarChange: handleCalendarChange,
280
- isDayBlocked: checkIfDateDisabled,
281
- minimumNights,
282
- allowYearNavigation: true,
283
- getPopupContainer: (trigger) => (trigger == null ? void 0 : trigger.parentElement) || document.body
272
+ title: this.props.resetText,
273
+ onClick: this.resetDate,
274
+ span: 3,
275
+ className: "action-item",
276
+ children: this.props.resetText
284
277
  }
285
278
  )
286
- }
287
- )
288
- ]
289
- }
290
- ) }),
291
- /* @__PURE__ */ jsx(
292
- DateRangeInputSelectors_default,
293
- {
294
- focusedInput,
295
- startDate,
296
- endDate,
297
- dateDisplayFormat,
298
- handleStartDateClick,
299
- handleEndDateClick
300
- }
301
- )
302
- ] });
279
+ ] }),
280
+ /* @__PURE__ */ jsx(CapDivider, {}),
281
+ /* @__PURE__ */ jsx(CapRow, { span: 24, children: /* @__PURE__ */ jsx(
282
+ CapColumn,
283
+ {
284
+ title: this.props.resetText,
285
+ onClick: () => this.handleDatePickerVisible(!isDatePickerVisible),
286
+ span: 24,
287
+ className: "action-item toggle-text",
288
+ children: !isDatePickerVisible ? this.props.switchBackToScrollerText : this.props.switchBackToCalenderText
289
+ }
290
+ ) }),
291
+ isDatePickerVisible ? /* @__PURE__ */ jsx("div", { className: `${type === "compare" && "compare-mobile-date-picker"}`, children: /* @__PURE__ */ jsx(
292
+ ReactMobileDatePicker,
293
+ {
294
+ isPopup: false,
295
+ className: "date-picker-scroller",
296
+ title: "Date picker",
297
+ onChange: this.handleOnSelect,
298
+ value: this.formatDate(this.state[this.state.focusedInput]),
299
+ min: this.checkMinDateForScrollDatepicker(),
300
+ max: this.checkMaxDateForScrollDatepicker(),
301
+ showHeader: false,
302
+ showFooter: false,
303
+ dateConfig
304
+ }
305
+ ) }) : /* @__PURE__ */ jsx(
306
+ "div",
307
+ {
308
+ className: `calender-only ${type === "compare" && "compare-mobile-date-range-picker"}`,
309
+ children: /* @__PURE__ */ jsx(
310
+ CapDateRangePicker,
311
+ {
312
+ numberOfMonths: 1,
313
+ showCalendarOnly: true,
314
+ autoFocus: true,
315
+ daySize: this.getDaySize(),
316
+ startDate,
317
+ endDate,
318
+ onChange: this.handleDateRangeChange,
319
+ isOutsideRange: (current) => this.checkIfDateDisabled(current),
320
+ minimumNights,
321
+ allowYearNavigation: true,
322
+ minDate: moment(this.props.minDate),
323
+ rootClass: "calender-only"
324
+ }
325
+ )
326
+ }
327
+ )
328
+ ]
329
+ }
330
+ ),
331
+ /* @__PURE__ */ jsx(DateRangePickerInputs, { context: "inner", onClick: this.handleModalVisible })
332
+ ] });
333
+ }
334
+ }
335
+ CapMobileDateRangePicker.propTypes = {
336
+ cancelText: PropTypes.string,
337
+ resetText: PropTypes.string,
338
+ dateDisplayFormat: PropTypes.string,
339
+ yesText: PropTypes.string,
340
+ noText: PropTypes.string,
341
+ doneText: PropTypes.string,
342
+ startDate: PropTypes.object,
343
+ endDate: PropTypes.object,
344
+ minDate: PropTypes.object,
345
+ maxDate: PropTypes.object,
346
+ type: PropTypes.string,
347
+ minimumNights: PropTypes.number,
348
+ onDone: PropTypes.func,
349
+ switchBackToScrollerText: PropTypes.string,
350
+ switchBackToCalenderText: PropTypes.string,
351
+ title: PropTypes.string
303
352
  };
304
- const index = injectIntl(CapMobileDateRangePicker);
305
353
  export {
306
- clsPrefix,
307
- index as default
354
+ CapMobileDateRangePicker as default
308
355
  };