@mirai/ui 2.0.4 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Modal/Modal.js +4 -8
- package/build/components/Modal/Modal.js.map +1 -1
- package/build/components/Slider/Slider.js +2 -1
- package/build/components/Slider/Slider.js.map +1 -1
- package/build/primitives/ScrollView/ScrollView.js +1 -1
- package/build/primitives/ScrollView/ScrollView.js.map +1 -1
- package/build/primitives/ScrollView/ScrollView.module.css +0 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.Modal = void 0;
|
|
8
|
+
var _dataSources = require("@mirai/data-sources");
|
|
8
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
@@ -33,11 +34,6 @@ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefine
|
|
|
33
34
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
34
35
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
35
36
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
36
|
-
// import { Event } from '@mirai/data-sources';
|
|
37
|
-
var Event = {
|
|
38
|
-
publish: function publish() {},
|
|
39
|
-
subscribe: function subscribe() {}
|
|
40
|
-
};
|
|
41
37
|
var Modal = function Modal(_ref) {
|
|
42
38
|
var _ref$blur = _ref.blur,
|
|
43
39
|
blur = _ref$blur === void 0 ? false : _ref$blur,
|
|
@@ -76,7 +72,7 @@ var Modal = function Modal(_ref) {
|
|
|
76
72
|
setDataset = _useState2[1];
|
|
77
73
|
(0, _react.useEffect)(function () {
|
|
78
74
|
if (!visible || !onClose) return;
|
|
79
|
-
Event.publish(_Modal.EVENT_VISIBLE, {
|
|
75
|
+
_dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
|
|
80
76
|
visible: visible,
|
|
81
77
|
displayName: displayName
|
|
82
78
|
});
|
|
@@ -105,7 +101,7 @@ var Modal = function Modal(_ref) {
|
|
|
105
101
|
var _ref$current;
|
|
106
102
|
var target = event.target;
|
|
107
103
|
if (onOverflow && !((_ref$current = ref.current) !== null && _ref$current !== void 0 && _ref$current.contains(target))) {
|
|
108
|
-
Event.publish(_Modal.EVENT_VISIBLE, {
|
|
104
|
+
_dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
|
|
109
105
|
visible: false,
|
|
110
106
|
displayName: displayName
|
|
111
107
|
});
|
|
@@ -113,7 +109,7 @@ var Modal = function Modal(_ref) {
|
|
|
113
109
|
}
|
|
114
110
|
};
|
|
115
111
|
var handleClose = function handleClose(event) {
|
|
116
|
-
Event.publish(_Modal.EVENT_VISIBLE, {
|
|
112
|
+
_dataSources.Event.publish(_Modal.EVENT_VISIBLE, {
|
|
117
113
|
visible: false,
|
|
118
114
|
displayName: displayName
|
|
119
115
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["Event","publish","subscribe","Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","useEffect","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","role","tag","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","button","CLOSE","EXPAND_MORE","React","Children","map","child","index","cloneElement","props","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["// import { Event } from '@mirai/data-sources';\nconst Event = {\n publish: () => {},\n subscribe: () => {},\n};\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n role={`${others.role || 'modal'}-overflow`}\n tag={`${others.tag || 'modal'}_overflow`}\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n role={others.role || 'modal'}\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n className={style.button}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["Modal","blur","children","displayName","fit","mobileBehavior","overflow","portal","preventDefault","title","visible","onBack","onClose","onOverflow","aria","buttonBack","ariaBack","buttonClose","ariaClose","others","useDevice","isDesktop","isMobile","height","ref","useRef","useState","dataset","setDataset","useEffect","Event","publish","EVENT_VISIBLE","handleKeydown","event","key","handleClose","document","addEventListener","removeEventListener","body","miraiModal","undefined","handleOverflow","target","current","contains","defaultDirection","Theme","getDirection","DIRECTION_TYPE","LEFT","renderer","IS_JEST","jsx","ReactDOM","createPortal","testId","role","tag","styles","style","container","modal","calcWidth","className","header","reverse","hideBack","hideClose","ICON","icon","button","CLOSE","EXPAND_MORE","React","Children","map","child","index","cloneElement","props","propTypes","PropTypes","bool","node","string","func","shape"],"sources":["../../../src/components/Modal/Modal.jsx"],"sourcesContent":["import { Event } from '@mirai/data-sources';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Button } from '../../components';\nimport { IS_JEST, styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { EVENT_VISIBLE } from './Modal.constants';\nimport style from './Modal.module.css';\n\nconst Modal = ({\n blur = false,\n children,\n displayName,\n fit = false,\n mobileBehavior = false,\n overflow = true,\n portal = false,\n preventDefault = true,\n title,\n visible,\n onBack,\n onClose,\n onOverflow,\n aria: { buttonBack: ariaBack = 'Back', buttonClose: ariaClose = 'Close' } = {},\n ...others\n}) => {\n const { isDesktop, isMobile, height } = useDevice();\n const ref = useRef();\n\n const [dataset, setDataset] = useState();\n\n useEffect(() => {\n if (!visible || !onClose) return;\n Event.publish(EVENT_VISIBLE, { visible, displayName });\n\n const handleKeydown = (event) => event.key === 'Escape' && handleClose();\n\n document.addEventListener('keydown', handleKeydown);\n return () => document.removeEventListener('keydown', handleKeydown);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visible]);\n\n useEffect(() => {\n if (visible && !dataset) {\n setDataset(true);\n document.body.dataset.miraiModal = true;\n }\n\n return () => {\n if (visible && dataset) {\n setDataset(undefined);\n delete document.body.dataset.miraiModal;\n }\n };\n }, [dataset, visible]);\n\n const handleOverflow = (event) => {\n const { target } = event;\n\n if (onOverflow && !ref.current?.contains(target)) {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onOverflow(event);\n }\n };\n\n const handleClose = (event) => {\n Event.publish(EVENT_VISIBLE, { visible: false, displayName });\n onClose(event);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const renderer = IS_JEST || !portal ? (jsx) => jsx : ReactDOM.createPortal;\n const { testId } = others;\n\n return renderer(\n <Pressable\n preventDefault={preventDefault}\n role={`${others.role || 'modal'}-overflow`}\n tag={`${others.tag || 'modal'}_overflow`}\n onPress={visible && overflow ? handleOverflow : undefined}\n className={styles(\n style.container,\n isDesktop && mobileBehavior && style.mobileBehavior,\n overflow && style.overflow,\n overflow && blur && style.blur,\n visible && style.visible,\n onOverflow && style.onOverflow,\n )}\n style={{ height }}\n testId={testId ? `${testId}-overflow` : undefined}\n >\n <View\n {...others}\n fit\n ref={ref}\n role={others.role || 'modal'}\n className={styles(style.modal, !fit && style.calcWidth, visible && style.visible, others.className)}\n aria-hidden={visible ? 'false' : 'true'}\n >\n {(title || onBack || onClose) && (\n <View\n row\n className={styles(\n style.header,\n !defaultDirection && style.reverse,\n !onBack && style.hideBack,\n !onClose && style.hideClose,\n )}\n >\n {onBack && (\n <Button\n small\n squared\n transparent\n onPress={onBack}\n aria-label={ariaBack}\n testId={testId ? `${testId}-button-back` : undefined}\n >\n <Icon value={ICON.LEFT} className={style.icon} />\n </Button>\n )}\n {title && (\n <Text headline={!isMobile} className={style.title}>\n {title}\n </Text>\n )}\n {onClose && (\n <Button\n small\n squared\n transparent\n onPress={handleClose}\n className={style.button}\n aria-label={ariaClose}\n testId={testId ? `${testId}-button-close` : undefined}\n >\n <Icon value={isDesktop || title !== undefined ? ICON.CLOSE : ICON.EXPAND_MORE} className={style.icon} />\n </Button>\n )}\n </View>\n )}\n\n {React.Children.map(children, (child, index) =>\n !child || child === null\n ? null\n : React.cloneElement(child, { key: child.key || index, ...child.props, role: 'modal-content' }),\n )}\n </View>\n </Pressable>,\n document.body,\n );\n};\n\nModal.displayName = 'Component:Modal';\n\nModal.propTypes = {\n blur: PropTypes.bool,\n children: PropTypes.node,\n displayName: PropTypes.string,\n fit: PropTypes.bool,\n mobileBehavior: PropTypes.bool,\n overflow: PropTypes.bool,\n portal: PropTypes.bool,\n preventDefault: PropTypes.bool,\n title: PropTypes.string,\n visible: PropTypes.bool,\n onBack: PropTypes.func,\n onClose: PropTypes.func,\n onOverflow: PropTypes.func,\n aria: PropTypes.shape({\n buttonBack: PropTypes.string,\n buttonClose: PropTypes.string,\n }),\n};\n\nexport { Modal };\n"],"mappings":"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"}
|
|
@@ -98,7 +98,8 @@ var Slider = function Slider(_ref) {
|
|
|
98
98
|
};
|
|
99
99
|
var handleScroll = function handleScroll() {
|
|
100
100
|
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
101
|
-
x = _ref2.x
|
|
101
|
+
_ref2$x = _ref2.x,
|
|
102
|
+
x = _ref2$x === void 0 ? 0 : _ref2$x;
|
|
102
103
|
var nextIndex = x < width ? 0 : Math.round(x / width);
|
|
103
104
|
if (nextIndex !== index) setIndex(nextIndex);
|
|
104
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","behavior","captions","height","propHeight","images","index","propIndex","indicator","replay","width","propWidth","onChange","onCounter","others","useDevice","isDesktop","useState","disabledScroll","setDisabledScroll","focus","setFocus","setIndex","useEffect","setInterval","length","clearInterval","clearTimeout","setTimeout","SCROLL_DELAY","handleIndex","nextIndex","Math","abs","defaultDirection","handleScroll","x","round","Theme","getDirection","DIRECTION_TYPE","LEFT","hasImages","isEnd","role","tag","undefined","styles","style","slider","className","button","hide","first","ICON","REPLAY","floor","scrollView","map","image","imageIndex","item","backgroundImage","PRELOAD_IMAGES","caption","overlay","text","second","RIGHT","counter","reverse","PHOTO_LIBRARY","progress","visible","displayName","propTypes","PropTypes","bool","string","arrayOf","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { Progress } from '../Progress';\nimport { PRELOAD_IMAGES, SCROLL_DELAY } from './Slider.constants';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n behavior = 'smooth',\n captions = [],\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n indicator = false,\n replay = true,\n width: propWidth = 320,\n onChange = () => {},\n onCounter,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [disabledScroll, setDisabledScroll] = useState(true);\n const [focus, setFocus] = useState(false);\n const [index, setIndex] = useState(propIndex);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n clearTimeout(timeout);\n timeout = setTimeout(() => setDisabledScroll(false), SCROLL_DELAY);\n\n onChange(index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index]);\n\n const height = propHeight;\n\n const width = propWidth;\n\n const handleIndex = (nextIndex) => {\n setDisabledScroll(true);\n setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));\n };\n\n const handleScroll = ({ x } = {}) => {\n const nextIndex = x < width ? 0 : Math.round(x / width);\n\n if (nextIndex !== index) setIndex(nextIndex);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const hasImages = images.length > 1;\n const isEnd = Math.abs(index) >= images.length - 1;\n\n return (\n <View\n {...others}\n role={others.role || 'slider'}\n tag={others.tag || 'slider'}\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.slider, others.className)}\n style={{ ...others.style, width }}\n >\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index - 1)}\n className={styles(\n style.button,\n ((defaultDirection ? index <= 0 : replay ? false : isEnd) || (isDesktop && !focus)) && style.hide,\n style.first,\n )}\n >\n <Icon value={replay && !defaultDirection && isEnd ? ICON.REPLAY : ICON.LEFT} />\n </Pressable>\n )}\n\n <ScrollView\n behavior={behavior}\n horizontal\n scrollEventThrottle={SCROLL_DELAY}\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={disabledScroll ? undefined : handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} className={style.item}>\n <View\n role=\"image\"\n className={style.image}\n style={{\n backgroundImage:\n replay ||\n (imageIndex >= Math.abs(index) - PRELOAD_IMAGES && imageIndex <= Math.abs(index) + PRELOAD_IMAGES)\n ? `url(${image})`\n : undefined,\n height,\n width,\n }}\n />\n {captions[imageIndex] && (\n <View className={style.caption}>\n <Text bold small className={[style.overlay, style.text]}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index + 1)}\n className={styles(\n style.button,\n ((defaultDirection ? (replay ? false : isEnd) : index === 0) || (isDesktop && !focus)) && style.hide,\n style.second,\n )}\n >\n <Icon value={replay && defaultDirection && index === images.length - 1 ? ICON.REPLAY : ICON.RIGHT} />\n </Pressable>\n )}\n\n {hasImages && onCounter && (\n <Pressable\n onPress={onCounter}\n className={styles(style.overlay, style.counter, !defaultDirection && style.reverse)}\n >\n <Icon action value={ICON.PHOTO_LIBRARY} />\n <Text bold small>\n {images.length}\n </Text>\n </Pressable>\n )}\n\n {indicator && (\n <Progress\n value={(index * 100) / (images.length - 1)}\n className={styles(style.progress, index > 0 && style.visible)}\n />\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n behavior: PropTypes.string,\n captions: PropTypes.arrayOf(PropTypes.string),\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n indicator: PropTypes.bool,\n replay: PropTypes.bool,\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onCounter: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","names":["interval","timeout","Slider","auto","behavior","captions","height","propHeight","images","index","propIndex","indicator","replay","width","propWidth","onChange","onCounter","others","useDevice","isDesktop","useState","disabledScroll","setDisabledScroll","focus","setFocus","setIndex","useEffect","setInterval","length","clearInterval","clearTimeout","setTimeout","SCROLL_DELAY","handleIndex","nextIndex","Math","abs","defaultDirection","handleScroll","x","round","Theme","getDirection","DIRECTION_TYPE","LEFT","hasImages","isEnd","role","tag","undefined","styles","style","slider","className","button","hide","first","ICON","REPLAY","floor","scrollView","map","image","imageIndex","item","backgroundImage","PRELOAD_IMAGES","caption","overlay","text","second","RIGHT","counter","reverse","PHOTO_LIBRARY","progress","visible","displayName","propTypes","PropTypes","bool","string","arrayOf","number","isRequired","func"],"sources":["../../../src/components/Slider/Slider.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { useDevice } from '../../hooks';\nimport { Icon, ICON, ScrollView, Pressable, Text, View } from '../../primitives';\nimport { DIRECTION_TYPE, Theme } from '../../theme';\nimport { Progress } from '../Progress';\nimport { PRELOAD_IMAGES, SCROLL_DELAY } from './Slider.constants';\nimport style from './Slider.module.css';\n\nlet interval;\nlet timeout;\n\nconst Slider = ({\n auto = false,\n behavior = 'smooth',\n captions = [],\n height: propHeight = 240,\n images = [],\n index: propIndex = 0,\n indicator = false,\n replay = true,\n width: propWidth = 320,\n onChange = () => {},\n onCounter,\n ...others\n}) => {\n const { isDesktop } = useDevice();\n\n const [disabledScroll, setDisabledScroll] = useState(true);\n const [focus, setFocus] = useState(false);\n const [index, setIndex] = useState(propIndex);\n\n useEffect(() => {\n if (auto) interval = setInterval(() => setIndex(index < images.length - 1 ? index + 1 : 0), 2000);\n return () => clearInterval(interval);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [auto, index]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n clearTimeout(timeout);\n timeout = setTimeout(() => setDisabledScroll(false), SCROLL_DELAY);\n\n onChange(index);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [index]);\n\n const height = propHeight;\n\n const width = propWidth;\n\n const handleIndex = (nextIndex) => {\n setDisabledScroll(true);\n setIndex(Math.abs(nextIndex) === images.length ? 0 : Math.abs(nextIndex) * (defaultDirection ? 1 : -1));\n };\n\n const handleScroll = ({ x = 0 } = {}) => {\n const nextIndex = x < width ? 0 : Math.round(x / width);\n\n if (nextIndex !== index) setIndex(nextIndex);\n };\n\n const defaultDirection = Theme.getDirection() === DIRECTION_TYPE.LEFT;\n const hasImages = images.length > 1;\n const isEnd = Math.abs(index) >= images.length - 1;\n\n return (\n <View\n {...others}\n role={others.role || 'slider'}\n tag={others.tag || 'slider'}\n onMouseEnter={isDesktop ? () => setFocus(true) : undefined}\n onMouseLeave={isDesktop ? () => setFocus(false) : undefined}\n className={styles(style.slider, others.className)}\n style={{ ...others.style, width }}\n >\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index - 1)}\n className={styles(\n style.button,\n ((defaultDirection ? index <= 0 : replay ? false : isEnd) || (isDesktop && !focus)) && style.hide,\n style.first,\n )}\n >\n <Icon value={replay && !defaultDirection && isEnd ? ICON.REPLAY : ICON.LEFT} />\n </Pressable>\n )}\n\n <ScrollView\n behavior={behavior}\n horizontal\n scrollEventThrottle={SCROLL_DELAY}\n scrollTo={index * Math.floor(width)}\n snap\n width={width}\n onScroll={disabledScroll ? undefined : handleScroll}\n className={style.scrollView}\n >\n {images.map((image, imageIndex) => (\n <View key={imageIndex} className={style.item}>\n <View\n role=\"image\"\n className={style.image}\n style={{\n backgroundImage:\n replay ||\n (imageIndex >= Math.abs(index) - PRELOAD_IMAGES && imageIndex <= Math.abs(index) + PRELOAD_IMAGES)\n ? `url(${image})`\n : undefined,\n height,\n width,\n }}\n />\n {captions[imageIndex] && (\n <View className={style.caption}>\n <Text bold small className={[style.overlay, style.text]}>\n {captions[imageIndex]}\n </Text>\n </View>\n )}\n </View>\n ))}\n </ScrollView>\n\n {hasImages && (\n <Pressable\n onPress={() => handleIndex(index + 1)}\n className={styles(\n style.button,\n ((defaultDirection ? (replay ? false : isEnd) : index === 0) || (isDesktop && !focus)) && style.hide,\n style.second,\n )}\n >\n <Icon value={replay && defaultDirection && index === images.length - 1 ? ICON.REPLAY : ICON.RIGHT} />\n </Pressable>\n )}\n\n {hasImages && onCounter && (\n <Pressable\n onPress={onCounter}\n className={styles(style.overlay, style.counter, !defaultDirection && style.reverse)}\n >\n <Icon action value={ICON.PHOTO_LIBRARY} />\n <Text bold small>\n {images.length}\n </Text>\n </Pressable>\n )}\n\n {indicator && (\n <Progress\n value={(index * 100) / (images.length - 1)}\n className={styles(style.progress, index > 0 && style.visible)}\n />\n )}\n </View>\n );\n};\n\nSlider.displayName = 'Component:Slider';\n\nSlider.propTypes = {\n auto: PropTypes.bool,\n behavior: PropTypes.string,\n captions: PropTypes.arrayOf(PropTypes.string),\n height: PropTypes.number.isRequired,\n images: PropTypes.arrayOf(PropTypes.string).isRequired,\n index: PropTypes.number,\n indicator: PropTypes.bool,\n replay: PropTypes.bool,\n width: PropTypes.number.isRequired,\n onChange: PropTypes.func,\n onCounter: PropTypes.func,\n};\n\nexport { Slider };\n"],"mappings":"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"}
|
|
@@ -100,7 +100,7 @@ var ScrollView = function ScrollView(_ref) {
|
|
|
100
100
|
var y = parseInt(scrollTop, 10);
|
|
101
101
|
var offsetX = scrollWidth - clientWidth;
|
|
102
102
|
var offsetY = scrollHeight - clientHeight;
|
|
103
|
-
return offsetY > 0 ? {
|
|
103
|
+
return (horizontal ? offsetX : offsetY) > 0 ? {
|
|
104
104
|
x: x,
|
|
105
105
|
y: y,
|
|
106
106
|
percentX: offsetX ? parseInt(x * 100 / offsetX, 10) : 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollView.js","names":["ScrollView","behavior","children","height","horizontal","scrollEventThrottle","scrollIndicator","scrollTo","snap","width","onScroll","others","ref","useRef","useState","value","setValue","timeout","useEffect","el","current","callback","calcValue","observer","MutationObserver","observe","childList","subtree","disconnect","undefined","handleScroll","target","next","clearTimeout","setTimeout","clientHeight","clientWidth","scrollHeight","scrollWidth","scrollTop","scrollLeft","x","parseInt","y","offsetX","offsetY","percentX","percentY","percent","React","createElement","Primitive","role","tag","className","styles","style","scrollview","vertical","indicator","hide","progress","ICON","RIGHT","DOWN","displayName","propTypes","PropTypes","string","node","isRequired","number","bool","func"],"sources":["../../../src/primitives/ScrollView/ScrollView.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON } from '../Icon';\nimport { Primitive } from '../Primitive';\nimport { View } from '../View';\nimport style from './ScrollView.module.css';\n\nconst ScrollView = ({\n behavior = 'smooth',\n children,\n height,\n horizontal,\n scrollEventThrottle = 16, // * 60fps\n scrollIndicator = false,\n scrollTo,\n snap = true,\n width,\n onScroll = () => {},\n ...others\n}) => {\n const ref = useRef();\n\n const [value, setValue] = useState();\n\n let timeout = null;\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!scrollIndicator || !el) return;\n\n const callback = () => setValue(calcValue(el));\n const observer = new MutationObserver(callback);\n observer.observe(el, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref]);\n\n useEffect(() => {\n const { current = {} } = ref || {};\n if (!current.scrollTo || scrollTo === undefined) return;\n\n current.scrollTo({ [horizontal ? 'left' : 'top']: scrollTo, behavior });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scrollTo]);\n\n const handleScroll = ({ target } = {}) => {\n const next = calcValue(target);\n setValue(next);\n clearTimeout(timeout);\n timeout = setTimeout(() => onScroll(next), scrollEventThrottle);\n };\n\n const calcValue = ({ clientHeight, clientWidth, scrollHeight, scrollWidth, scrollTop, scrollLeft } = {}) => {\n const x = parseInt(scrollLeft, 10);\n const y = parseInt(scrollTop, 10);\n const offsetX = scrollWidth - clientWidth;\n const offsetY = scrollHeight - clientHeight;\n\n return offsetY > 0\n ? {\n x,\n y,\n percentX: offsetX ? parseInt((x * 100) / offsetX, 10) : 0,\n percentY: offsetY ? parseInt((y * 100) / offsetY, 10) : 0,\n }\n : undefined;\n };\n\n const percent = scrollIndicator && value ? (horizontal ? value.percentX : value.percentY) : undefined;\n\n return React.createElement(\n Primitive,\n {\n ...others,\n ref,\n role: others.role || 'scrollview',\n tag: others.tag || 'scrollview',\n onScroll: handleScroll,\n className: styles(\n style.scrollview,\n snap && style.snap,\n horizontal ? style.horizontal : style.vertical,\n others.className,\n ),\n style: { ...others.style, height, width },\n },\n <>\n {children}\n {percent >= 0 && (\n <View\n className={styles(\n style.indicator,\n horizontal ? style.horizontal : style.vertical,\n percent > 95 && style.hide,\n )}\n >\n <View\n className={style.progress}\n style={\n horizontal ? { height: '100%', width: `${percent || 0}%` } : { height: `${percent || 0}%`, width: '100%' }\n }\n />\n <Icon headline level={2} value={horizontal ? ICON.RIGHT : ICON.DOWN} />\n </View>\n )}\n </>,\n );\n};\n\nScrollView.displayName = 'Primitive:ScrollView';\n\nScrollView.propTypes = {\n behavior: PropTypes.string,\n children: PropTypes.node.isRequired,\n height: PropTypes.number,\n horizontal: PropTypes.bool,\n scrollEventThrottle: PropTypes.number,\n scrollIndicator: PropTypes.bool,\n scrollTo: PropTypes.number,\n snap: PropTypes.bool,\n width: PropTypes.number,\n onScroll: PropTypes.func,\n};\n\nexport { ScrollView };\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ScrollView.js","names":["ScrollView","behavior","children","height","horizontal","scrollEventThrottle","scrollIndicator","scrollTo","snap","width","onScroll","others","ref","useRef","useState","value","setValue","timeout","useEffect","el","current","callback","calcValue","observer","MutationObserver","observe","childList","subtree","disconnect","undefined","handleScroll","target","next","clearTimeout","setTimeout","clientHeight","clientWidth","scrollHeight","scrollWidth","scrollTop","scrollLeft","x","parseInt","y","offsetX","offsetY","percentX","percentY","percent","React","createElement","Primitive","role","tag","className","styles","style","scrollview","vertical","indicator","hide","progress","ICON","RIGHT","DOWN","displayName","propTypes","PropTypes","string","node","isRequired","number","bool","func"],"sources":["../../../src/primitives/ScrollView/ScrollView.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { styles } from '../../helpers';\nimport { Icon, ICON } from '../Icon';\nimport { Primitive } from '../Primitive';\nimport { View } from '../View';\nimport style from './ScrollView.module.css';\n\nconst ScrollView = ({\n behavior = 'smooth',\n children,\n height,\n horizontal,\n scrollEventThrottle = 16, // * 60fps\n scrollIndicator = false,\n scrollTo,\n snap = true,\n width,\n onScroll = () => {},\n ...others\n}) => {\n const ref = useRef();\n\n const [value, setValue] = useState();\n\n let timeout = null;\n\n useEffect(() => {\n const { current: el } = ref || {};\n if (!scrollIndicator || !el) return;\n\n const callback = () => setValue(calcValue(el));\n const observer = new MutationObserver(callback);\n observer.observe(el, { childList: true, subtree: true });\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref]);\n\n useEffect(() => {\n const { current = {} } = ref || {};\n if (!current.scrollTo || scrollTo === undefined) return;\n\n current.scrollTo({ [horizontal ? 'left' : 'top']: scrollTo, behavior });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [scrollTo]);\n\n const handleScroll = ({ target } = {}) => {\n const next = calcValue(target);\n setValue(next);\n clearTimeout(timeout);\n timeout = setTimeout(() => onScroll(next), scrollEventThrottle);\n };\n\n const calcValue = ({ clientHeight, clientWidth, scrollHeight, scrollWidth, scrollTop, scrollLeft } = {}) => {\n const x = parseInt(scrollLeft, 10);\n const y = parseInt(scrollTop, 10);\n const offsetX = scrollWidth - clientWidth;\n const offsetY = scrollHeight - clientHeight;\n\n return (horizontal ? offsetX : offsetY) > 0\n ? {\n x,\n y,\n percentX: offsetX ? parseInt((x * 100) / offsetX, 10) : 0,\n percentY: offsetY ? parseInt((y * 100) / offsetY, 10) : 0,\n }\n : undefined;\n };\n\n const percent = scrollIndicator && value ? (horizontal ? value.percentX : value.percentY) : undefined;\n\n return React.createElement(\n Primitive,\n {\n ...others,\n ref,\n role: others.role || 'scrollview',\n tag: others.tag || 'scrollview',\n onScroll: handleScroll,\n className: styles(\n style.scrollview,\n snap && style.snap,\n horizontal ? style.horizontal : style.vertical,\n others.className,\n ),\n style: { ...others.style, height, width },\n },\n <>\n {children}\n {percent >= 0 && (\n <View\n className={styles(\n style.indicator,\n horizontal ? style.horizontal : style.vertical,\n percent > 95 && style.hide,\n )}\n >\n <View\n className={style.progress}\n style={\n horizontal ? { height: '100%', width: `${percent || 0}%` } : { height: `${percent || 0}%`, width: '100%' }\n }\n />\n <Icon headline level={2} value={horizontal ? ICON.RIGHT : ICON.DOWN} />\n </View>\n )}\n </>,\n );\n};\n\nScrollView.displayName = 'Primitive:ScrollView';\n\nScrollView.propTypes = {\n behavior: PropTypes.string,\n children: PropTypes.node.isRequired,\n height: PropTypes.number,\n horizontal: PropTypes.bool,\n scrollEventThrottle: PropTypes.number,\n scrollIndicator: PropTypes.bool,\n scrollTo: PropTypes.number,\n snap: PropTypes.bool,\n width: PropTypes.number,\n onScroll: PropTypes.func,\n};\n\nexport { ScrollView };\n"],"mappings":"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"}
|