@capillarytech/blaze-ui 6.1.7 → 6.2.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 (41) hide show
  1. package/CapDateRangePicker/index.d.ts.map +1 -1
  2. package/CapDateRangePicker/index.js +5 -1
  3. package/CapDateRangePicker/styles.css +28 -0
  4. package/CapDateRangePicker/styles.module.scss.js +2 -1
  5. package/CapDateRangePicker/styles.scss +37 -0
  6. package/CapDateRangePicker/types.d.ts +5 -0
  7. package/CapDateRangePicker/types.d.ts.map +1 -1
  8. package/CapEmojiPicker/Picker/index.d.ts +1 -1
  9. package/CapEmojiPicker/Picker/index.d.ts.map +1 -1
  10. package/CapIcon/index.js +12 -12
  11. package/CapIcon/styles.css +21 -17
  12. package/CapIcon/styles.module.scss.js +4 -3
  13. package/CapIcon/styles.scss +15 -10
  14. package/CapMobileDateRangePicker/DateRangeInputSelectors.d.ts +7 -0
  15. package/CapMobileDateRangePicker/DateRangeInputSelectors.d.ts.map +1 -0
  16. package/CapMobileDateRangePicker/DateRangeInputSelectors.js +68 -0
  17. package/CapMobileDateRangePicker/index.d.ts +5 -21
  18. package/CapMobileDateRangePicker/index.d.ts.map +1 -1
  19. package/CapMobileDateRangePicker/index.js +262 -309
  20. package/CapMobileDateRangePicker/messages.d.ts +17 -0
  21. package/CapMobileDateRangePicker/messages.d.ts.map +1 -0
  22. package/CapMobileDateRangePicker/messages.js +20 -0
  23. package/CapMobileDateRangePicker/styles.css +107 -144
  24. package/CapMobileDateRangePicker/styles.module.scss.js +21 -0
  25. package/CapMobileDateRangePicker/styles.scss +188 -192
  26. package/CapMobileDateRangePicker/tests/CapMobileDateRangePicker.mockData.d.ts +18 -0
  27. package/CapMobileDateRangePicker/tests/CapMobileDateRangePicker.mockData.d.ts.map +1 -0
  28. package/CapMobileDateRangePicker/types.d.ts +95 -0
  29. package/CapMobileDateRangePicker/types.d.ts.map +1 -0
  30. package/CapMobileDateRangePicker/types.js +1 -0
  31. package/CapSelectFilter/types.d.ts +1 -1
  32. package/CapSelectFilter/types.d.ts.map +1 -1
  33. package/index.d.ts +2 -0
  34. package/index.d.ts.map +1 -1
  35. package/index.js +110 -108
  36. package/package.json +2 -2
  37. package/utils/dayjs.d.ts +29 -0
  38. package/utils/dayjs.d.ts.map +1 -1
  39. package/utils/dayjs.js +30 -0
  40. package/utils/getCapThemeConfig.d.ts +1 -1
  41. package/utils/getCapThemeConfig.d.ts.map +1 -1
@@ -1,355 +1,308 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import classNames from "classnames";
2
3
  import moment from "moment";
3
- import PropTypes from "prop-types";
4
- import React from "react";
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";
5
7
  import CapColumn from "../CapColumn/index.js";
6
8
  import CapDateRangePicker from "../CapDateRangePicker/index.js";
7
9
  import CapDivider from "../CapDivider/index.js";
8
- import InputFinal from "../CapInput/index.js";
10
+ import CapLabelWithStatic from "../CapLabel/index.js";
9
11
  import CapModalWithHoc from "../CapModal/index.js";
10
12
  import CapRow from "../CapRow/index.js";
13
+ import DateRangeInputSelectors_default from "./DateRangeInputSelectors.js";
14
+ import messages from "./messages.js";
11
15
  import ReactMobileDatePicker from "./ReactMobileDatePickerModule.js";
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
- };
16
+ import styles from "./styles.module.scss.js";
17
+ const clsPrefix = "cap-mobile-date-range-picker";
28
18
  const dateConfig = {
29
19
  date: {
30
- format: "DD",
31
- caption: "Day",
20
+ format: FORMAT_TOKENS.DAY_OF_MONTH_PADDED,
21
+ caption: TIME_UNITS.DAY,
32
22
  step: 1
33
23
  },
34
24
  month: {
35
- format: (value) => monthMap[value.getMonth() + 1],
36
- caption: "Mon",
25
+ format: (value) => MONTH_MAP[value.getMonth() + 1],
26
+ caption: WEEKDAY_MAP[1],
37
27
  step: 1
38
28
  },
39
29
  year: {
40
- format: "YYYY",
41
- caption: "Year",
30
+ format: FORMAT_TOKENS.YEAR,
31
+ caption: TIME_UNITS.YEAR,
42
32
  step: 1
43
33
  }
44
34
  };
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) => {
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) => {
52
77
  if (inputType === "") {
53
- this.setState(
54
- (prevState) => ({
55
- focusedInput: prevState.focusedInput === "startDate" ? "endDate" : "startDate"
56
- }),
57
- () => onClickHandler && onClickHandler()
78
+ setFocusedInput(
79
+ (prev) => prev === RANGE_PICKER.START_DATE ? RANGE_PICKER.END_DATE : RANGE_PICKER.START_DATE
58
80
  );
59
81
  } else {
60
- this.setState({ focusedInput: inputType }, () => onClickHandler && onClickHandler());
61
- }
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;
82
+ setFocusedInput(inputType);
81
83
  }
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];
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);
89
104
  }
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
- };
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);
101
138
  }
102
139
  }
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")) {
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)) {
125
149
  isDisabled = true;
126
- } else if (focusedInput === "endDate" && currentMoment.isBefore(moment(this.state.startDate), "day")) {
150
+ } else if (isEndDateFocused && currentMoment.isBefore(moment(startDate), TIME_UNITS.DAY)) {
127
151
  isDisabled = true;
128
152
  }
129
153
  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)
130
172
  };
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,
199
- {
200
- className: `${focusedInput === "startDate" ? "focused" : ""}`,
201
- value: moment(startDate).format(dateDisplayFormat),
202
- size: "default",
203
- disabled: true
204
- }
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" }),
219
- /* @__PURE__ */ jsx(
220
- InputFinal,
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,
221
214
  {
222
- className: `${focusedInput === "endDate" ? "focused" : ""}`,
223
- value: moment(endDate).format(dateDisplayFormat),
224
- size: "default",
225
- disabled: true
215
+ focusedInput,
216
+ startDate,
217
+ endDate,
218
+ dateDisplayFormat,
219
+ handleStartDateClick,
220
+ handleEndDateClick,
221
+ showPlaceholders: true
226
222
  }
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 }),
223
+ ) }),
248
224
  /* @__PURE__ */ jsx(
249
- "span",
225
+ CapColumn,
250
226
  {
227
+ onClick: resetDate,
251
228
  span: 3,
252
- style: { marginLeft: "39px" },
253
- className: "action-item",
254
- onClick: this.handleDone,
255
- children: this.props.doneText
229
+ className: styles[`${clsPrefix}-reset-button`],
230
+ children: resetText
256
231
  }
257
232
  )
258
233
  ] }),
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,
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,
263
252
  {
264
- context: "inner",
265
- showPlaceholders: true,
266
- onClick: () => this.handleDatePickerVisible(true)
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
267
262
  }
268
- ) }),
269
- /* @__PURE__ */ jsx(
270
- CapColumn,
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,
271
273
  {
272
- title: this.props.resetText,
273
- onClick: this.resetDate,
274
- span: 3,
275
- className: "action-item",
276
- children: this.props.resetText
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
277
284
  }
278
285
  )
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
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
+ ] });
352
303
  };
304
+ const index = injectIntl(CapMobileDateRangePicker);
353
305
  export {
354
- CapMobileDateRangePicker as default
306
+ clsPrefix,
307
+ index as default
355
308
  };
@@ -0,0 +1,17 @@
1
+ export declare const scope = "app.commonUtils.capUiLibrary.CapMobileDateRangePicker";
2
+ declare const _default: {
3
+ startDate: {
4
+ id: string;
5
+ defaultMessage: string;
6
+ };
7
+ endDate: {
8
+ id: string;
9
+ defaultMessage: string;
10
+ };
11
+ datePicker: {
12
+ id: string;
13
+ defaultMessage: string;
14
+ };
15
+ };
16
+ export default _default;
17
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../components/CapMobileDateRangePicker/messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,0DAA0D,CAAC;;;;;;;;;;;;;;;AAE7E,wBAaG"}
@@ -0,0 +1,20 @@
1
+ import { defineMessages } from "react-intl";
2
+ const scope = "app.commonUtils.capUiLibrary.CapMobileDateRangePicker";
3
+ const messages = defineMessages({
4
+ startDate: {
5
+ id: `${scope}.startDate`,
6
+ defaultMessage: "Start Date"
7
+ },
8
+ endDate: {
9
+ id: `${scope}.endDate`,
10
+ defaultMessage: "End Date"
11
+ },
12
+ datePicker: {
13
+ id: `${scope}.datePicker`,
14
+ defaultMessage: "Date picker"
15
+ }
16
+ });
17
+ export {
18
+ messages as default,
19
+ scope
20
+ };