@mirai/ui 1.0.0 → 1.0.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/build/components/Calendar/Calendar.Month.js +11 -12
- package/build/components/Calendar/Calendar.Month.js.map +1 -1
- package/build/components/Calendar/Calendar.Week.js +1 -1
- package/build/components/Calendar/Calendar.Week.js.map +1 -1
- package/build/components/Calendar/Calendar.Weekdays.js +40 -0
- package/build/components/Calendar/Calendar.Weekdays.js.map +1 -0
- package/build/components/Calendar/Calendar.js +11 -6
- package/build/components/Calendar/Calendar.js.map +1 -1
- package/build/components/Calendar/Calendar.module.css +8 -4
- package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +17546 -17490
- package/package.json +1 -1
|
@@ -15,6 +15,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
15
15
|
|
|
16
16
|
var _helpers = require("../../helpers");
|
|
17
17
|
|
|
18
|
+
var _hooks = require("../../hooks");
|
|
19
|
+
|
|
18
20
|
var _primitives = require("../../primitives");
|
|
19
21
|
|
|
20
22
|
var _Calendar = require("./Calendar.constants");
|
|
@@ -23,6 +25,8 @@ var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
|
|
|
23
25
|
|
|
24
26
|
var _Calendar2 = require("./Calendar.Week");
|
|
25
27
|
|
|
28
|
+
var _Calendar3 = require("./Calendar.Weekdays");
|
|
29
|
+
|
|
26
30
|
var _helpers2 = require("./helpers");
|
|
27
31
|
|
|
28
32
|
var _excluded = ["focus", "instance", "selected", "disabledPast", "format", "from", "locale", "range", "to", "onChange", "onFocus", "onNext", "onPrevious"];
|
|
@@ -46,8 +50,11 @@ var Month = function Month(_ref) {
|
|
|
46
50
|
onNext = _ref.onNext,
|
|
47
51
|
onPrevious = _ref.onPrevious,
|
|
48
52
|
others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
53
|
+
|
|
54
|
+
var _useDevice = (0, _hooks.useDevice)(),
|
|
55
|
+
isDesktop = _useDevice.isDesktop;
|
|
56
|
+
|
|
49
57
|
var weekNumber = (0, _helpers2.getWeekNumber)(instance);
|
|
50
|
-
var weekdays = (0, _helpers2.getWeekDays)(locale);
|
|
51
58
|
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
52
59
|
className: (0, _helpers.styles)(_CalendarModule.default.month, others.className)
|
|
53
60
|
}, /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
@@ -65,17 +72,9 @@ var Month = function Month(_ref) {
|
|
|
65
72
|
onPress: onNext
|
|
66
73
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
|
|
67
74
|
name: "Right"
|
|
68
|
-
}))), /*#__PURE__*/_react.default.createElement(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}, _Calendar.DAYS.map(function (day) {
|
|
72
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
73
|
-
small: true,
|
|
74
|
-
key: day,
|
|
75
|
-
upperCase: true,
|
|
76
|
-
className: (0, _helpers.styles)(_CalendarModule.default.cell, _CalendarModule.default.weekday)
|
|
77
|
-
}, weekdays[day]);
|
|
78
|
-
})), _Calendar.VISIBLE_WEEKS.map(function (week) {
|
|
75
|
+
}))), isDesktop && /*#__PURE__*/_react.default.createElement(_Calendar3.Weekdays, {
|
|
76
|
+
locale: locale
|
|
77
|
+
}), _Calendar.VISIBLE_WEEKS.map(function (week) {
|
|
79
78
|
return /*#__PURE__*/_react.default.createElement(_Calendar2.Week, Object.assign({}, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, others), {}, {
|
|
80
79
|
disabledPast: disabledPast,
|
|
81
80
|
focus: focus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","isDesktop","weekNumber","style","month","className","header","title","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName"],"mappings":";;;;;;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,KAAK,GAAG,SAARA,KAAQ,OAef;AAAA,MAdJC,KAcI,QAdJA,KAcI;AAAA,MAbJC,QAaI,QAbJA,QAaI;AAAA,MAZJC,QAYI,QAZJA,QAYI;AAAA,+BAXJC,YAWI;AAAA,MAXJA,YAWI,kCAXW,IAWX;AAAA,MAVJC,MAUI,QAVJA,MAUI;AAAA,MATJC,IASI,QATJA,IASI;AAAA,MARJC,MAQI,QARJA,MAQI;AAAA,wBAPJC,KAOI;AAAA,MAPJA,KAOI,2BAPI,KAOJ;AAAA,MANJC,EAMI,QANJA,EAMI;AAAA,2BALJC,QAKI;AAAA,MALJA,QAKI,8BALO,YAAM,CAAE,CAKf;AAAA,0BAJJC,OAII;AAAA,MAJJA,OAII,6BAJM,YAAM,CAAE,CAId;AAAA,MAHJC,MAGI,QAHJA,MAGI;AAAA,MAFJC,UAEI,QAFJA,UAEI;AAAA,MADDC,MACC;;AACJ,mBAAsB,uBAAtB;AAAA,MAAQC,SAAR,cAAQA,SAAR;;AACA,MAAMC,UAAU,GAAG,6BAAcd,QAAd,CAAnB;AAEA,sBACE,6BAAC,gBAAD;AAAM,IAAA,SAAS,EAAE,qBAAOe,wBAAMC,KAAb,EAAoBJ,MAAM,CAACK,SAA3B;AAAjB,kBACE,6BAAC,gBAAD;AAAM,IAAA,GAAG,MAAT;AAAU,IAAA,SAAS,EAAEF,wBAAMG;AAA3B,KACGP,UAAU,iBACT,6BAAC,qBAAD;AAAW,IAAA,OAAO,EAAEA;AAApB,kBACE,6BAAC,gBAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,CAFJ,eAME,6BAAC,gBAAD;AAAM,IAAA,IAAI,MAAV;AAAW,IAAA,SAAS,MAApB;AAAqB,IAAA,SAAS,EAAEI,wBAAMI;AAAtC,KACG,yBAAUnB,QAAV,EAAoBK,MAApB,CADH,CANF,EASGK,MAAM,iBACL,6BAAC,qBAAD;AAAW,IAAA,OAAO,EAAEA;AAApB,kBACE,6BAAC,gBAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,CAVJ,CADF,EAiBGG,SAAS,iBAAI,6BAAC,mBAAD;AAAU,IAAA,MAAM,EAAER;AAAlB,IAjBhB,EAmBGe,wBAAcC,GAAd,CAAkB,UAACC,IAAD;AAAA,wBACjB,6BAAC,eAAD,gFAEOV,MAFP;AAGIV,MAAAA,YAAY,EAAZA,YAHJ;AAIIH,MAAAA,KAAK,EAALA,KAJJ;AAKII,MAAAA,MAAM,EAANA,MALJ;AAMIC,MAAAA,IAAI,EAAJA,IANJ;AAOIC,MAAAA,MAAM,EAANA,MAPJ;AAQIE,MAAAA,EAAE,EAAFA,EARJ;AASID,MAAAA,KAAK,EAALA,KATJ;AAUIL,MAAAA,QAAQ,EAARA;AAVJ;AAYE,MAAA,GAAG,EAAEqB,IAZP;AAaE,MAAA,KAAK,EAAEtB,QAAQ,CAACuB,QAAT,EAbT;AAcE,MAAA,MAAM,EAAET,UAAU,GAAGQ,IAdvB;AAeE,MAAA,IAAI,EAAEtB,QAAQ,CAACwB,WAAT,EAfR;AAgBE,MAAA,OAAO,EAAEf,OAhBX;AAiBE,MAAA,OAAO,EAAED;AAjBX,OADiB;AAAA,GAAlB,CAnBH,CADF;AA2CD,CA9DM;;;AAgEPV,KAAK,CAAC2B,WAAN,GAAoB,0BAApB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, Pressable, Text, View } from '../../primitives';\nimport { VISIBLE_WEEKS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { Week } from './Calendar.Week';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getHeader, getWeekNumber } from './helpers';\n\nexport const Month = ({\n focus,\n instance,\n selected,\n disabledPast = true,\n format,\n from,\n locale,\n range = false,\n to,\n onChange = () => {},\n onFocus = () => {},\n onNext,\n onPrevious,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n const weekNumber = getWeekNumber(instance);\n\n return (\n <View className={styles(style.month, others.className)}>\n <View row className={style.header}>\n {onPrevious && (\n <Pressable onPress={onPrevious}>\n <Icon name=\"Left\" />\n </Pressable>\n )}\n <Text bold upperCase className={style.title}>\n {getHeader(instance, locale)}\n </Text>\n {onNext && (\n <Pressable onPress={onNext}>\n <Icon name=\"Right\" />\n </Pressable>\n )}\n </View>\n\n {isDesktop && <Weekdays locale={locale} />}\n\n {VISIBLE_WEEKS.map((week) => (\n <Week\n {...{\n ...others,\n disabledPast,\n focus,\n format,\n from,\n locale,\n to,\n range,\n selected,\n }}\n key={week}\n month={instance.getMonth()}\n number={weekNumber + week}\n year={instance.getFullYear()}\n onFocus={onFocus}\n onPress={onChange}\n />\n ))}\n </View>\n );\n};\n\nMonth.displayName = 'Component:Calendar:Month';\n\nMonth.propTypes = {\n captions: PropTypes.shape({}),\n focus: PropTypes.any,\n instance: PropTypes.any,\n selected: PropTypes.any,\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n disabledWeekends: PropTypes.bool,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n locale: PropTypes.string,\n range: PropTypes.bool,\n to: PropTypes.instanceOf(Date),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onNext: PropTypes.func,\n onPrevious: PropTypes.func,\n};\n"],"file":"Calendar.Month.js"}
|
|
@@ -50,7 +50,7 @@ var Week = function Week(_ref) {
|
|
|
50
50
|
others = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
51
51
|
|
|
52
52
|
var disabledDatesTS = disabledDates.map(function (date) {
|
|
53
|
-
return (0, _locale.UTC)(
|
|
53
|
+
return (0, _locale.UTC)((0, _locale.parseDate)(date, format)).getTime();
|
|
54
54
|
}).filter(function (date) {
|
|
55
55
|
return !isNaN(date);
|
|
56
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","month","number","range","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","Date","getTime","filter","isNaN","firstDate","todayTS","fromTS","toTS","rangeTS","start","end","undefined","focusTS","ts","sort","outbound","DAYS","day","getFullYear","getMonth","getDate","dateTS","is","disabled","includes","outOfRange","rangeLimit","ranging","today","touchable","visible","isSelected","textStyle","style","textDisabled","textSelected","cell","daySelected","dayRange","dayRangeLimit","dayTouchable","caption","displayName"],"mappings":"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","sourcesContent":["import { dateFormat, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getFirstDateOfWeek, getToday } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = false,\n focus,\n locale,\n format,\n from,\n month,\n number,\n range,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates.map((date) => UTC(new Date(date)).getTime()).filter((date) => !isNaN(date));\n const firstDate = getFirstDateOfWeek(number, year);\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = { start: start ? start.getTime() : undefined, end: end ? end.getTime() : undefined };\n\n if (focus) {\n const focusTS = focus.getTime();\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start && focusTS >= ts).sort();\n\n rangeTS.end = outbound ? outbound - 1 : focusTS;\n rangeTS.outbound = outbound - 1;\n }\n }\n\n return (\n <View row>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n\n const is = {\n disabled:\n (disabledPast && date.getTime() < todayTS) || // past\n !date.getMonth() === month || // days out of month\n disabledDatesTS.includes(dateTS) || // disabled dates\n dateTS < fromTS || // less than range\n dateTS > toTS, // more than range\n outOfRange: dateTS > rangeTS.outbound,\n range: dateTS > rangeTS.start && dateTS < rangeTS.end,\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n // ranged:\n ranging: range && selected?.[0] && !selected[1],\n today: dateTS === todayTS,\n touchable: true,\n visible: date.getMonth() === month,\n };\n\n const isSelected =\n range && selected\n ? selected[0] && !selected[1]\n ? dateTS === selected[0].getTime()\n : selected[0] && selected[1]\n ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime()\n : undefined\n : dateTS === selected?.getTime();\n\n const textStyle = is.disabled\n ? style.textDisabled\n : isSelected || dateTS === rangeTS.end\n ? style.textSelected\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || is.outOfRange || !is.visible}\n key={day}\n tabIndex={is.visible && !is.disabled ? date.getDate() : undefined}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n className={style.cell}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n >\n {is.visible && (\n <View\n className={styles(\n style.day,\n is.range && isSelected && style.daySelected,\n is.range && style.dayRange,\n (is.rangeLimit || (!is.range && isSelected)) && style.dayRangeLimit,\n !isSelected && !is.disabled && style.dayTouchable,\n )}\n >\n <Text bold={is.today} className={textStyle}>\n {dateFormat(date, { locale, day: 'numeric' })}\n </Text>\n\n {captions && (\n <Text small className={styles(textStyle, style.caption)}>\n {captions[dateFormat(date, { format })] || ''}\n </Text>\n )}\n </View>\n )}\n </Pressable>\n );\n })}\n </View>\n );\n};\n\nWeek.displayName = 'Component:Calendar:Week';\n\nWeek.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n focus: PropTypes.object,\n locale: PropTypes.string,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n to: PropTypes.instanceOf(Date),\n year: PropTypes.number.isRequired,\n month: PropTypes.number.isRequired,\n number: PropTypes.number.isRequired,\n range: PropTypes.bool,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"file":"Calendar.Week.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","month","number","range","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","getTime","filter","isNaN","firstDate","todayTS","fromTS","toTS","rangeTS","start","end","undefined","focusTS","ts","sort","outbound","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","is","disabled","includes","outOfRange","rangeLimit","ranging","today","touchable","visible","isSelected","textStyle","style","textDisabled","textSelected","cell","daySelected","dayRange","dayRangeLimit","dayTouchable","caption","displayName"],"mappings":"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","sourcesContent":["import { dateFormat, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getFirstDateOfWeek, getToday } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = false,\n focus,\n locale,\n format,\n from,\n month,\n number,\n range,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates\n .map((date) => UTC(parseDate(date, format)).getTime())\n .filter((date) => !isNaN(date));\n const firstDate = getFirstDateOfWeek(number, year);\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = { start: start ? start.getTime() : undefined, end: end ? end.getTime() : undefined };\n\n if (focus) {\n const focusTS = focus.getTime();\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start && focusTS >= ts).sort();\n\n rangeTS.end = outbound ? outbound - 1 : focusTS;\n rangeTS.outbound = outbound - 1;\n }\n }\n\n return (\n <View row>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n\n const is = {\n disabled:\n (disabledPast && date.getTime() < todayTS) || // past\n !date.getMonth() === month || // days out of month\n disabledDatesTS.includes(dateTS) || // disabled dates\n dateTS < fromTS || // less than range\n dateTS > toTS, // more than range\n outOfRange: dateTS > rangeTS.outbound,\n range: dateTS > rangeTS.start && dateTS < rangeTS.end,\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n // ranged:\n ranging: range && selected?.[0] && !selected[1],\n today: dateTS === todayTS,\n touchable: true,\n visible: date.getMonth() === month,\n };\n\n const isSelected =\n range && selected\n ? selected[0] && !selected[1]\n ? dateTS === selected[0].getTime()\n : selected[0] && selected[1]\n ? dateTS >= selected[0].getTime() && dateTS <= selected[1].getTime()\n : undefined\n : dateTS === selected?.getTime();\n\n const textStyle = is.disabled\n ? style.textDisabled\n : isSelected || dateTS === rangeTS.end\n ? style.textSelected\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || is.outOfRange || !is.visible}\n key={day}\n tabIndex={is.visible && !is.disabled ? date.getDate() : undefined}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n className={style.cell}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n >\n {is.visible && (\n <View\n className={styles(\n style.day,\n is.range && isSelected && style.daySelected,\n is.range && style.dayRange,\n (is.rangeLimit || (!is.range && isSelected)) && style.dayRangeLimit,\n !isSelected && !is.disabled && style.dayTouchable,\n )}\n >\n <Text bold={is.today} className={textStyle}>\n {dateFormat(date, { locale, day: 'numeric' })}\n </Text>\n\n {captions && (\n <Text small className={styles(textStyle, style.caption)}>\n {captions[dateFormat(date, { format })] || ''}\n </Text>\n )}\n </View>\n )}\n </Pressable>\n );\n })}\n </View>\n );\n};\n\nWeek.displayName = 'Component:Calendar:Week';\n\nWeek.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n focus: PropTypes.object,\n locale: PropTypes.string,\n format: PropTypes.string,\n from: PropTypes.instanceOf(Date),\n to: PropTypes.instanceOf(Date),\n year: PropTypes.number.isRequired,\n month: PropTypes.number.isRequired,\n number: PropTypes.number.isRequired,\n range: PropTypes.bool,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"file":"Calendar.Week.js"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Weekdays = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _helpers = require("../../helpers");
|
|
13
|
+
|
|
14
|
+
var _primitives = require("../../primitives");
|
|
15
|
+
|
|
16
|
+
var _Calendar = require("./Calendar.constants");
|
|
17
|
+
|
|
18
|
+
var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
|
|
19
|
+
|
|
20
|
+
var _helpers2 = require("./helpers");
|
|
21
|
+
|
|
22
|
+
var Weekdays = function Weekdays(_ref) {
|
|
23
|
+
var locale = _ref.locale;
|
|
24
|
+
var weekdays = (0, _helpers2.getWeekDays)(locale);
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
26
|
+
row: true,
|
|
27
|
+
className: _CalendarModule.default.weekdays
|
|
28
|
+
}, _Calendar.DAYS.map(function (day) {
|
|
29
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
30
|
+
small: true,
|
|
31
|
+
key: day,
|
|
32
|
+
upperCase: true,
|
|
33
|
+
className: (0, _helpers.styles)(_CalendarModule.default.cell, _CalendarModule.default.weekday)
|
|
34
|
+
}, weekdays[day]);
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.Weekdays = Weekdays;
|
|
39
|
+
Weekdays.displayName = 'Component:Calendar:Weekdays';
|
|
40
|
+
//# sourceMappingURL=Calendar.Weekdays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Calendar/Calendar.Weekdays.jsx"],"names":["Weekdays","locale","weekdays","style","DAYS","map","day","cell","weekday","displayName"],"mappings":";;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAAgB;AAAA,MAAbC,MAAa,QAAbA,MAAa;AACtC,MAAMC,QAAQ,GAAG,2BAAYD,MAAZ,CAAjB;AAEA,sBACE,6BAAC,gBAAD;AAAM,IAAA,GAAG,MAAT;AAAU,IAAA,SAAS,EAAEE,wBAAMD;AAA3B,KACGE,eAAKC,GAAL,CAAS,UAACC,GAAD;AAAA,wBACR,6BAAC,gBAAD;AAAM,MAAA,KAAK,MAAX;AAAY,MAAA,GAAG,EAAEA,GAAjB;AAAsB,MAAA,SAAS,MAA/B;AAAgC,MAAA,SAAS,EAAE,qBAAOH,wBAAMI,IAAb,EAAmBJ,wBAAMK,OAAzB;AAA3C,OACGN,QAAQ,CAACI,GAAD,CADX,CADQ;AAAA,GAAT,CADH,CADF;AASD,CAZM;;;AAcPN,QAAQ,CAACS,WAAT,GAAuB,6BAAvB","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { styles } from '../../helpers';\nimport { Text, View } from '../../primitives';\nimport { DAYS } from './Calendar.constants';\nimport style from './Calendar.module.css';\nimport { getWeekDays } from './helpers';\n\nexport const Weekdays = ({ locale }) => {\n const weekdays = getWeekDays(locale);\n\n return (\n <View row className={style.weekdays}>\n {DAYS.map((day) => (\n <Text small key={day} upperCase className={styles(style.cell, style.weekday)}>\n {weekdays[day]}\n </Text>\n ))}\n </View>\n );\n};\n\nWeekdays.displayName = 'Component:Calendar:Weekdays';\n\nWeekdays.propTypes = {\n locale: PropTypes.string,\n};\n"],"file":"Calendar.Weekdays.js"}
|
|
@@ -29,6 +29,8 @@ var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
|
|
|
29
29
|
|
|
30
30
|
var _Calendar = require("./Calendar.Month");
|
|
31
31
|
|
|
32
|
+
var _Calendar2 = require("./Calendar.Weekdays");
|
|
33
|
+
|
|
32
34
|
var _helpers2 = require("./helpers");
|
|
33
35
|
|
|
34
36
|
var _excluded = ["disabledPast", "format", "from", "months", "locale", "range", "rangeDays", "to", "value", "onChange", "onFocus"];
|
|
@@ -108,8 +110,8 @@ var Calendar = function Calendar(_ref) {
|
|
|
108
110
|
|
|
109
111
|
var instanceTS = instance.getTime();
|
|
110
112
|
var todayMonthTS = (0, _helpers2.getFirstDateOfMonth)((0, _helpers2.getToday)()).getTime();
|
|
111
|
-
var disabledPrevious = disabledPast && instanceTS <= todayMonthTS || from && instanceTS <= (0, _helpers2.getFirstDateOfMonth)(
|
|
112
|
-
var disabledNext = to && instanceTS >= (0, _helpers2.getFirstDateOfMonth)(
|
|
113
|
+
var disabledPrevious = disabledPast && instanceTS <= todayMonthTS || from && instanceTS <= (0, _helpers2.getFirstDateOfMonth)((0, _locale.parseDate)(from, format)).getTime();
|
|
114
|
+
var disabledNext = to && instanceTS >= (0, _helpers2.getFirstDateOfMonth)((0, _locale.parseDate)(to, format)).getTime();
|
|
113
115
|
var props = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, others), {}, {
|
|
114
116
|
focus: focus,
|
|
115
117
|
format: format,
|
|
@@ -121,10 +123,13 @@ var Calendar = function Calendar(_ref) {
|
|
|
121
123
|
onChange: handleChange,
|
|
122
124
|
onFocus: isDesktop ? setFocus : undefined
|
|
123
125
|
});
|
|
124
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.
|
|
125
|
-
"data-testid": others['data-testid']
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
127
|
+
"data-testid": others['data-testid']
|
|
128
|
+
}, !isDesktop && /*#__PURE__*/_react.default.createElement(_Calendar2.Weekdays, {
|
|
129
|
+
locale: locale
|
|
130
|
+
}), /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, {
|
|
126
131
|
horizontal: isDesktop,
|
|
127
|
-
className: (0, _helpers.styles)(_CalendarModule.default.
|
|
132
|
+
className: (0, _helpers.styles)(_CalendarModule.default.scrollview, others.className)
|
|
128
133
|
}, Array.from({
|
|
129
134
|
length: months
|
|
130
135
|
}, function (empty, index) {
|
|
@@ -138,7 +143,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
138
143
|
} : undefined,
|
|
139
144
|
instance: new Date(instance.getFullYear(), instance.getMonth() + index, 1)
|
|
140
145
|
}, props));
|
|
141
|
-
}));
|
|
146
|
+
})));
|
|
142
147
|
};
|
|
143
148
|
|
|
144
149
|
exports.Calendar = Calendar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Calendar/Calendar.jsx"],"names":["Calendar","disabledPast","format","from","months","locale","range","rangeDays","to","value","onChange","onFocus","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Calendar/Calendar.jsx"],"names":["Calendar","disabledPast","format","from","months","locale","range","rangeDays","to","value","onChange","onFocus","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","instanceTS","todayMonthTS","disabledPrevious","disabledNext","props","style","scrollview","className","Array","length","empty","index","displayName"],"mappings":"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","sourcesContent":["import { dateCalc, parseDate, UTC } from '@mirai/locale';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { ScrollView, View } from '../../primitives';\nimport style from './Calendar.module.css';\nimport { Month } from './Calendar.Month';\nimport { Weekdays } from './Calendar.Weekdays';\nimport { getFirstDateOfMonth, getToday } from './helpers';\n\nexport const Calendar = ({\n disabledPast = true,\n format = 'YYYY/MM/DD',\n from,\n months = 2,\n locale,\n range = false,\n rangeDays,\n to,\n value,\n onChange = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [focus, setFocus] = useState();\n const [instance, setInstance] = useState(getFirstDateOfMonth(getToday()));\n const [selected, setSelected] = useState(range ? [] : undefined);\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (!date) return;\n\n date = parseDate(date, format);\n setInstance(getFirstDateOfMonth(date));\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n }, [format, range, value]);\n\n useEffect(() => {\n onFocus(focus);\n }, [focus, onFocus]);\n\n const handleChange = (date) => {\n setSelected(() => {\n let next;\n\n if (!range) {\n next = date;\n } else if (selected[1] === undefined && date > selected[0]) {\n next = [selected[0], date];\n } else {\n next = [selected[0]?.getTime() === date.getTime() ? undefined : date];\n setFocus(undefined);\n }\n onChange(next);\n\n return next;\n });\n };\n\n const handleMonth = (month) => {\n setInstance(getFirstDateOfMonth(new Date(instance.getFullYear(), instance.getMonth() + month)));\n };\n\n const instanceTS = instance.getTime();\n const todayMonthTS = getFirstDateOfMonth(getToday()).getTime();\n const disabledPrevious =\n (disabledPast && instanceTS <= todayMonthTS) ||\n (from && instanceTS <= getFirstDateOfMonth(parseDate(from, format)).getTime());\n const disabledNext = to && instanceTS >= getFirstDateOfMonth(parseDate(to, format)).getTime();\n\n const props = {\n ...others,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to:\n range && rangeDays && selected[0]\n ? dateCalc(selected[0], rangeDays, 'days')\n : to\n ? parseDate(to, format)\n : undefined,\n selected,\n onChange: handleChange,\n onFocus: isDesktop ? setFocus : undefined,\n };\n\n return (\n <View data-testid={others['data-testid']}>\n {!isDesktop && <Weekdays locale={locale} />}\n <ScrollView horizontal={isDesktop} className={styles(style.scrollview, others.className)}>\n {Array.from({ length: months }, (empty, index) => (\n <Month\n key={index}\n onNext={isDesktop && index === months - 1 && !disabledNext ? () => handleMonth(months) : undefined}\n onPrevious={isDesktop && index === 0 && !disabledPrevious ? () => handleMonth(-months) : undefined}\n instance={new Date(instance.getFullYear(), instance.getMonth() + index, 1)}\n {...props}\n />\n ))}\n </ScrollView>\n </View>\n );\n};\n\nCalendar.displayName = 'Component:Calendar';\n\nCalendar.propTypes = {\n captions: PropTypes.shape({}),\n disabledDates: PropTypes.arrayOf(PropTypes.string),\n disabledPast: PropTypes.bool,\n disabledWeekends: PropTypes.bool,\n format: PropTypes.string,\n from: PropTypes.string,\n locale: PropTypes.string,\n months: PropTypes.number,\n range: PropTypes.bool,\n rangeDays: PropTypes.number,\n to: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n};\n"],"file":"Calendar.js"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
--mirai-ui-calendar-selected-color: var(--mirai-ui-lighten);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
.
|
|
8
|
-
max-height: calc(var(--mirai-ui-calendar-cell) *
|
|
7
|
+
.scrollview {
|
|
8
|
+
max-height: calc(var(--mirai-ui-calendar-cell) * 13.5);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.month {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.weekdays {
|
|
33
|
-
|
|
33
|
+
padding: var(--mirai-ui-space-XS) 0;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.weekday {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
@media only screen and (max-width: 600px) {
|
|
84
|
-
.
|
|
84
|
+
.scrollview {
|
|
85
85
|
width: 100vw;
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -93,4 +93,8 @@
|
|
|
93
93
|
.day {
|
|
94
94
|
width: auto;
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
.weekdays {
|
|
98
|
+
border-bottom: solid 1px var(--mirai-ui-disabled);
|
|
99
|
+
}
|
|
96
100
|
}
|