@mirai/ui 1.0.29 → 1.0.32
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 +6 -4
- package/build/components/Calendar/Calendar.Month.js.map +1 -1
- package/build/components/Calendar/Calendar.Week.js +1 -2
- package/build/components/Calendar/Calendar.Week.js.map +1 -1
- package/build/components/Calendar/Calendar.js +41 -12
- package/build/components/Calendar/Calendar.js.map +1 -1
- package/build/components/Calendar/__tests__/__snapshots__/Calendar.test.jsx.snap +23361 -4063
- package/build/components/Calendar/helpers/getScrollTo.js +40 -0
- package/build/components/Calendar/helpers/getScrollTo.js.map +1 -0
- package/build/components/Calendar/helpers/index.js +13 -0
- package/build/components/Calendar/helpers/index.js.map +1 -1
- package/build/primitives/ScrollView/ScrollView.js +4 -2
- package/build/primitives/ScrollView/ScrollView.js.map +1 -1
- package/package.json +1 -1
|
@@ -45,8 +45,7 @@ var Month = function Month(_ref) {
|
|
|
45
45
|
var focus = _ref.focus,
|
|
46
46
|
instance = _ref.instance,
|
|
47
47
|
selected = _ref.selected,
|
|
48
|
-
|
|
49
|
-
disabledPast = _ref$disabledPast === void 0 ? true : _ref$disabledPast,
|
|
48
|
+
disabledPast = _ref.disabledPast,
|
|
50
49
|
format = _ref.format,
|
|
51
50
|
from = _ref.from,
|
|
52
51
|
locale = _ref.locale,
|
|
@@ -65,13 +64,15 @@ var Month = function Month(_ref) {
|
|
|
65
64
|
isDesktop = _useDevice.isDesktop;
|
|
66
65
|
|
|
67
66
|
var weekNumber = (0, _helpers2.getWeekNumber)(instance);
|
|
67
|
+
var testID = others['data-testid'];
|
|
68
68
|
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
69
69
|
className: (0, _helpers.styles)(_CalendarModule.default.month, others.className)
|
|
70
70
|
}, /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
71
71
|
row: true,
|
|
72
72
|
className: _CalendarModule.default.header
|
|
73
73
|
}, onPrevious && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
|
|
74
|
-
onPress: onPrevious
|
|
74
|
+
onPress: onPrevious,
|
|
75
|
+
"data-testid": testID ? "".concat(testID, "-previous") : undefined
|
|
75
76
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
|
|
76
77
|
name: "Left"
|
|
77
78
|
})), /*#__PURE__*/_react.default.createElement(_primitives.Text, {
|
|
@@ -79,7 +80,8 @@ var Month = function Month(_ref) {
|
|
|
79
80
|
className: _CalendarModule.default.title
|
|
80
81
|
}, (0, _helpers2.getHeader)(instance, locale)), onNext && /*#__PURE__*/_react.default.createElement(_primitives.Pressable, {
|
|
81
82
|
onPress: onNext,
|
|
82
|
-
className: _CalendarModule.default.pressable
|
|
83
|
+
className: _CalendarModule.default.pressable,
|
|
84
|
+
"data-testid": testID ? "".concat(testID, "-next") : undefined
|
|
83
85
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Icon, {
|
|
84
86
|
name: "Right"
|
|
85
87
|
}))), isDesktop && /*#__PURE__*/_react.default.createElement(_Calendar3.Weekdays, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.Month.js","names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","isDesktop","weekNumber","style","month","className","header","title","pressable","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","disabledWeekends","instanceOf","Date","value","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"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
|
|
1
|
+
{"version":3,"file":"Calendar.Month.js","names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","to","onChange","onFocus","onNext","onPrevious","others","isDesktop","weekNumber","testID","style","month","className","header","undefined","title","pressable","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","disabledWeekends","instanceOf","Date","value","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Month.jsx"],"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,\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 const { ['data-testid']: testID } = others;\n\n return (\n <View className={styles(style.month, others.className)}>\n <View row className={style.header}>\n {onPrevious && (\n <Pressable onPress={onPrevious} data-testid={testID ? `${testID}-previous` : undefined}>\n <Icon name=\"Left\" />\n </Pressable>\n )}\n <Text subheadline className={style.title}>\n {getHeader(instance, locale)}\n </Text>\n {onNext && (\n <Pressable onPress={onNext} className={style.pressable} data-testid={testID ? `${testID}-next` : undefined}>\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"],"mappings":"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"}
|
|
@@ -45,8 +45,7 @@ var Week = function Week(_ref) {
|
|
|
45
45
|
var captions = _ref.captions,
|
|
46
46
|
_ref$disabledDates = _ref.disabledDates,
|
|
47
47
|
disabledDates = _ref$disabledDates === void 0 ? [] : _ref$disabledDates,
|
|
48
|
-
|
|
49
|
-
disabledPast = _ref$disabledPast === void 0 ? true : _ref$disabledPast,
|
|
48
|
+
disabledPast = _ref.disabledPast,
|
|
50
49
|
focus = _ref.focus,
|
|
51
50
|
locale = _ref.locale,
|
|
52
51
|
format = _ref.format,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.Week.js","names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","highlights","month","number","range","rangeMinDays","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","getTime","firstDate","todayTS","fromTS","toTS","focusTS","rangeTS","start","end","undefined","min","filter","ts","sort","outbound","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","cell","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","empty","displayName","propTypes","PropTypes","shape","arrayOf","string","bool","object","instanceOf","isRequired","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"sourcesContent":["import { dateCalc, 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, getFirstDayOfWeek } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast = true,\n focus,\n locale,\n format,\n from,\n highlights = [],\n month,\n number,\n range,\n rangeMinDays,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates.map((date) => UTC(parseDate(date, format)).getTime());\n const firstDate = getFirstDateOfWeek(number, year, getFirstDayOfWeek(locale));\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n const focusTS = focus?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = {\n start: start ? start.getTime() : undefined,\n end: end ? end.getTime() : undefined,\n min: start && rangeMinDays ? dateCalc(start, rangeMinDays, 'days').getTime() : undefined,\n };\n\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start).sort();\n rangeTS.outbound = outbound ? outbound - 1 : undefined;\n }\n\n return (\n <View row className={styles(rangeTS.start !== undefined && range && style.range)}>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n const dateString = dateFormat(date, { format });\n\n const is = {\n disabled:\n (disabledPast && dateTS < 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 highlight: highlights.includes(dateString),\n outOfRange: dateTS > rangeTS.outbound,\n minRange: dateTS > rangeTS.start && dateTS < rangeTS.min,\n range: dateTS > rangeTS.start && (dateTS < rangeTS.end || dateTS < rangeTS.min || dateTS < focusTS),\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n ranging: range && selected?.[0] && !selected[1],\n selected:\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 today: dateTS === todayTS,\n visible: date.getMonth() === month,\n };\n\n const textStyle = is.disabled\n ? style.textDisabled\n : is.selected || dateTS === rangeTS.end\n ? style.textSelected\n : is.highlight && !is.range\n ? style.textHighlight\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || !is.visible || (range && !selected[1] && (is.minRange || is.outOfRange))}\n key={day}\n tabIndex={is.visible && !is.disabled ? `${date.getMonth()}-${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 && !is.disabled && !is.outOfRange && style.dayRange,\n (is.rangeLimit || (!is.range && is.selected)) && style.daySelected,\n is.rangeLimit && dateTS === rangeTS.start && style.daySelectedStart,\n is.rangeLimit && dateTS === rangeTS.end && style.daySelectedEnd,\n !is.selected && !is.disabled && !is.minRange && !is.outOfRange && style.dayTouchable,\n )}\n >\n <Text bold={is.today || is.highlight || (is.selected && !is.range)} className={textStyle}>\n {date.getDate()}\n </Text>\n\n {captions && (\n <Text\n small\n className={styles(textStyle, style.caption, !captions[dateString] && !is.rangeLimit && style.empty)}\n >\n {!is.disabled ? captions[dateString] || '-' : ''}\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 highlights: PropTypes.arrayOf(PropTypes.string),\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 rangeMinDays: PropTypes.number,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,IAAI,GAAG,SAAPA,IAAO,OAmBd;EAAA,IAlBJC,QAkBI,QAlBJA,QAkBI;EAAA,8BAjBJC,aAiBI;EAAA,IAjBJA,aAiBI,mCAjBY,EAiBZ;EAAA,6BAhBJC,YAgBI;EAAA,IAhBJA,YAgBI,kCAhBW,IAgBX;EAAA,IAfJC,KAeI,QAfJA,KAeI;EAAA,IAdJC,MAcI,QAdJA,MAcI;EAAA,IAbJC,MAaI,QAbJA,MAaI;EAAA,IAZJC,IAYI,QAZJA,IAYI;EAAA,2BAXJC,UAWI;EAAA,IAXJA,UAWI,gCAXS,EAWT;EAAA,IAVJC,KAUI,QAVJA,KAUI;EAAA,IATJC,MASI,QATJA,MASI;EAAA,IARJC,KAQI,QARJA,KAQI;EAAA,IAPJC,YAOI,QAPJA,YAOI;EAAA,IANJC,QAMI,QANJA,QAMI;EAAA,IALJC,EAKI,QALJA,EAKI;EAAA,IAJJC,IAII,QAJJA,IAII;EAAA,wBAHJC,OAGI;EAAA,IAHJA,QAGI,6BAHM,YAAM,CAAE,CAGd;EAAA,wBAFJC,OAEI;EAAA,IAFJA,OAEI,6BAFM,YAAM,CAAE,CAEd;EAAA,IADDC,MACC;;EACJ,IAAMC,eAAe,GAAGjB,aAAa,CAACkB,GAAd,CAAkB,UAACC,IAAD;IAAA,OAAU,iBAAI,uBAAUA,IAAV,EAAgBf,MAAhB,CAAJ,EAA6BgB,OAA7B,EAAV;EAAA,CAAlB,CAAxB;EACA,IAAMC,SAAS,GAAG,kCAAmBb,MAAnB,EAA2BK,IAA3B,EAAiC,iCAAkBV,MAAlB,CAAjC,CAAlB;EACA,IAAMmB,OAAO,GAAG,0BAAWF,OAAX,EAAhB;EACA,IAAMG,MAAM,GAAGlB,IAAH,aAAGA,IAAH,uBAAGA,IAAI,CAAEe,OAAN,EAAf;EACA,IAAMI,IAAI,GAAGZ,EAAH,aAAGA,EAAH,uBAAGA,EAAE,CAAEQ,OAAJ,EAAb;EACA,IAAMK,OAAO,GAAGvB,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEkB,OAAP,EAAhB;EAEA,IAAIM,OAAO,GAAG,EAAd;;EACA,IAAIjB,KAAJ,EAAW;IACT,+BAAqBE,QAArB;IAAA,IAAOgB,KAAP;IAAA,IAAcC,GAAd;;IACAF,OAAO,GAAG;MACRC,KAAK,EAAEA,KAAK,GAAGA,KAAK,CAACP,OAAN,EAAH,GAAqBS,SADzB;MAERD,GAAG,EAAEA,GAAG,GAAGA,GAAG,CAACR,OAAJ,EAAH,GAAmBS,SAFnB;MAGRC,GAAG,EAAEH,KAAK,IAAIjB,YAAT,GAAwB,sBAASiB,KAAT,EAAgBjB,YAAhB,EAA8B,MAA9B,EAAsCU,OAAtC,EAAxB,GAA0ES;IAHvE,CAAV;;IAMA,4BAAmBZ,eAAe,CAACc,MAAhB,CAAuB,UAACC,EAAD;MAAA,OAAQA,EAAE,GAAGN,OAAO,CAACC,KAArB;IAAA,CAAvB,EAAmDM,IAAnD,EAAnB;IAAA;IAAA,IAAOC,QAAP;;IACAR,OAAO,CAACQ,QAAR,GAAmBA,QAAQ,GAAGA,QAAQ,GAAG,CAAd,GAAkBL,SAA7C;EACD;;EAED,oBACE,6BAAC,gBAAD;IAAM,GAAG,MAAT;IAAU,SAAS,EAAE,qBAAOH,OAAO,CAACC,KAAR,KAAkBE,SAAlB,IAA+BpB,KAA/B,IAAwC0B,wBAAM1B,KAArD;EAArB,GACG2B,eAAKlB,GAAL,CAAS,UAACmB,GAAD,EAAS;IACjB,IAAMlB,IAAI,GAAG,iBAAI,IAAImB,IAAJ,CAASjB,SAAS,CAACkB,WAAV,EAAT,EAAkClB,SAAS,CAACmB,QAAV,EAAlC,EAAwDnB,SAAS,CAACoB,OAAV,KAAsBJ,GAA9E,CAAJ,CAAb;IACA,IAAMK,MAAM,GAAGvB,IAAI,CAACC,OAAL,EAAf;IACA,IAAMuB,UAAU,GAAG,wBAAWxB,IAAX,EAAiB;MAAEf,MAAM,EAANA;IAAF,CAAjB,CAAnB;IAEA,IAAMwC,EAAE,GAAG;MACTC,QAAQ,EACL5C,YAAY,IAAIyC,MAAM,GAAGpB,OAA1B,IAAsC;MACtC,CAACH,IAAI,CAACqB,QAAL,EAAD,KAAqBjC,KADrB,IAC8B;MAC9BU,eAAe,CAAC6B,QAAhB,CAAyBJ,MAAzB,CAFA,IAEoC;MACpCA,MAAM,GAAGnB,MAHT,IAGmB;MACnBmB,MAAM,GAAGlB,IANF;MAMQ;MACjBuB,SAAS,EAAEzC,UAAU,CAACwC,QAAX,CAAoBH,UAApB,CAPF;MAQTK,UAAU,EAAEN,MAAM,GAAGhB,OAAO,CAACQ,QARpB;MASTe,QAAQ,EAAEP,MAAM,GAAGhB,OAAO,CAACC,KAAjB,IAA0Be,MAAM,GAAGhB,OAAO,CAACI,GAT5C;MAUTrB,KAAK,EAAEiC,MAAM,GAAGhB,OAAO,CAACC,KAAjB,KAA2Be,MAAM,GAAGhB,OAAO,CAACE,GAAjB,IAAwBc,MAAM,GAAGhB,OAAO,CAACI,GAAzC,IAAgDY,MAAM,GAAGjB,OAApF,CAVE;MAWTyB,UAAU,EAAER,MAAM,KAAKhB,OAAO,CAACC,KAAnB,IAA4Be,MAAM,KAAKhB,OAAO,CAACE,GAXlD;MAYTuB,OAAO,EAAE1C,KAAK,KAAIE,QAAJ,aAAIA,QAAJ,uBAAIA,QAAQ,CAAG,CAAH,CAAZ,CAAL,IAA0B,CAACA,QAAQ,CAAC,CAAD,CAZnC;MAaTA,QAAQ,EACNF,KAAK,IAAIE,QAAT,GACIA,QAAQ,CAAC,CAAD,CAAR,IAAe,CAACA,QAAQ,CAAC,CAAD,CAAxB,GACE+B,MAAM,KAAK/B,QAAQ,CAAC,CAAD,CAAR,CAAYS,OAAZ,EADb,GAEET,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAAvB,GACA+B,MAAM,IAAI/B,QAAQ,CAAC,CAAD,CAAR,CAAYS,OAAZ,EAAV,IAAmCsB,MAAM,IAAI/B,QAAQ,CAAC,CAAD,CAAR,CAAYS,OAAZ,EAD7C,GAEAS,SALN,GAMIa,MAAM,MAAK/B,QAAL,aAAKA,QAAL,uBAAKA,QAAQ,CAAES,OAAV,EAAL,CApBH;MAqBTgC,KAAK,EAAEV,MAAM,KAAKpB,OArBT;MAsBT+B,OAAO,EAAElC,IAAI,CAACqB,QAAL,OAAoBjC;IAtBpB,CAAX;IAyBA,IAAM+C,SAAS,GAAGV,EAAE,CAACC,QAAH,GACdV,wBAAMoB,YADQ,GAEdX,EAAE,CAACjC,QAAH,IAAe+B,MAAM,KAAKhB,OAAO,CAACE,GAAlC,GACAO,wBAAMqB,YADN,GAEAZ,EAAE,CAACG,SAAH,IAAgB,CAACH,EAAE,CAACnC,KAApB,GACA0B,wBAAMsB,aADN,GAEA5B,SANJ;IAQA,oBACE,6BAAC,qBAAD;MACE,QAAQ,EAAEe,EAAE,CAACC,QAAH,IAAe,CAACD,EAAE,CAACS,OAAnB,IAA+B5C,KAAK,IAAI,CAACE,QAAQ,CAAC,CAAD,CAAlB,KAA0BiC,EAAE,CAACK,QAAH,IAAeL,EAAE,CAACI,UAA5C,CAD3C;MAEE,GAAG,EAAEX,GAFP;MAGE,QAAQ,EAAEO,EAAE,CAACS,OAAH,IAAc,CAACT,EAAE,CAACC,QAAlB,aAAgC1B,IAAI,CAACqB,QAAL,EAAhC,cAAmDrB,IAAI,CAACsB,OAAL,EAAnD,IAAsEZ,SAHlF;MAIE,yBAAgBb,MAAM,CAAC,aAAD,CAAN,IAAyB,UAAzC,cAAuDR,MAAvD,cAAiE6B,GAAjE,CAJF;MAKE,SAAS,EAAEF,wBAAMuB,IALnB;MAME,OAAO,EAAEd,EAAE,CAACO,OAAH,GAAa;QAAA,OAAMpC,OAAO,CAACI,IAAD,CAAb;MAAA,CAAb,GAAmCU,SAN9C;MAOE,OAAO,EAAEe,EAAE,CAACO,OAAH,GAAa;QAAA,OAAMpC,OAAO,EAAb;MAAA,CAAb,GAA+Bc,SAP1C;MAQE,OAAO,EAAE;QAAA,OAAMf,QAAO,CAACK,IAAD,CAAb;MAAA;IARX,GAUGyB,EAAE,CAACS,OAAH,iBACC,6BAAC,gBAAD;MACE,SAAS,EAAE,qBACTlB,wBAAME,GADG,EAETO,EAAE,CAACnC,KAAH,IAAY,CAACmC,EAAE,CAACC,QAAhB,IAA4B,CAACD,EAAE,CAACI,UAAhC,IAA8Cb,wBAAMwB,QAF3C,EAGT,CAACf,EAAE,CAACM,UAAH,IAAkB,CAACN,EAAE,CAACnC,KAAJ,IAAamC,EAAE,CAACjC,QAAnC,KAAiDwB,wBAAMyB,WAH9C,EAIThB,EAAE,CAACM,UAAH,IAAiBR,MAAM,KAAKhB,OAAO,CAACC,KAApC,IAA6CQ,wBAAM0B,gBAJ1C,EAKTjB,EAAE,CAACM,UAAH,IAAiBR,MAAM,KAAKhB,OAAO,CAACE,GAApC,IAA2CO,wBAAM2B,cALxC,EAMT,CAAClB,EAAE,CAACjC,QAAJ,IAAgB,CAACiC,EAAE,CAACC,QAApB,IAAgC,CAACD,EAAE,CAACK,QAApC,IAAgD,CAACL,EAAE,CAACI,UAApD,IAAkEb,wBAAM4B,YAN/D;IADb,gBAUE,6BAAC,gBAAD;MAAM,IAAI,EAAEnB,EAAE,CAACQ,KAAH,IAAYR,EAAE,CAACG,SAAf,IAA6BH,EAAE,CAACjC,QAAH,IAAe,CAACiC,EAAE,CAACnC,KAA5D;MAAoE,SAAS,EAAE6C;IAA/E,GACGnC,IAAI,CAACsB,OAAL,EADH,CAVF,EAcG1C,QAAQ,iBACP,6BAAC,gBAAD;MACE,KAAK,MADP;MAEE,SAAS,EAAE,qBAAOuD,SAAP,EAAkBnB,wBAAM6B,OAAxB,EAAiC,CAACjE,QAAQ,CAAC4C,UAAD,CAAT,IAAyB,CAACC,EAAE,CAACM,UAA7B,IAA2Cf,wBAAM8B,KAAlF;IAFb,GAIG,CAACrB,EAAE,CAACC,QAAJ,GAAe9C,QAAQ,CAAC4C,UAAD,CAAR,IAAwB,GAAvC,GAA6C,EAJhD,CAfJ,CAXJ,CADF;EAsCD,CA5EA,CADH,CADF;AAiFD,CAzHM;;;AA2HP7C,IAAI,CAACoE,WAAL,GAAmB,yBAAnB;AAEApE,IAAI,CAACqE,SAAL,GAAiB;EACfpE,QAAQ,EAAEqE,mBAAUC,KAAV,CAAgB,EAAhB,CADK;EAEfrE,aAAa,EAAEoE,mBAAUE,OAAV,CAAkBF,mBAAUG,MAA5B,CAFA;EAGftE,YAAY,EAAEmE,mBAAUI,IAHT;EAIftE,KAAK,EAAEkE,mBAAUK,MAJF;EAKfnE,UAAU,EAAE8D,mBAAUE,OAAV,CAAkBF,mBAAUG,MAA5B,CALG;EAMfpE,MAAM,EAAEiE,mBAAUG,MANH;EAOfnE,MAAM,EAAEgE,mBAAUG,MAPH;EAQflE,IAAI,EAAE+D,mBAAUM,UAAV,CAAqBpC,IAArB,CARS;EASf1B,EAAE,EAAEwD,mBAAUM,UAAV,CAAqBpC,IAArB,CATW;EAUfzB,IAAI,EAAEuD,mBAAU5D,MAAV,CAAiBmE,UAVR;EAWfpE,KAAK,EAAE6D,mBAAU5D,MAAV,CAAiBmE,UAXT;EAYfnE,MAAM,EAAE4D,mBAAU5D,MAAV,CAAiBmE,UAZV;EAaflE,KAAK,EAAE2D,mBAAUI,IAbF;EAcf9D,YAAY,EAAE0D,mBAAU5D,MAdT;EAefG,QAAQ,EAAEyD,mBAAUQ,SAAV,CAAoB,CAACR,mBAAUK,MAAX,EAAmBL,mBAAUE,OAAV,CAAkBF,mBAAUK,MAA5B,CAAnB,CAApB,CAfK;EAgBf1D,OAAO,EAAEqD,mBAAUS,IAhBJ;EAiBf/D,OAAO,EAAEsD,mBAAUS;AAjBJ,CAAjB"}
|
|
1
|
+
{"version":3,"file":"Calendar.Week.js","names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","highlights","month","number","range","rangeMinDays","selected","to","year","onPress","onFocus","others","disabledDatesTS","map","date","getTime","firstDate","todayTS","fromTS","toTS","focusTS","rangeTS","start","end","undefined","min","filter","ts","sort","outbound","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","cell","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","empty","displayName","propTypes","PropTypes","shape","arrayOf","string","bool","object","instanceOf","isRequired","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.Week.jsx"],"sourcesContent":["import { dateCalc, 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, getFirstDayOfWeek } from './helpers';\n\nexport const Week = ({\n captions,\n disabledDates = [],\n disabledPast,\n focus,\n locale,\n format,\n from,\n highlights = [],\n month,\n number,\n range,\n rangeMinDays,\n selected,\n to,\n year,\n onPress = () => {},\n onFocus = () => {},\n ...others\n}) => {\n const disabledDatesTS = disabledDates.map((date) => UTC(parseDate(date, format)).getTime());\n const firstDate = getFirstDateOfWeek(number, year, getFirstDayOfWeek(locale));\n const todayTS = getToday().getTime();\n const fromTS = from?.getTime();\n const toTS = to?.getTime();\n const focusTS = focus?.getTime();\n\n let rangeTS = {};\n if (range) {\n const [start, end] = selected;\n rangeTS = {\n start: start ? start.getTime() : undefined,\n end: end ? end.getTime() : undefined,\n min: start && rangeMinDays ? dateCalc(start, rangeMinDays, 'days').getTime() : undefined,\n };\n\n const [outbound] = disabledDatesTS.filter((ts) => ts > rangeTS.start).sort();\n rangeTS.outbound = outbound ? outbound - 1 : undefined;\n }\n\n return (\n <View row className={styles(rangeTS.start !== undefined && range && style.range)}>\n {DAYS.map((day) => {\n const date = UTC(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + day));\n const dateTS = date.getTime();\n const dateString = dateFormat(date, { format });\n\n const is = {\n disabled:\n (disabledPast && dateTS < 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 highlight: highlights.includes(dateString),\n outOfRange: dateTS > rangeTS.outbound,\n minRange: dateTS > rangeTS.start && dateTS < rangeTS.min,\n range: dateTS > rangeTS.start && (dateTS < rangeTS.end || dateTS < rangeTS.min || dateTS < focusTS),\n rangeLimit: dateTS === rangeTS.start || dateTS === rangeTS.end,\n ranging: range && selected?.[0] && !selected[1],\n selected:\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 today: dateTS === todayTS,\n visible: date.getMonth() === month,\n };\n\n const textStyle = is.disabled\n ? style.textDisabled\n : is.selected || dateTS === rangeTS.end\n ? style.textSelected\n : is.highlight && !is.range\n ? style.textHighlight\n : undefined;\n\n return (\n <Pressable\n disabled={is.disabled || !is.visible || (range && !selected[1] && (is.minRange || is.outOfRange))}\n key={day}\n tabIndex={is.visible && !is.disabled ? `${date.getMonth()}-${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 && !is.disabled && !is.outOfRange && style.dayRange,\n (is.rangeLimit || (!is.range && is.selected)) && style.daySelected,\n is.rangeLimit && dateTS === rangeTS.start && style.daySelectedStart,\n is.rangeLimit && dateTS === rangeTS.end && style.daySelectedEnd,\n !is.selected && !is.disabled && !is.minRange && !is.outOfRange && style.dayTouchable,\n )}\n >\n <Text bold={is.today || is.highlight || (is.selected && !is.range)} className={textStyle}>\n {date.getDate()}\n </Text>\n\n {captions && (\n <Text\n small\n className={styles(textStyle, style.caption, !captions[dateString] && !is.rangeLimit && style.empty)}\n >\n {!is.disabled ? captions[dateString] || '-' : ''}\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 highlights: PropTypes.arrayOf(PropTypes.string),\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 rangeMinDays: PropTypes.number,\n selected: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]),\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ var _Calendar2 = require("./Calendar.Weekdays");
|
|
|
27
27
|
|
|
28
28
|
var _helpers2 = require("./helpers");
|
|
29
29
|
|
|
30
|
-
var _excluded = ["disabledPast", "format", "from", "locale", "range", "rangeMaxDays", "to", "value", "onChange", "onFocus", "onScroll"],
|
|
30
|
+
var _excluded = ["disabledPast", "format", "from", "locale", "range", "rangeMaxDays", "to", "value", "onChange", "onFocus", "onNavigation", "onScroll"],
|
|
31
31
|
_excluded2 = ["className", "months"];
|
|
32
32
|
|
|
33
33
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -76,11 +76,14 @@ var Calendar = function Calendar(_ref) {
|
|
|
76
76
|
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
77
77
|
_ref$onFocus = _ref.onFocus,
|
|
78
78
|
onFocus = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
|
|
79
|
+
_ref$onNavigation = _ref.onNavigation,
|
|
80
|
+
onNavigation = _ref$onNavigation === void 0 ? function () {} : _ref$onNavigation,
|
|
79
81
|
onScroll = _ref.onScroll,
|
|
80
82
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
81
83
|
|
|
82
84
|
var _useDevice = (0, _hooks.useDevice)(),
|
|
83
|
-
isDesktop = _useDevice.isDesktop
|
|
85
|
+
isDesktop = _useDevice.isDesktop,
|
|
86
|
+
isMobile = _useDevice.isMobile;
|
|
84
87
|
|
|
85
88
|
var _useState = (0, _react.useState)(),
|
|
86
89
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -92,16 +95,30 @@ var Calendar = function Calendar(_ref) {
|
|
|
92
95
|
instance = _useState4[0],
|
|
93
96
|
setInstance = _useState4[1];
|
|
94
97
|
|
|
95
|
-
var _useState5 = (0, _react.useState)(
|
|
98
|
+
var _useState5 = (0, _react.useState)(),
|
|
96
99
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
scrollTo = _useState6[0],
|
|
101
|
+
setScrollTo = _useState6[1];
|
|
102
|
+
|
|
103
|
+
var _useState7 = (0, _react.useState)(range ? [] : undefined),
|
|
104
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
105
|
+
selected = _useState8[0],
|
|
106
|
+
setSelected = _useState8[1];
|
|
99
107
|
|
|
100
108
|
(0, _react.useEffect)(function () {
|
|
101
109
|
var date = range ? value ? value[0] : undefined : value;
|
|
102
110
|
if (!date) return setSelected(range ? [] : undefined);
|
|
103
111
|
date = (0, _locale.parseDate)(date, format);
|
|
104
|
-
|
|
112
|
+
|
|
113
|
+
if (range && (selected.length === 0 || value.length === 2) || !range) {
|
|
114
|
+
var next = (0, _helpers2.getFirstDateOfMonth)(date);
|
|
115
|
+
|
|
116
|
+
var _dateDiff = (0, _locale.dateDiff)(instance, date),
|
|
117
|
+
diffMonths = _dateDiff.months;
|
|
118
|
+
|
|
119
|
+
if (isDesktop && diffMonths >= months) setInstance(next);else if (isMobile) setScrollTo((0, _helpers2.getScrollTo)(diffMonths));
|
|
120
|
+
}
|
|
121
|
+
|
|
105
122
|
setSelected(range ? [(0, _locale.UTC)(date), value[1] ? (0, _locale.UTC)((0, _locale.parseDate)(value[1], format)) : undefined] : (0, _locale.UTC)(date)); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
106
123
|
}, [format, range, value]);
|
|
107
124
|
(0, _react.useEffect)(function () {
|
|
@@ -129,9 +146,16 @@ var Calendar = function Calendar(_ref) {
|
|
|
129
146
|
};
|
|
130
147
|
|
|
131
148
|
var handleMonth = function handleMonth(month) {
|
|
132
|
-
setInstance(
|
|
149
|
+
setInstance(function () {
|
|
150
|
+
var next = (0, _helpers2.getFirstDateOfMonth)(new Date(instance.getFullYear(), instance.getMonth() + month));
|
|
151
|
+
onNavigation(next);
|
|
152
|
+
return next;
|
|
153
|
+
});
|
|
133
154
|
};
|
|
134
155
|
|
|
156
|
+
var testID = others['data-testid'],
|
|
157
|
+
scrollEventThrottle = others.scrollEventThrottle;
|
|
158
|
+
|
|
135
159
|
var className = others.className,
|
|
136
160
|
_others$months = others.months,
|
|
137
161
|
months = _others$months === void 0 ? 2 : _others$months,
|
|
@@ -154,20 +178,23 @@ var Calendar = function Calendar(_ref) {
|
|
|
154
178
|
onChange: handleChange,
|
|
155
179
|
onFocus: isDesktop ? setFocus : undefined
|
|
156
180
|
});
|
|
157
|
-
if (
|
|
181
|
+
if (isMobile && to) months = (0, _locale.dateDiff)(today, (0, _locale.parseDate)(to, format)).months;
|
|
158
182
|
return /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
},
|
|
183
|
+
className: (0, _helpers.styles)(_CalendarModule.default.container, className),
|
|
184
|
+
"data-testid": testID
|
|
185
|
+
}, isMobile && /*#__PURE__*/_react.default.createElement(_Calendar2.Weekdays, {
|
|
162
186
|
locale: locale
|
|
163
187
|
}), /*#__PURE__*/_react.default.createElement(_primitives.ScrollView, {
|
|
164
188
|
horizontal: isDesktop,
|
|
189
|
+
scrollTo: scrollTo,
|
|
165
190
|
className: _CalendarModule.default.scrollview,
|
|
191
|
+
scrollEventThrottle: scrollEventThrottle,
|
|
166
192
|
onScroll: onScroll
|
|
167
193
|
}, Array.from({
|
|
168
194
|
length: months
|
|
169
195
|
}, function (empty, index) {
|
|
170
196
|
return /*#__PURE__*/_react.default.createElement(_Calendar.Month, _extends({
|
|
197
|
+
"data-testid": testID,
|
|
171
198
|
key: index,
|
|
172
199
|
onNext: isDesktop && index === months - 1 && !disabledNext ? function () {
|
|
173
200
|
return handleMonth(months);
|
|
@@ -175,7 +202,8 @@ var Calendar = function Calendar(_ref) {
|
|
|
175
202
|
onPrevious: isDesktop && index === 0 && !disabledPrevious ? function () {
|
|
176
203
|
return handleMonth(-months);
|
|
177
204
|
} : undefined,
|
|
178
|
-
instance: new Date(instance.getFullYear(), instance.getMonth() + index, 1)
|
|
205
|
+
instance: new Date(instance.getFullYear(), instance.getMonth() + index, 1) // ! TODO: calc with mirai/locale
|
|
206
|
+
|
|
179
207
|
}, props));
|
|
180
208
|
})));
|
|
181
209
|
};
|
|
@@ -199,6 +227,7 @@ Calendar.propTypes = {
|
|
|
199
227
|
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
|
|
200
228
|
onChange: _propTypes.default.func,
|
|
201
229
|
onFocus: _propTypes.default.func,
|
|
230
|
+
onNavigation: _propTypes.default.func,
|
|
202
231
|
onScroll: _propTypes.default.func
|
|
203
232
|
};
|
|
204
233
|
//# sourceMappingURL=Calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","names":["Calendar","disabledPast","format","from","locale","range","rangeMaxDays","to","value","onChange","onFocus","onScroll","others","isDesktop","focus","setFocus","instance","setInstance","undefined","selected","setSelected","date","length","handleChange","next","getTime","handleMonth","month","Date","getFullYear","getMonth","className","months","props","today","instanceTS","todayMonthTS","disabledPrevious","disabledNext","style","container","scrollview","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","disabledWeekends","highlights","number","rangeMinDays","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.jsx"],"sourcesContent":["import { dateCalc, dateDiff, 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 locale,\n range = false,\n rangeMaxDays,\n to,\n value,\n onChange = () => {},\n onFocus = () => {},\n onScroll,\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 setSelected(range ? [] : undefined);\n\n date = parseDate(date, format);\n if ((range && selected.length === 0) || !range) setInstance(getFirstDateOfMonth(date));\n\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n // eslint-disable-next-line react-hooks/exhaustive-deps\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 let { className, months = 2, ...props } = others;\n\n const today = getToday();\n const instanceTS = instance.getTime();\n const todayMonthTS = getFirstDateOfMonth(today).getTime();\n const disabledPrevious =\n (disabledPast && instanceTS <= todayMonthTS) ||\n (from && instanceTS <= getFirstDateOfMonth(parseDate(from, format)).getTime());\n\n const disabledNext =\n to && parseDate(to, format).getTime() <= getFirstDateOfMonth(dateCalc(instance, months, 'months')).getTime();\n\n props = {\n ...props,\n disabledPast,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to:\n range &&\n rangeMaxDays &&\n selected[0] &&\n !selected[1] &&\n (!to || dateCalc(selected[0], rangeMaxDays, 'days') < parseDate(to, format))\n ? dateCalc(selected[0], rangeMaxDays, 'days')\n : to\n ? parseDate(to, format)\n : undefined,\n selected,\n onChange: handleChange,\n onFocus: isDesktop ? setFocus : undefined,\n };\n\n if (!isDesktop && to) months = dateDiff(today, parseDate(to, format)).months;\n\n return (\n <View data-testid={others['data-testid']} className={styles(style.container, className)}>\n {!isDesktop && <Weekdays locale={locale} />}\n <ScrollView horizontal={isDesktop} className={style.scrollview} onScroll={onScroll}>\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 highlights: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n months: PropTypes.number,\n range: PropTypes.bool,\n rangeMaxDays: PropTypes.number,\n rangeMinDays: 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 onScroll: PropTypes.func,\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAalB;EAAA,6BAZJC,YAYI;EAAA,IAZJA,YAYI,kCAZW,IAYX;EAAA,uBAXJC,MAWI;EAAA,IAXJA,MAWI,4BAXK,YAWL;EAAA,IAVJC,IAUI,QAVJA,IAUI;EAAA,IATJC,MASI,QATJA,MASI;EAAA,sBARJC,KAQI;EAAA,IARJA,KAQI,2BARI,KAQJ;EAAA,IAPJC,YAOI,QAPJA,YAOI;EAAA,IANJC,EAMI,QANJA,EAMI;EAAA,IALJC,KAKI,QALJA,KAKI;EAAA,yBAJJC,QAII;EAAA,IAJJA,QAII,8BAJO,YAAM,CAAE,CAIf;EAAA,wBAHJC,OAGI;EAAA,IAHJA,OAGI,6BAHM,YAAM,CAAE,CAGd;EAAA,IAFJC,QAEI,QAFJA,QAEI;EAAA,IADDC,MACC;;EACJ,iBAAsB,uBAAtB;EAAA,IAAQC,SAAR,cAAQA,SAAR;;EAEA,gBAA0B,sBAA1B;EAAA;EAAA,IAAOC,KAAP;EAAA,IAAcC,QAAd;;EACA,iBAAgC,qBAAS,mCAAoB,yBAApB,CAAT,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EACA,iBAAgC,qBAASZ,KAAK,GAAG,EAAH,GAAQa,SAAtB,CAAhC;EAAA;EAAA,IAAOC,QAAP;EAAA,IAAiBC,WAAjB;;EAEA,sBAAU,YAAM;IACd,IAAIC,IAAI,GAAGhB,KAAK,GAAIG,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcU,SAAvB,GAAoCV,KAApD;IACA,IAAI,CAACa,IAAL,EAAW,OAAOD,WAAW,CAACf,KAAK,GAAG,EAAH,GAAQa,SAAd,CAAlB;IAEXG,IAAI,GAAG,uBAAUA,IAAV,EAAgBnB,MAAhB,CAAP;IACA,IAAKG,KAAK,IAAIc,QAAQ,CAACG,MAAT,KAAoB,CAA9B,IAAoC,CAACjB,KAAzC,EAAgDY,WAAW,CAAC,mCAAoBI,IAApB,CAAD,CAAX;IAEhDD,WAAW,CAACf,KAAK,GAAG,CAAC,iBAAIgB,IAAJ,CAAD,EAAYb,KAAK,CAAC,CAAD,CAAL,GAAW,iBAAI,uBAAUA,KAAK,CAAC,CAAD,CAAf,EAAoBN,MAApB,CAAJ,CAAX,GAA8CgB,SAA1D,CAAH,GAA0E,iBAAIG,IAAJ,CAAhF,CAAX,CAPc,CAQd;EACD,CATD,EASG,CAACnB,MAAD,EAASG,KAAT,EAAgBG,KAAhB,CATH;EAWA,sBAAU,YAAM;IACdE,OAAO,CAACI,KAAD,CAAP;EACD,CAFD,EAEG,CAACA,KAAD,EAAQJ,OAAR,CAFH;;EAIA,IAAMa,YAAY,GAAG,SAAfA,YAAe,CAACF,IAAD,EAAU;IAC7BD,WAAW,CAAC,YAAM;MAChB,IAAII,IAAJ;;MAEA,IAAI,CAACnB,KAAL,EAAY;QACVmB,IAAI,GAAGH,IAAP;MACD,CAFD,MAEO,IAAIF,QAAQ,CAAC,CAAD,CAAR,KAAgBD,SAAhB,IAA6BG,IAAI,GAAGF,QAAQ,CAAC,CAAD,CAAhD,EAAqD;QAC1DK,IAAI,GAAG,CAACL,QAAQ,CAAC,CAAD,CAAT,EAAcE,IAAd,CAAP;MACD,CAFM,MAEA;QAAA;;QACLG,IAAI,GAAG,CAAC,eAAAL,QAAQ,CAAC,CAAD,CAAR,0DAAaM,OAAb,QAA2BJ,IAAI,CAACI,OAAL,EAA3B,GAA4CP,SAA5C,GAAwDG,IAAzD,CAAP;QACAN,QAAQ,CAACG,SAAD,CAAR;MACD;;MACDT,QAAQ,CAACe,IAAD,CAAR;MAEA,OAAOA,IAAP;IACD,CAdU,CAAX;EAeD,CAhBD;;EAkBA,IAAME,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAW;IAC7BV,WAAW,CAAC,mCAAoB,IAAIW,IAAJ,CAASZ,QAAQ,CAACa,WAAT,EAAT,EAAiCb,QAAQ,CAACc,QAAT,KAAsBH,KAAvD,CAApB,CAAD,CAAX;EACD,CAFD;;EAIA,IAAMI,SAAN,GAA0CnB,MAA1C,CAAMmB,SAAN;EAAA,qBAA0CnB,MAA1C,CAAiBoB,MAAjB;EAAA,IAAiBA,MAAjB,+BAA0B,CAA1B;EAAA,IAAgCC,KAAhC,4BAA0CrB,MAA1C;;EAEA,IAAMsB,KAAK,GAAG,yBAAd;EACA,IAAMC,UAAU,GAAGnB,QAAQ,CAACS,OAAT,EAAnB;EACA,IAAMW,YAAY,GAAG,mCAAoBF,KAApB,EAA2BT,OAA3B,EAArB;EACA,IAAMY,gBAAgB,GACnBpC,YAAY,IAAIkC,UAAU,IAAIC,YAA/B,IACCjC,IAAI,IAAIgC,UAAU,IAAI,mCAAoB,uBAAUhC,IAAV,EAAgBD,MAAhB,CAApB,EAA6CuB,OAA7C,EAFzB;EAIA,IAAMa,YAAY,GAChB/B,EAAE,IAAI,uBAAUA,EAAV,EAAcL,MAAd,EAAsBuB,OAAtB,MAAmC,mCAAoB,sBAAST,QAAT,EAAmBgB,MAAnB,EAA2B,QAA3B,CAApB,EAA0DP,OAA1D,EAD3C;EAGAQ,KAAK,mCACAA,KADA;IAEHhC,YAAY,EAAZA,YAFG;IAGHa,KAAK,EAALA,KAHG;IAIHZ,MAAM,EAANA,MAJG;IAKHC,IAAI,EAAEA,IAAI,GAAG,uBAAUA,IAAV,EAAgBD,MAAhB,CAAH,GAA6BgB,SALpC;IAMHd,MAAM,EAANA,MANG;IAOHC,KAAK,EAALA,KAPG;IAQHE,EAAE,EACAF,KAAK,IACLC,YADA,IAEAa,QAAQ,CAAC,CAAD,CAFR,IAGA,CAACA,QAAQ,CAAC,CAAD,CAHT,KAIC,CAACZ,EAAD,IAAO,sBAASY,QAAQ,CAAC,CAAD,CAAjB,EAAsBb,YAAtB,EAAoC,MAApC,IAA8C,uBAAUC,EAAV,EAAcL,MAAd,CAJtD,IAKI,sBAASiB,QAAQ,CAAC,CAAD,CAAjB,EAAsBb,YAAtB,EAAoC,MAApC,CALJ,GAMIC,EAAE,GACF,uBAAUA,EAAV,EAAcL,MAAd,CADE,GAEFgB,SAjBH;IAkBHC,QAAQ,EAARA,QAlBG;IAmBHV,QAAQ,EAAEc,YAnBP;IAoBHb,OAAO,EAAEG,SAAS,GAAGE,QAAH,GAAcG;EApB7B,EAAL;EAuBA,IAAI,CAACL,SAAD,IAAcN,EAAlB,EAAsByB,MAAM,GAAG,sBAASE,KAAT,EAAgB,uBAAU3B,EAAV,EAAcL,MAAd,CAAhB,EAAuC8B,MAAhD;EAEtB,oBACE,6BAAC,gBAAD;IAAM,eAAapB,MAAM,CAAC,aAAD,CAAzB;IAA0C,SAAS,EAAE,qBAAO2B,wBAAMC,SAAb,EAAwBT,SAAxB;EAArD,GACG,CAAClB,SAAD,iBAAc,6BAAC,mBAAD;IAAU,MAAM,EAAET;EAAlB,EADjB,eAEE,6BAAC,sBAAD;IAAY,UAAU,EAAES,SAAxB;IAAmC,SAAS,EAAE0B,wBAAME,UAApD;IAAgE,QAAQ,EAAE9B;EAA1E,GACG+B,KAAK,CAACvC,IAAN,CAAW;IAAEmB,MAAM,EAAEU;EAAV,CAAX,EAA+B,UAACW,KAAD,EAAQC,KAAR;IAAA,oBAC9B,6BAAC,eAAD;MACE,GAAG,EAAEA,KADP;MAEE,MAAM,EAAE/B,SAAS,IAAI+B,KAAK,KAAKZ,MAAM,GAAG,CAAhC,IAAqC,CAACM,YAAtC,GAAqD;QAAA,OAAMZ,WAAW,CAACM,MAAD,CAAjB;MAAA,CAArD,GAAiFd,SAF3F;MAGE,UAAU,EAAEL,SAAS,IAAI+B,KAAK,KAAK,CAAvB,IAA4B,CAACP,gBAA7B,GAAgD;QAAA,OAAMX,WAAW,CAAC,CAACM,MAAF,CAAjB;MAAA,CAAhD,GAA6Ed,SAH3F;MAIE,QAAQ,EAAE,IAAIU,IAAJ,CAASZ,QAAQ,CAACa,WAAT,EAAT,EAAiCb,QAAQ,CAACc,QAAT,KAAsBc,KAAvD,EAA8D,CAA9D;IAJZ,GAKMX,KALN,EAD8B;EAAA,CAA/B,CADH,CAFF,CADF;AAgBD,CA9GM;;;AAgHPjC,QAAQ,CAAC6C,WAAT,GAAuB,oBAAvB;AAEA7C,QAAQ,CAAC8C,SAAT,GAAqB;EACnBC,QAAQ,EAAEC,mBAAUC,KAAV,CAAgB,EAAhB,CADS;EAEnBC,aAAa,EAAEF,mBAAUG,OAAV,CAAkBH,mBAAUI,MAA5B,CAFI;EAGnBnD,YAAY,EAAE+C,mBAAUK,IAHL;EAInBC,gBAAgB,EAAEN,mBAAUK,IAJT;EAKnBnD,MAAM,EAAE8C,mBAAUI,MALC;EAMnBjD,IAAI,EAAE6C,mBAAUI,MANG;EAOnBG,UAAU,EAAEP,mBAAUG,OAAV,CAAkBH,mBAAUI,MAA5B,CAPO;EAQnBhD,MAAM,EAAE4C,mBAAUI,MARC;EASnBpB,MAAM,EAAEgB,mBAAUQ,MATC;EAUnBnD,KAAK,EAAE2C,mBAAUK,IAVE;EAWnB/C,YAAY,EAAE0C,mBAAUQ,MAXL;EAYnBC,YAAY,EAAET,mBAAUQ,MAZL;EAanBjD,EAAE,EAAEyC,mBAAUI,MAbK;EAcnB5C,KAAK,EAAEwC,mBAAUU,SAAV,CAAoB,CAACV,mBAAUI,MAAX,EAAmBJ,mBAAUG,OAAV,CAAkBH,mBAAUI,MAA5B,CAAnB,CAApB,CAdY;EAenB3C,QAAQ,EAAEuC,mBAAUW,IAfD;EAgBnBjD,OAAO,EAAEsC,mBAAUW,IAhBA;EAiBnBhD,QAAQ,EAAEqC,mBAAUW;AAjBD,CAArB"}
|
|
1
|
+
{"version":3,"file":"Calendar.js","names":["Calendar","disabledPast","format","from","locale","range","rangeMaxDays","to","value","onChange","onFocus","onNavigation","onScroll","others","isDesktop","isMobile","focus","setFocus","instance","setInstance","scrollTo","setScrollTo","undefined","selected","setSelected","date","length","next","diffMonths","months","handleChange","getTime","handleMonth","month","Date","getFullYear","getMonth","testID","scrollEventThrottle","className","props","today","instanceTS","todayMonthTS","disabledPrevious","disabledNext","style","container","scrollview","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","disabledWeekends","highlights","number","rangeMinDays","oneOfType","func"],"sources":["../../../src/components/Calendar/Calendar.jsx"],"sourcesContent":["import { dateCalc, dateDiff, 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, getScrollTo, getToday } from './helpers';\n\nexport const Calendar = ({\n disabledPast = true,\n format = 'YYYY/MM/DD',\n from,\n locale,\n range = false,\n rangeMaxDays,\n to,\n value,\n onChange = () => {},\n onFocus = () => {},\n onNavigation = () => {},\n onScroll,\n ...others\n}) => {\n const { isDesktop, isMobile } = useDevice();\n\n const [focus, setFocus] = useState();\n const [instance, setInstance] = useState(getFirstDateOfMonth(getToday()));\n const [scrollTo, setScrollTo] = useState();\n const [selected, setSelected] = useState(range ? [] : undefined);\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (!date) return setSelected(range ? [] : undefined);\n\n date = parseDate(date, format);\n if ((range && (selected.length === 0 || value.length === 2)) || !range) {\n const next = getFirstDateOfMonth(date);\n const { months: diffMonths } = dateDiff(instance, date);\n\n if (isDesktop && diffMonths >= months) setInstance(next);\n else if (isMobile) setScrollTo(getScrollTo(diffMonths));\n }\n\n setSelected(range ? [UTC(date), value[1] ? UTC(parseDate(value[1], format)) : undefined] : UTC(date));\n // eslint-disable-next-line react-hooks/exhaustive-deps\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(() => {\n const next = getFirstDateOfMonth(new Date(instance.getFullYear(), instance.getMonth() + month));\n\n onNavigation(next);\n return next;\n });\n };\n\n const { ['data-testid']: testID, scrollEventThrottle } = others;\n let { className, months = 2, ...props } = others;\n\n const today = getToday();\n const instanceTS = instance.getTime();\n const todayMonthTS = getFirstDateOfMonth(today).getTime();\n const disabledPrevious =\n (disabledPast && instanceTS <= todayMonthTS) ||\n (from && instanceTS <= getFirstDateOfMonth(parseDate(from, format)).getTime());\n\n const disabledNext =\n to && parseDate(to, format).getTime() <= getFirstDateOfMonth(dateCalc(instance, months, 'months')).getTime();\n\n props = {\n ...props,\n disabledPast,\n focus,\n format,\n from: from ? parseDate(from, format) : undefined,\n locale,\n range,\n to:\n range &&\n rangeMaxDays &&\n selected[0] &&\n !selected[1] &&\n (!to || dateCalc(selected[0], rangeMaxDays, 'days') < parseDate(to, format))\n ? dateCalc(selected[0], rangeMaxDays, 'days')\n : to\n ? parseDate(to, format)\n : undefined,\n selected,\n onChange: handleChange,\n onFocus: isDesktop ? setFocus : undefined,\n };\n\n if (isMobile && to) months = dateDiff(today, parseDate(to, format)).months;\n\n return (\n <View className={styles(style.container, className)} data-testid={testID}>\n {isMobile && <Weekdays locale={locale} />}\n <ScrollView\n horizontal={isDesktop}\n scrollTo={scrollTo}\n className={style.scrollview}\n scrollEventThrottle={scrollEventThrottle}\n onScroll={onScroll}\n >\n {Array.from({ length: months }, (empty, index) => (\n <Month\n data-testid={testID}\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)} // ! TODO: calc with mirai/locale\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 highlights: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n months: PropTypes.number,\n range: PropTypes.bool,\n rangeMaxDays: PropTypes.number,\n rangeMinDays: 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 onNavigation: PropTypes.func,\n onScroll: PropTypes.func,\n};\n"],"mappings":"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"}
|