react-ui-basics 0.0.212 → 0.0.213

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/Modal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["./src/Modal.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Modal.css'\nimport Button from \"./Button\";\nimport {classNames, orNoop, setTimeout, DOCUMENT, addEventListener, removeEventListener, createRef, UNDEFINED, stopPropagation} from \"./Tools\";\nimport {PureComponent, componentDidMount, render, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport PropTypes from \"prop-types\";\n\nlet listenerRef;\nlet zIndex = 100;\n\nconst EVENT_TYPE = 'keydown';\nconst pollListener = (modal) => {\n removeEventListener(DOCUMENT, EVENT_TYPE, listenerRef);\n const listener = modal._pl;\n listener && addEventListener(DOCUMENT, EVENT_TYPE, listener);\n listenerRef = listener;\n};\n\nconst addListener = (modal, listener) => {\n const prev = listenerRef;\n prev && removeEventListener(DOCUMENT, EVENT_TYPE, prev);\n modal._pl = prev;\n addEventListener(DOCUMENT, EVENT_TYPE, listenerRef = listener);\n};\n\nclass Modal extends PureComponent {\n\n static defaultProps = {\n closeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n isShow,\n getMenu,\n getBeforeClose,\n ] = stateGSs(that, 3);\n const overlay = createRef();\n const el = createRef();\n const content = createRef();\n const props = propsGetter(that);\n\n const beforeClose = (e) => {\n stopPropagation(e);\n const bc = getBeforeClose() || props().beforeClose;\n if (!bc || bc(that.close))\n that.close(e);\n };\n\n const shouldClose = (e) => {\n const isSameModal = el().style.zIndex == zIndex - 1;\n !(e && content().contains(e.target)) && isSameModal && beforeClose(e);\n };\n\n const addTransitionListener = () => {\n const transitionend = \"transitionend\";\n let listener = () => {\n removeEventListener(overlay(), transitionend, listener);\n orNoop(isShow() ? props().onOpen : orNoop(props().onClose))();\n el() && (el().style.paddingBottom = isShow() ? '1px' : '0px'); // force invalidate scroll\n };\n addEventListener(overlay(), transitionend, listener);\n };\n that[render] = () => {\n const {className, top, container = Modal.defaultContainer, children, closeIcon} = props();\n const menu = getMenu();\n const show = isShow();\n const modal = <div className={classNames(`Modal`, className, show && 'show')} ref={el} onClick={shouldClose}>\n <div ref={overlay} className={classNames(`overlay`, show && 'show')}>\n </div>\n <div className={classNames(`content`, show && 'show', top && 'top')}\n style={top && {top: top + 'px'}}\n ref={content}\n >\n {React.Children.map(children, child => React.cloneElement(child, {\n modalMenuConsumer: getMenu,\n modalBeforeCloseConsumer: getBeforeClose\n }))}\n {menu}\n <Button className=\"close\" flat={true} round={true} onClick={beforeClose}>\n {closeIcon}\n </Button>\n </div>\n </div>;\n\n return container ? ReactDOM.createPortal(modal, container) : modal;\n };\n\n const close = that.close = () => {\n if (!isShow())\n return;\n\n zIndex--;\n addTransitionListener();\n isShow(false);\n\n pollListener(that);\n };\n const open = that.open = () => {\n if (isShow())\n return;\n\n el() && (el().style.zIndex = zIndex++);\n addTransitionListener();\n isShow(true);\n\n let listener = event => {\n if (!event.defaultPrevented && event.keyCode === 27/*escape*/)\n beforeClose();\n return true;\n };\n\n addListener(that, listener)\n };\n\n that[componentDidMount] = () => {\n const _props = props();\n orNoop(_props.open)(() => {\n setTimeout(open, 0);\n });\n orNoop(_props.close)(() => {\n setTimeout(close, 0);\n });\n _props.show && setTimeout(open, 0)\n };\n that[componentDidUpdate] = (prevProps) => {\n const show = props().show;\n if (show !== prevProps.show) {\n show ? open() : close();\n }\n };\n }\n}\n\nModal.defaultContainer = UNDEFINED;\nModal.pollListener = pollListener;\nModal.addListener = addListener;\n\nexport default Modal;\n\nif (window.isNotProductionEnvironment) {\n Modal.propTypes = {\n className: PropTypes.string,\n top: PropTypes.number,\n container: PropTypes.node,\n };\n}"],"names":["listenerRef","zIndex","EVENT_TYPE","pollListener","modal","removeEventListener","DOCUMENT","listener","_pl","addEventListener","addListener","prev","Modal","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isShow","getMenu","getBeforeClose","overlay","createRef","el","content","props","propsGetter","beforeClose","e","stopPropagation","bc","close","shouldClose","isSameModal","style","contains","target","addTransitionListener","transitionend","orNoop","onOpen","onClose","paddingBottom","render","_props2","className","top","_props2$container","container","defaultContainer","children","closeIcon","menu","show","ReactCreateElement","classNames","ref","onClick","React","Children","map","child","cloneElement","modalMenuConsumer","modalBeforeCloseConsumer","Button","flat","round","ReactDOM","createPortal","open","event","defaultPrevented","keyCode","componentDidMount","_props","setTimeout","componentDidUpdate","prevProps","_createClass","PureComponent","defaultProps","MaterialIcon","icon","UNDEFINED","window","isNotProductionEnvironment","propTypes","PropTypes","string","number","node"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["./src/Modal.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Modal.css'\nimport Button from \"./Button\";\nimport {classNames, orNoop, setTimeout, DOCUMENT, addEventListener, removeEventListener, createRef, UNDEFINED, stopPropagation} from \"./Tools\";\nimport {PureComponent, componentDidMount, render, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport PropTypes from \"prop-types\";\n\nlet listenerRef;\nlet zIndex = 100;\n\nconst EVENT_TYPE = 'keydown';\nconst pollListener = (modal) => {\n removeEventListener(DOCUMENT, EVENT_TYPE, listenerRef);\n const listener = modal._pl;\n listener && addEventListener(DOCUMENT, EVENT_TYPE, listener);\n listenerRef = listener;\n};\n\nconst addListener = (modal, listener) => {\n const prev = listenerRef;\n prev && removeEventListener(DOCUMENT, EVENT_TYPE, prev);\n modal._pl = prev;\n addEventListener(DOCUMENT, EVENT_TYPE, listenerRef = listener);\n};\n\nclass Modal extends PureComponent {\n\n static defaultProps = {\n closeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n isShow,\n getMenu,\n getBeforeClose,\n ] = stateGSs(that, 3);\n const overlay = createRef();\n const el = createRef();\n const content = createRef();\n const props = propsGetter(that);\n\n const beforeClose = (e) => {\n stopPropagation(e);\n const bc = getBeforeClose() || props().beforeClose;\n if (!bc || bc(that.close))\n that.close(e);\n };\n\n const shouldClose = (e) => {\n const isSameModal = el().style.zIndex == zIndex - 1;\n !(e && content().contains(e.target)) && isSameModal && beforeClose(e);\n };\n\n const addTransitionListener = () => {\n const transitionend = \"transitionend\";\n let listener = () => {\n removeEventListener(overlay(), transitionend, listener);\n orNoop(isShow() ? props().onOpen : orNoop(props().onClose))();\n el() && (el().style.paddingBottom = isShow() ? '1px' : '0px'); // force invalidate scroll\n };\n addEventListener(overlay(), transitionend, listener);\n };\n that[render] = () => {\n const {className, top, container = Modal.defaultContainer, children, closeIcon} = props();\n const menu = getMenu();\n const show = isShow();\n const modal = <div className={classNames(`Modal`, className, show && 'show')} ref={el} onClick={shouldClose}>\n <div ref={overlay} className={classNames(`overlay`, show && 'show')}>\n </div>\n <div className={classNames(`content`, show && 'show', top && 'top')}\n style={top && {top: top + 'px'}}\n ref={content}\n >\n {React.Children.map(children, child => React.cloneElement(child, {\n modalMenuConsumer: getMenu,\n modalBeforeCloseConsumer: getBeforeClose\n }))}\n {menu}\n <Button className=\"close\" flat={true} round={true} onClick={beforeClose}>\n {closeIcon}\n </Button>\n </div>\n </div>;\n\n return container ? ReactDOM.createPortal(modal, container) : modal;\n };\n\n const close = that.close = () => {\n if (!isShow())\n return;\n\n zIndex--;\n addTransitionListener();\n isShow(false);\n\n pollListener(that);\n };\n const open = that.open = () => {\n if (isShow())\n return;\n\n el() && (el().style.zIndex = zIndex++);\n addTransitionListener();\n isShow(true);\n\n let listener = event => {\n if (!event.defaultPrevented && event.keyCode === 27/*escape*/)\n beforeClose();\n return true;\n };\n\n addListener(that, listener)\n };\n\n that[componentDidMount] = () => {\n const _props = props();\n orNoop(_props.open)(() => {\n setTimeout(open, 0);\n });\n orNoop(_props.close)(() => {\n setTimeout(close, 0);\n });\n _props.show && setTimeout(open, 0)\n };\n that[componentDidUpdate] = (prevProps) => {\n const show = props().show;\n if (show !== prevProps.show) {\n show ? open() : close();\n }\n };\n }\n}\n\nModal.defaultContainer = UNDEFINED;\nModal.pollListener = pollListener;\nModal.addListener = addListener;\n\nexport default Modal;\n\nif (window.isNotProductionEnvironment) {\n Modal.propTypes = {\n className: PropTypes.string,\n top: PropTypes.number,\n container: PropTypes.node,\n };\n}"],"names":["listenerRef","zIndex","EVENT_TYPE","pollListener","modal","removeEventListener","DOCUMENT","listener","_pl","addEventListener","addListener","prev","Modal","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isShow","getMenu","getBeforeClose","overlay","createRef","el","content","props","propsGetter","beforeClose","e","stopPropagation","bc","close","shouldClose","isSameModal","style","contains","target","addTransitionListener","transitionend","orNoop","onOpen","onClose","paddingBottom","render","_props2","className","top","_props2$container","container","defaultContainer","children","closeIcon","menu","show","ReactCreateElement","classNames","ref","onClick","React","Children","map","child","cloneElement","modalMenuConsumer","modalBeforeCloseConsumer","Button","flat","round","ReactDOM","createPortal","open","event","defaultPrevented","keyCode","componentDidMount","_props","setTimeout","componentDidUpdate","prevProps","_createClass","PureComponent","defaultProps","MaterialIcon","icon","UNDEFINED"],"mappings":"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"}
package/Scrollable.js CHANGED
@@ -1,12 +1,11 @@
1
1
  import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './Scrollable.css'; import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
- import PropTypes from 'prop-types';
4
+ import 'prop-types';
5
5
  import { classNames, ref, createRef, clearInterval, clearTimeout, orNoop, addEventListener, WINDOW, preventDefault, setTimeout, setInterval, removeEventListener } from './Tools.js';
6
6
  import { stateGS, componentDidMount, componentWillUnmount, componentDidUpdate, render, PureComponent, propsGetter } from './ReactConstants.js';
7
7
 
8
8
  var SCROLLBAR_MODE_HIDDEN = 'hidden';
9
- var SCROLLBAR_MODE_VISIBLE = 'visible';
10
9
  var SCROLLBAR_MODE_AUTO = 'auto';
11
10
  var SCROLLBAR_RESIZE_DISABLED = 'disabled';
12
11
  var NATIVE_SCROLL_WIDTH = -1;
@@ -329,17 +328,6 @@ Scrollable.defaultProps = {
329
328
  autoScrollTop: true,
330
329
  horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN
331
330
  };
332
- if (process.env.NODE_ENV !== 'production') {
333
- Scrollable.propTypes = {
334
- scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
335
- horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
336
- [ReactConstants[5]]: PropTypes.string,
337
- style: PropTypes.object,
338
- onScrolledToBottom: PropTypes.func,
339
- onScrolledToTop: PropTypes.func,
340
- autoScrollTop: PropTypes.bool
341
- };
342
- }
343
331
 
344
- export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED, Scrollable$1 as default };
332
+ export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_RESIZE_DISABLED, Scrollable$1 as default };
345
333
  //# sourceMappingURL=Scrollable.js.map
package/Scrollable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {\n classNames,\n preventDefault,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n createRef,\n orNoop,\n NOOP,\n ref\n} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\nexport const SCROLLBAR_RESIZE_DISABLED = 'disabled';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = that.el;\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const containerHeight = offsetHeightOf(container);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if (!containerHeight || (ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = containerHeight + horizontalScrollBarOffset;\n if (containerOffsetHeight > scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n if (newRatio > 1.02)\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = containerHeight + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight <= scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n const containerWidth = offsetWidthOf(container);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if (!containerWidth || (ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n\n let containerOffsetWidth = containerWidth + verticalScrollBarOffset;\n if (containerOffsetWidth > scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n if (newRatio > 1.02)\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = containerWidth + verticalScrollBarOffset;\n\n if (containerOffsetWidth <= scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n let update;\n let sbm = scrollBarModeOf(props());\n let hsbm = horizontalScrollBarModeOf(props());\n if (sbm !== SCROLLBAR_RESIZE_DISABLED && !hsbm === SCROLLBAR_RESIZE_DISABLED) {\n update = () => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n };\n } else if (sbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateVerticalScrollbar\n else if (hsbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateHorizontalScrollbar\n\n if (update) {\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(update, 50);\n }, 200)\n }\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => that.el.clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={ref('el', this)}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_VISIBLE","SCROLLBAR_MODE_AUTO","SCROLLBAR_RESIZE_DISABLED","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","props","propsGetter","status","stateGS","statusH","viewportRef","createRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","containerHeight","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","containerWidth","verticalScrollBarOffset","containerOffsetWidth","width","update","sbm","hsbm","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","ReactCreateElement","classNames","ref","_createClass","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
1
+ {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {\n classNames,\n preventDefault,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n createRef,\n orNoop,\n NOOP,\n ref\n} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\nexport const SCROLLBAR_RESIZE_DISABLED = 'disabled';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = that.el;\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const containerHeight = offsetHeightOf(container);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if (!containerHeight || (ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = containerHeight + horizontalScrollBarOffset;\n if (containerOffsetHeight > scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n if (newRatio > 1.02)\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = containerHeight + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight <= scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n const containerWidth = offsetWidthOf(container);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if (!containerWidth || (ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n\n let containerOffsetWidth = containerWidth + verticalScrollBarOffset;\n if (containerOffsetWidth > scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n if (newRatio > 1.02)\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = containerWidth + verticalScrollBarOffset;\n\n if (containerOffsetWidth <= scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n let update;\n let sbm = scrollBarModeOf(props());\n let hsbm = horizontalScrollBarModeOf(props());\n if (sbm !== SCROLLBAR_RESIZE_DISABLED && !hsbm === SCROLLBAR_RESIZE_DISABLED) {\n update = () => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n };\n } else if (sbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateVerticalScrollbar\n else if (hsbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateHorizontalScrollbar\n\n if (update) {\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(update, 50);\n }, 200)\n }\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => that.el.clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={ref('el', this)}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_AUTO","SCROLLBAR_RESIZE_DISABLED","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","props","propsGetter","status","stateGS","statusH","viewportRef","createRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","containerHeight","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","containerWidth","verticalScrollBarOffset","containerOffsetWidth","width","update","sbm","hsbm","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","ReactCreateElement","classNames","ref","_createClass","PureComponent","defaultProps","horizontalScrollBarMode"],"mappings":"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"}
package/Size.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare type ToAbbreviationType = 'B' | 'KB' | 'MB' | 'GB';
3
2
  export declare const formatNumberWithMaxLength: (size: number, fractionalLength: number, toAbbreviation?: ToAbbreviationType, maxLength?: number) => any;
4
3
  export declare const formatAbbreviation: (size: number) => "B" | "KB" | "MB" | "GB";
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './SpinningProgress.css';
3
2
  declare const SpinningProgress: () => JSX.Element;
4
3
  export default SpinningProgress;
package/TextField.js CHANGED
@@ -3,7 +3,7 @@ import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import { classNames, isUndefined, setTimeout, orNoop, addEventListener, getRandomId, createRef } from './Tools.js';
5
5
  import { stateGSs, render, componentDidMount, componentDidUpdate, PureComponent, propsGetter } from './ReactConstants.js';
6
- import PropTypes from 'prop-types';
6
+ import 'prop-types';
7
7
 
8
8
  var TextField = function (_PureComponent) {
9
9
  _inherits(TextField, _PureComponent);
@@ -133,28 +133,6 @@ var TextField = function (_PureComponent) {
133
133
  }
134
134
  return _createClass(TextField);
135
135
  }(PureComponent);
136
- if (process.env.NODE_ENV !== 'production') {
137
- TextField.propTypes = {
138
- id: PropTypes.string,
139
- [ReactConstants[5]]: PropTypes.string,
140
- value: PropTypes.string,
141
- name: PropTypes.string,
142
- type: PropTypes.string,
143
- autoComplete: PropTypes.string,
144
- placeholder: PropTypes.string,
145
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
146
- check: PropTypes.func,
147
- [ReactConstants[6]]: PropTypes.func,
148
- onKeyDown: PropTypes.func,
149
- onFocus: PropTypes.func,
150
- onBlur: PropTypes.func,
151
- [ReactConstants[7]]: PropTypes.func,
152
- required: PropTypes.bool,
153
- disabled: PropTypes.bool,
154
- min: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
155
- max: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
156
- };
157
- }
158
136
  var TextField$1 = TextField;
159
137
 
160
138
  export { TextField$1 as default };
package/TextField.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sources":["./src/TextField.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './TextField.css'\nimport {classNames, getRandomId, isUndefined, orNoop, addEventListener, createRef, setTimeout} from \"./Tools\";\nimport {PureComponent, render, componentDidMount, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport PropTypes from \"prop-types\";\n\nclass TextField extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const randomId = getRandomId('tf-');\n const [\n isFocused,\n errorState,\n isWithValue,\n ] = stateGSs(that, 3);\n const props = propsGetter(that);\n\n const inputRef = createRef();\n const check = () => {\n const {required, check} = props();\n const value = inputRef().value;\n const error = (required && value === '') || (check && check(value));\n errorState() !== error && setTimeout(errorState, 0, error);\n return error;\n };\n\n const onChange = (e) => {\n orNoop(props().onChange)(e);\n isWithValue(!!inputRef().value);\n check()\n };\n\n const onFocus = () => {\n isFocused(true);\n orNoop(props().onFocus)();\n };\n const onBlur = () => {\n isFocused(false);\n check();\n orNoop(props().onBlur)();\n };\n\n that[render] = () => {\n const _props = props();\n const {value, name, type, label, check, disabled, required, min, max, onClick, onKeyDown, onKeyUp, onMouseUp, autoComplete, placeholder, className} = _props;\n const id = _props.id || randomId;\n const error = errorState();\n return (\n <div\n className={classNames('TextField',\n isFocused() && 'focused',\n (value || placeholder || (isWithValue() && isUndefined(value))) && 'withValue',\n error && (required || check) && 'errored',\n disabled && 'disabled',\n label && 'withLabel',\n className)}\n onClick={() => {\n inputRef().focus();\n }}\n >\n {label && (<label className={classNames(error && !isFocused() && 'shake')} htmlFor={id}>{label}{required && ' *'}</label>)}\n <input type={type || 'text'} id={id} name={name} value={value} disabled={disabled}\n min={min}\n max={max}\n ref={inputRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n onClick={onClick}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onMouseUp={onMouseUp}\n autoComplete={autoComplete || 'on'}\n placeholder={placeholder}\n />\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n {error && <div className=\"error\">{error}</div>}\n </div>\n )\n };\n\n that[componentDidMount] = () => {\n const {focused, input} = props(),\n i = inputRef();\n let hasValue = !!i.value;\n isWithValue(hasValue);\n\n !hasValue && setTimeout(() => {\n try {\n let matches = i.matches(':-internal-autofill-selected');\n matches && isWithValue(matches)\n } catch (ignored) {\n }\n }, 100)\n\n focused && i.focus();\n orNoop(input)(i);\n };\n that[componentDidUpdate] = () => {\n if (props().value !== inputRef().value)\n check();\n const {focused} = props(),\n i = inputRef();\n focused && i.focus();\n };\n that.check = check;\n that.getInput = inputRef;\n\n that.withAutofillAnimationCallback = () => {\n addEventListener(inputRef(), 'animationstart', () => {\n isWithValue(true);\n }, false);\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n TextField.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n value: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n autoComplete: PropTypes.string,\n placeholder: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n check: PropTypes.func,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n min: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n max: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n };\n}\n\nexport default TextField\n"],"names":["TextField","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","randomId","getRandomId","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isFocused","errorState","isWithValue","props","propsGetter","inputRef","createRef","check","_props2","required","value","error","setTimeout","onChange","e","orNoop","onFocus","onBlur","render","_props","name","type","label","disabled","min","max","onClick","onKeyDown","onKeyUp","onMouseUp","autoComplete","placeholder","className","id","ReactCreateElement","classNames","isUndefined","focus","htmlFor","ref","componentDidMount","_props3","focused","input","i","hasValue","matches","ignored","componentDidUpdate","_props4","getInput","withAutofillAnimationCallback","addEventListener","_createClass","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","element","func","bool","number"],"mappings":"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"}
1
+ {"version":3,"file":"TextField.js","sources":["./src/TextField.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './TextField.css'\nimport {classNames, getRandomId, isUndefined, orNoop, addEventListener, createRef, setTimeout} from \"./Tools\";\nimport {PureComponent, render, componentDidMount, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport PropTypes from \"prop-types\";\n\nclass TextField extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const randomId = getRandomId('tf-');\n const [\n isFocused,\n errorState,\n isWithValue,\n ] = stateGSs(that, 3);\n const props = propsGetter(that);\n\n const inputRef = createRef();\n const check = () => {\n const {required, check} = props();\n const value = inputRef().value;\n const error = (required && value === '') || (check && check(value));\n errorState() !== error && setTimeout(errorState, 0, error);\n return error;\n };\n\n const onChange = (e) => {\n orNoop(props().onChange)(e);\n isWithValue(!!inputRef().value);\n check()\n };\n\n const onFocus = () => {\n isFocused(true);\n orNoop(props().onFocus)();\n };\n const onBlur = () => {\n isFocused(false);\n check();\n orNoop(props().onBlur)();\n };\n\n that[render] = () => {\n const _props = props();\n const {value, name, type, label, check, disabled, required, min, max, onClick, onKeyDown, onKeyUp, onMouseUp, autoComplete, placeholder, className} = _props;\n const id = _props.id || randomId;\n const error = errorState();\n return (\n <div\n className={classNames('TextField',\n isFocused() && 'focused',\n (value || placeholder || (isWithValue() && isUndefined(value))) && 'withValue',\n error && (required || check) && 'errored',\n disabled && 'disabled',\n label && 'withLabel',\n className)}\n onClick={() => {\n inputRef().focus();\n }}\n >\n {label && (<label className={classNames(error && !isFocused() && 'shake')} htmlFor={id}>{label}{required && ' *'}</label>)}\n <input type={type || 'text'} id={id} name={name} value={value} disabled={disabled}\n min={min}\n max={max}\n ref={inputRef}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n onClick={onClick}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onMouseUp={onMouseUp}\n autoComplete={autoComplete || 'on'}\n placeholder={placeholder}\n />\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n {error && <div className=\"error\">{error}</div>}\n </div>\n )\n };\n\n that[componentDidMount] = () => {\n const {focused, input} = props(),\n i = inputRef();\n let hasValue = !!i.value;\n isWithValue(hasValue);\n\n !hasValue && setTimeout(() => {\n try {\n let matches = i.matches(':-internal-autofill-selected');\n matches && isWithValue(matches)\n } catch (ignored) {\n }\n }, 100)\n\n focused && i.focus();\n orNoop(input)(i);\n };\n that[componentDidUpdate] = () => {\n if (props().value !== inputRef().value)\n check();\n const {focused} = props(),\n i = inputRef();\n focused && i.focus();\n };\n that.check = check;\n that.getInput = inputRef;\n\n that.withAutofillAnimationCallback = () => {\n addEventListener(inputRef(), 'animationstart', () => {\n isWithValue(true);\n }, false);\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n TextField.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n value: PropTypes.string,\n name: PropTypes.string,\n type: PropTypes.string,\n autoComplete: PropTypes.string,\n placeholder: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n check: PropTypes.func,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n min: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n max: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n };\n}\n\nexport default TextField\n"],"names":["TextField","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","randomId","getRandomId","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isFocused","errorState","isWithValue","props","propsGetter","inputRef","createRef","check","_props2","required","value","error","setTimeout","onChange","e","orNoop","onFocus","onBlur","render","_props","name","type","label","disabled","min","max","onClick","onKeyDown","onKeyUp","onMouseUp","autoComplete","placeholder","className","id","ReactCreateElement","classNames","isUndefined","focus","htmlFor","ref","componentDidMount","_props3","focused","input","i","hasValue","matches","ignored","componentDidUpdate","_props4","getInput","withAutofillAnimationCallback","addEventListener","_createClass","PureComponent"],"mappings":";;;;;;;AAKmC,IAE7BA,SAAS,aAAAC,cAAA,EAAA;EAAAC,SAAA,CAAAF,SAAA,EAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,SAAA,CAAA,CAAA;EAEX,SAAAA,SAAAA,CAAYK,UAAU,EAAE;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,eAAA,OAAAP,SAAA,CAAA,CAAA;AACpBM,IAAAA,KAAA,GAAAH,MAAA,CAAAK,IAAA,OAAMH,UAAU,CAAA,CAAA;AAChB,IAAA,IAAMI,IAAI,GAAAC,sBAAA,CAAAJ,KAAA,CAAO,CAAA;AACjBG,IAAAA,IAAI,CAACE,KAAK,GAAG,EAAE,CAAA;AAEf,IAAA,IAAMC,QAAQ,GAAGC,WAAW,CAAC,KAAK,CAAC,CAAA;AACnC,IAAA,IAAAC,SAAA,GAIIC,QAAQ,CAACN,IAAI,EAAE,CAAC,CAAC;MAAAO,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAHjBI,MAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AACTG,MAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA;AACVI,MAAAA,WAAW,GAAAJ,UAAA,CAAA,CAAA,CAAA,CAAA;AAEf,IAAA,IAAMK,KAAK,GAAGC,WAAW,CAACb,IAAI,CAAC,CAAA;AAE/B,IAAA,IAAMc,QAAQ,GAAGC,SAAS,EAAE,CAAA;AAC5B,IAAA,IAAMC,KAAK,GAAG,SAAAA,KAAAA,GAAM;AAChB,MAAA,IAAAC,OAAA,GAA0BL,KAAK,EAAE;QAA1BM,QAAQ,GAAAD,OAAA,CAARC,QAAQ;QAAEF,KAAK,GAAAC,OAAA,CAALD,KAAK,CAAA;AACtB,MAAA,IAAMG,KAAK,GAAGL,QAAQ,EAAE,CAACK,KAAK,CAAA;AAC9B,MAAA,IAAMC,KAAK,GAAIF,QAAQ,IAAIC,KAAK,KAAK,EAAE,IAAMH,KAAK,IAAIA,KAAK,CAACG,KAAK,CAAE,CAAA;AACnET,MAAAA,UAAU,EAAE,KAAKU,KAAK,IAAIC,UAAU,CAACX,UAAU,EAAE,CAAC,EAAEU,KAAK,CAAC,CAAA;AAC1D,MAAA,OAAOA,KAAK,CAAA;KACf,CAAA;AAED,IAAA,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,CAAC,EAAK;MACpBC,MAAM,CAACZ,KAAK,EAAE,CAACU,QAAQ,CAAC,CAACC,CAAC,CAAC,CAAA;MAC3BZ,WAAW,CAAC,CAAC,CAACG,QAAQ,EAAE,CAACK,KAAK,CAAC,CAAA;AAC/BH,MAAAA,KAAK,EAAE,CAAA;KACV,CAAA;AAED,IAAA,IAAMS,OAAO,GAAG,SAAVA,OAAOA,GAAS;MAClBhB,SAAS,CAAC,IAAI,CAAC,CAAA;MACfe,MAAM,CAACZ,KAAK,EAAE,CAACa,OAAO,CAAC,EAAE,CAAA;KAC5B,CAAA;AACD,IAAA,IAAMC,MAAM,GAAG,SAATA,MAAMA,GAAS;MACjBjB,SAAS,CAAC,KAAK,CAAC,CAAA;AAChBO,MAAAA,KAAK,EAAE,CAAA;MACPQ,MAAM,CAACZ,KAAK,EAAE,CAACc,MAAM,CAAC,EAAE,CAAA;KAC3B,CAAA;AAED1B,IAAAA,IAAI,CAAC2B,MAAM,CAAC,GAAG,YAAM;AACjB,MAAA,IAAMC,MAAM,GAAGhB,KAAK,EAAE,CAAA;AACtB,MAAA,IAAOO,KAAK,GAA0IS,MAAM,CAArJT,KAAK;QAAEU,IAAI,GAAoID,MAAM,CAA9IC,IAAI;QAAEC,IAAI,GAA8HF,MAAM,CAAxIE,IAAI;QAAEC,KAAK,GAAuHH,MAAM,CAAlIG,KAAK;QAAEf,KAAK,GAAgHY,MAAM,CAA3HZ,KAAK;QAAEgB,QAAQ,GAAsGJ,MAAM,CAApHI,QAAQ;QAAEd,QAAQ,GAA4FU,MAAM,CAA1GV,QAAQ;QAAEe,GAAG,GAAuFL,MAAM,CAAhGK,GAAG;QAAEC,GAAG,GAAkFN,MAAM,CAA3FM,GAAG;QAAEC,OAAO,GAAyEP,MAAM,CAAtFO,OAAO;QAAEC,SAAS,GAA8DR,MAAM,CAA7EQ,SAAS;QAAEC,OAAO,GAAqDT,MAAM,CAAlES,OAAO;QAAEC,SAAS,GAA0CV,MAAM,CAAzDU,SAAS;QAAEC,YAAY,GAA4BX,MAAM,CAA9CW,YAAY;QAAEC,WAAW,GAAeZ,MAAM,CAAhCY,WAAW;QAAEC,SAAS,GAAIb,MAAM,CAAnBa,SAAS,CAAA;AAClJ,MAAA,IAAMC,EAAE,GAAGd,MAAM,CAACc,EAAE,IAAIvC,QAAQ,CAAA;AAChC,MAAA,IAAMiB,KAAK,GAAGV,UAAU,EAAE,CAAA;AAC1B,MAAA,OACIiC,kBAAA,CAAA,KAAA,EAAA;QACIF,SAAS,EAAEG,UAAU,CAAC,WAAW,EAC7BnC,SAAS,EAAE,IAAI,SAAS,EACxB,CAACU,KAAK,IAAIqB,WAAW,IAAK7B,WAAW,EAAE,IAAIkC,WAAW,CAAC1B,KAAK,CAAE,KAAK,WAAW,EAC9EC,KAAK,KAAKF,QAAQ,IAAIF,KAAK,CAAC,IAAI,SAAS,EACzCgB,QAAQ,IAAI,UAAU,EACtBD,KAAK,IAAI,WAAW,EACpBU,SAAS,CAAE;QACfN,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACXrB,UAAAA,QAAQ,EAAE,CAACgC,KAAK,EAAE,CAAA;AACtB,SAAA;OAECf,EAAAA,KAAK,IAAKY,kBAAA,CAAA,OAAA,EAAA;QAAOF,SAAS,EAAEG,UAAU,CAACxB,KAAK,IAAI,CAACX,SAAS,EAAE,IAAI,OAAO,CAAE;AAACsC,QAAAA,OAAO,EAAEL,EAAAA;AAAG,OAAA,EAAEX,KAAK,EAAEb,QAAQ,IAAI,IAAY,CAAE,EAC1HyB,kBAAA,CAAA,OAAA,EAAA;QAAOb,IAAI,EAAEA,IAAI,IAAI,MAAO;AAACY,QAAAA,EAAE,EAAEA,EAAG;AAACb,QAAAA,IAAI,EAAEA,IAAK;AAACV,QAAAA,KAAK,EAAEA,KAAM;AAACa,QAAAA,QAAQ,EAAEA,QAAS;AAC3EC,QAAAA,GAAG,EAAEA,GAAI;AACTC,QAAAA,GAAG,EAAEA,GAAI;AACTc,QAAAA,GAAG,EAAElC,QAAS;AACdQ,QAAAA,QAAQ,EAAEA,QAAS;AACnBG,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,MAAM,EAAEA,MAAO;AACfS,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,SAAS,EAAEA,SAAU;AACrBC,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,SAAS,EAAEA,SAAU;QACrBC,YAAY,EAAEA,YAAY,IAAI,IAAK;AACnCC,QAAAA,WAAW,EAAEA,WAAAA;OACnB,CAAC,EACFG,kBAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,QAAA;AAAQ,OAAA,EACnBE,kBAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,MAAA;AAAM,OAAC,CACrB,CAAC,EACLrB,KAAK,IAAIuB,kBAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,OAAA;OAASrB,EAAAA,KAAW,CAC5C,CAAC,CAAA;KAEb,CAAA;AAEDpB,IAAAA,IAAI,CAACiD,iBAAiB,CAAC,GAAG,YAAM;AAC5B,MAAA,IAAAC,OAAA,GAAyBtC,KAAK,EAAE;QAAzBuC,OAAO,GAAAD,OAAA,CAAPC,OAAO;QAAEC,KAAK,GAAAF,OAAA,CAALE,KAAK;QACjBC,CAAC,GAAGvC,QAAQ,EAAE,CAAA;AAClB,MAAA,IAAIwC,QAAQ,GAAG,CAAC,CAACD,CAAC,CAAClC,KAAK,CAAA;MACxBR,WAAW,CAAC2C,QAAQ,CAAC,CAAA;AAErB,MAAA,CAACA,QAAQ,IAAIjC,UAAU,CAAC,YAAM;QAC1B,IAAI;AACA,UAAA,IAAIkC,OAAO,GAAGF,CAAC,CAACE,OAAO,CAAC,8BAA8B,CAAC,CAAA;AACvDA,UAAAA,OAAO,IAAI5C,WAAW,CAAC4C,OAAO,CAAC,CAAA;AACnC,SAAC,CAAC,OAAOC,OAAO,EAAE,EAClB;OACH,EAAE,GAAG,CAAC,CAAA;AAEPL,MAAAA,OAAO,IAAIE,CAAC,CAACP,KAAK,EAAE,CAAA;AACpBtB,MAAAA,MAAM,CAAC4B,KAAK,CAAC,CAACC,CAAC,CAAC,CAAA;KACnB,CAAA;AACDrD,IAAAA,IAAI,CAACyD,kBAAkB,CAAC,GAAG,YAAM;AAC7B,MAAA,IAAI7C,KAAK,EAAE,CAACO,KAAK,KAAKL,QAAQ,EAAE,CAACK,KAAK,EAClCH,KAAK,EAAE,CAAA;AACX,MAAA,IAAA0C,OAAA,GAAkB9C,KAAK,EAAE;QAAlBuC,OAAO,GAAAO,OAAA,CAAPP,OAAO;QACVE,CAAC,GAAGvC,QAAQ,EAAE,CAAA;AAClBqC,MAAAA,OAAO,IAAIE,CAAC,CAACP,KAAK,EAAE,CAAA;KACvB,CAAA;IACD9C,IAAI,CAACgB,KAAK,GAAGA,KAAK,CAAA;IAClBhB,IAAI,CAAC2D,QAAQ,GAAG7C,QAAQ,CAAA;IAExBd,IAAI,CAAC4D,6BAA6B,GAAG,YAAM;AACvCC,MAAAA,gBAAgB,CAAC/C,QAAQ,EAAE,EAAE,gBAAgB,EAAE,YAAM;QACjDH,WAAW,CAAC,IAAI,CAAC,CAAA;OACpB,EAAE,KAAK,CAAC,CAAA;KACZ,CAAA;AAAC,IAAA,OAAAd,KAAA,CAAA;AACN,GAAA;EAAC,OAAAiE,YAAA,CAAAvE,SAAA,CAAA,CAAA;AAAA,CAAA,CAjHmBwE,aAAa,CAAA,CAAA;AAoJrC,kBAAexE,SAAS;;;;"}