@mirai/ui 1.0.98 → 1.0.100
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.
|
@@ -52,7 +52,8 @@ var Calendar = function Calendar(_ref) {
|
|
|
52
52
|
onFocus = _ref$onFocus === void 0 ? function () {} : _ref$onFocus,
|
|
53
53
|
_ref$onNavigation = _ref.onNavigation,
|
|
54
54
|
onNavigation = _ref$onNavigation === void 0 ? function () {} : _ref$onNavigation,
|
|
55
|
-
onScroll = _ref.onScroll,
|
|
55
|
+
_ref$onScroll = _ref.onScroll,
|
|
56
|
+
onScroll = _ref$onScroll === void 0 ? function () {} : _ref$onScroll,
|
|
56
57
|
others = _objectWithoutProperties(_ref, _excluded);
|
|
57
58
|
var _useDevice = (0, _hooks.useDevice)(),
|
|
58
59
|
isDesktop = _useDevice.isDesktop,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","names":["Calendar","disabledPast","format","from","locale","range","rangeMaxDays","to","value","onChange","onFocus","onNavigation","onScroll","others","useDevice","isDesktop","isMobile","useState","focus","setFocus","getFirstDateOfMonth","getToday","instance","setInstance","scrollTo","setScrollTo","undefined","selected","setSelected","timestamp","setTimestamp","useEffect","date","dateFrom","parseDate","dateDiff","days","length","next","diffMonths","months","getScrollTo","UTC","handleChange","getTime","handleMonth","month","Date","getFullYear","getMonth","handleScroll","event","now","testID","scrollEventThrottle","className","props","today","instanceTS","todayMonthTS","disabledPrevious","disabledNext","dateCalc","styles","style","container","scrollview","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","highlights","number","rangeMinDays","tooltips","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 const [timestamp, setTimestamp] = useState();\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (from && !date) {\n const dateFrom = parseDate(from, format);\n const { days } = dateDiff(dateFrom, parseDate(date, format));\n\n setInstance(getFirstDateOfMonth(dateFrom));\n if (days < 0) date = undefined;\n }\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, from, 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 handleScroll = (event) => {\n onScroll(event);\n setTimestamp(Date.now());\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 timestamp,\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={handleScroll}\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 tooltips: PropTypes.shape({}),\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","useDevice","isDesktop","isMobile","useState","focus","setFocus","getFirstDateOfMonth","getToday","instance","setInstance","scrollTo","setScrollTo","undefined","selected","setSelected","timestamp","setTimestamp","useEffect","date","dateFrom","parseDate","dateDiff","days","length","next","diffMonths","months","getScrollTo","UTC","handleChange","getTime","handleMonth","month","Date","getFullYear","getMonth","handleScroll","event","now","testID","scrollEventThrottle","className","props","today","instanceTS","todayMonthTS","disabledPrevious","disabledNext","dateCalc","styles","style","container","scrollview","Array","empty","index","displayName","propTypes","captions","PropTypes","shape","disabledDates","arrayOf","string","bool","highlights","number","rangeMinDays","tooltips","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 const [timestamp, setTimestamp] = useState();\n\n useEffect(() => {\n let date = range ? (value ? value[0] : undefined) : value;\n if (from && !date) {\n const dateFrom = parseDate(from, format);\n const { days } = dateDiff(dateFrom, parseDate(date, format));\n\n setInstance(getFirstDateOfMonth(dateFrom));\n if (days < 0) date = undefined;\n }\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, from, 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 handleScroll = (event) => {\n onScroll(event);\n setTimestamp(Date.now());\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 timestamp,\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={handleScroll}\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 tooltips: PropTypes.shape({}),\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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"}
|
|
@@ -30,11 +30,12 @@ exports[`component:<Modal> Mobile environment prop:onClose 1`] = `
|
|
|
30
30
|
xmlns="http://www.w3.org/2000/svg"
|
|
31
31
|
>
|
|
32
32
|
<path
|
|
33
|
-
d="
|
|
33
|
+
d="M24 24H0V0h24v24z"
|
|
34
34
|
fill="none"
|
|
35
|
+
opacity=".87"
|
|
35
36
|
/>
|
|
36
37
|
<path
|
|
37
|
-
d="
|
|
38
|
+
d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z"
|
|
38
39
|
/>
|
|
39
40
|
</svg>
|
|
40
41
|
</span>
|
|
@@ -172,11 +173,12 @@ exports[`component:<Modal> prop:onClose 1`] = `
|
|
|
172
173
|
xmlns="http://www.w3.org/2000/svg"
|
|
173
174
|
>
|
|
174
175
|
<path
|
|
175
|
-
d="
|
|
176
|
+
d="M24 24H0V0h24v24z"
|
|
176
177
|
fill="none"
|
|
178
|
+
opacity=".87"
|
|
177
179
|
/>
|
|
178
180
|
<path
|
|
179
|
-
d="
|
|
181
|
+
d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z"
|
|
180
182
|
/>
|
|
181
183
|
</svg>
|
|
182
184
|
</span>
|
package/build/hooks/useDevice.js
CHANGED
|
@@ -35,8 +35,10 @@ var useDevice = function useDevice() {
|
|
|
35
35
|
}, []);
|
|
36
36
|
return (0, _react.useMemo)(function () {
|
|
37
37
|
var _Theme$get = _theme.Theme.get(),
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
_Theme$get$breakpoint = _Theme$get.breakpointS,
|
|
39
|
+
breakpointS = _Theme$get$breakpoint === void 0 ? '430px' : _Theme$get$breakpoint,
|
|
40
|
+
_Theme$get$breakpoint2 = _Theme$get.breakpointM,
|
|
41
|
+
breakpointM = _Theme$get$breakpoint2 === void 0 ? '768px' : _Theme$get$breakpoint2;
|
|
40
42
|
var isLandscape = resolution.width >= resolution.height;
|
|
41
43
|
var isMobile = resolution.width <= (0, _helpers.sanitizePx)(breakpointS);
|
|
42
44
|
var isTablet = !isMobile && resolution.width <= (0, _helpers.sanitizePx)(breakpointM);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDevice.js","names":["useDevice","useState","getResolution","resolution","setResolution","useEffect","handleResize","window","addEventListener","removeEventListener","useMemo","Theme","get","breakpointS","breakpointM","isLandscape","width","height","isMobile","sanitizePx","isTablet","navigator","getNavigator","isPortrait","isDesktop"],"sources":["../../src/hooks/useDevice.js"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport { Theme } from '../theme';\nimport { getResolution, getNavigator, sanitizePx } from './helpers';\n\nexport const useDevice = () => {\n const [resolution, setResolution] = useState(getResolution());\n\n useEffect(() => {\n const handleResize = () => setResolution(getResolution());\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return useMemo(() => {\n const { breakpointS, breakpointM } = Theme.get();\n const isLandscape = resolution.width >= resolution.height;\n const isMobile = resolution.width <= sanitizePx(breakpointS);\n const isTablet = !isMobile && resolution.width <= sanitizePx(breakpointM);\n const navigator = getNavigator();\n\n return {\n ...resolution,\n ...navigator,\n isLandscape,\n isPortrait: !isLandscape,\n isMobile,\n isTablet,\n isDesktop: !isMobile && !isTablet,\n };\n }, [resolution]);\n};\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AAAoE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE7D,IAAMA,SAAS,GAAG,SAAZA,SAAS,GAAS;EAC7B,gBAAoC,IAAAC,eAAQ,EAAC,IAAAC,sBAAa,GAAE,CAAC;IAAA;IAAtDC,UAAU;IAAEC,aAAa;EAEhC,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,YAAY,GAAG,SAAfA,YAAY;MAAA,OAASF,aAAa,CAAC,IAAAF,sBAAa,GAAE,CAAC;IAAA;IAEzDK,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;IAE/C,OAAO;MAAA,OAAMC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAAA;EACjE,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAI,cAAO,EAAC,YAAM;IACnB,
|
|
1
|
+
{"version":3,"file":"useDevice.js","names":["useDevice","useState","getResolution","resolution","setResolution","useEffect","handleResize","window","addEventListener","removeEventListener","useMemo","Theme","get","breakpointS","breakpointM","isLandscape","width","height","isMobile","sanitizePx","isTablet","navigator","getNavigator","isPortrait","isDesktop"],"sources":["../../src/hooks/useDevice.js"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\n\nimport { Theme } from '../theme';\nimport { getResolution, getNavigator, sanitizePx } from './helpers';\n\nexport const useDevice = () => {\n const [resolution, setResolution] = useState(getResolution());\n\n useEffect(() => {\n const handleResize = () => setResolution(getResolution());\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return useMemo(() => {\n const { breakpointS = '430px', breakpointM = '768px' } = Theme.get();\n const isLandscape = resolution.width >= resolution.height;\n const isMobile = resolution.width <= sanitizePx(breakpointS);\n const isTablet = !isMobile && resolution.width <= sanitizePx(breakpointM);\n const navigator = getNavigator();\n\n return {\n ...resolution,\n ...navigator,\n isLandscape,\n isPortrait: !isLandscape,\n isMobile,\n isTablet,\n isDesktop: !isMobile && !isTablet,\n };\n }, [resolution]);\n};\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AAAoE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE7D,IAAMA,SAAS,GAAG,SAAZA,SAAS,GAAS;EAC7B,gBAAoC,IAAAC,eAAQ,EAAC,IAAAC,sBAAa,GAAE,CAAC;IAAA;IAAtDC,UAAU;IAAEC,aAAa;EAEhC,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAMC,YAAY,GAAG,SAAfA,YAAY;MAAA,OAASF,aAAa,CAAC,IAAAF,sBAAa,GAAE,CAAC;IAAA;IAEzDK,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;IAE/C,OAAO;MAAA,OAAMC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;IAAA;EACjE,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAI,cAAO,EAAC,YAAM;IACnB,iBAAyDC,YAAK,CAACC,GAAG,EAAE;MAAA,mCAA5DC,WAAW;MAAXA,WAAW,sCAAG,OAAO;MAAA,oCAAEC,WAAW;MAAXA,WAAW,uCAAG,OAAO;IACpD,IAAMC,WAAW,GAAGZ,UAAU,CAACa,KAAK,IAAIb,UAAU,CAACc,MAAM;IACzD,IAAMC,QAAQ,GAAGf,UAAU,CAACa,KAAK,IAAI,IAAAG,mBAAU,EAACN,WAAW,CAAC;IAC5D,IAAMO,QAAQ,GAAG,CAACF,QAAQ,IAAIf,UAAU,CAACa,KAAK,IAAI,IAAAG,mBAAU,EAACL,WAAW,CAAC;IACzE,IAAMO,SAAS,GAAG,IAAAC,qBAAY,GAAE;IAEhC,qDACKnB,UAAU,GACVkB,SAAS;MACZN,WAAW,EAAXA,WAAW;MACXQ,UAAU,EAAE,CAACR,WAAW;MACxBG,QAAQ,EAARA,QAAQ;MACRE,QAAQ,EAARA,QAAQ;MACRI,SAAS,EAAE,CAACN,QAAQ,IAAI,CAACE;IAAQ;EAErC,CAAC,EAAE,CAACjB,UAAU,CAAC,CAAC;AAClB,CAAC;AAAC"}
|