1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var slicedToArray = require('./slicedToArray-0711941d.js');
|
8 | require('./unsupportedIterableToArray-68db1d3b.js');
|
9 | var React = require('react');
|
10 | var React__default = _interopDefault(React);
|
11 | require('./_commonjsHelpers-72d386ba.js');
|
12 | var index = require('./index-b0606964.js');
|
13 | require('./defineProperty-0921a47c.js');
|
14 | require('./toConsumableArray-d8a4a2c3.js');
|
15 | var _styled = require('styled-components');
|
16 | var _styled__default = _interopDefault(_styled);
|
17 | require('./getPrototypeOf-2a661a20.js');
|
18 | require('./color.js');
|
19 | require('./components.js');
|
20 | require('./contains-component.js');
|
21 | require('./css.js');
|
22 | var dayjs_min = require('./dayjs.min-e07657bf.js');
|
23 | var date = require('./date.js');
|
24 | require('./miscellaneous.js');
|
25 | require('./environment.js');
|
26 | require('./font.js');
|
27 | require('./math-f4029164.js');
|
28 | require('./characters.js');
|
29 | require('./format.js');
|
30 | require('./keycodes.js');
|
31 | require('./url.js');
|
32 | require('./web3.js');
|
33 | var constants = require('./constants.js');
|
34 | require('./breakpoints.js');
|
35 | require('./springs.js');
|
36 | require('./text-styles.js');
|
37 | require('./theme-dark.js');
|
38 | require('./theme-light.js');
|
39 | require('./Theme.js');
|
40 | require('./extends-40571110.js');
|
41 | var objectWithoutProperties = require('./objectWithoutProperties-35db8ab0.js');
|
42 | require('./index-ecc57c9f.js');
|
43 | require('./FocusVisible.js');
|
44 | require('./ButtonBase.js');
|
45 | require('./IconPropTypes-56de5759.js');
|
46 | require('./IconAddUser.js');
|
47 | require('./IconAlert.js');
|
48 | require('./IconAlignCenter.js');
|
49 | require('./IconAlignJustify.js');
|
50 | require('./IconAlignLeft.js');
|
51 | require('./IconAlignRight.js');
|
52 | require('./IconAragon.js');
|
53 | require('./IconArrowDown.js');
|
54 | require('./IconArrowLeft.js');
|
55 | require('./IconArrowRight.js');
|
56 | require('./IconArrowUp.js');
|
57 | require('./IconAtSign.js');
|
58 | require('./IconBlock.js');
|
59 | require('./IconBookmark.js');
|
60 | require('./IconCalendar.js');
|
61 | require('./IconCanvas.js');
|
62 | require('./IconCaution.js');
|
63 | require('./IconCenter.js');
|
64 | require('./IconChart.js');
|
65 | require('./IconChat.js');
|
66 | require('./IconCheck.js');
|
67 | require('./IconChip.js');
|
68 | require('./IconCircleCheck.js');
|
69 | require('./IconCircleMinus.js');
|
70 | require('./IconCirclePlus.js');
|
71 | require('./IconClock.js');
|
72 | require('./IconCloudDownload.js');
|
73 | require('./IconCloudUpload.js');
|
74 | require('./IconCoin.js');
|
75 | require('./IconConfiguration.js');
|
76 | require('./IconConnect.js');
|
77 | require('./IconConnection.js');
|
78 | require('./IconConsole.js');
|
79 | require('./IconCopy.js');
|
80 | require('./IconCross.js');
|
81 | require('./IconDashedSquare.js');
|
82 | require('./IconDown.js');
|
83 | require('./IconDownload.js');
|
84 | require('./IconEdit.js');
|
85 | require('./IconEllipsis.js');
|
86 | require('./IconEnter.js');
|
87 | require('./IconEthereum.js');
|
88 | require('./IconExternal.js');
|
89 | require('./IconFile.js');
|
90 | require('./IconFilter.js');
|
91 | require('./IconFlag.js');
|
92 | require('./IconFolder.js');
|
93 | require('./IconGraph2.js');
|
94 | require('./IconGraph.js');
|
95 | require('./IconGrid.js');
|
96 | require('./IconGroup.js');
|
97 | require('./IconHash.js');
|
98 | require('./IconHeart.js');
|
99 | require('./IconHide.js');
|
100 | require('./IconHome.js');
|
101 | require('./IconImage.js');
|
102 | require('./IconInfo.js');
|
103 | require('./IconLabel.js');
|
104 | require('./IconLayers.js');
|
105 | require('./IconLeft.js');
|
106 | require('./IconLink.js');
|
107 | require('./IconLocation.js');
|
108 | require('./IconLock.js');
|
109 | require('./IconMail.js');
|
110 | require('./IconMaximize.js');
|
111 | require('./IconMenu.js');
|
112 | require('./IconMinimize.js');
|
113 | require('./IconMinus.js');
|
114 | require('./IconMove.js');
|
115 | require('./IconNoPicture.js');
|
116 | require('./IconPicture.js');
|
117 | require('./IconPlus.js');
|
118 | require('./IconPower.js');
|
119 | require('./IconPrint.js');
|
120 | require('./IconProhibited.js');
|
121 | require('./IconQuestion.js');
|
122 | require('./IconRefresh.js');
|
123 | require('./IconRemoveUser.js');
|
124 | require('./IconRight.js');
|
125 | require('./IconRotateLeft.js');
|
126 | require('./IconRotateRight.js');
|
127 | require('./IconSearch.js');
|
128 | require('./IconSettings.js');
|
129 | require('./IconShare.js');
|
130 | require('./IconSquareMinus.js');
|
131 | require('./IconSquarePlus.js');
|
132 | require('./IconSquare.js');
|
133 | require('./IconStarFilled.js');
|
134 | require('./IconStar.js');
|
135 | require('./IconSwap.js');
|
136 | require('./IconTarget.js');
|
137 | require('./IconToken.js');
|
138 | require('./IconTrash.js');
|
139 | require('./IconUnlock.js');
|
140 | require('./IconUp.js');
|
141 | require('./IconUpload.js');
|
142 | require('./IconUser.js');
|
143 | require('./IconView.js');
|
144 | require('./IconVote.js');
|
145 | require('./IconWallet.js');
|
146 | require('./IconWarning.js');
|
147 | require('./IconWorld.js');
|
148 | require('./IconWrite.js');
|
149 | require('./IconZoomIn.js');
|
150 | require('./IconZoomOut.js');
|
151 | var MonthDay = require('./MonthDay-f5f7ffa0.js');
|
152 |
|
153 | var _StyledDiv = _styled__default("div").withConfig({
|
154 | displayName: "DatePicker___StyledDiv",
|
155 | componentId: "sc-6xp23y-0"
|
156 | })(["display:grid;"]);
|
157 |
|
158 | var _StyledDiv2 = _styled__default("div").withConfig({
|
159 | displayName: "DatePicker___StyledDiv2",
|
160 | componentId: "sc-6xp23y-1"
|
161 | })(["display:grid;grid-template:auto / repeat(7,1fr);width:", "px;"], function (p) {
|
162 | return p._css;
|
163 | });
|
164 |
|
165 | function DatePicker(_ref) {
|
166 | var initialDate = _ref.initialDate,
|
167 | onSelect = _ref.onSelect,
|
168 | datesRangeStart = _ref.datesRangeStart,
|
169 | datesRangeEnd = _ref.datesRangeEnd,
|
170 | hideYearSelector = _ref.hideYearSelector,
|
171 | yearFormat = _ref.yearFormat,
|
172 | hideMonthSelector = _ref.hideMonthSelector,
|
173 | monthFormat = _ref.monthFormat,
|
174 | monthYearFormat = _ref.monthYearFormat,
|
175 | hideWeekDays = _ref.hideWeekDays,
|
176 | weekDayFormat = _ref.weekDayFormat,
|
177 | props = objectWithoutProperties._objectWithoutProperties(_ref, ["initialDate", "onSelect", "datesRangeStart", "datesRangeEnd", "hideYearSelector", "yearFormat", "hideMonthSelector", "monthFormat", "monthYearFormat", "hideWeekDays", "weekDayFormat"]);
|
178 |
|
179 | var _useState = React.useState(initialDate),
|
180 | _useState2 = slicedToArray._slicedToArray(_useState, 2),
|
181 | selectedDate = _useState2[0],
|
182 | setSelectedDate = _useState2[1];
|
183 |
|
184 | var setDate = function setDate(_ref2) {
|
185 | var year = _ref2.year,
|
186 | add = _ref2.add;
|
187 | return function (event) {
|
188 | setSelectedDate(dayjs_min.dayjs(selectedDate).startOf('month')[add ? 'add' : 'subtract'](1, year ? 'year' : 'month').toDate());
|
189 | };
|
190 | };
|
191 |
|
192 | var today = dayjs_min.dayjs().startOf('day').toDate();
|
193 | var selectedDayjs = dayjs_min.dayjs(selectedDate || today);
|
194 |
|
195 | var isSelected = function isSelected(day) {
|
196 | if (datesRangeStart || datesRangeEnd) {
|
197 | return day.isSame(datesRangeStart, 'day') || day.isSame(datesRangeEnd, 'day');
|
198 | }
|
199 |
|
200 | return false;
|
201 | };
|
202 |
|
203 | var isInRange = function isInRange(day) {
|
204 | if (datesRangeStart && datesRangeEnd) {
|
205 | return day.isAfter(datesRangeStart) && day.isBefore(datesRangeEnd);
|
206 | }
|
207 | };
|
208 |
|
209 | return React__default.createElement(_StyledDiv, props, !hideYearSelector && React__default.createElement(MonthDay.Selector, {
|
210 | prev: setDate({
|
211 | year: true,
|
212 | add: false
|
213 | }),
|
214 | next: setDate({
|
215 | year: true,
|
216 | add: true
|
217 | }),
|
218 | small: true
|
219 | }, selectedDayjs.format(yearFormat)), !hideMonthSelector && React__default.createElement(MonthDay.Selector, {
|
220 | prev: setDate({
|
221 | year: false,
|
222 | add: false
|
223 | }),
|
224 | next: setDate({
|
225 | year: false,
|
226 | add: true
|
227 | })
|
228 | }, selectedDayjs.format(!hideYearSelector ? monthFormat : monthYearFormat)), React__default.createElement(_StyledDiv2, {
|
229 | _css: 31.5 * constants.GU
|
230 | }, !hideWeekDays && date.eachDayOfInterval({
|
231 | start: selectedDayjs.startOf('week'),
|
232 | end: selectedDayjs.endOf('week')
|
233 | }).map(function (day) {
|
234 | var dayJs = dayjs_min.dayjs(day);
|
235 | return React__default.createElement(MonthDay.MonthDay, {
|
236 | key: dayJs.format('dd'),
|
237 | weekDay: true
|
238 | }, dayJs.format(weekDayFormat));
|
239 | }), date.eachDayOfInterval({
|
240 | start: selectedDayjs.startOf('month').startOf('week'),
|
241 | end: selectedDayjs.endOf('month').endOf('week')
|
242 | }).map(function (day) {
|
243 | var dayJs = dayjs_min.dayjs(day);
|
244 | return React__default.createElement(MonthDay.MonthDay, {
|
245 | key: dayJs.valueOf(),
|
246 | disabled: !selectedDayjs.isSame(dayJs, 'month'),
|
247 | selected: isSelected(dayJs),
|
248 | inRange: isInRange(dayJs),
|
249 | rangeBoundaryBegin: datesRangeStart && datesRangeEnd && dayJs.isSame(datesRangeStart, 'day'),
|
250 | rangeBoundaryEnd: datesRangeStart && datesRangeEnd && dayJs.isSame(datesRangeEnd, 'day'),
|
251 | today: dayJs.isSame(today, 'day'),
|
252 | onClick: function onClick() {
|
253 | return onSelect(dayJs.toDate());
|
254 | }
|
255 | }, dayJs.format(props.dayFormat));
|
256 | })));
|
257 | }
|
258 |
|
259 | DatePicker.propTypes = {
|
260 | |
261 |
|
262 |
|
263 | datesRangeStart: index.PropTypes.instanceOf(Date),
|
264 |
|
265 | |
266 |
|
267 |
|
268 | datesRangeEnd: index.PropTypes.instanceOf(Date),
|
269 |
|
270 | |
271 |
|
272 |
|
273 | initialDate: index.PropTypes.instanceOf(Date),
|
274 |
|
275 | onSelect: index.PropTypes.func,
|
276 |
|
277 | hideMonthSelector: index.PropTypes.bool,
|
278 | hideWeekDays: index.PropTypes.bool,
|
279 | hideYearSelector: index.PropTypes.bool,
|
280 |
|
281 | dayFormat: index.PropTypes.string,
|
282 | monthFormat: index.PropTypes.string,
|
283 | monthYearFormat: index.PropTypes.string,
|
284 | weekDayFormat: index.PropTypes.string,
|
285 | yearFormat: index.PropTypes.string
|
286 | };
|
287 | DatePicker.defaultProps = {
|
288 | onSelect: function onSelect() {},
|
289 | dayFormat: 'D',
|
290 | monthFormat: 'MMMM',
|
291 | monthYearFormat: 'MMMM YYYY',
|
292 | weekDayFormat: 'ddd',
|
293 | yearFormat: 'YYYY'
|
294 | };
|
295 |
|
296 | exports.default = DatePicker;
|
297 |
|