@mirai/ui 1.0.35 → 1.0.36

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.
@@ -116,7 +116,6 @@ Month.propTypes = {
116
116
  selected: _propTypes.default.any,
117
117
  disabledDates: _propTypes.default.arrayOf(_propTypes.default.string),
118
118
  disabledPast: _propTypes.default.bool,
119
- disabledWeekends: _propTypes.default.bool,
120
119
  format: _propTypes.default.string,
121
120
  from: _propTypes.default.instanceOf(Date),
122
121
  locale: _propTypes.default.string,
@@ -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","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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"}
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","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 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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"}
@@ -116,7 +116,7 @@ var Calendar = function Calendar(_ref) {
116
116
  var _dateDiff = (0, _locale.dateDiff)(instance, date),
117
117
  diffMonths = _dateDiff.months;
118
118
 
119
- if (isDesktop && diffMonths >= months) setInstance(next);else if (isMobile) setScrollTo((0, _helpers2.getScrollTo)(diffMonths));
119
+ if (isDesktop && (diffMonths >= months || diffMonths < 0)) setInstance(next);else if (isMobile) setScrollTo((0, _helpers2.getScrollTo)(diffMonths));
120
120
  }
121
121
 
122
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
@@ -214,7 +214,6 @@ Calendar.propTypes = {
214
214
  captions: _propTypes.default.shape({}),
215
215
  disabledDates: _propTypes.default.arrayOf(_propTypes.default.string),
216
216
  disabledPast: _propTypes.default.bool,
217
- disabledWeekends: _propTypes.default.bool,
218
217
  format: _propTypes.default.string,
219
218
  from: _propTypes.default.string,
220
219
  highlights: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -1 +1 @@
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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"}
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","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 || diffMonths < 0)) 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 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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"}