baseui 10.4.0 → 10.7.1
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/app-nav-bar/user-menu.js +1 -0
- package/app-nav-bar/user-menu.js.flow +1 -0
- package/button/styled-components.js +1 -1
- package/button/styled-components.js.flow +4 -1
- package/card/styled-components.js +0 -1
- package/card/styled-components.js.flow +0 -1
- package/combobox/combobox.js +5 -1
- package/combobox/combobox.js.flow +4 -0
- package/combobox/index.d.ts +6 -3
- package/data-table/column-datetime.js +2 -0
- package/data-table/column-datetime.js.flow +2 -0
- package/datepicker/calendar-header.js +255 -109
- package/datepicker/calendar-header.js.flow +282 -145
- package/datepicker/calendar.js +6 -1
- package/datepicker/calendar.js.flow +5 -1
- package/datepicker/constants.js +9 -2
- package/datepicker/constants.js.flow +7 -0
- package/datepicker/datepicker.js +135 -73
- package/datepicker/datepicker.js.flow +161 -62
- package/datepicker/day.js +2 -0
- package/datepicker/day.js.flow +2 -0
- package/datepicker/index.d.ts +8 -0
- package/datepicker/month.js +4 -0
- package/datepicker/month.js.flow +3 -0
- package/datepicker/styled-components.js +116 -56
- package/datepicker/styled-components.js.flow +101 -36
- package/datepicker/types.js.flow +18 -1
- package/datepicker/utils/calendar-header-helpers.js +51 -0
- package/datepicker/utils/calendar-header-helpers.js.flow +53 -0
- package/datepicker/utils/date-helpers.js +1 -1
- package/datepicker/utils/date-helpers.js.flow +1 -1
- package/datepicker/week.js +1 -0
- package/datepicker/week.js.flow +1 -0
- package/dnd-list/index.js.flow +2 -1
- package/dnd-list/list.js +1 -2
- package/dnd-list/list.js.flow +1 -1
- package/dnd-list/styled-components.js +1 -1
- package/dnd-list/styled-components.js.flow +1 -0
- package/drawer/drawer.js +2 -1
- package/drawer/drawer.js.flow +1 -1
- package/es/app-nav-bar/user-menu.js +1 -0
- package/es/button/styled-components.js +1 -1
- package/es/card/styled-components.js +0 -1
- package/es/combobox/combobox.js +5 -1
- package/es/data-table/column-datetime.js +2 -0
- package/es/datepicker/calendar-header.js +204 -93
- package/es/datepicker/calendar.js +7 -2
- package/es/datepicker/constants.js +6 -1
- package/es/datepicker/datepicker.js +70 -42
- package/es/datepicker/day.js +2 -0
- package/es/datepicker/month.js +3 -0
- package/es/datepicker/styled-components.js +98 -37
- package/es/datepicker/types.js +1 -1
- package/es/datepicker/utils/calendar-header-helpers.js +34 -0
- package/es/datepicker/utils/date-helpers.js +1 -1
- package/es/datepicker/week.js +1 -0
- package/es/dnd-list/index.js +2 -1
- package/es/dnd-list/list.js +1 -2
- package/es/dnd-list/styled-components.js +1 -0
- package/es/drawer/drawer.js +2 -1
- package/es/helper/helper.js +1 -0
- package/es/layer/layer.js +8 -0
- package/es/map-marker/constants.js +69 -0
- package/es/map-marker/fixed-marker.js +98 -0
- package/es/map-marker/floating-marker.js +65 -0
- package/es/map-marker/index.js +9 -0
- package/es/map-marker/pin-head.js +108 -0
- package/es/map-marker/styled-components.js +156 -0
- package/es/map-marker/types.js +8 -0
- package/es/menu/maybe-child-menu.js +1 -0
- package/es/popover/popover.js +6 -5
- package/es/popover/stateful-container.js +8 -2
- package/es/rating/emoticon-rating.js +3 -1
- package/es/rating/star-rating.js +3 -1
- package/es/select/select-component.js +20 -5
- package/es/select/styled-components.js +34 -4
- package/es/snackbar/snackbar-context.js +16 -4
- package/es/table-semantic/styled-components.js +6 -4
- package/es/table-semantic/table-builder.js +3 -0
- package/es/themes/dark-theme/color-component-tokens.js +1 -1
- package/es/themes/light-theme/color-component-tokens.js +9 -9
- package/es/themes/shared/lighting.js +5 -1
- package/es/timepicker/timepicker.js +16 -11
- package/es/tooltip/styled-components.js +8 -0
- package/es/tooltip/tooltip.js +1 -0
- package/esm/app-nav-bar/user-menu.js +1 -0
- package/esm/button/styled-components.js +1 -1
- package/esm/card/styled-components.js +0 -1
- package/esm/combobox/combobox.js +5 -1
- package/esm/data-table/column-datetime.js +2 -0
- package/esm/datepicker/calendar-header.js +255 -110
- package/esm/datepicker/calendar.js +7 -2
- package/esm/datepicker/constants.js +6 -1
- package/esm/datepicker/datepicker.js +136 -74
- package/esm/datepicker/day.js +2 -0
- package/esm/datepicker/month.js +3 -0
- package/esm/datepicker/styled-components.js +112 -55
- package/esm/datepicker/types.js +1 -1
- package/esm/datepicker/utils/calendar-header-helpers.js +45 -0
- package/esm/datepicker/utils/date-helpers.js +1 -1
- package/esm/datepicker/week.js +1 -0
- package/esm/dnd-list/index.js +2 -1
- package/esm/dnd-list/list.js +1 -2
- package/esm/dnd-list/styled-components.js +1 -1
- package/esm/drawer/drawer.js +2 -1
- package/esm/helper/helper.js +1 -0
- package/esm/layer/layer.js +8 -0
- package/esm/map-marker/constants.js +62 -0
- package/esm/map-marker/fixed-marker.js +137 -0
- package/esm/map-marker/floating-marker.js +94 -0
- package/esm/map-marker/index.js +9 -0
- package/esm/map-marker/pin-head.js +144 -0
- package/esm/map-marker/styled-components.js +168 -0
- package/esm/map-marker/types.js +8 -0
- package/esm/menu/maybe-child-menu.js +1 -0
- package/esm/popover/popover.js +6 -5
- package/esm/popover/stateful-container.js +8 -2
- package/esm/rating/emoticon-rating.js +2 -2
- package/esm/rating/star-rating.js +2 -2
- package/esm/select/select-component.js +19 -5
- package/esm/select/styled-components.js +28 -4
- package/esm/snackbar/snackbar-context.js +16 -4
- package/esm/table-semantic/styled-components.js +6 -4
- package/esm/table-semantic/table-builder.js +3 -0
- package/esm/themes/dark-theme/color-component-tokens.js +1 -1
- package/esm/themes/light-theme/color-component-tokens.js +9 -9
- package/esm/themes/shared/lighting.js +5 -1
- package/esm/timepicker/timepicker.js +17 -11
- package/esm/tooltip/styled-components.js +8 -0
- package/esm/tooltip/tooltip.js +1 -0
- package/helper/helper.js +1 -0
- package/helper/helper.js.flow +1 -0
- package/layer/layer.js +8 -0
- package/layer/layer.js.flow +9 -0
- package/link/index.d.ts +1 -0
- package/map-marker/constants.js +82 -0
- package/map-marker/constants.js.flow +74 -0
- package/map-marker/fixed-marker.js +152 -0
- package/map-marker/fixed-marker.js.flow +137 -0
- package/map-marker/floating-marker.js +109 -0
- package/map-marker/floating-marker.js.flow +102 -0
- package/map-marker/index.d.ts +105 -0
- package/map-marker/index.js +55 -0
- package/map-marker/index.js.flow +23 -0
- package/map-marker/package.json +4 -0
- package/map-marker/pin-head.js +159 -0
- package/map-marker/pin-head.js.flow +155 -0
- package/map-marker/styled-components.js +184 -0
- package/map-marker/styled-components.js.flow +177 -0
- package/map-marker/types.js +11 -0
- package/map-marker/types.js.flow +114 -0
- package/menu/index.d.ts +7 -0
- package/menu/maybe-child-menu.js +1 -0
- package/menu/maybe-child-menu.js.flow +1 -0
- package/menu/types.js.flow +12 -0
- package/modal/index.d.ts +1 -1
- package/modal/types.js.flow +4 -1
- package/package.json +5 -3
- package/popover/index.d.ts +2 -1
- package/popover/popover.js +6 -5
- package/popover/popover.js.flow +11 -4
- package/popover/stateful-container.js +8 -2
- package/popover/stateful-container.js.flow +5 -0
- package/popover/types.js.flow +6 -1
- package/rating/emoticon-rating.js +2 -2
- package/rating/emoticon-rating.js.flow +4 -1
- package/rating/star-rating.js +2 -2
- package/rating/star-rating.js.flow +4 -1
- package/select/select-component.js +19 -5
- package/select/select-component.js.flow +19 -5
- package/select/styled-components.js +28 -4
- package/select/styled-components.js.flow +30 -2
- package/select/types.js.flow +9 -0
- package/snackbar/index.d.ts +21 -16
- package/snackbar/snackbar-context.js +15 -4
- package/snackbar/snackbar-context.js.flow +15 -3
- package/table-semantic/styled-components.js +6 -4
- package/table-semantic/styled-components.js.flow +6 -4
- package/table-semantic/table-builder.js +3 -0
- package/table-semantic/table-builder.js.flow +3 -0
- package/themes/dark-theme/color-component-tokens.js +1 -1
- package/themes/dark-theme/color-component-tokens.js.flow +1 -1
- package/themes/light-theme/color-component-tokens.js +9 -9
- package/themes/light-theme/color-component-tokens.js.flow +9 -9
- package/themes/shared/lighting.js +5 -1
- package/themes/shared/lighting.js.flow +4 -0
- package/themes/types.js.flow +4 -0
- package/timepicker/index.d.ts +1 -0
- package/timepicker/timepicker.js +17 -11
- package/timepicker/timepicker.js.flow +31 -12
- package/timepicker/types.js.flow +10 -0
- package/tooltip/styled-components.js +8 -0
- package/tooltip/styled-components.js.flow +8 -0
- package/tooltip/tooltip.js +1 -0
- package/tooltip/tooltip.js.flow +6 -1
|
@@ -14,6 +14,10 @@ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(
|
|
|
14
14
|
|
|
15
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
16
|
|
|
17
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
|
|
19
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
20
|
+
|
|
17
21
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
18
22
|
|
|
19
23
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
@@ -43,17 +47,18 @@ This source code is licensed under the MIT license found in the
|
|
|
43
47
|
LICENSE file in the root directory of this source tree.
|
|
44
48
|
*/
|
|
45
49
|
import * as React from 'react';
|
|
46
|
-
import
|
|
47
|
-
import
|
|
48
|
-
import
|
|
50
|
+
import ChevronRight from '../icon/chevron-right.js';
|
|
51
|
+
import ChevronLeft from '../icon/chevron-left.js';
|
|
52
|
+
import ChevronDown from '../icon/chevron-down.js';
|
|
49
53
|
import dateFnsAdapter from './utils/date-fns-adapter.js';
|
|
50
54
|
import DateHelpers from './utils/date-helpers.js';
|
|
55
|
+
import { getFilteredMonthItems } from './utils/calendar-header-helpers.js';
|
|
51
56
|
import { StatefulMenu } from '../menu/index.js';
|
|
52
57
|
import { Popover } from '../popover/index.js';
|
|
53
58
|
import { LocaleContext } from '../locale/index.js';
|
|
54
59
|
import { ThemeContext } from '../styles/theme-provider.js';
|
|
55
60
|
import { StyledCalendarHeader, StyledPrevButton, StyledNextButton, StyledMonthHeader, StyledWeekdayHeader, StyledMonthYearSelectButton, StyledMonthYearSelectIconContainer } from './styled-components.js';
|
|
56
|
-
import { ORIENTATION, WEEKDAYS } from './constants.js';
|
|
61
|
+
import { ORIENTATION, WEEKDAYS, DENSITY } from './constants.js';
|
|
57
62
|
import { getOverrides, mergeOverrides } from '../helpers/overrides.js';
|
|
58
63
|
import { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';
|
|
59
64
|
|
|
@@ -73,10 +78,6 @@ var DIRECTION = {
|
|
|
73
78
|
PREVIOUS: 'previous'
|
|
74
79
|
};
|
|
75
80
|
|
|
76
|
-
function yearMonthToId(year, month) {
|
|
77
|
-
return "".concat(year, "-").concat(month);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
81
|
function idToYearMonth(id) {
|
|
81
82
|
return id.split('-').map(Number);
|
|
82
83
|
}
|
|
@@ -95,14 +96,13 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
95
96
|
|
|
96
97
|
_defineProperty(_assertThisInitialized(_this), "dateHelpers", void 0);
|
|
97
98
|
|
|
98
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
99
|
-
|
|
100
|
-
_defineProperty(_assertThisInitialized(_this), "minYear", void 0);
|
|
99
|
+
_defineProperty(_assertThisInitialized(_this), "monthItems", void 0);
|
|
101
100
|
|
|
102
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
101
|
+
_defineProperty(_assertThisInitialized(_this), "yearItems", void 0);
|
|
103
102
|
|
|
104
103
|
_defineProperty(_assertThisInitialized(_this), "state", {
|
|
105
|
-
|
|
104
|
+
isMonthDropdownOpen: false,
|
|
105
|
+
isYearDropdownOpen: false,
|
|
106
106
|
isFocusVisible: false
|
|
107
107
|
});
|
|
108
108
|
|
|
@@ -110,17 +110,94 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
110
110
|
return _this.props.date || _this.dateHelpers.date();
|
|
111
111
|
});
|
|
112
112
|
|
|
113
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
114
|
-
var
|
|
113
|
+
_defineProperty(_assertThisInitialized(_this), "getYearItems", function () {
|
|
114
|
+
var date = _this.getDateProp();
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
var maxDate = _this.props.maxDate;
|
|
117
|
+
var minDate = _this.props.minDate;
|
|
118
|
+
var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
|
|
119
|
+
var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
|
|
120
|
+
|
|
121
|
+
var selectedMonth = _this.dateHelpers.getMonth(date); // TODO: this logic can be optimized to only run when minDate / maxDate change
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
_this.yearItems = Array.from({
|
|
125
|
+
length: maxYear - minYear + 1
|
|
126
|
+
}, function (_, i) {
|
|
127
|
+
return minYear + i;
|
|
128
|
+
}).map(function (year) {
|
|
129
|
+
return {
|
|
130
|
+
id: year.toString(),
|
|
131
|
+
label: year.toString()
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
var monthOfMaxDate = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH;
|
|
135
|
+
var monthOfMinDate = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [0,1,.... monthOfMaxDate]
|
|
136
|
+
|
|
137
|
+
var maxYearMonths = Array.from({
|
|
138
|
+
length: monthOfMaxDate + 1
|
|
139
|
+
}, function (x, i) {
|
|
140
|
+
return i;
|
|
141
|
+
}); // Generates array like [monthOfMinDate, ...., 10, 11]
|
|
142
|
+
|
|
143
|
+
var minYearMonths = Array.from({
|
|
144
|
+
length: 12 - monthOfMinDate
|
|
145
|
+
}, function (x, i) {
|
|
146
|
+
return i + monthOfMinDate;
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
if (selectedMonth > maxYearMonths[maxYearMonths.length - 1]) {
|
|
150
|
+
var lastIdx = _this.yearItems.length - 1;
|
|
151
|
+
_this.yearItems[lastIdx] = _objectSpread(_objectSpread({}, _this.yearItems[lastIdx]), {}, {
|
|
152
|
+
disabled: true
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (selectedMonth < minYearMonths[0]) {
|
|
157
|
+
_this.yearItems[0] = _objectSpread(_objectSpread({}, _this.yearItems[0]), {}, {
|
|
158
|
+
disabled: true
|
|
120
159
|
});
|
|
121
160
|
}
|
|
122
161
|
});
|
|
123
162
|
|
|
163
|
+
_defineProperty(_assertThisInitialized(_this), "getMonthItems", function () {
|
|
164
|
+
var date = _this.getDateProp();
|
|
165
|
+
|
|
166
|
+
var year = _this.dateHelpers.getYear(date);
|
|
167
|
+
|
|
168
|
+
var maxDate = _this.props.maxDate;
|
|
169
|
+
var minDate = _this.props.minDate;
|
|
170
|
+
var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
|
|
171
|
+
var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
|
|
172
|
+
var monthOfMaxDate = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH; // Generates array like [0,1,.... monthOfMaxDate]
|
|
173
|
+
|
|
174
|
+
var maxYearMonths = Array.from({
|
|
175
|
+
length: monthOfMaxDate + 1
|
|
176
|
+
}, function (x, i) {
|
|
177
|
+
return i;
|
|
178
|
+
});
|
|
179
|
+
var monthOfMinDate = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [monthOfMinDate, ...., 10, 11]
|
|
180
|
+
|
|
181
|
+
var minYearMonths = Array.from({
|
|
182
|
+
length: 12 - monthOfMinDate
|
|
183
|
+
}, function (x, i) {
|
|
184
|
+
return i + monthOfMinDate;
|
|
185
|
+
});
|
|
186
|
+
var maxMinYearMonthsIntersection = maxYearMonths.filter(function (year) {
|
|
187
|
+
return minYearMonths.includes(year);
|
|
188
|
+
});
|
|
189
|
+
var filterMonthsList = year === maxYear && year === minYear ? maxMinYearMonthsIntersection : year === maxYear ? maxYearMonths : year === minYear ? minYearMonths : null;
|
|
190
|
+
|
|
191
|
+
var formatMonthLabel = function formatMonthLabel(month) {
|
|
192
|
+
return _this.dateHelpers.getMonthInLocale(month, _this.props.locale);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
_this.monthItems = getFilteredMonthItems({
|
|
196
|
+
filterMonthsList: filterMonthsList,
|
|
197
|
+
formatMonthLabel: formatMonthLabel
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
|
|
124
201
|
_defineProperty(_assertThisInitialized(_this), "increaseMonth", function () {
|
|
125
202
|
if (_this.props.onMonthChange) {
|
|
126
203
|
// $FlowFixMe
|
|
@@ -188,14 +265,16 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
188
265
|
}
|
|
189
266
|
});
|
|
190
267
|
|
|
191
|
-
_defineProperty(_assertThisInitialized(_this), "renderPreviousMonthButton", function (
|
|
192
|
-
var locale =
|
|
193
|
-
theme =
|
|
268
|
+
_defineProperty(_assertThisInitialized(_this), "renderPreviousMonthButton", function (_ref2) {
|
|
269
|
+
var locale = _ref2.locale,
|
|
270
|
+
theme = _ref2.theme;
|
|
194
271
|
|
|
195
272
|
var date = _this.getDateProp();
|
|
196
273
|
|
|
197
|
-
var _this$
|
|
198
|
-
|
|
274
|
+
var _this$props3 = _this.props,
|
|
275
|
+
_this$props3$override = _this$props3.overrides,
|
|
276
|
+
overrides = _this$props3$override === void 0 ? {} : _this$props3$override,
|
|
277
|
+
density = _this$props3.density;
|
|
199
278
|
|
|
200
279
|
var allPrevDaysDisabled = _this.dateHelpers.monthDisabledBefore(date, _this.props);
|
|
201
280
|
|
|
@@ -224,7 +303,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
224
303
|
PrevButton = _getOverrides2[0],
|
|
225
304
|
prevButtonProps = _getOverrides2[1];
|
|
226
305
|
|
|
227
|
-
var _getOverrides3 = getOverrides(overrides.PrevButtonIcon, theme.direction === 'rtl' ?
|
|
306
|
+
var _getOverrides3 = getOverrides(overrides.PrevButtonIcon, theme.direction === 'rtl' ? ChevronRight : ChevronLeft),
|
|
228
307
|
_getOverrides4 = _slicedToArray(_getOverrides3, 2),
|
|
229
308
|
PrevButtonIcon = _getOverrides4[0],
|
|
230
309
|
prevButtonIconProps = _getOverrides4[1];
|
|
@@ -245,7 +324,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
245
324
|
$disabled: isDisabled,
|
|
246
325
|
$order: _this.props.order
|
|
247
326
|
}, prevButtonProps), isHidden ? null : /*#__PURE__*/React.createElement(PrevButtonIcon, _extends({
|
|
248
|
-
size:
|
|
327
|
+
size: density === DENSITY.high ? 24 : 36,
|
|
249
328
|
overrides: {
|
|
250
329
|
Svg: {
|
|
251
330
|
style: navBtnStyle
|
|
@@ -254,14 +333,16 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
254
333
|
}, prevButtonIconProps)));
|
|
255
334
|
});
|
|
256
335
|
|
|
257
|
-
_defineProperty(_assertThisInitialized(_this), "renderNextMonthButton", function (
|
|
258
|
-
var locale =
|
|
259
|
-
theme =
|
|
336
|
+
_defineProperty(_assertThisInitialized(_this), "renderNextMonthButton", function (_ref3) {
|
|
337
|
+
var locale = _ref3.locale,
|
|
338
|
+
theme = _ref3.theme;
|
|
260
339
|
|
|
261
340
|
var date = _this.getDateProp();
|
|
262
341
|
|
|
263
|
-
var _this$
|
|
264
|
-
|
|
342
|
+
var _this$props4 = _this.props,
|
|
343
|
+
_this$props4$override = _this$props4.overrides,
|
|
344
|
+
overrides = _this$props4$override === void 0 ? {} : _this$props4$override,
|
|
345
|
+
density = _this$props4.density;
|
|
265
346
|
|
|
266
347
|
var allNextDaysDisabled = _this.dateHelpers.monthDisabledAfter(date, _this.props);
|
|
267
348
|
|
|
@@ -290,7 +371,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
290
371
|
NextButton = _getOverrides6[0],
|
|
291
372
|
nextButtonProps = _getOverrides6[1];
|
|
292
373
|
|
|
293
|
-
var _getOverrides7 = getOverrides(overrides.NextButtonIcon, theme.direction === 'rtl' ?
|
|
374
|
+
var _getOverrides7 = getOverrides(overrides.NextButtonIcon, theme.direction === 'rtl' ? ChevronLeft : ChevronRight),
|
|
294
375
|
_getOverrides8 = _slicedToArray(_getOverrides7, 2),
|
|
295
376
|
NextButtonIcon = _getOverrides8[0],
|
|
296
377
|
nextButtonIconProps = _getOverrides8[1];
|
|
@@ -315,7 +396,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
315
396
|
$isFocusVisible: _this.state.isFocusVisible,
|
|
316
397
|
$order: _this.props.order
|
|
317
398
|
}, nextButtonProps), isHidden ? null : /*#__PURE__*/React.createElement(NextButtonIcon, _extends({
|
|
318
|
-
size:
|
|
399
|
+
size: density === DENSITY.high ? 24 : 36,
|
|
319
400
|
overrides: {
|
|
320
401
|
Svg: {
|
|
321
402
|
style: navBtnStyle
|
|
@@ -325,7 +406,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
325
406
|
});
|
|
326
407
|
|
|
327
408
|
_defineProperty(_assertThisInitialized(_this), "canArrowsOpenDropdown", function (event) {
|
|
328
|
-
if (!_this.state.
|
|
409
|
+
if (!_this.state.isMonthDropdownOpen && !_this.state.isYearDropdownOpen) {
|
|
329
410
|
if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
|
|
330
411
|
return true;
|
|
331
412
|
}
|
|
@@ -337,12 +418,15 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
337
418
|
_defineProperty(_assertThisInitialized(_this), "renderMonthYearDropdown", function () {
|
|
338
419
|
var date = _this.getDateProp();
|
|
339
420
|
|
|
340
|
-
var
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
421
|
+
var month = _this.dateHelpers.getMonth(date);
|
|
422
|
+
|
|
423
|
+
var year = _this.dateHelpers.getYear(date);
|
|
424
|
+
|
|
425
|
+
var _this$props5 = _this.props,
|
|
426
|
+
locale = _this$props5.locale,
|
|
427
|
+
_this$props5$override = _this$props5.overrides,
|
|
428
|
+
overrides = _this$props5$override === void 0 ? {} : _this$props5$override,
|
|
429
|
+
density = _this$props5.density;
|
|
346
430
|
|
|
347
431
|
var _getOverrides9 = getOverrides(overrides.MonthYearSelectButton, StyledMonthYearSelectButton),
|
|
348
432
|
_getOverrides10 = _slicedToArray(_getOverrides9, 2),
|
|
@@ -375,115 +459,146 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
375
459
|
menuProps && menuProps.overrides); // $FlowFixMe
|
|
376
460
|
|
|
377
461
|
menuProps.overrides = menuOverrides;
|
|
378
|
-
var defaultMonths = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
379
|
-
var maxYear = maxDate ? _this.dateHelpers.getYear(maxDate) : MAX_YEAR;
|
|
380
|
-
var minYear = minDate ? _this.dateHelpers.getYear(minDate) : MIN_YEAR;
|
|
381
|
-
var maxDateMonth = maxDate ? _this.dateHelpers.getMonth(maxDate) : MAX_MONTH; // Generates array like [0,1,.... maxDateMonth]
|
|
382
462
|
|
|
383
|
-
var
|
|
384
|
-
|
|
385
|
-
}, function (x, i) {
|
|
386
|
-
return i;
|
|
463
|
+
var initialMonthIndex = _this.monthItems.findIndex(function (month) {
|
|
464
|
+
return month.id === _this.dateHelpers.getMonth(date).toString();
|
|
387
465
|
});
|
|
388
|
-
var minDateMonth = minDate ? _this.dateHelpers.getMonth(minDate) : MIN_MONTH; // Generates array like [minDateMonth, ...., 10, 11]
|
|
389
466
|
|
|
390
|
-
var
|
|
391
|
-
|
|
392
|
-
}, function (x, i) {
|
|
393
|
-
return i + minDateMonth;
|
|
467
|
+
var initialYearIndex = _this.yearItems.findIndex(function (year) {
|
|
468
|
+
return year.id === _this.dateHelpers.getYear(date).toString();
|
|
394
469
|
});
|
|
395
470
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
471
|
+
var monthTitle = "".concat(_this.dateHelpers.getMonthInLocale(_this.dateHelpers.getMonth(date), locale));
|
|
472
|
+
var yearTitle = "".concat(_this.dateHelpers.getYear(date));
|
|
473
|
+
return _this.isMultiMonthHorizontal() ? /*#__PURE__*/React.createElement("div", null, "".concat(monthTitle, " ").concat(yearTitle)) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(OverriddenPopover, _extends({
|
|
474
|
+
placement: "bottom",
|
|
475
|
+
autoFocus: true,
|
|
476
|
+
focusLock: true,
|
|
477
|
+
isOpen: _this.state.isMonthDropdownOpen,
|
|
478
|
+
onClick: function onClick() {
|
|
479
|
+
_this.setState(function (prev) {
|
|
480
|
+
return {
|
|
481
|
+
isMonthDropdownOpen: !prev.isMonthDropdownOpen
|
|
482
|
+
};
|
|
483
|
+
});
|
|
484
|
+
},
|
|
485
|
+
onClickOutside: function onClickOutside() {
|
|
486
|
+
return _this.setState({
|
|
487
|
+
isMonthDropdownOpen: false
|
|
488
|
+
});
|
|
489
|
+
},
|
|
490
|
+
onEsc: function onEsc() {
|
|
491
|
+
return _this.setState({
|
|
492
|
+
isMonthDropdownOpen: false
|
|
493
|
+
});
|
|
494
|
+
},
|
|
495
|
+
content: function content() {
|
|
496
|
+
return /*#__PURE__*/React.createElement(OverriddenStatefulMenu, _extends({
|
|
497
|
+
initialState: {
|
|
498
|
+
highlightedIndex: initialMonthIndex,
|
|
499
|
+
isFocused: true
|
|
500
|
+
},
|
|
501
|
+
items: _this.monthItems,
|
|
502
|
+
onItemSelect: function onItemSelect(_ref4) {
|
|
503
|
+
var item = _ref4.item,
|
|
504
|
+
event = _ref4.event;
|
|
505
|
+
event.preventDefault();
|
|
506
|
+
var month = idToYearMonth(item.id);
|
|
507
|
+
|
|
508
|
+
var updatedDate = _this.dateHelpers.set(date, {
|
|
509
|
+
year: year,
|
|
510
|
+
month: month
|
|
511
|
+
});
|
|
400
512
|
|
|
401
|
-
|
|
402
|
-
|
|
513
|
+
_this.props.onMonthChange && _this.props.onMonthChange({
|
|
514
|
+
date: updatedDate
|
|
515
|
+
});
|
|
403
516
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
517
|
+
_this.setState({
|
|
518
|
+
isMonthDropdownOpen: false
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
}, menuProps));
|
|
522
|
+
}
|
|
523
|
+
}, popoverProps), /*#__PURE__*/React.createElement(MonthYearSelectButton, _extends({
|
|
524
|
+
"aria-live": "polite",
|
|
525
|
+
type: "button",
|
|
526
|
+
$isFocusVisible: _this.state.isFocusVisible,
|
|
527
|
+
$density: density,
|
|
528
|
+
onKeyUp: function onKeyUp(event) {
|
|
529
|
+
if (_this.canArrowsOpenDropdown(event)) {
|
|
530
|
+
_this.setState({
|
|
531
|
+
isMonthDropdownOpen: true
|
|
407
532
|
});
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
533
|
+
}
|
|
534
|
+
},
|
|
535
|
+
onKeyDown: function onKeyDown(event) {
|
|
536
|
+
if (_this.canArrowsOpenDropdown(event)) {
|
|
537
|
+
// disables page scroll
|
|
538
|
+
event.preventDefault();
|
|
414
539
|
}
|
|
415
540
|
|
|
416
|
-
|
|
417
|
-
_this.
|
|
418
|
-
|
|
419
|
-
label: "".concat(_this.dateHelpers.getMonthInLocale(month, locale), " ").concat(i)
|
|
541
|
+
if (event.key === 'Tab') {
|
|
542
|
+
_this.setState({
|
|
543
|
+
isMonthDropdownOpen: false
|
|
420
544
|
});
|
|
421
|
-
}
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
for (var i = minYear; i <= maxYear; i++) {
|
|
425
|
-
_loop(i);
|
|
545
|
+
}
|
|
426
546
|
}
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
547
|
+
}, monthYearSelectButtonProps), monthTitle, /*#__PURE__*/React.createElement(MonthYearSelectIconContainer, monthYearSelectIconContainerProps, /*#__PURE__*/React.createElement(ChevronDown, {
|
|
548
|
+
title: "",
|
|
549
|
+
overrides: {
|
|
550
|
+
Svg: {
|
|
551
|
+
props: {
|
|
552
|
+
role: 'presentation'
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
size: density === DENSITY.high ? 16 : 24
|
|
557
|
+
})))), /*#__PURE__*/React.createElement(OverriddenPopover, _extends({
|
|
435
558
|
placement: "bottom",
|
|
436
|
-
autoFocus: true,
|
|
437
559
|
focusLock: true,
|
|
438
|
-
isOpen: _this.state.
|
|
560
|
+
isOpen: _this.state.isYearDropdownOpen,
|
|
439
561
|
onClick: function onClick() {
|
|
440
562
|
_this.setState(function (prev) {
|
|
441
563
|
return {
|
|
442
|
-
|
|
564
|
+
isYearDropdownOpen: !prev.isYearDropdownOpen
|
|
443
565
|
};
|
|
444
566
|
});
|
|
445
567
|
},
|
|
446
568
|
onClickOutside: function onClickOutside() {
|
|
447
569
|
return _this.setState({
|
|
448
|
-
|
|
570
|
+
isYearDropdownOpen: false
|
|
449
571
|
});
|
|
450
572
|
},
|
|
451
573
|
onEsc: function onEsc() {
|
|
452
574
|
return _this.setState({
|
|
453
|
-
|
|
575
|
+
isYearDropdownOpen: false
|
|
454
576
|
});
|
|
455
577
|
},
|
|
456
578
|
content: function content() {
|
|
457
579
|
return /*#__PURE__*/React.createElement(OverriddenStatefulMenu, _extends({
|
|
458
580
|
initialState: {
|
|
459
|
-
highlightedIndex:
|
|
581
|
+
highlightedIndex: initialYearIndex,
|
|
460
582
|
isFocused: true
|
|
461
583
|
},
|
|
462
|
-
items: _this.
|
|
584
|
+
items: _this.yearItems,
|
|
463
585
|
onItemSelect: function onItemSelect(_ref5) {
|
|
464
586
|
var item = _ref5.item,
|
|
465
587
|
event = _ref5.event;
|
|
466
588
|
event.preventDefault();
|
|
467
|
-
|
|
468
|
-
var _idToYearMonth = idToYearMonth(item.id),
|
|
469
|
-
_idToYearMonth2 = _slicedToArray(_idToYearMonth, 2),
|
|
470
|
-
year = _idToYearMonth2[0],
|
|
471
|
-
month = _idToYearMonth2[1];
|
|
589
|
+
var year = idToYearMonth(item.id);
|
|
472
590
|
|
|
473
591
|
var updatedDate = _this.dateHelpers.set(date, {
|
|
474
592
|
year: year,
|
|
475
593
|
month: month
|
|
476
594
|
});
|
|
477
595
|
|
|
478
|
-
_this.props.onMonthChange && _this.props.onMonthChange({
|
|
479
|
-
date: updatedDate
|
|
480
|
-
});
|
|
481
596
|
_this.props.onYearChange && _this.props.onYearChange({
|
|
482
597
|
date: updatedDate
|
|
483
598
|
});
|
|
484
599
|
|
|
485
600
|
_this.setState({
|
|
486
|
-
|
|
601
|
+
isYearDropdownOpen: false
|
|
487
602
|
});
|
|
488
603
|
}
|
|
489
604
|
}, menuProps));
|
|
@@ -492,10 +607,11 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
492
607
|
"aria-live": "polite",
|
|
493
608
|
type: "button",
|
|
494
609
|
$isFocusVisible: _this.state.isFocusVisible,
|
|
610
|
+
$density: density,
|
|
495
611
|
onKeyUp: function onKeyUp(event) {
|
|
496
612
|
if (_this.canArrowsOpenDropdown(event)) {
|
|
497
613
|
_this.setState({
|
|
498
|
-
|
|
614
|
+
isYearDropdownOpen: true
|
|
499
615
|
});
|
|
500
616
|
}
|
|
501
617
|
},
|
|
@@ -507,11 +623,11 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
507
623
|
|
|
508
624
|
if (event.key === 'Tab') {
|
|
509
625
|
_this.setState({
|
|
510
|
-
|
|
626
|
+
isYearDropdownOpen: false
|
|
511
627
|
});
|
|
512
628
|
}
|
|
513
629
|
}
|
|
514
|
-
}, monthYearSelectButtonProps),
|
|
630
|
+
}, monthYearSelectButtonProps), yearTitle, /*#__PURE__*/React.createElement(MonthYearSelectIconContainer, monthYearSelectIconContainerProps, /*#__PURE__*/React.createElement(ChevronDown, {
|
|
515
631
|
title: "",
|
|
516
632
|
overrides: {
|
|
517
633
|
Svg: {
|
|
@@ -519,22 +635,48 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
519
635
|
role: 'presentation'
|
|
520
636
|
}
|
|
521
637
|
}
|
|
522
|
-
}
|
|
523
|
-
|
|
638
|
+
},
|
|
639
|
+
size: density === DENSITY.high ? 16 : 24
|
|
640
|
+
})))));
|
|
524
641
|
});
|
|
525
642
|
|
|
526
643
|
_this.dateHelpers = new DateHelpers(props.adapter);
|
|
527
|
-
_this.
|
|
644
|
+
_this.monthItems = [];
|
|
645
|
+
_this.yearItems = [];
|
|
528
646
|
return _this;
|
|
529
647
|
}
|
|
530
648
|
|
|
531
649
|
_createClass(CalendarHeader, [{
|
|
650
|
+
key: "componentDidMount",
|
|
651
|
+
value: function componentDidMount() {
|
|
652
|
+
this.getYearItems();
|
|
653
|
+
this.getMonthItems();
|
|
654
|
+
}
|
|
655
|
+
}, {
|
|
656
|
+
key: "componentDidUpdate",
|
|
657
|
+
value: function componentDidUpdate(prevProps) {
|
|
658
|
+
var selectedMonthDidChange = this.dateHelpers.getMonth(this.props.date) !== this.dateHelpers.getMonth(prevProps.date);
|
|
659
|
+
var selectedYearDidChange = this.dateHelpers.getYear(this.props.date) !== this.dateHelpers.getYear(prevProps.date);
|
|
660
|
+
|
|
661
|
+
if (selectedMonthDidChange) {
|
|
662
|
+
// re-calculate yearItems
|
|
663
|
+
this.getYearItems();
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
if (selectedYearDidChange) {
|
|
667
|
+
// re-calculate monthItems
|
|
668
|
+
this.getMonthItems();
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}, {
|
|
532
672
|
key: "render",
|
|
533
673
|
value: function render() {
|
|
534
674
|
var _this2 = this;
|
|
535
675
|
|
|
536
|
-
var _this$
|
|
537
|
-
|
|
676
|
+
var _this$props6 = this.props,
|
|
677
|
+
_this$props6$override = _this$props6.overrides,
|
|
678
|
+
overrides = _this$props6$override === void 0 ? {} : _this$props6$override,
|
|
679
|
+
density = _this$props6.density;
|
|
538
680
|
|
|
539
681
|
var _getOverrides17 = getOverrides(overrides.CalendarHeader, StyledCalendarHeader),
|
|
540
682
|
_getOverrides18 = _slicedToArray(_getOverrides17, 2),
|
|
@@ -555,6 +697,7 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
555
697
|
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
556
698
|
return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, function (locale) {
|
|
557
699
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_CalendarHeader, _extends({}, calendarHeaderProps, {
|
|
700
|
+
$density: _this2.props.density,
|
|
558
701
|
onFocus: forkFocus(calendarHeaderProps, _this2.handleFocus),
|
|
559
702
|
onBlur: forkBlur(calendarHeaderProps, _this2.handleBlur)
|
|
560
703
|
}), _this2.renderPreviousMonthButton({
|
|
@@ -571,7 +714,9 @@ var CalendarHeader = /*#__PURE__*/function (_React$Component) {
|
|
|
571
714
|
return /*#__PURE__*/React.createElement(WeekdayHeader, _extends({
|
|
572
715
|
key: offset,
|
|
573
716
|
alt: _this2.dateHelpers.getWeekdayInLocale(day, _this2.props.locale)
|
|
574
|
-
}, weekdayHeaderProps
|
|
717
|
+
}, weekdayHeaderProps, {
|
|
718
|
+
$density: density
|
|
719
|
+
}), _this2.dateHelpers.getWeekdayMinInLocale(day, _this2.props.locale));
|
|
575
720
|
})));
|
|
576
721
|
});
|
|
577
722
|
});
|
|
@@ -65,7 +65,7 @@ import { StyledCalendarContainer, StyledMonthContainer, StyledRoot, StyledSelect
|
|
|
65
65
|
import dateFnsAdapter from './utils/date-fns-adapter.js';
|
|
66
66
|
import DateHelpers from './utils/date-helpers.js';
|
|
67
67
|
import { getOverrides, mergeOverrides } from '../helpers/overrides.js';
|
|
68
|
-
import { ORIENTATION } from './constants.js';
|
|
68
|
+
import { DENSITY, ORIENTATION } from './constants.js';
|
|
69
69
|
|
|
70
70
|
var Calendar = /*#__PURE__*/function (_React$Component) {
|
|
71
71
|
_inherits(Calendar, _React$Component);
|
|
@@ -408,10 +408,13 @@ var Calendar = /*#__PURE__*/function (_React$Component) {
|
|
|
408
408
|
"aria-roledescription": translations.ariaRoleDescCalMonth,
|
|
409
409
|
"aria-multiselectable": _this.props.range || null,
|
|
410
410
|
onKeyDown: _this.onKeyDown
|
|
411
|
-
}, calendarContainerProps
|
|
411
|
+
}, calendarContainerProps, {
|
|
412
|
+
$density: _this.props.density
|
|
413
|
+
}), /*#__PURE__*/React.createElement(Month, {
|
|
412
414
|
adapter: _this.props.adapter,
|
|
413
415
|
date: monthDate,
|
|
414
416
|
dateLabel: _this.props.dateLabel,
|
|
417
|
+
density: _this.props.density,
|
|
415
418
|
excludeDates: _this.props.excludeDates,
|
|
416
419
|
filterDate: _this.props.filterDate,
|
|
417
420
|
highlightedDate: _this.state.highlightedDate,
|
|
@@ -693,6 +696,7 @@ var Calendar = /*#__PURE__*/function (_React$Component) {
|
|
|
693
696
|
|
|
694
697
|
return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, function (locale) {
|
|
695
698
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
|
699
|
+
$density: _this2.props.density,
|
|
696
700
|
"data-baseweb": "calendar",
|
|
697
701
|
role: "application",
|
|
698
702
|
"aria-roledescription": "datepicker",
|
|
@@ -722,6 +726,7 @@ var Calendar = /*#__PURE__*/function (_React$Component) {
|
|
|
722
726
|
_defineProperty(Calendar, "defaultProps", {
|
|
723
727
|
autoFocusCalendar: false,
|
|
724
728
|
dateLabel: null,
|
|
729
|
+
density: DENSITY.default,
|
|
725
730
|
excludeDates: null,
|
|
726
731
|
filterDate: null,
|
|
727
732
|
highlightedDate: null,
|
|
@@ -20,4 +20,9 @@ export var STATE_CHANGE_TYPE = Object.freeze({
|
|
|
20
20
|
mouseOver: 'mouseOver',
|
|
21
21
|
mouseLeave: 'mouseLeave'
|
|
22
22
|
});
|
|
23
|
-
export var WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
|
|
23
|
+
export var WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];
|
|
24
|
+
export var DEFAULT_MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
|
25
|
+
export var DENSITY = {
|
|
26
|
+
high: 'high',
|
|
27
|
+
default: 'default'
|
|
28
|
+
};
|