@mirai/ui 1.0.83 → 1.0.85
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/README.md +2 -0
- package/build/components/Calendar/Calendar.Month.js +6 -3
- package/build/components/Calendar/Calendar.Month.js.map +1 -1
- package/build/components/Calendar/Calendar.Week.js +4 -1
- package/build/components/Calendar/Calendar.Week.js.map +1 -1
- package/build/components/Calendar/Calendar.js +10 -1
- package/build/components/Calendar/Calendar.js.map +1 -1
- package/build/components/Calendar/Calendar.module.css +4 -3
- package/build/components/Tooltip/Tooltip.js +4 -1
- package/build/components/Tooltip/Tooltip.js.map +1 -1
- package/build/primitives/Layer/Layer.js +9 -3
- package/build/primitives/Layer/Layer.js.map +1 -1
- package/build/primitives/Layer/helpers/getLayerPosition.js +4 -2
- package/build/primitives/Layer/helpers/getLayerPosition.js.map +1 -1
- package/build/primitives/Layer/helpers/getScrollParent.js +12 -0
- package/build/primitives/Layer/helpers/getScrollParent.js.map +1 -0
- package/build/primitives/Layer/helpers/index.js +11 -0
- package/build/primitives/Layer/helpers/index.js.map +1 -1
- package/build/theme/default.theme.css +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,6 +110,7 @@ This primitive returns an element that displays with relative position to other
|
|
|
110
110
|
- `forceRender:bool` if you want render content children even if `visible` is _falsy_, by default is `true`.
|
|
111
111
|
- `left:bool` if you want open the content on the left of the reference component.
|
|
112
112
|
- `right:bool` if you want open the content on the right of the reference component.
|
|
113
|
+
- `timestamp:number` if you want to force render to recalculate the position of content, assign this property with a number (`Date.now()`).
|
|
113
114
|
- `top:bool` if you want open the content above the reference component.
|
|
114
115
|
- `visible:boolean` showing or hiding the layer
|
|
115
116
|
|
|
@@ -461,6 +462,7 @@ const MyComponent = props => {
|
|
|
461
462
|
**Theming variables**
|
|
462
463
|
|
|
463
464
|
```css
|
|
465
|
+
--mirai-ui-calendar-caption-font-size: 10px;
|
|
464
466
|
--mirai-ui-calendar-caption-color: var(--mirai-ui-content-light);
|
|
465
467
|
--mirai-ui-calendar-cell: var(--mirai-ui-space-XL);
|
|
466
468
|
--mirai-ui-calendar-highlight-color: var(--mirai-ui-accent);
|
|
@@ -15,7 +15,7 @@ var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
|
|
|
15
15
|
var _Calendar2 = require("./Calendar.Week");
|
|
16
16
|
var _Calendar3 = require("./Calendar.Weekdays");
|
|
17
17
|
var _helpers2 = require("./helpers");
|
|
18
|
-
var _excluded = ["focus", "instance", "selected", "disabledPast", "format", "from", "locale", "range", "to", "onChange", "onFocus", "onNext", "onPrevious"];
|
|
18
|
+
var _excluded = ["focus", "instance", "selected", "disabledPast", "format", "from", "locale", "range", "timestamp", "to", "onChange", "onFocus", "onNext", "onPrevious"];
|
|
19
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
20
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
21
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -35,6 +35,7 @@ var Month = function Month(_ref) {
|
|
|
35
35
|
locale = _ref.locale,
|
|
36
36
|
_ref$range = _ref.range,
|
|
37
37
|
range = _ref$range === void 0 ? false : _ref$range,
|
|
38
|
+
timestamp = _ref.timestamp,
|
|
38
39
|
to = _ref.to,
|
|
39
40
|
_ref$onChange = _ref.onChange,
|
|
40
41
|
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
@@ -78,9 +79,10 @@ var Month = function Month(_ref) {
|
|
|
78
79
|
format: format,
|
|
79
80
|
from: from,
|
|
80
81
|
locale: locale,
|
|
81
|
-
to: to,
|
|
82
82
|
range: range,
|
|
83
|
-
selected: selected
|
|
83
|
+
selected: selected,
|
|
84
|
+
timestamp: timestamp,
|
|
85
|
+
to: to
|
|
84
86
|
}), {
|
|
85
87
|
key: week,
|
|
86
88
|
month: instance.getMonth(),
|
|
@@ -104,6 +106,7 @@ Month.propTypes = {
|
|
|
104
106
|
from: _propTypes.default.instanceOf(Date),
|
|
105
107
|
locale: _propTypes.default.string,
|
|
106
108
|
range: _propTypes.default.bool,
|
|
109
|
+
timestamp: _propTypes.default.number,
|
|
107
110
|
to: _propTypes.default.instanceOf(Date),
|
|
108
111
|
tooltips: _propTypes.default.shape({}),
|
|
109
112
|
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_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","useDevice","isDesktop","weekNumber","getWeekNumber","testID","styles","style","month","className","header","undefined","ICON","LEFT","title","getHeader","RIGHT","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","instanceOf","Date","tooltips","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, 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 tag=\"button\" onPress={onPrevious} data-testid={testID ? `${testID}-previous` : undefined}>\n <Icon value={ICON.LEFT} />\n </Pressable>\n )}\n <Text bold headline level={4} className={style.title}>\n {getHeader(instance, locale)}\n </Text>\n {onNext && (\n <Pressable tag=\"button\" onPress={onNext} data-testid={testID ? `${testID}-next` : undefined}>\n <Icon value={ICON.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
|
|
1
|
+
{"version":3,"file":"Calendar.Month.js","names":["Month","focus","instance","selected","disabledPast","format","from","locale","range","timestamp","to","onChange","onFocus","onNext","onPrevious","others","useDevice","isDesktop","weekNumber","getWeekNumber","testID","styles","style","month","className","header","undefined","ICON","LEFT","title","getHeader","RIGHT","VISIBLE_WEEKS","map","week","getMonth","getFullYear","displayName","propTypes","captions","PropTypes","shape","any","disabledDates","arrayOf","string","bool","instanceOf","Date","number","tooltips","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, 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 timestamp,\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 tag=\"button\" onPress={onPrevious} data-testid={testID ? `${testID}-previous` : undefined}>\n <Icon value={ICON.LEFT} />\n </Pressable>\n )}\n <Text bold headline level={4} className={style.title}>\n {getHeader(instance, locale)}\n </Text>\n {onNext && (\n <Pressable tag=\"button\" onPress={onNext} data-testid={testID ? `${testID}-next` : undefined}>\n <Icon value={ICON.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 range,\n selected,\n timestamp,\n to,\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 timestamp: PropTypes.number,\n to: PropTypes.instanceOf(Date),\n tooltips: PropTypes.shape({}),\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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"}
|
|
@@ -14,7 +14,7 @@ var _Tooltip = require("../Tooltip");
|
|
|
14
14
|
var _Calendar = require("./Calendar.constants");
|
|
15
15
|
var _CalendarModule = _interopRequireDefault(require("./Calendar.module.css"));
|
|
16
16
|
var _helpers2 = require("./helpers");
|
|
17
|
-
var _excluded = ["captions", "disabledDates", "disabledPast", "focus", "locale", "format", "from", "highlights", "month", "number", "range", "rangeMinDays", "selected", "to", "tooltips", "year", "onPress", "onFocus"];
|
|
17
|
+
var _excluded = ["captions", "disabledDates", "disabledPast", "focus", "locale", "format", "from", "highlights", "month", "number", "range", "rangeMinDays", "selected", "timestamp", "to", "tooltips", "year", "onPress", "onFocus"];
|
|
18
18
|
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); }
|
|
19
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -47,6 +47,7 @@ var Week = function Week(_ref) {
|
|
|
47
47
|
range = _ref.range,
|
|
48
48
|
rangeMinDays = _ref.rangeMinDays,
|
|
49
49
|
selected = _ref.selected,
|
|
50
|
+
timestamp = _ref.timestamp,
|
|
50
51
|
to = _ref.to,
|
|
51
52
|
_ref$tooltips = _ref.tooltips,
|
|
52
53
|
tooltips = _ref$tooltips === void 0 ? {} : _ref$tooltips,
|
|
@@ -130,6 +131,7 @@ var Week = function Week(_ref) {
|
|
|
130
131
|
"data-testid": "".concat(others['data-testid'] || 'calendar', "-").concat(number, "-").concat(day)
|
|
131
132
|
}, is.visible && /*#__PURE__*/_react.default.createElement(tooltip ? _Tooltip.Tooltip : _react.Fragment, tooltip ? _objectSpread({
|
|
132
133
|
pressable: true,
|
|
134
|
+
timestamp: timestamp,
|
|
133
135
|
top: true,
|
|
134
136
|
visible: true
|
|
135
137
|
}, tooltip) : {}, /*#__PURE__*/_react.default.createElement(_primitives.View, {
|
|
@@ -162,6 +164,7 @@ Week.propTypes = {
|
|
|
162
164
|
range: _propTypes.default.bool,
|
|
163
165
|
rangeMinDays: _propTypes.default.number,
|
|
164
166
|
selected: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.arrayOf(_propTypes.default.object)]),
|
|
167
|
+
timestamp: _propTypes.default.number,
|
|
165
168
|
onFocus: _propTypes.default.func,
|
|
166
169
|
onPress: _propTypes.default.func
|
|
167
170
|
};
|
|
@@ -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","tooltips","year","onPress","onFocus","others","disabledDatesTS","map","date","UTC","parseDate","getTime","firstDate","getFirstDateOfWeek","getFirstDayOfWeek","todayTS","getToday","fromTS","toTS","focusTS","rangeTS","start","end","undefined","min","dateCalc","filter","ts","sort","outbound","styles","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","dateFormat","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","tooltip","cell","React","createElement","Tooltip","Fragment","pressable","top","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","color","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, { Fragment } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { Tooltip } from '../Tooltip';\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 tooltips = {},\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 =\n is.disabled || (is.ranging && is.outOfRange)\n ? style.textDisabled\n : is.selected || dateTS === rangeTS.end\n ? style.textSelected\n : is.highlight && !is.range\n ? style.textHighlight\n : undefined;\n\n const tooltip = !is.disabled && tooltips[dateString];\n\n return (\n <Pressable\n disabled={is.disabled || !is.visible || (is.ranging && (is.minRange || is.outOfRange))}\n key={day}\n tabIndex={is.visible && !is.disabled ? `${date.getMonth()}-${date.getDate()}` : undefined}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n className={style.cell}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n >\n {is.visible &&\n React.createElement(\n tooltip ? Tooltip : Fragment,\n tooltip ? { pressable: true, top: true, visible: true, ...tooltip } : {},\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(\n textStyle,\n style.caption,\n !is.highlight && !is.selected && !is.rangeLimit && style.color,\n !captions[dateString] && !is.rangeLimit && style.empty,\n )}\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 tooltips: PropTypes.shape({}),\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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"}
|
|
1
|
+
{"version":3,"file":"Calendar.Week.js","names":["Week","captions","disabledDates","disabledPast","focus","locale","format","from","highlights","month","number","range","rangeMinDays","selected","timestamp","to","tooltips","year","onPress","onFocus","others","disabledDatesTS","map","date","UTC","parseDate","getTime","firstDate","getFirstDateOfWeek","getFirstDayOfWeek","todayTS","getToday","fromTS","toTS","focusTS","rangeTS","start","end","undefined","min","dateCalc","filter","ts","sort","outbound","styles","style","DAYS","day","Date","getFullYear","getMonth","getDate","dateTS","dateString","dateFormat","is","disabled","includes","highlight","outOfRange","minRange","rangeLimit","ranging","today","visible","textStyle","textDisabled","textSelected","textHighlight","tooltip","cell","React","createElement","Tooltip","Fragment","pressable","top","dayRange","daySelected","daySelectedStart","daySelectedEnd","dayTouchable","caption","color","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, { Fragment } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Pressable, Text, View } from '../../primitives';\nimport { Tooltip } from '../Tooltip';\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 timestamp,\n to,\n tooltips = {},\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 =\n is.disabled || (is.ranging && is.outOfRange)\n ? style.textDisabled\n : is.selected || dateTS === rangeTS.end\n ? style.textSelected\n : is.highlight && !is.range\n ? style.textHighlight\n : undefined;\n\n const tooltip = !is.disabled && tooltips[dateString];\n\n return (\n <Pressable\n disabled={is.disabled || !is.visible || (is.ranging && (is.minRange || is.outOfRange))}\n key={day}\n tabIndex={is.visible && !is.disabled ? `${date.getMonth()}-${date.getDate()}` : undefined}\n onEnter={is.ranging ? () => onFocus(date) : undefined}\n onLeave={is.ranging ? () => onFocus() : undefined}\n onPress={() => onPress(date)}\n className={style.cell}\n data-testid={`${others['data-testid'] || 'calendar'}-${number}-${day}`}\n >\n {is.visible &&\n React.createElement(\n tooltip ? Tooltip : Fragment,\n tooltip ? { pressable: true, timestamp, top: true, visible: true, ...tooltip } : {},\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(\n textStyle,\n style.caption,\n !is.highlight && !is.selected && !is.rangeLimit && style.color,\n !captions[dateString] && !is.rangeLimit && style.empty,\n )}\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 tooltips: PropTypes.shape({}),\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 timestamp: PropTypes.number,\n onFocus: PropTypes.func,\n onPress: PropTypes.func,\n};\n"],"mappings":"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"}
|
|
@@ -73,6 +73,10 @@ var Calendar = function Calendar(_ref) {
|
|
|
73
73
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
74
74
|
selected = _useState8[0],
|
|
75
75
|
setSelected = _useState8[1];
|
|
76
|
+
var _useState9 = (0, _react.useState)(),
|
|
77
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
78
|
+
timestamp = _useState10[0],
|
|
79
|
+
setTimestamp = _useState10[1];
|
|
76
80
|
(0, _react.useEffect)(function () {
|
|
77
81
|
var date = range ? value ? value[0] : undefined : value;
|
|
78
82
|
if (from && !date) {
|
|
@@ -119,6 +123,10 @@ var Calendar = function Calendar(_ref) {
|
|
|
119
123
|
return next;
|
|
120
124
|
});
|
|
121
125
|
};
|
|
126
|
+
var handleScroll = function handleScroll(event) {
|
|
127
|
+
onScroll(event);
|
|
128
|
+
setTimestamp(Date.now());
|
|
129
|
+
};
|
|
122
130
|
var testID = others['data-testid'],
|
|
123
131
|
scrollEventThrottle = others.scrollEventThrottle;
|
|
124
132
|
var className = others.className,
|
|
@@ -137,6 +145,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
137
145
|
from: from ? (0, _locale.parseDate)(from, format) : undefined,
|
|
138
146
|
locale: locale,
|
|
139
147
|
range: range,
|
|
148
|
+
timestamp: timestamp,
|
|
140
149
|
to: range && rangeMaxDays && selected[0] && !selected[1] && (!to || (0, _locale.dateCalc)(selected[0], rangeMaxDays, 'days') < (0, _locale.parseDate)(to, format)) ? (0, _locale.dateCalc)(selected[0], rangeMaxDays, 'days') : to ? (0, _locale.parseDate)(to, format) : undefined,
|
|
141
150
|
selected: selected,
|
|
142
151
|
onChange: handleChange,
|
|
@@ -153,7 +162,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
153
162
|
scrollTo: scrollTo,
|
|
154
163
|
className: _CalendarModule.default.scrollview,
|
|
155
164
|
scrollEventThrottle: scrollEventThrottle,
|
|
156
|
-
onScroll:
|
|
165
|
+
onScroll: handleScroll
|
|
157
166
|
}, Array.from({
|
|
158
167
|
length: months
|
|
159
168
|
}, function (empty, index) {
|
|
@@ -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","useEffect","date","dateFrom","parseDate","dateDiff","days","length","next","diffMonths","months","getScrollTo","UTC","handleChange","getTime","handleMonth","month","Date","getFullYear","getMonth","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\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 { ['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 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":";;;;;;;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAuE;EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEhE,IAAMA,QAAQ,GAAG,SAAXA,QAAQ,OAcf;EAAA,6BAbJC,YAAY;IAAZA,YAAY,kCAAG,IAAI;IAAA,mBACnBC,MAAM;IAANA,MAAM,4BAAG,YAAY;IACrBC,IAAI,QAAJA,IAAI;IACJC,MAAM,QAANA,MAAM;IAAA,kBACNC,KAAK;IAALA,KAAK,2BAAG,KAAK;IACbC,YAAY,QAAZA,YAAY;IACZC,EAAE,QAAFA,EAAE;IACFC,KAAK,QAALA,KAAK;IAAA,qBACLC,QAAQ;IAARA,QAAQ,8BAAG,YAAM,CAAC,CAAC;IAAA,oBACnBC,OAAO;IAAPA,OAAO,6BAAG,YAAM,CAAC,CAAC;IAAA,yBAClBC,YAAY;IAAZA,YAAY,kCAAG,YAAM,CAAC,CAAC;IACvBC,QAAQ,QAARA,QAAQ;IACLC,MAAM;EAET,iBAAgC,IAAAC,gBAAS,GAAE;IAAnCC,SAAS,cAATA,SAAS;IAAEC,QAAQ,cAARA,QAAQ;EAE3B,gBAA0B,IAAAC,eAAQ,GAAE;IAAA;IAA7BC,KAAK;IAAEC,QAAQ;EACtB,iBAAgC,IAAAF,eAAQ,EAAC,IAAAG,6BAAmB,EAAC,IAAAC,kBAAQ,GAAE,CAAC,CAAC;IAAA;IAAlEC,QAAQ;IAAEC,WAAW;EAC5B,iBAAgC,IAAAN,eAAQ,GAAE;IAAA;IAAnCO,QAAQ;IAAEC,WAAW;EAC5B,iBAAgC,IAAAR,eAAQ,EAACZ,KAAK,GAAG,EAAE,GAAGqB,SAAS,CAAC;IAAA;IAAzDC,QAAQ;IAAEC,WAAW;EAC5B,iBAAkC,IAAAX,eAAQ,GAAE;IAAA;IAArCY,SAAS;IAAEC,YAAY;EAE9B,IAAAC,gBAAS,EAAC,YAAM;IACd,IAAIC,IAAI,GAAG3B,KAAK,GAAIG,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGkB,SAAS,GAAIlB,KAAK;IACzD,IAAIL,IAAI,IAAI,CAAC6B,IAAI,EAAE;MACjB,IAAMC,QAAQ,GAAG,IAAAC,iBAAS,EAAC/B,IAAI,EAAED,MAAM,CAAC;MACxC,gBAAiB,IAAAiC,gBAAQ,EAACF,QAAQ,EAAE,IAAAC,iBAAS,EAACF,IAAI,EAAE9B,MAAM,CAAC,CAAC;QAApDkC,IAAI,aAAJA,IAAI;MAEZb,WAAW,CAAC,IAAAH,6BAAmB,EAACa,QAAQ,CAAC,CAAC;MAC1C,IAAIG,IAAI,GAAG,CAAC,EAAEJ,IAAI,GAAGN,SAAS;IAChC;IACA,IAAI,CAACM,IAAI,EAAE,OAAOJ,WAAW,CAACvB,KAAK,GAAG,EAAE,GAAGqB,SAAS,CAAC;IAErDM,IAAI,GAAG,IAAAE,iBAAS,EAACF,IAAI,EAAE9B,MAAM,CAAC;IAC9B,IAAKG,KAAK,KAAKsB,QAAQ,CAACU,MAAM,KAAK,CAAC,IAAI7B,KAAK,CAAC6B,MAAM,KAAK,CAAC,CAAC,IAAK,CAAChC,KAAK,EAAE;MACtE,IAAMiC,IAAI,GAAG,IAAAlB,6BAAmB,EAACY,IAAI,CAAC;MACtC,iBAA+B,IAAAG,gBAAQ,EAACb,QAAQ,EAAEU,IAAI,CAAC;QAAvCO,UAAU,cAAlBC,MAAM;MAEd,IAAIzB,SAAS,KAAKwB,UAAU,IAAIC,MAAM,IAAID,UAAU,GAAG,CAAC,CAAC,EAAEhB,WAAW,CAACe,IAAI,CAAC,CAAC,KACxE,IAAItB,QAAQ,EAAES,WAAW,CAAC,IAAAgB,qBAAW,EAACF,UAAU,CAAC,CAAC;IACzD;IAEAX,WAAW,CAACvB,KAAK,GAAG,CAAC,IAAAqC,WAAG,EAACV,IAAI,CAAC,EAAExB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAAkC,WAAG,EAAC,IAAAR,iBAAS,EAAC1B,KAAK,CAAC,CAAC,CAAC,EAAEN,MAAM,CAAC,CAAC,GAAGwB,SAAS,CAAC,GAAG,IAAAgB,WAAG,EAACV,IAAI,CAAC,CAAC;IACrG;EACF,CAAC,EAAE,CAAC9B,MAAM,EAAEC,IAAI,EAAEE,KAAK,EAAEG,KAAK,CAAC,CAAC;EAEhC,IAAAuB,gBAAS,EAAC,YAAM;IACdrB,OAAO,CAACQ,KAAK,CAAC;EAChB,CAAC,EAAE,CAACA,KAAK,EAAER,OAAO,CAAC,CAAC;EAEpB,IAAMiC,YAAY,GAAG,SAAfA,YAAY,CAAIX,IAAI,EAAK;IAC7BJ,WAAW,CAAC,YAAM;MAChB,IAAIU,IAAI;MAER,IAAI,CAACjC,KAAK,EAAE;QACViC,IAAI,GAAGN,IAAI;MACb,CAAC,MAAM,IAAIL,QAAQ,CAAC,CAAC,CAAC,KAAKD,SAAS,IAAIM,IAAI,GAAGL,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC1DW,IAAI,GAAG,CAACX,QAAQ,CAAC,CAAC,CAAC,EAAEK,IAAI,CAAC;MAC5B,CAAC,MAAM;QAAA;QACLM,IAAI,GAAG,CAAC,eAAAX,QAAQ,CAAC,CAAC,CAAC,+CAAX,WAAaiB,OAAO,EAAE,MAAKZ,IAAI,CAACY,OAAO,EAAE,GAAGlB,SAAS,GAAGM,IAAI,CAAC;QACrEb,QAAQ,CAACO,SAAS,CAAC;MACrB;MACAjB,QAAQ,CAAC6B,IAAI,CAAC;MAEd,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED,IAAMO,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAK,EAAK;IAC7BvB,WAAW,CAAC,YAAM;MAChB,IAAMe,IAAI,GAAG,IAAAlB,6BAAmB,EAAC,IAAI2B,IAAI,CAACzB,QAAQ,CAAC0B,WAAW,EAAE,EAAE1B,QAAQ,CAAC2B,QAAQ,EAAE,GAAGH,KAAK,CAAC,CAAC;MAE/FnC,YAAY,CAAC2B,IAAI,CAAC;MAClB,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED,IAAMY,YAAY,GAAG,SAAfA,YAAY,CAAIC,KAAK,EAAK;IAC9BvC,QAAQ,CAACuC,KAAK,CAAC;IACfrB,YAAY,CAACiB,IAAI,CAACK,GAAG,EAAE,CAAC;EAC1B,CAAC;EAED,IAAyBC,MAAM,GAA0BxC,MAAM,CAAtD,aAAa;IAAWyC,mBAAmB,GAAKzC,MAAM,CAA9ByC,mBAAmB;EACpD,IAAMC,SAAS,GAA2B1C,MAAM,CAA1C0C,SAAS;IAAA,iBAA2B1C,MAAM,CAA/B2B,MAAM;IAANA,MAAM,+BAAG,CAAC;IAAKgB,KAAK,4BAAK3C,MAAM;EAEhD,IAAM4C,KAAK,GAAG,IAAApC,kBAAQ,GAAE;EACxB,IAAMqC,UAAU,GAAGpC,QAAQ,CAACsB,OAAO,EAAE;EACrC,IAAMe,YAAY,GAAG,IAAAvC,6BAAmB,EAACqC,KAAK,CAAC,CAACb,OAAO,EAAE;EACzD,IAAMgB,gBAAgB,GACnB3D,YAAY,IAAIyD,UAAU,IAAIC,YAAY,IAC1CxD,IAAI,IAAIuD,UAAU,IAAI,IAAAtC,6BAAmB,EAAC,IAAAc,iBAAS,EAAC/B,IAAI,EAAED,MAAM,CAAC,CAAC,CAAC0C,OAAO,EAAG;EAEhF,IAAMiB,YAAY,GAChBtD,EAAE,IAAI,IAAA2B,iBAAS,EAAC3B,EAAE,EAAEL,MAAM,CAAC,CAAC0C,OAAO,EAAE,IAAI,IAAAxB,6BAAmB,EAAC,IAAA0C,gBAAQ,EAACxC,QAAQ,EAAEkB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAACI,OAAO,EAAE;EAE9GY,KAAK,mCACAA,KAAK;IACRvD,YAAY,EAAZA,YAAY;IACZiB,KAAK,EAALA,KAAK;IACLhB,MAAM,EAANA,MAAM;IACNC,IAAI,EAAEA,IAAI,GAAG,IAAA+B,iBAAS,EAAC/B,IAAI,EAAED,MAAM,CAAC,GAAGwB,SAAS;IAChDtB,MAAM,EAANA,MAAM;IACNC,KAAK,EAALA,KAAK;IACLwB,SAAS,EAATA,SAAS;IACTtB,EAAE,EACAF,KAAK,IACLC,YAAY,IACZqB,QAAQ,CAAC,CAAC,CAAC,IACX,CAACA,QAAQ,CAAC,CAAC,CAAC,KACX,CAACpB,EAAE,IAAI,IAAAuD,gBAAQ,EAACnC,QAAQ,CAAC,CAAC,CAAC,EAAErB,YAAY,EAAE,MAAM,CAAC,GAAG,IAAA4B,iBAAS,EAAC3B,EAAE,EAAEL,MAAM,CAAC,CAAC,GACxE,IAAA4D,gBAAQ,EAACnC,QAAQ,CAAC,CAAC,CAAC,EAAErB,YAAY,EAAE,MAAM,CAAC,GAC3CC,EAAE,GACF,IAAA2B,iBAAS,EAAC3B,EAAE,EAAEL,MAAM,CAAC,GACrBwB,SAAS;IACfC,QAAQ,EAARA,QAAQ;IACRlB,QAAQ,EAAEkC,YAAY;IACtBjC,OAAO,EAAEK,SAAS,GAAGI,QAAQ,GAAGO;EAAS,EAC1C;EAED,IAAIV,QAAQ,IAAIT,EAAE,EAAEiC,MAAM,GAAG,IAAAL,gBAAQ,EAACsB,KAAK,EAAE,IAAAvB,iBAAS,EAAC3B,EAAE,EAAEL,MAAM,CAAC,CAAC,CAACsC,MAAM;EAE1E,oBACE,6BAAC,gBAAI;IAAC,SAAS,EAAE,IAAAuB,eAAM,EAACC,uBAAK,CAACC,SAAS,EAAEV,SAAS,CAAE;IAAC,eAAaF;EAAO,GACtErC,QAAQ,iBAAI,6BAAC,mBAAQ;IAAC,MAAM,EAAEZ;EAAO,EAAG,eACzC,6BAAC,sBAAU;IACT,UAAU,EAAEW,SAAU;IACtB,QAAQ,EAAES,QAAS;IACnB,SAAS,EAAEwC,uBAAK,CAACE,UAAW;IAC5B,mBAAmB,EAAEZ,mBAAoB;IACzC,QAAQ,EAAEJ;EAAa,GAEtBiB,KAAK,CAAChE,IAAI,CAAC;IAAEkC,MAAM,EAAEG;EAAO,CAAC,EAAE,UAAC4B,KAAK,EAAEC,KAAK;IAAA,oBAC3C,6BAAC,eAAK;MACJ,eAAahB,MAAO;MACpB,GAAG,EAAEgB,KAAM;MACX,MAAM,EAAEtD,SAAS,IAAIsD,KAAK,KAAK7B,MAAM,GAAG,CAAC,IAAI,CAACqB,YAAY,GAAG;QAAA,OAAMhB,WAAW,CAACL,MAAM,CAAC;MAAA,IAAGd,SAAU;MACnG,UAAU,EAAEX,SAAS,IAAIsD,KAAK,KAAK,CAAC,IAAI,CAACT,gBAAgB,GAAG;QAAA,OAAMf,WAAW,CAAC,CAACL,MAAM,CAAC;MAAA,IAAGd,SAAU;MACnG,QAAQ,EAAE,IAAIqB,IAAI,CAACzB,QAAQ,CAAC0B,WAAW,EAAE,EAAE1B,QAAQ,CAAC2B,QAAQ,EAAE,GAAGoB,KAAK,EAAE,CAAC,CAAE,CAAC;IAAA,GACxEb,KAAK,EACT;EAAA,CACH,CAAC,CACS,CACR;AAEX,CAAC;AAAC;AAEFxD,QAAQ,CAACsE,WAAW,GAAG,oBAAoB;AAE3CtE,QAAQ,CAACuE,SAAS,GAAG;EACnBC,QAAQ,EAAEC,kBAAS,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC7BC,aAAa,EAAEF,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACI,MAAM,CAAC;EAClD5E,YAAY,EAAEwE,kBAAS,CAACK,IAAI;EAC5B5E,MAAM,EAAEuE,kBAAS,CAACI,MAAM;EACxB1E,IAAI,EAAEsE,kBAAS,CAACI,MAAM;EACtBE,UAAU,EAAEN,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACI,MAAM,CAAC;EAC/CzE,MAAM,EAAEqE,kBAAS,CAACI,MAAM;EACxBrC,MAAM,EAAEiC,kBAAS,CAACO,MAAM;EACxB3E,KAAK,EAAEoE,kBAAS,CAACK,IAAI;EACrBxE,YAAY,EAAEmE,kBAAS,CAACO,MAAM;EAC9BC,YAAY,EAAER,kBAAS,CAACO,MAAM;EAC9BzE,EAAE,EAAEkE,kBAAS,CAACI,MAAM;EACpBK,QAAQ,EAAET,kBAAS,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC7BlE,KAAK,EAAEiE,kBAAS,CAACU,SAAS,CAAC,CAACV,kBAAS,CAACI,MAAM,EAAEJ,kBAAS,CAACG,OAAO,CAACH,kBAAS,CAACI,MAAM,CAAC,CAAC,CAAC;EACnFpE,QAAQ,EAAEgE,kBAAS,CAACW,IAAI;EACxB1E,OAAO,EAAE+D,kBAAS,CAACW,IAAI;EACvBzE,YAAY,EAAE8D,kBAAS,CAACW,IAAI;EAC5BxE,QAAQ,EAAE6D,kBAAS,CAACW;AACtB,CAAC"}
|
|
@@ -69,9 +69,10 @@
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
.caption {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
font-size: var(--mirai-ui-calendar-caption-font-size);
|
|
73
|
+
height: var(--mirai-ui-calendar-caption-font-size);
|
|
74
|
+
line-height: var(--mirai-ui-calendar-caption-font-size) * 1.5;
|
|
75
|
+
max-width: calc(var(--mirai-ui-calendar-cell) * 0.85);
|
|
75
76
|
overflow: hidden;
|
|
76
77
|
text-overflow: ellipsis;
|
|
77
78
|
white-space: nowrap;
|
|
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _helpers = require("../../helpers");
|
|
11
11
|
var _primitives = require("../../primitives");
|
|
12
12
|
var _TooltipModule = _interopRequireDefault(require("./Tooltip.module.css"));
|
|
13
|
-
var _excluded = ["children", "pressable", "Template", "text", "top", "visible"],
|
|
13
|
+
var _excluded = ["children", "pressable", "Template", "text", "timestamp", "top", "visible"],
|
|
14
14
|
_excluded2 = ["data-testid"];
|
|
15
15
|
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); }
|
|
16
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -35,6 +35,7 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
35
35
|
pressable = _ref$pressable === void 0 ? false : _ref$pressable,
|
|
36
36
|
Template = _ref.Template,
|
|
37
37
|
text = _ref.text,
|
|
38
|
+
timestamp = _ref.timestamp,
|
|
38
39
|
propTop = _ref.top,
|
|
39
40
|
_ref$visible = _ref.visible,
|
|
40
41
|
propVisible = _ref$visible === void 0 ? false : _ref$visible,
|
|
@@ -57,6 +58,7 @@ var Tooltip = function Tooltip(_ref) {
|
|
|
57
58
|
centered: true,
|
|
58
59
|
forceRender: false,
|
|
59
60
|
visible: visible,
|
|
61
|
+
timestamp: timestamp,
|
|
60
62
|
top: top,
|
|
61
63
|
onPosition: setPosition,
|
|
62
64
|
"data-testid": testId
|
|
@@ -92,6 +94,7 @@ Tooltip.propTypes = {
|
|
|
92
94
|
pressable: _propTypes.default.bool,
|
|
93
95
|
Template: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
|
|
94
96
|
text: _propTypes.default.string,
|
|
97
|
+
timestamp: _propTypes.default.number,
|
|
95
98
|
top: _propTypes.default.bool,
|
|
96
99
|
visible: _propTypes.default.bool
|
|
97
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["Tooltip","children","pressable","Template","text","propTop","top","visible","propVisible","others","useState","setVisible","position","setPosition","testId","rest","left","right","React","Children","map","child","index","cloneElement","props","key","onClick","onMouseEnter","onMouseLeave","className","styles","style","dispatcher","undefined","tooltip","bottom","propTypes","PropTypes","node","isRequired","bool","oneOfType","func","string"],"sources":["../../../src/components/Tooltip/Tooltip.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Layer, LayerContent, Text, View } from '../../primitives';\nimport style from './Tooltip.module.css';\n\nconst Tooltip = ({\n children,\n pressable = false,\n Template,\n text,\n top: propTop,\n visible: propVisible = false,\n ...others\n}) => {\n const [visible, setVisible] = useState(propVisible);\n const [position, setPosition] = useState({});\n\n const { ['data-testid']: testId, ...rest } = others;\n\n const { left, right, top = propTop } = position;\n\n return (\n <Layer
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["Tooltip","children","pressable","Template","text","timestamp","propTop","top","visible","propVisible","others","useState","setVisible","position","setPosition","testId","rest","left","right","React","Children","map","child","index","cloneElement","props","key","onClick","onMouseEnter","onMouseLeave","className","styles","style","dispatcher","undefined","tooltip","bottom","propTypes","PropTypes","node","isRequired","bool","oneOfType","func","string","number"],"sources":["../../../src/components/Tooltip/Tooltip.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Layer, LayerContent, Text, View } from '../../primitives';\nimport style from './Tooltip.module.css';\n\nconst Tooltip = ({\n children,\n pressable = false,\n Template,\n text,\n timestamp,\n top: propTop,\n visible: propVisible = false,\n ...others\n}) => {\n const [visible, setVisible] = useState(propVisible);\n const [position, setPosition] = useState({});\n\n const { ['data-testid']: testId, ...rest } = others;\n\n const { left, right, top = propTop } = position;\n\n return (\n <Layer\n centered\n forceRender={false}\n visible={visible}\n timestamp={timestamp}\n top={top}\n onPosition={setPosition}\n data-testid={testId}\n >\n {React.Children.map(children, (child, index) =>\n React.cloneElement(child, {\n ...child.props,\n key: index,\n ...(pressable ? { onClick: () => setVisible(!visible) } : { onMouseEnter: () => setVisible(true) }),\n onMouseLeave: () => setVisible(false),\n className: styles(style.dispatcher, child.props.className),\n 'data-testid': testId ? `${testId}-dispatcher` : undefined,\n }),\n )}\n\n <LayerContent>\n <View\n {...rest}\n className={styles(\n style.tooltip,\n left && style.left,\n right && style.right,\n top ? style.top : style.bottom,\n rest.className,\n )}\n >\n {Template ? (\n <Template />\n ) : (\n <Text bold small className={style.text}>\n {text}\n </Text>\n )}\n </View>\n </LayerContent>\n </Layer>\n );\n};\n\nTooltip.propTypes = {\n children: PropTypes.node.isRequired,\n pressable: PropTypes.bool,\n Template: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n text: PropTypes.string,\n timestamp: PropTypes.number,\n top: PropTypes.bool,\n visible: PropTypes.bool,\n};\n\nexport { Tooltip };\n"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ var _hooks = require("../../hooks");
|
|
|
12
12
|
var _helpers2 = require("./helpers");
|
|
13
13
|
var _LayerModule = _interopRequireDefault(require("./Layer.module.css"));
|
|
14
14
|
var _LayerContent = require("./LayerContent");
|
|
15
|
-
var _excluded = ["bottom", "centered", "forceRender", "left", "right", "top", "visible", "onPosition"];
|
|
15
|
+
var _excluded = ["bottom", "centered", "forceRender", "left", "right", "top", "timestamp", "visible", "onPosition"];
|
|
16
16
|
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); }
|
|
17
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -37,6 +37,7 @@ var Layer = function Layer(_ref) {
|
|
|
37
37
|
forceLeft = _ref.left,
|
|
38
38
|
forceRight = _ref.right,
|
|
39
39
|
forceTop = _ref.top,
|
|
40
|
+
timestamp = _ref.timestamp,
|
|
40
41
|
visible = _ref.visible,
|
|
41
42
|
_ref$onPosition = _ref.onPosition,
|
|
42
43
|
onPosition = _ref$onPosition === void 0 ? function () {} : _ref$onPosition,
|
|
@@ -49,12 +50,15 @@ var Layer = function Layer(_ref) {
|
|
|
49
50
|
position = _useState2[0],
|
|
50
51
|
setPosition = _useState2[1];
|
|
51
52
|
(0, _react.useLayoutEffect)(function () {
|
|
53
|
+
var _getScrollParent;
|
|
52
54
|
var _componentRef$current = componentRef.current;
|
|
53
55
|
_componentRef$current = _componentRef$current === void 0 ? {} : _componentRef$current;
|
|
54
56
|
var componentEl = _componentRef$current.firstChild;
|
|
55
57
|
var contentEl = contentRef.current;
|
|
56
58
|
if (!componentEl || !contentEl) return setPosition();
|
|
57
|
-
var componentLayout = (0, _helpers2.getElementLayout)(componentEl)
|
|
59
|
+
var componentLayout = _objectSpread(_objectSpread({}, (0, _helpers2.getElementLayout)(componentEl)), {}, {
|
|
60
|
+
scrollTop: (_getScrollParent = (0, _helpers2.getScrollParent)(componentEl)) === null || _getScrollParent === void 0 ? void 0 : _getScrollParent.scrollTop
|
|
61
|
+
});
|
|
58
62
|
var contentLayout = (0, _helpers2.getElementLayout)(contentEl);
|
|
59
63
|
var _getLayerPosition = (0, _helpers2.getLayerPosition)(componentLayout, contentLayout, device, {
|
|
60
64
|
centered: centered,
|
|
@@ -74,7 +78,8 @@ var Layer = function Layer(_ref) {
|
|
|
74
78
|
top: "".concat(top, "px")
|
|
75
79
|
});
|
|
76
80
|
onPosition(orientation);
|
|
77
|
-
|
|
81
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
82
|
+
}, [centered, device, forceBottom, forceLeft, forceRight, forceTop, timestamp, visible]);
|
|
78
83
|
var children = _react.default.Children.map(others.children || [], function (child) {
|
|
79
84
|
return child;
|
|
80
85
|
});
|
|
@@ -101,6 +106,7 @@ Layer.propTypes = {
|
|
|
101
106
|
forceRender: _propTypes.default.bool,
|
|
102
107
|
left: _propTypes.default.bool,
|
|
103
108
|
right: _propTypes.default.bool,
|
|
109
|
+
timestamp: _propTypes.default.number,
|
|
104
110
|
top: _propTypes.default.bool,
|
|
105
111
|
visible: _propTypes.default.bool,
|
|
106
112
|
onPosition: _propTypes.default.func
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.js","names":["Layer","forceBottom","bottom","centered","forceRender","forceLeft","left","forceRight","right","forceTop","top","visible","onPosition","others","device","useDevice","componentRef","useRef","contentRef","useState","position","setPosition","useLayoutEffect","current","componentEl","firstChild","contentEl","componentLayout","getElementLayout","contentLayout","getLayerPosition","orientation","children","React","Children","map","child","find","name","type","LayerContent","styles","style","layer","hidden","className","propTypes","PropTypes","bool","node","func"],"sources":["../../../src/primitives/Layer/Layer.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { getElementLayout, getLayerPosition } from './helpers';\nimport style from './Layer.module.css';\nimport { LayerContent } from './LayerContent';\n\nconst Layer = ({\n bottom: forceBottom,\n centered,\n forceRender = true,\n left: forceLeft,\n right: forceRight,\n top: forceTop,\n visible,\n onPosition = () => {},\n ...others\n}) => {\n const device = useDevice();\n const componentRef = useRef();\n const contentRef = useRef();\n\n const [position, setPosition] = useState();\n\n useLayoutEffect(() => {\n const { current: { firstChild: componentEl } = {} } = componentRef;\n const { current: contentEl } = contentRef;\n\n if (!componentEl || !contentEl) return setPosition();\n\n const componentLayout = getElementLayout(componentEl);\n const contentLayout = getElementLayout(contentEl);\n const {\n left = 0,\n top = 0,\n orientation = {},\n } = getLayerPosition(componentLayout, contentLayout, device, {\n centered,\n forceBottom,\n forceLeft,\n forceRight,\n forceTop,\n });\n\n setPosition({ left: `${left}px`, top: `${top}px` });\n onPosition(orientation);\n }, [centered, device, forceBottom, forceLeft, forceRight, forceTop, visible]);\n\n const children = React.Children.map(others.children || [], (child) => child);\n\n return (\n <>\n <span data-testid={others['data-testid']} ref={componentRef}>\n {children.find(({ type: { name } }) => name !== LayerContent.name)}\n </span>\n\n {(forceRender || visible) && (\n <div\n ref={contentRef}\n className={styles(style.layer, !visible && style.hidden, others.className)}\n style={{ ...others.style, ...position }}\n >\n {children?.find(({ type: { name } }) => name === LayerContent.name)}\n </div>\n )}\n </>\n );\n};\n\nLayer.propTypes = {\n bottom: PropTypes.bool,\n centered: PropTypes.bool,\n children: PropTypes.node,\n forceRender: PropTypes.bool,\n left: PropTypes.bool,\n right: PropTypes.bool,\n top: PropTypes.bool,\n visible: PropTypes.bool,\n onPosition: PropTypes.func,\n};\n\nexport { Layer };\n"],"mappings":";;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE9C,IAAMA,KAAK,GAAG,SAARA,KAAK,
|
|
1
|
+
{"version":3,"file":"Layer.js","names":["Layer","forceBottom","bottom","centered","forceRender","forceLeft","left","forceRight","right","forceTop","top","timestamp","visible","onPosition","others","device","useDevice","componentRef","useRef","contentRef","useState","position","setPosition","useLayoutEffect","current","componentEl","firstChild","contentEl","componentLayout","getElementLayout","scrollTop","getScrollParent","contentLayout","getLayerPosition","orientation","children","React","Children","map","child","find","name","type","LayerContent","styles","style","layer","hidden","className","propTypes","PropTypes","bool","node","number","func"],"sources":["../../../src/primitives/Layer/Layer.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { getElementLayout, getLayerPosition, getScrollParent } from './helpers';\nimport style from './Layer.module.css';\nimport { LayerContent } from './LayerContent';\n\nconst Layer = ({\n bottom: forceBottom,\n centered,\n forceRender = true,\n left: forceLeft,\n right: forceRight,\n top: forceTop,\n timestamp,\n visible,\n onPosition = () => {},\n ...others\n}) => {\n const device = useDevice();\n const componentRef = useRef();\n const contentRef = useRef();\n\n const [position, setPosition] = useState();\n\n useLayoutEffect(() => {\n const { current: { firstChild: componentEl } = {} } = componentRef;\n const { current: contentEl } = contentRef;\n\n if (!componentEl || !contentEl) return setPosition();\n\n const componentLayout = { ...getElementLayout(componentEl), scrollTop: getScrollParent(componentEl)?.scrollTop };\n const contentLayout = getElementLayout(contentEl);\n\n const {\n left = 0,\n top = 0,\n orientation = {},\n } = getLayerPosition(componentLayout, contentLayout, device, {\n centered,\n forceBottom,\n forceLeft,\n forceRight,\n forceTop,\n });\n\n setPosition({ left: `${left}px`, top: `${top}px` });\n onPosition(orientation);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [centered, device, forceBottom, forceLeft, forceRight, forceTop, timestamp, visible]);\n\n const children = React.Children.map(others.children || [], (child) => child);\n\n return (\n <>\n <span data-testid={others['data-testid']} ref={componentRef}>\n {children.find(({ type: { name } }) => name !== LayerContent.name)}\n </span>\n\n {(forceRender || visible) && (\n <div\n ref={contentRef}\n className={styles(style.layer, !visible && style.hidden, others.className)}\n style={{ ...others.style, ...position }}\n >\n {children?.find(({ type: { name } }) => name === LayerContent.name)}\n </div>\n )}\n </>\n );\n};\n\nLayer.propTypes = {\n bottom: PropTypes.bool,\n centered: PropTypes.bool,\n children: PropTypes.node,\n forceRender: PropTypes.bool,\n left: PropTypes.bool,\n right: PropTypes.bool,\n timestamp: PropTypes.number,\n top: PropTypes.bool,\n visible: PropTypes.bool,\n onPosition: PropTypes.func,\n};\n\nexport { Layer };\n"],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ var getLayerPosition = function getLayerPosition() {
|
|
|
22
22
|
forceTop = _ref.forceTop;
|
|
23
23
|
var _componentLayout$left = componentLayout.left,
|
|
24
24
|
componentLeft = _componentLayout$left === void 0 ? 0 : _componentLayout$left,
|
|
25
|
+
_componentLayout$scro = componentLayout.scrollTop,
|
|
26
|
+
scrollTop = _componentLayout$scro === void 0 ? 0 : _componentLayout$scro,
|
|
25
27
|
_componentLayout$top = componentLayout.top,
|
|
26
28
|
componentTop = _componentLayout$top === void 0 ? 0 : _componentLayout$top,
|
|
27
29
|
_componentLayout$widt = componentLayout.width,
|
|
@@ -39,11 +41,11 @@ var getLayerPosition = function getLayerPosition() {
|
|
|
39
41
|
var orientation = {
|
|
40
42
|
left: true
|
|
41
43
|
};
|
|
42
|
-
var top = componentTop + componentHeight;
|
|
44
|
+
var top = componentTop + componentHeight - scrollTop;
|
|
43
45
|
var gapTop = componentTop;
|
|
44
46
|
var gapBottom = height - top;
|
|
45
47
|
if (contentHeight > gapBottom && gapTop > gapBottom && !forceBottom || forceTop) {
|
|
46
|
-
top = componentTop - contentHeight;
|
|
48
|
+
top = componentTop - contentHeight - scrollTop;
|
|
47
49
|
orientation = _objectSpread(_objectSpread({}, orientation), {}, {
|
|
48
50
|
top: true
|
|
49
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getLayerPosition.js","names":["getLayerPosition","componentLayout","contentLayout","device","centered","forceBottom","forceLeft","forceRight","forceTop","left","componentLeft","top","componentTop","width","componentWidth","height","componentHeight","contentWidth","contentHeight","orientation","gapTop","gapBottom","gapLeft","gapRight","undefined","right","gapCenter","space","center"],"sources":["../../../../src/primitives/Layer/helpers/getLayerPosition.js"],"sourcesContent":["export const getLayerPosition = (\n componentLayout = {},\n contentLayout = {},\n device = {},\n { centered, forceBottom, forceLeft, forceRight, forceTop } = {},\n) => {\n const {\n left: componentLeft = 0,\n top: componentTop = 0,\n width: componentWidth = 0,\n height: componentHeight = 0,\n } = componentLayout;\n const { width: contentWidth = 0, height: contentHeight = 0 } = contentLayout;\n const { height = 0, width = 0 } = device;\n let orientation = { left: true };\n\n let top = componentTop + componentHeight;\n const gapTop = componentTop;\n const gapBottom = height - top;\n if ((contentHeight > gapBottom && gapTop > gapBottom && !forceBottom) || forceTop) {\n top = componentTop - contentHeight;\n orientation = { ...orientation, top: true };\n }\n\n let left = componentLeft;\n const gapLeft = componentLeft + componentWidth;\n const gapRight = width - componentLeft;\n\n if ((contentWidth > gapRight && gapLeft > gapRight && !forceLeft) || forceRight) {\n left = componentLeft - contentWidth + componentWidth;\n orientation = { ...orientation, left: undefined, right: true };\n }\n\n if (centered) {\n const gapCenter = (componentWidth + contentWidth) / 2;\n const space = (contentWidth - componentWidth) / 2;\n orientation = { ...orientation, left: true, right: undefined };\n\n if (gapLeft > gapRight) {\n left = componentLeft - contentWidth + componentWidth;\n orientation = { ...orientation, left: undefined, right: true };\n }\n if (gapLeft > gapCenter && gapRight > gapCenter) {\n left += space * (gapLeft > gapRight ? 1 : -1);\n orientation = { ...orientation, left: undefined, right: undefined, center: true };\n }\n }\n\n return { left, top, orientation };\n};\n"],"mappings":";;;;;;;;;;;;AAAO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgB,GAKxB;EAAA,IAJHC,eAAe,uEAAG,CAAC,CAAC;EAAA,IACpBC,aAAa,uEAAG,CAAC,CAAC;EAAA,IAClBC,MAAM,uEAAG,CAAC,CAAC;EAAA,+EACkD,CAAC,CAAC;IAA7DC,QAAQ,QAARA,QAAQ;IAAEC,WAAW,QAAXA,WAAW;IAAEC,SAAS,QAATA,SAAS;IAAEC,UAAU,QAAVA,UAAU;IAAEC,QAAQ,QAARA,QAAQ;EAExD,
|
|
1
|
+
{"version":3,"file":"getLayerPosition.js","names":["getLayerPosition","componentLayout","contentLayout","device","centered","forceBottom","forceLeft","forceRight","forceTop","left","componentLeft","scrollTop","top","componentTop","width","componentWidth","height","componentHeight","contentWidth","contentHeight","orientation","gapTop","gapBottom","gapLeft","gapRight","undefined","right","gapCenter","space","center"],"sources":["../../../../src/primitives/Layer/helpers/getLayerPosition.js"],"sourcesContent":["export const getLayerPosition = (\n componentLayout = {},\n contentLayout = {},\n device = {},\n { centered, forceBottom, forceLeft, forceRight, forceTop } = {},\n) => {\n const {\n left: componentLeft = 0,\n scrollTop = 0,\n top: componentTop = 0,\n width: componentWidth = 0,\n height: componentHeight = 0,\n } = componentLayout;\n const { width: contentWidth = 0, height: contentHeight = 0 } = contentLayout;\n const { height = 0, width = 0 } = device;\n let orientation = { left: true };\n\n let top = componentTop + componentHeight - scrollTop;\n const gapTop = componentTop;\n const gapBottom = height - top;\n if ((contentHeight > gapBottom && gapTop > gapBottom && !forceBottom) || forceTop) {\n top = componentTop - contentHeight - scrollTop;\n orientation = { ...orientation, top: true };\n }\n\n let left = componentLeft;\n const gapLeft = componentLeft + componentWidth;\n const gapRight = width - componentLeft;\n\n if ((contentWidth > gapRight && gapLeft > gapRight && !forceLeft) || forceRight) {\n left = componentLeft - contentWidth + componentWidth;\n orientation = { ...orientation, left: undefined, right: true };\n }\n\n if (centered) {\n const gapCenter = (componentWidth + contentWidth) / 2;\n const space = (contentWidth - componentWidth) / 2;\n orientation = { ...orientation, left: true, right: undefined };\n\n if (gapLeft > gapRight) {\n left = componentLeft - contentWidth + componentWidth;\n orientation = { ...orientation, left: undefined, right: true };\n }\n if (gapLeft > gapCenter && gapRight > gapCenter) {\n left += space * (gapLeft > gapRight ? 1 : -1);\n orientation = { ...orientation, left: undefined, right: undefined, center: true };\n }\n }\n\n return { left, top, orientation };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getScrollParent = void 0;
|
|
7
|
+
var getScrollParent = function getScrollParent(node) {
|
|
8
|
+
if (!node) return;
|
|
9
|
+
return node.scrollTop > 0 ? node : getScrollParent(node.parentNode);
|
|
10
|
+
};
|
|
11
|
+
exports.getScrollParent = getScrollParent;
|
|
12
|
+
//# sourceMappingURL=getScrollParent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getScrollParent.js","names":["getScrollParent","node","scrollTop","parentNode"],"sources":["../../../../src/primitives/Layer/helpers/getScrollParent.js"],"sourcesContent":["export const getScrollParent = (node) => {\n if (!node) return;\n return node.scrollTop > 0 ? node : getScrollParent(node.parentNode);\n};\n"],"mappings":";;;;;;AAAO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAAIC,IAAI,EAAK;EACvC,IAAI,CAACA,IAAI,EAAE;EACX,OAAOA,IAAI,CAACC,SAAS,GAAG,CAAC,GAAGD,IAAI,GAAGD,eAAe,CAACC,IAAI,CAACE,UAAU,CAAC;AACrE,CAAC;AAAC"}
|
|
@@ -25,4 +25,15 @@ Object.keys(_getLayerPosition).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
var _getScrollParent = require("./getScrollParent");
|
|
29
|
+
Object.keys(_getScrollParent).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _getScrollParent[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _getScrollParent[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
28
39
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/primitives/Layer/helpers/index.js"],"sourcesContent":["export * from './getElementLayout';\nexport * from './getLayerPosition';\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/primitives/Layer/helpers/index.js"],"sourcesContent":["export * from './getElementLayout';\nexport * from './getLayerPosition';\nexport * from './getScrollParent';\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -179,6 +179,7 @@
|
|
|
179
179
|
--mirai-ui-button-squared: calc(var(--mirai-ui-space-M) * 2);
|
|
180
180
|
|
|
181
181
|
/* Calendar */
|
|
182
|
+
--mirai-ui-calendar-caption-font-size: 10px;
|
|
182
183
|
--mirai-ui-calendar-caption-color: var(--mirai-ui-content-light);
|
|
183
184
|
--mirai-ui-calendar-cell: var(--mirai-ui-space-XL);
|
|
184
185
|
--mirai-ui-calendar-highlight-color: var(--mirai-ui-accent);
|