react-ui-basics 0.0.139 → 0.0.143

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/Scrollable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scrollable.js","sources":["../src/react-ui-basics/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {classNames, preventDefault, WINDOW, addEventListener, removeEventListener, setTimeout, clearTimeout, setInterval, clearInterval, createRef, orNoop, NOOP} 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';\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 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 containerRef = createRef();\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 = containerRef();\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\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 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\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((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 = offsetHeightOf(container) + 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 styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + 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\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\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 = offsetWidthOf(container) + 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 initTimeout = setTimeout(() => {\n resizeInterval = setInterval(() => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n }, 50);\n }, 200)\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(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 = () => containerRef().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={containerRef}>\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]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\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","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","horizontalScrollBarModeOf","Scrollable","properties","that","state","props","propsGetter","status","stateGS","statusH","containerRef","createRef","viewportRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","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","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","classNames","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/react-ui-basics/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {classNames, preventDefault, WINDOW, addEventListener, removeEventListener, setTimeout, clearTimeout, setInterval, clearInterval, createRef, orNoop, NOOP} 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';\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 containerRef = createRef();\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 = containerRef();\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\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((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 = offsetHeightOf(container) + 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 styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + 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\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\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 = offsetWidthOf(container) + 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 initTimeout = setTimeout(() => {\n resizeInterval = setInterval(() => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n }, 50);\n }, 200)\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 = () => containerRef().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={containerRef}>\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]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\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","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","properties","that","state","props","propsGetter","status","stateGS","statusH","containerRef","createRef","viewportRef","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","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","classNames","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
1
+ import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import Table from './Table.js';
5
5
  import Scrollable from './Scrollable.js';
6
6
  import { render, props, PureComponent } from './ReactConstants.js';
7
7
  import { createRef } from './Tools.js';
8
+ import 'prop-types';
8
9
 
9
10
  var ScrollableTable = function (_PureComponent) {
10
11
  _inherits(ScrollableTable, _PureComponent);
@@ -18,9 +19,9 @@ var ScrollableTable = function (_PureComponent) {
18
19
  that[render] = function () {
19
20
  return ReactCreateElement("div", {
20
21
  className: "ScrollableTable"
21
- }, ReactCreateElement(Scrollable, {
22
+ }, ReactCreateElement(Scrollable, _extends({
22
23
  ref: scrollableRef
23
- }, ReactCreateElement(Table, props(that))));
24
+ }, props(that).scrollableProps), ReactCreateElement(Table, props(that))));
24
25
  };
25
26
  that.getScrollable = function () {
26
27
  return scrollableRef();
@@ -30,6 +31,9 @@ var ScrollableTable = function (_PureComponent) {
30
31
  return ScrollableTable;
31
32
  }(PureComponent);
32
33
  var ScrollableTable$1 = ScrollableTable;
34
+ if (process.env.NODE_ENV !== 'production') {
35
+ ScrollableTable.propTypes = Table.propTypes;
36
+ }
33
37
 
34
38
  export { ScrollableTable$1 as default };
35
39
  //# sourceMappingURL=ScrollableTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollableTable.js","sources":["../src/react-ui-basics/ScrollableTable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport Table from \"./Table\";\nimport Scrollable from \"./Scrollable\";\nimport \"./ScrollableTable.css\";\nimport {props, render, PureComponent} from \"./ReactConstants\";\nimport {createRef} from \"./Tools\";\n\nclass ScrollableTable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n\n const scrollableRef = createRef();\n\n that[render] = () => {\n return <div className={`ScrollableTable`}>\n <Scrollable ref={scrollableRef}>\n <Table {...props(that)}/>\n </Scrollable>\n </div>;\n }\n that.getScrollable = () => scrollableRef()\n }\n}\n\nexport default ScrollableTable"],"names":["ScrollableTable","properties","that","scrollableRef","createRef","render","props","getScrollable","PureComponent"],"mappings":";;;;;;;;IAQMA;;;AAEF,2BAAYC,UAAZ,EAAwB;AAAA;AAAA;AACpB,8BAAMA,UAAN;AACA,QAAMC,IAAI,gCAAV;AAEA,QAAMC,aAAa,GAAGC,SAAS,EAA/B;AAEAF,IAAAA,IAAI,CAACG,MAAD,CAAJ,GAAe,YAAM;AACjB,aAAO;AAAK,QAAA,SAAS;AAAd,SACH,mBAAC,UAAD;AAAY,QAAA,GAAG,EAAEF;AAAjB,SACI,mBAAC,KAAD,EAAWG,KAAK,CAACJ,IAAD,CAAhB,CADJ,CADG,CAAP;AAKH,KAND;AAOAA,IAAAA,IAAI,CAACK,aAAL,GAAqB;AAAA,aAAMJ,aAAa,EAAnB;AAAA,KAArB;AAboB;AAcvB;;EAhByBK;AAmB9B,wBAAeR,eAAf;;;;"}
1
+ {"version":3,"file":"ScrollableTable.js","sources":["../src/react-ui-basics/ScrollableTable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport Table from \"./Table\";\nimport Scrollable from \"./Scrollable\";\nimport \"./ScrollableTable.css\";\nimport {props, render, PureComponent} from \"./ReactConstants\";\nimport {createRef} from \"./Tools\";\nimport PropTypes from \"prop-types\";\n\nclass ScrollableTable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n\n const scrollableRef = createRef();\n\n that[render] = () => {\n return <div className={`ScrollableTable`}>\n <Scrollable ref={scrollableRef} {...props(that).scrollableProps}>\n <Table {...props(that)}/>\n </Scrollable>\n </div>;\n }\n that.getScrollable = () => scrollableRef()\n }\n}\n\nexport default ScrollableTable\n\nif (window.isNotProductionEnvironment) {\n ScrollableTable.propTypes = Table.propTypes;\n}"],"names":["ScrollableTable","properties","that","scrollableRef","createRef","render","props","scrollableProps","getScrollable","PureComponent","window","isNotProductionEnvironment","propTypes","Table"],"mappings":";;;;;;;;;IASMA;;;AAEF,2BAAYC,UAAZ,EAAwB;AAAA;AAAA;AACpB,8BAAMA,UAAN;AACA,QAAMC,IAAI,gCAAV;AAEA,QAAMC,aAAa,GAAGC,SAAS,EAA/B;AAEAF,IAAAA,IAAI,CAACG,MAAD,CAAJ,GAAe,YAAM;AACjB,aAAO;AAAK,QAAA,SAAS;AAAd,SACH,mBAAC,UAAD;AAAY,QAAA,GAAG,EAAEF;AAAjB,SAAoCG,KAAK,CAACJ,IAAD,CAAL,CAAYK,eAAhD,GACI,mBAAC,KAAD,EAAWD,KAAK,CAACJ,IAAD,CAAhB,CADJ,CADG,CAAP;AAKH,KAND;AAOAA,IAAAA,IAAI,CAACM,aAAL,GAAqB;AAAA,aAAML,aAAa,EAAnB;AAAA,KAArB;AAboB;AAcvB;;EAhByBM;AAmB9B,wBAAeT,eAAf;AAEA,IAAIU,MAAM,CAACC,0BAAX,EAAuC;AACnCX,EAAAA,eAAe,CAACY,SAAhB,GAA4BC,KAAK,CAACD,SAAlC;AACH;;;;"}
package/Table.js CHANGED
@@ -1,4 +1,4 @@
1
- import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, createClass as _createClass } from './_virtual/_rollupPluginBabelHelpers.js';
1
+ import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, createClass as _createClass } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { Component } from 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import PropTypes from 'prop-types';
@@ -25,6 +25,7 @@ var Table = function (_Component) {
25
25
  sortBy = _this$state.sortBy,
26
26
  sortOrder = _this$state.sortOrder,
27
27
  comparator = _this$state.comparator;
28
+ data = _toConsumableArray(data);
28
29
  if (sortBy) {
29
30
  var c = comparator;
30
31
  if (c && sortOrder === SORT_DESC) c = Comparators.inverse(c);
@@ -129,25 +130,42 @@ var Table = function (_Component) {
129
130
  }, {
130
131
  key: "componentDidUpdate",
131
132
  value: function componentDidUpdate(prevProps, prevState, snapshot) {
132
- if (this.props.data !== prevProps.data) {
133
- this.setData(this.props.data);
133
+ var _this3 = this;
134
+ var _this$props2 = this.props,
135
+ sortBy = _this$props2.sortBy,
136
+ sortOrder = _this$props2.sortOrder,
137
+ columns = _this$props2.columns,
138
+ data = _this$props2.data;
139
+ if (sortBy !== prevProps.sortBy || sortOrder !== prevProps.sortOrder) {
140
+ var _columns$find2;
141
+ this.setState({
142
+ sortBy: sortBy,
143
+ sortOrder: sortOrder || SORT_ASC,
144
+ comparator: (_columns$find2 = columns.find(function (it) {
145
+ return it.field === sortBy;
146
+ })) == null ? void 0 : _columns$find2.comparator
147
+ }, function () {
148
+ return _this3.setData(data);
149
+ });
150
+ } else if (data !== prevProps.data) {
151
+ this.setData(data);
134
152
  }
135
153
  this.updateHeaders();
136
154
  }
137
155
  }, {
138
156
  key: "render",
139
157
  value: function render() {
140
- var _this3 = this;
141
- var _this$props2 = this.props,
142
- _this$props2$columns = _this$props2.columns,
143
- columns = _this$props2$columns === void 0 ? [] : _this$props2$columns,
144
- _this$props2$onRowCli = _this$props2.onRowClick,
145
- onRowClick = _this$props2$onRowCli === void 0 ? NOOP : _this$props2$onRowCli,
146
- disabled = _this$props2.disabled,
147
- className = _this$props2.className,
148
- rowClassName = _this$props2.rowClassName,
149
- _this$props2$toKey = _this$props2.toKey,
150
- toKey = _this$props2$toKey === void 0 ? getId : _this$props2$toKey;
158
+ var _this4 = this;
159
+ var _this$props3 = this.props,
160
+ _this$props3$columns = _this$props3.columns,
161
+ columns = _this$props3$columns === void 0 ? [] : _this$props3$columns,
162
+ _this$props3$onRowCli = _this$props3.onRowClick,
163
+ onRowClick = _this$props3$onRowCli === void 0 ? NOOP : _this$props3$onRowCli,
164
+ disabled = _this$props3.disabled,
165
+ className = _this$props3.className,
166
+ rowClassName = _this$props3.rowClassName,
167
+ _this$props3$toKey = _this$props3.toKey,
168
+ toKey = _this$props3$toKey === void 0 ? getId : _this$props3$toKey;
151
169
  var _this$state2 = this.state,
152
170
  sortBy = _this$state2.sortBy,
153
171
  sortOrder = _this$state2.sortOrder,
@@ -158,7 +176,7 @@ var Table = function (_Component) {
158
176
  className: classNames("Table", className)
159
177
  }, ReactCreateElement("thead", null, ReactCreateElement("tr", {
160
178
  ref: function ref(headers) {
161
- return _this3.headers = headers;
179
+ return _this4.headers = headers;
162
180
  }
163
181
  }, columns.filter(function (it) {
164
182
  return !!it;
@@ -167,7 +185,7 @@ var Table = function (_Component) {
167
185
  return ReactCreateElement("th", {
168
186
  key: i,
169
187
  onClick: function onClick(e) {
170
- return sortable && _this3.sort(e, column.field, column.comparator);
188
+ return sortable && _this4.sort(e, column.field, column.comparator);
171
189
  }
172
190
  }, ReactCreateElement("div", {
173
191
  className: classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')
@@ -191,7 +209,7 @@ var Table = function (_Component) {
191
209
  onClick: onRowClick,
192
210
  className: rowClassName,
193
211
  columns: columns,
194
- editingContext: _this3
212
+ editingContext: _this4
195
213
  });
196
214
  })));
197
215
  }
package/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../src/react-ui-basics/Table.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Table.css'\nimport PropTypes from \"prop-types\";\nimport TextField from \"./TextField\";\nimport AutocompleteSelect, {MODE_DEFAULT, MODE_MULTIPLE_MINI} from \"./AutocompleteSelect\";\nimport Switch from \"./Switch\";\nimport {Comparators, NOOP, classNames, preventDefault, stopPropagation, isFunction, isString, orNoop} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nexport const SORT_ASC = Comparators.SORT_ASC;\nexport const SORT_DESC = Comparators.SORT_DESC;\n\nconst getId = item => item.id;\n\n\nclass Table extends Component {\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const {sortBy, sortOrder = SORT_ASC, columns} = this.props;\n this.setState({\n sortBy,\n sortOrder,\n comparator: columns.find(it => it.field === sortBy)?.comparator\n }, () => this.setData(this.props.data));\n\n this.updateHeaders();\n this.updateHeadersInterval = setInterval(this.updateHeaders, 1000)\n };\n\n setData = (data) => {\n const {sortBy, sortOrder, comparator} = this.state;\n if (sortBy) {\n let c = comparator\n if(c && sortOrder === SORT_DESC)\n c = Comparators.inverse(c)\n\n data.sort(c || Comparators.of(sortBy, sortOrder, data));\n }\n this.setState({data}, () => {\n orNoop(this.props.onSortChange)(sortBy, sortOrder)\n })\n };\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data !== prevProps.data) {\n this.setData(this.props.data)\n }\n this.updateHeaders();\n };\n\n render() {\n const {columns = [], onRowClick = NOOP, disabled, className, rowClassName, toKey = getId} = this.props;\n const {sortBy, sortOrder, data = [], editing} = this.state;\n return (\n <table className={classNames(`Table`, className)}>\n <thead>\n <tr ref={headers => this.headers = headers}>\n {columns.filter(it => !!it).map((column, i) => {\n const sortable = column.sortable || column.sortable == null;\n return (\n <th key={i} onClick={e => sortable && this.sort(e, column.field, column.comparator)}>\n <div className={classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n <div className={classNames('fixed', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {data.map(item => (<Row key={toKey(item)}\n item={item}\n disabled={disabled}\n editing={editing && editing.id === item.id ? editing : null}\n onClick={onRowClick}\n className={rowClassName}\n columns={columns}\n editingContext={this}\n />\n ))}\n </tbody>\n </table>\n );\n };\n\n componentWillUnmount() {\n clearInterval(this.updateHeadersInterval)\n };\n\n updateHeaders = () => {\n const headers = this.headers;\n\n const hidden = headers.querySelectorAll('.hidden');\n const fixed = headers.querySelectorAll('.fixed');\n for (let i = 0; i < hidden.length; i++) {\n fixed[i].style.width = hidden[i].offsetWidth + 'px'\n }\n };\n\n cancelEditing = () => this.setState({editing: false});\n\n setEditing = (item, columnIndex, field) => this.setState({editing: this.prepareEditing(item, field, columnIndex)});\n\n prepareEditing = (item, field, columnIndex) => ({id: item.id, value: item[field], columnIndex, item, field});\n\n handleInputChange = (event) => {\n const value = this.extractValue(event);\n this.setState({editing: {...this.state.editing, value}});\n };\n\n extractValue = (event) => {\n const target = event.target;\n return target.type === 'checkbox' ? target.checked : target.value;\n };\n\n selectNewValue = (value) => {\n this.setState({editing: {...this.state.editing, value}}, this.onFinishEditing);\n };\n\n onFinishEditing = (e) => {\n const editing = this.state.editing;\n if (editing.value === null)\n return;\n\n let value = editing.value;\n if (isString(value))\n value = value.trim();\n\n if (value === editing.item[editing.field])\n return this.cancelEditing();\n\n let updated = {\n ...editing.item,\n [editing.field]: value\n };\n this.props.onChange(updated, this.cancelEditing)\n };\n\n sort = (e, sortBy, comparator) => {\n preventDefault(e);\n this.setState({\n sortOrder: this.state.sortBy === sortBy && this.state.sortOrder === SORT_ASC ? SORT_DESC : SORT_ASC,\n comparator,\n sortBy\n }, () => this.setData(this.state.data));\n }\n}\n\nconst formatValue = (item, column) => {\n const value = (column.value !== undefined) ? column.value : item[column.field];\n if (column.formatter) {\n return column.formatter(value, item, column.format)\n } else {\n return '' + value\n }\n};\n\nconst Row = React.memo(({item, disabled, editing, onClick, className, columns, editingContext}) => {\n return <tr onClick={e => onClick(item)}\n className={classNames(disabled && disabled(item) && 'disabled', className && (isFunction(className) ? className(item) : className))}>\n {columns.filter(it => !!it).map((column, i) => {\n const isEditing = editing && editing.id === item.id && editing.columnIndex === i;\n const editable = isFunction(column.editable) ? column.editable(item) : !!column.editable;\n return (\n <td key={i}\n className={classNames(editable ? 'editable' : 'ro', isEditing && 'editing', column.className)}\n onClick={!isEditing && editable ? () => editingContext.setEditing(item, i, column.field) : NOOP}>\n {(isEditing || column.displayEditor) && !column.editor && (\n <TextField\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n focused={true}\n onBlur={editingContext.cancelEditing}\n onChange={editingContext.handleInputChange}\n onKeyDown={e => {\n if (e.keyCode === 27/*escape*/) {\n preventDefault(e);\n editingContext.cancelEditing();\n }\n if (e.keyCode === 13/*enter*/) {\n preventDefault(e);\n editingContext.onFinishEditing();\n }\n }}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Select' && (\n <AutocompleteSelect\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n data={column.editorData}\n focused={true}\n withArrow={false}\n withFilter={false}\n selectedMode={'inline'}\n selectedComponent={column.editorSelectedComponent}\n mode={column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}\n onChange={column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n onSelect={!column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n childComponent={column.editorChildCompononRowClickent}\n onCancel={editingContext.cancelEditing}\n prefilter={column.prefilter}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Switch' && (\n <Switch onClick={e => {\n stopPropagation(e);\n preventDefault(e);\n editingContext.setState({\n editing: {\n ...editingContext.prepareEditing(item, column.field, i),\n value: !item[column.field]\n }\n }, editingContext.onFinishEditing);\n }} value={item[column.field]}/>\n )}\n {(isEditing || column.displayEditor) && isFunction(column.editor) && column.editor(item, editingContext.cancelEditing, isEditing)}\n {!isEditing && !column.displayEditor && formatValue(item, column)}\n </td>\n );\n })}\n </tr>\n }\n)\n\nTable.defaultProps = {\n columns: [],\n onRowClick: NOOP,\n toKey: getId,\n};\n\nif (window.isNotProductionEnvironment) {\n Table.propTypes = {\n className: PropTypes.string,\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n columns: PropTypes.arrayOf(PropTypes.shape({\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n sortable: PropTypes.bool,\n field: PropTypes.string,\n formatter: PropTypes.func,\n comparator: PropTypes.func,\n editable: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n editor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n displayEditor: PropTypes.bool,\n preEditor: PropTypes.func,\n })),\n data: PropTypes.array,\n disabled: PropTypes.func,\n onRowClick: PropTypes.func,\n onSortChange: PropTypes.func,\n onChange: PropTypes.func,\n toKey: PropTypes.func,\n };\n}\n\n\nexport default Table;"],"names":["SORT_ASC","Comparators","SORT_DESC","getId","item","id","Table","props","setData","data","state","sortBy","sortOrder","comparator","c","inverse","sort","of","setState","orNoop","onSortChange","updateHeaders","headers","hidden","querySelectorAll","fixed","i","length","style","width","offsetWidth","cancelEditing","editing","setEditing","columnIndex","field","prepareEditing","value","handleInputChange","event","extractValue","target","type","checked","selectNewValue","onFinishEditing","e","isString","trim","updated","onChange","preventDefault","columns","find","it","updateHeadersInterval","setInterval","prevProps","prevState","snapshot","onRowClick","NOOP","disabled","className","rowClassName","toKey","classNames","filter","map","column","sortable","header","clearInterval","Component","formatValue","undefined","formatter","format","Row","React","memo","onClick","editingContext","isFunction","isEditing","editable","displayEditor","editor","preEditor","keyCode","editorData","editorSelectedComponent","multiSelect","MODE_MULTIPLE_MINI","MODE_DEFAULT","onSelect","editorChildCompononRowClickent","prefilter","stopPropagation","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","func","arrayOf","shape","element","bool","array"],"mappings":";;;;;;;;;;IAUaA,QAAQ,GAAGC,WAAW,CAACD;IACvBE,SAAS,GAAGD,WAAW,CAACC;AAErC,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAAAC,IAAI;AAAA,SAAIA,IAAI,CAACC,EAAT;AAAA,CAAlB;IAGMC;;;AAEF,iBAAYC,KAAZ,EAAmB;AAAA;AAAA;AACf,8BAAMA,KAAN;AADe,UAiBnBC,OAjBmB,GAiBT,UAACC,IAAD,EAAU;AAChB,wBAAwC,MAAKC,KAA7C;AAAA,UAAOC,MAAP,eAAOA,MAAP;AAAA,UAAeC,SAAf,eAAeA,SAAf;AAAA,UAA0BC,UAA1B,eAA0BA,UAA1B;AACA,UAAIF,MAAJ,EAAY;AACR,YAAIG,CAAC,GAAGD,UAAR;AACA,YAAGC,CAAC,IAAIF,SAAS,KAAKV,SAAtB,EACIY,CAAC,GAAGb,WAAW,CAACc,OAAZ,CAAoBD,CAApB,CAAJ;AAEJL,QAAAA,IAAI,CAACO,IAAL,CAAUF,CAAC,IAAIb,WAAW,CAACgB,EAAZ,CAAeN,MAAf,EAAuBC,SAAvB,EAAkCH,IAAlC,CAAf;AACH;AACD,YAAKS,QAAL,CAAc;AAACT,QAAAA,IAAI,EAAJA;AAAD,OAAd,EAAsB,YAAM;AACxBU,QAAAA,MAAM,CAAC,MAAKZ,KAAL,CAAWa,YAAZ,CAAN,CAAgCT,MAAhC,EAAwCC,SAAxC;AACH,OAFD;AAGH,KA7BkB;AAAA,UAoFnBS,aApFmB,GAoFH,YAAM;AAClB,UAAMC,OAAO,GAAG,MAAKA,OAArB;AAEA,UAAMC,MAAM,GAAGD,OAAO,CAACE,gBAAR,CAAyB,SAAzB,CAAf;AACA,UAAMC,KAAK,GAAGH,OAAO,CAACE,gBAAR,CAAyB,QAAzB,CAAd;AACA,WAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,MAAM,CAACI,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACpCD,QAAAA,KAAK,CAACC,CAAD,CAAL,CAASE,KAAT,CAAeC,KAAf,GAAuBN,MAAM,CAACG,CAAD,CAAN,CAAUI,WAAV,GAAwB,IAA/C;AACH;AACJ,KA5FkB;AAAA,UA8FnBC,aA9FmB,GA8FH;AAAA,aAAM,MAAKb,QAAL,CAAc;AAACc,QAAAA,OAAO,EAAE;AAAV,OAAd,CAAN;AAAA,KA9FG;AAAA,UAgGnBC,UAhGmB,GAgGN,UAAC7B,IAAD,EAAO8B,WAAP,EAAoBC,KAApB;AAAA,aAA8B,MAAKjB,QAAL,CAAc;AAACc,QAAAA,OAAO,EAAE,MAAKI,cAAL,CAAoBhC,IAApB,EAA0B+B,KAA1B,EAAiCD,WAAjC;AAAV,OAAd,CAA9B;AAAA,KAhGM;AAAA,UAkGnBE,cAlGmB,GAkGF,UAAChC,IAAD,EAAO+B,KAAP,EAAcD,WAAd;AAAA,aAA+B;AAAC7B,QAAAA,EAAE,EAAED,IAAI,CAACC,EAAV;AAAcgC,QAAAA,KAAK,EAAEjC,IAAI,CAAC+B,KAAD,CAAzB;AAAkCD,QAAAA,WAAW,EAAXA,WAAlC;AAA+C9B,QAAAA,IAAI,EAAJA,IAA/C;AAAqD+B,QAAAA,KAAK,EAALA;AAArD,OAA/B;AAAA,KAlGE;AAAA,UAoGnBG,iBApGmB,GAoGC,UAACC,KAAD,EAAW;AAC3B,UAAMF,KAAK,GAAG,MAAKG,YAAL,CAAkBD,KAAlB,CAAd;AACA,YAAKrB,QAAL,CAAc;AAACc,QAAAA,OAAO,oCAAM,MAAKtB,KAAL,CAAWsB,OAAjB;AAA0BK,UAAAA,KAAK,EAALA;AAA1B;AAAR,OAAd;AACH,KAvGkB;AAAA,UAyGnBG,YAzGmB,GAyGJ,UAACD,KAAD,EAAW;AACtB,UAAME,MAAM,GAAGF,KAAK,CAACE,MAArB;AACA,aAAOA,MAAM,CAACC,IAAP,KAAgB,UAAhB,GAA6BD,MAAM,CAACE,OAApC,GAA8CF,MAAM,CAACJ,KAA5D;AACH,KA5GkB;AAAA,UA8GnBO,cA9GmB,GA8GF,UAACP,KAAD,EAAW;AACxB,YAAKnB,QAAL,CAAc;AAACc,QAAAA,OAAO,oCAAM,MAAKtB,KAAL,CAAWsB,OAAjB;AAA0BK,UAAAA,KAAK,EAALA;AAA1B;AAAR,OAAd,EAAyD,MAAKQ,eAA9D;AACH,KAhHkB;AAAA,UAkHnBA,eAlHmB,GAkHD,UAACC,CAAD,EAAO;AACrB,UAAMd,OAAO,GAAG,MAAKtB,KAAL,CAAWsB,OAA3B;AACA,UAAIA,OAAO,CAACK,KAAR,KAAkB,IAAtB,EACI;AAEJ,UAAIA,KAAK,GAAGL,OAAO,CAACK,KAApB;AACA,UAAIU,QAAQ,CAACV,KAAD,CAAZ,EACIA,KAAK,GAAGA,KAAK,CAACW,IAAN,EAAR;AAEJ,UAAIX,KAAK,KAAKL,OAAO,CAAC5B,IAAR,CAAa4B,OAAO,CAACG,KAArB,CAAd,EACI,OAAO,MAAKJ,aAAL,EAAP;AAEJ,UAAIkB,OAAO,qCACJjB,OAAO,CAAC5B,IADJ,2BAEN4B,OAAO,CAACG,KAFF,EAEUE,KAFV,EAAX;AAIA,YAAK9B,KAAL,CAAW2C,QAAX,CAAoBD,OAApB,EAA6B,MAAKlB,aAAlC;AACH,KAnIkB;AAAA,UAqInBf,IArImB,GAqIZ,UAAC8B,CAAD,EAAInC,MAAJ,EAAYE,UAAZ,EAA2B;AAC9BsC,MAAAA,cAAc,CAACL,CAAD,CAAd;AACA,YAAK5B,QAAL,CAAc;AACVN,QAAAA,SAAS,EAAE,MAAKF,KAAL,CAAWC,MAAX,KAAsBA,MAAtB,IAAgC,MAAKD,KAAL,CAAWE,SAAX,KAAyBZ,QAAzD,GAAoEE,SAApE,GAAgFF,QADjF;AAEVa,QAAAA,UAAU,EAAVA,UAFU;AAGVF,QAAAA,MAAM,EAANA;AAHU,OAAd,EAIG;AAAA,eAAM,MAAKH,OAAL,CAAa,MAAKE,KAAL,CAAWD,IAAxB,CAAN;AAAA,OAJH;AAKH,KA5IkB;AAEf,UAAKC,KAAL,GAAa,EAAb;AAFe;AAGlB;;;WAED,6BAAoB;AAAA;AAAA;AAChB,wBAAgD,KAAKH,KAArD;AAAA,UAAOI,MAAP,eAAOA,MAAP;AAAA,8CAAeC,SAAf;AAAA,UAAeA,SAAf,sCAA2BZ,QAA3B;AAAA,UAAqCoD,OAArC,eAAqCA,OAArC;AACA,WAAKlC,QAAL,CAAc;AACVP,QAAAA,MAAM,EAANA,MADU;AAEVC,QAAAA,SAAS,EAATA,SAFU;AAGVC,QAAAA,UAAU,mBAAEuC,OAAO,CAACC,IAAR,CAAa,UAAAC,EAAE;AAAA,iBAAIA,EAAE,CAACnB,KAAH,KAAaxB,MAAjB;AAAA,SAAf,CAAF,qBAAE,cAAyCE;AAH3C,OAAd,EAIG;AAAA,eAAM,MAAI,CAACL,OAAL,CAAa,MAAI,CAACD,KAAL,CAAWE,IAAxB,CAAN;AAAA,OAJH;AAMA,WAAKY,aAAL;AACA,WAAKkC,qBAAL,GAA6BC,WAAW,CAAC,KAAKnC,aAAN,EAAqB,IAArB,CAAxC;AACH;;;WAgBD,4BAAmBoC,SAAnB,EAA8BC,SAA9B,EAAyCC,QAAzC,EAAmD;AAC/C,UAAI,KAAKpD,KAAL,CAAWE,IAAX,KAAoBgD,SAAS,CAAChD,IAAlC,EAAwC;AACpC,aAAKD,OAAL,CAAa,KAAKD,KAAL,CAAWE,IAAxB;AACH;AACD,WAAKY,aAAL;AACH;;;WAED,kBAAS;AAAA;AACL,yBAA4F,KAAKd,KAAjG;AAAA,8CAAO6C,OAAP;AAAA,UAAOA,OAAP,qCAAiB,EAAjB;AAAA,+CAAqBQ,UAArB;AAAA,UAAqBA,UAArB,sCAAkCC,IAAlC;AAAA,UAAwCC,QAAxC,gBAAwCA,QAAxC;AAAA,UAAkDC,SAAlD,gBAAkDA,SAAlD;AAAA,UAA6DC,YAA7D,gBAA6DA,YAA7D;AAAA,4CAA2EC,KAA3E;AAAA,UAA2EA,KAA3E,mCAAmF9D,KAAnF;AACA,yBAAgD,KAAKO,KAArD;AAAA,UAAOC,MAAP,gBAAOA,MAAP;AAAA,UAAeC,SAAf,gBAAeA,SAAf;AAAA,2CAA0BH,IAA1B;AAAA,UAA0BA,IAA1B,kCAAiC,EAAjC;AAAA,UAAqCuB,OAArC,gBAAqCA,OAArC;AACA,aACI;AAAO,QAAA,SAAS,EAAEkC,UAAU,UAAUH,SAAV;AAA5B,SACI,kCACA;AAAI,QAAA,GAAG,EAAE,aAAAzC,OAAO;AAAA,iBAAI,MAAI,CAACA,OAAL,GAAeA,OAAnB;AAAA;AAAhB,SACK8B,OAAO,CAACe,MAAR,CAAe,UAAAb,EAAE;AAAA,eAAI,CAAC,CAACA,EAAN;AAAA,OAAjB,EAA2Bc,GAA3B,CAA+B,UAACC,MAAD,EAAS3C,CAAT,EAAe;AAC3C,YAAM4C,QAAQ,GAAGD,MAAM,CAACC,QAAP,IAAmBD,MAAM,CAACC,QAAP,IAAmB,IAAvD;AACA,eACI;AAAI,UAAA,GAAG,EAAE5C,CAAT;AAAY,UAAA,OAAO,EAAE,iBAAAoB,CAAC;AAAA,mBAAIwB,QAAQ,IAAI,MAAI,CAACtD,IAAL,CAAU8B,CAAV,EAAauB,MAAM,CAAClC,KAApB,EAA2BkC,MAAM,CAACxD,UAAlC,CAAhB;AAAA;AAAtB,WACI;AAAK,UAAA,SAAS,EAAEqD,UAAU,CAAC,QAAD,EAAWI,QAAQ,IAAI,UAAvB,EAAmC3D,MAAM,KAAK0D,MAAM,CAAClC,KAAlB,IAA2B,QAA9D;AAA1B,WACKkC,MAAM,CAACE,MADZ,EAEKF,MAAM,CAACE,MAAP,IAAiB5D,MAAM,KAAK0D,MAAM,CAAClC,KAAnC,IAA4CvB,SAAS,KAAKZ,QAA1D,IAAuE,mBAAC,YAAD;AAAc,UAAA,IAAI,EAAE;AAApB,UAF5E,EAGKqE,MAAM,CAACE,MAAP,IAAiB5D,MAAM,KAAK0D,MAAM,CAAClC,KAAnC,IAA4CvB,SAAS,KAAKV,SAA1D,IAAwE,mBAAC,YAAD;AAAc,UAAA,IAAI,EAAE;AAApB,UAH7E,CADJ,EAMI;AAAK,UAAA,SAAS,EAAEgE,UAAU,CAAC,OAAD,EAAUI,QAAQ,IAAI,UAAtB,EAAkC3D,MAAM,KAAK0D,MAAM,CAAClC,KAAlB,IAA2B,QAA7D;AAA1B,WACKkC,MAAM,CAACE,MADZ,EAEKF,MAAM,CAACE,MAAP,IAAiB5D,MAAM,KAAK0D,MAAM,CAAClC,KAAnC,IAA4CvB,SAAS,KAAKZ,QAA1D,IAAuE,mBAAC,YAAD;AAAc,UAAA,IAAI,EAAE;AAApB,UAF5E,EAGKqE,MAAM,CAACE,MAAP,IAAiB5D,MAAM,KAAK0D,MAAM,CAAClC,KAAnC,IAA4CvB,SAAS,KAAKV,SAA1D,IAAwE,mBAAC,YAAD;AAAc,UAAA,IAAI,EAAE;AAApB,UAH7E,CANJ,CADJ;AAcH,OAhBA,CADL,CADA,CADJ,EAsBI,kCACCO,IAAI,CAAC2D,GAAL,CAAS,UAAAhE,IAAI;AAAA,eAAK,mBAAC,GAAD;AAAK,UAAA,GAAG,EAAE6D,KAAK,CAAC7D,IAAD,CAAf;AACK,UAAA,IAAI,EAAEA,IADX;AAEK,UAAA,QAAQ,EAAE0D,QAFf;AAGK,UAAA,OAAO,EAAE9B,OAAO,IAAIA,OAAO,CAAC3B,EAAR,KAAeD,IAAI,CAACC,EAA/B,GAAoC2B,OAApC,GAA8C,IAH5D;AAIK,UAAA,OAAO,EAAE4B,UAJd;AAKK,UAAA,SAAS,EAAEI,YALhB;AAMK,UAAA,OAAO,EAAEZ,OANd;AAOK,UAAA,cAAc,EAAE;AAPrB,UAAL;AAAA,OAAb,CADD,CAtBJ,CADJ;AAqCH;;;WAED,gCAAuB;AACnBoB,MAAAA,aAAa,CAAC,KAAKjB,qBAAN,CAAb;AACH;;;EApFekB;AAiJpB,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACtE,IAAD,EAAOiE,MAAP,EAAkB;AAClC,MAAMhC,KAAK,GAAIgC,MAAM,CAAChC,KAAP,KAAiBsC,SAAlB,GAA+BN,MAAM,CAAChC,KAAtC,GAA8CjC,IAAI,CAACiE,MAAM,CAAClC,KAAR,CAAhE;AACA,MAAIkC,MAAM,CAACO,SAAX,EAAsB;AAClB,WAAOP,MAAM,CAACO,SAAP,CAAiBvC,KAAjB,EAAwBjC,IAAxB,EAA8BiE,MAAM,CAACQ,MAArC,CAAP;AACH,GAFD,MAEO;AACH,WAAO,KAAKxC,KAAZ;AACH;AACJ,CAPD;AASA,IAAMyC,GAAG,GAAGC,KAAK,CAACC,IAAN,CAAW,gBAA4E;AAAA,MAA1E5E,IAA0E,QAA1EA,IAA0E;AAAA,MAApE0D,QAAoE,QAApEA,QAAoE;AAAA,MAA1D9B,OAA0D,QAA1DA,OAA0D;AAAA,MAAjDiD,QAAiD,QAAjDA,OAAiD;AAAA,MAAxClB,SAAwC,QAAxCA,SAAwC;AAAA,MAA7BX,OAA6B,QAA7BA,OAA6B;AAAA,MAApB8B,cAAoB,QAApBA,cAAoB;AAC/F,SAAO;AAAI,IAAA,OAAO,EAAE,iBAAApC,CAAC;AAAA,aAAImC,QAAO,CAAC7E,IAAD,CAAX;AAAA,KAAd;AACI,IAAA,SAAS,EAAE8D,UAAU,CAACJ,QAAQ,IAAIA,QAAQ,CAAC1D,IAAD,CAApB,IAA8B,UAA/B,EAA2C2D,SAAS,KAAKoB,UAAU,CAACpB,SAAD,CAAV,GAAwBA,SAAS,CAAC3D,IAAD,CAAjC,GAA0C2D,SAA/C,CAApD;AADzB,KAEFX,OAAO,CAACe,MAAR,CAAe,UAAAb,EAAE;AAAA,WAAI,CAAC,CAACA,EAAN;AAAA,GAAjB,EAA2Bc,GAA3B,CAA+B,UAACC,MAAD,EAAS3C,CAAT,EAAe;AAC3C,QAAM0D,SAAS,GAAGpD,OAAO,IAAIA,OAAO,CAAC3B,EAAR,KAAeD,IAAI,CAACC,EAA/B,IAAqC2B,OAAO,CAACE,WAAR,KAAwBR,CAA/E;AACA,QAAM2D,QAAQ,GAAGF,UAAU,CAACd,MAAM,CAACgB,QAAR,CAAV,GAA8BhB,MAAM,CAACgB,QAAP,CAAgBjF,IAAhB,CAA9B,GAAsD,CAAC,CAACiE,MAAM,CAACgB,QAAhF;AACA,WACI;AAAI,MAAA,GAAG,EAAE3D,CAAT;AACI,MAAA,SAAS,EAAEwC,UAAU,CAACmB,QAAQ,GAAG,UAAH,GAAgB,IAAzB,EAA+BD,SAAS,IAAI,SAA5C,EAAuDf,MAAM,CAACN,SAA9D,CADzB;AAEI,MAAA,OAAO,EAAE,CAACqB,SAAD,IAAcC,QAAd,GAAyB;AAAA,eAAMH,cAAc,CAACjD,UAAf,CAA0B7B,IAA1B,EAAgCsB,CAAhC,EAAmC2C,MAAM,CAAClC,KAA1C,CAAN;AAAA,OAAzB,GAAkF0B;AAF/F,OAGK,CAACuB,SAAS,IAAIf,MAAM,CAACiB,aAArB,KAAuC,CAACjB,MAAM,CAACkB,MAA/C,IACG,mBAAC,SAAD;AACI,MAAA,KAAK,EAAElB,MAAM,CAACmB,SAAP,GAAmBnB,MAAM,CAACmB,SAAP,CAAiBxD,OAAO,CAACK,KAAzB,CAAnB,GAAqDL,OAAO,CAACK,KADxE;AAEI,MAAA,OAAO,EAAE,IAFb;AAGI,MAAA,MAAM,EAAE6C,cAAc,CAACnD,aAH3B;AAII,MAAA,QAAQ,EAAEmD,cAAc,CAAC5C,iBAJ7B;AAKI,MAAA,SAAS,EAAE,mBAAAQ,CAAC,EAAI;AACZ,YAAIA,CAAC,CAAC2C,OAAF,KAAc;AAAlB,UAAgC;AAC5BtC,UAAAA,cAAc,CAACL,CAAD,CAAd;AACAoC,UAAAA,cAAc,CAACnD,aAAf;AACH;AACD,YAAIe,CAAC,CAAC2C,OAAF,KAAc;AAAlB,UAA+B;AAC3BtC,UAAAA,cAAc,CAACL,CAAD,CAAd;AACAoC,UAAAA,cAAc,CAACrC,eAAf;AACH;AACJ;AAdL,MAJR,EAqBK,CAACuC,SAAS,IAAIf,MAAM,CAACiB,aAArB,KAAuCjB,MAAM,CAACkB,MAAP,KAAkB,QAAzD,IACG,mBAAC,kBAAD;AACI,MAAA,KAAK,EAAElB,MAAM,CAACmB,SAAP,GAAmBnB,MAAM,CAACmB,SAAP,CAAiBxD,OAAO,CAACK,KAAzB,CAAnB,GAAqDL,OAAO,CAACK,KADxE;AAEI,MAAA,IAAI,EAAEgC,MAAM,CAACqB,UAFjB;AAGI,MAAA,OAAO,EAAE,IAHb;AAII,MAAA,SAAS,EAAE,KAJf;AAKI,MAAA,UAAU,EAAE,KALhB;AAMI,MAAA,YAAY,EAAE,QANlB;AAOI,MAAA,iBAAiB,EAAErB,MAAM,CAACsB,uBAP9B;AAQI,MAAA,IAAI,EAAEtB,MAAM,CAACuB,WAAP,GAAqBC,kBAArB,GAA0CC,YARpD;AASI,MAAA,QAAQ,EAAEzB,MAAM,CAACuB,WAAP,KAAuBvB,MAAM,CAAC0B,QAAP,GAAmB,UAAA1D,KAAK;AAAA,eAAI6C,cAAc,CAACtC,cAAf,CAA8ByB,MAAM,CAAC0B,QAAP,CAAgB1D,KAAhB,CAA9B,CAAJ;AAAA,OAAxB,GAAqF6C,cAAc,CAACtC,cAA3H,CATd;AAUI,MAAA,QAAQ,EAAE,CAACyB,MAAM,CAACuB,WAAR,KAAwBvB,MAAM,CAAC0B,QAAP,GAAmB,UAAA1D,KAAK;AAAA,eAAI6C,cAAc,CAACtC,cAAf,CAA8ByB,MAAM,CAAC0B,QAAP,CAAgB1D,KAAhB,CAA9B,CAAJ;AAAA,OAAxB,GAAqF6C,cAAc,CAACtC,cAA5H,CAVd;AAWI,MAAA,cAAc,EAAEyB,MAAM,CAAC2B,8BAX3B;AAYI,MAAA,QAAQ,EAAEd,cAAc,CAACnD,aAZ7B;AAaI,MAAA,SAAS,EAAEsC,MAAM,CAAC4B;AAbtB,MAtBR,EAsCK,CAACb,SAAS,IAAIf,MAAM,CAACiB,aAArB,KAAuCjB,MAAM,CAACkB,MAAP,KAAkB,QAAzD,IACG,mBAAC,MAAD;AAAQ,MAAA,OAAO,EAAE,iBAAAzC,CAAC,EAAI;AAClBoD,QAAAA,eAAe,CAACpD,CAAD,CAAf;AACAK,QAAAA,cAAc,CAACL,CAAD,CAAd;AACAoC,QAAAA,cAAc,CAAChE,QAAf,CAAwB;AACpBc,UAAAA,OAAO,oCACAkD,cAAc,CAAC9C,cAAf,CAA8BhC,IAA9B,EAAoCiE,MAAM,CAAClC,KAA3C,EAAkDT,CAAlD,CADA;AAEHW,YAAAA,KAAK,EAAE,CAACjC,IAAI,CAACiE,MAAM,CAAClC,KAAR;AAFT;AADa,SAAxB,EAKG+C,cAAc,CAACrC,eALlB;AAMH,OATD;AASG,MAAA,KAAK,EAAEzC,IAAI,CAACiE,MAAM,CAAClC,KAAR;AATd,MAvCR,EAkDK,CAACiD,SAAS,IAAIf,MAAM,CAACiB,aAArB,KAAuCH,UAAU,CAACd,MAAM,CAACkB,MAAR,CAAjD,IAAoElB,MAAM,CAACkB,MAAP,CAAcnF,IAAd,EAAoB8E,cAAc,CAACnD,aAAnC,EAAkDqD,SAAlD,CAlDzE,EAmDK,CAACA,SAAD,IAAc,CAACf,MAAM,CAACiB,aAAtB,IAAuCZ,WAAW,CAACtE,IAAD,EAAOiE,MAAP,CAnDvD,CADJ;AAuDH,GA1DA,CAFE,CAAP;AA8DC,CA/DO,CAAZ;AAkEA/D,KAAK,CAAC6F,YAAN,GAAqB;AACjB/C,EAAAA,OAAO,EAAE,EADQ;AAEjBQ,EAAAA,UAAU,EAAEC,IAFK;AAGjBI,EAAAA,KAAK,EAAE9D;AAHU,CAArB;AAMA,IAAIiG,MAAM,CAACC,0BAAX,EAAuC;AACnC/F,EAAAA,KAAK,CAACgG,SAAN,GAAkB;AACdvC,IAAAA,SAAS,EAAEwC,SAAS,CAACC,MADP;AAEdxC,IAAAA,YAAY,EAAEuC,SAAS,CAACE,SAAV,CAAoB,CAACF,SAAS,CAACC,MAAX,EAAmBD,SAAS,CAACG,IAA7B,CAApB,CAFA;AAGdtD,IAAAA,OAAO,EAAEmD,SAAS,CAACI,OAAV,CAAkBJ,SAAS,CAACK,KAAV,CAAgB;AACvCrC,MAAAA,MAAM,EAAEgC,SAAS,CAACE,SAAV,CAAoB,CAACF,SAAS,CAACC,MAAX,EAAmBD,SAAS,CAACM,OAA7B,CAApB,CAD+B;AAEvC9C,MAAAA,SAAS,EAAEwC,SAAS,CAACC,MAFkB;AAGvClC,MAAAA,QAAQ,EAAEiC,SAAS,CAACO,IAHmB;AAIvC3E,MAAAA,KAAK,EAAEoE,SAAS,CAACC,MAJsB;AAKvC5B,MAAAA,SAAS,EAAE2B,SAAS,CAACG,IALkB;AAMvC7F,MAAAA,UAAU,EAAE0F,SAAS,CAACG,IANiB;AAOvCrB,MAAAA,QAAQ,EAAEkB,SAAS,CAACE,SAAV,CAAoB,CAACF,SAAS,CAACO,IAAX,EAAiBP,SAAS,CAACG,IAA3B,CAApB,CAP6B;AAQvCnB,MAAAA,MAAM,EAAEgB,SAAS,CAACE,SAAV,CAAoB,CAACF,SAAS,CAACC,MAAX,EAAmBD,SAAS,CAACG,IAA7B,CAApB,CAR+B;AASvCpB,MAAAA,aAAa,EAAEiB,SAAS,CAACO,IATc;AAUvCtB,MAAAA,SAAS,EAAEe,SAAS,CAACG;AAVkB,KAAhB,CAAlB,CAHK;AAedjG,IAAAA,IAAI,EAAE8F,SAAS,CAACQ,KAfF;AAgBdjD,IAAAA,QAAQ,EAAEyC,SAAS,CAACG,IAhBN;AAiBd9C,IAAAA,UAAU,EAAE2C,SAAS,CAACG,IAjBR;AAkBdtF,IAAAA,YAAY,EAAEmF,SAAS,CAACG,IAlBV;AAmBdxD,IAAAA,QAAQ,EAAEqD,SAAS,CAACG,IAnBN;AAoBdzC,IAAAA,KAAK,EAAEsC,SAAS,CAACG;AApBH,GAAlB;AAsBH;AAGD,cAAepG,KAAf;;;;"}
1
+ {"version":3,"file":"Table.js","sources":["../src/react-ui-basics/Table.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Table.css'\nimport PropTypes from \"prop-types\";\nimport TextField from \"./TextField\";\nimport AutocompleteSelect, {MODE_DEFAULT, MODE_MULTIPLE_MINI} from \"./AutocompleteSelect\";\nimport Switch from \"./Switch\";\nimport {Comparators, NOOP, classNames, preventDefault, stopPropagation, isFunction, isString, orNoop} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nexport const SORT_ASC = Comparators.SORT_ASC;\nexport const SORT_DESC = Comparators.SORT_DESC;\n\nconst getId = item => item.id;\n\n\nclass Table extends Component {\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const {sortBy, sortOrder = SORT_ASC, columns} = this.props;\n this.setState({\n sortBy,\n sortOrder,\n comparator: columns.find(it => it.field === sortBy)?.comparator\n }, () => this.setData(this.props.data));\n\n this.updateHeaders();\n this.updateHeadersInterval = setInterval(this.updateHeaders, 1000)\n };\n\n setData = (data) => {\n const {sortBy, sortOrder, comparator} = this.state;\n data = [...data];\n if (sortBy) {\n let c = comparator\n if(c && sortOrder === SORT_DESC)\n c = Comparators.inverse(c)\n\n data.sort(c || Comparators.of(sortBy, sortOrder, data));\n }\n this.setState({data}, () => {\n orNoop(this.props.onSortChange)(sortBy, sortOrder)\n })\n };\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const {sortBy, sortOrder, columns, data} = this.props;\n if (sortBy !== prevProps.sortBy || sortOrder !== prevProps.sortOrder) {\n this.setState({\n sortBy,\n sortOrder: sortOrder || SORT_ASC,\n comparator: columns.find(it => it.field === sortBy)?.comparator\n }, () => this.setData(data));\n\n } else if (data !== prevProps.data) {\n this.setData(data)\n }\n this.updateHeaders();\n };\n\n render() {\n const {columns = [], onRowClick = NOOP, disabled, className, rowClassName, toKey = getId} = this.props;\n const {sortBy, sortOrder, data = [], editing} = this.state;\n return (\n <table className={classNames(`Table`, className)}>\n <thead>\n <tr ref={headers => this.headers = headers}>\n {columns.filter(it => !!it).map((column, i) => {\n const sortable = column.sortable || column.sortable == null;\n return (\n <th key={i} onClick={e => sortable && this.sort(e, column.field, column.comparator)}>\n <div className={classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n <div className={classNames('fixed', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {data.map(item => (<Row key={toKey(item)}\n item={item}\n disabled={disabled}\n editing={editing && editing.id === item.id ? editing : null}\n onClick={onRowClick}\n className={rowClassName}\n columns={columns}\n editingContext={this}\n />\n ))}\n </tbody>\n </table>\n );\n };\n\n componentWillUnmount() {\n clearInterval(this.updateHeadersInterval)\n };\n\n updateHeaders = () => {\n const headers = this.headers;\n\n const hidden = headers.querySelectorAll('.hidden');\n const fixed = headers.querySelectorAll('.fixed');\n for (let i = 0; i < hidden.length; i++) {\n fixed[i].style.width = hidden[i].offsetWidth + 'px'\n }\n };\n\n cancelEditing = () => this.setState({editing: false});\n\n setEditing = (item, columnIndex, field) => this.setState({editing: this.prepareEditing(item, field, columnIndex)});\n\n prepareEditing = (item, field, columnIndex) => ({id: item.id, value: item[field], columnIndex, item, field});\n\n handleInputChange = (event) => {\n const value = this.extractValue(event);\n this.setState({editing: {...this.state.editing, value}});\n };\n\n extractValue = (event) => {\n const target = event.target;\n return target.type === 'checkbox' ? target.checked : target.value;\n };\n\n selectNewValue = (value) => {\n this.setState({editing: {...this.state.editing, value}}, this.onFinishEditing);\n };\n\n onFinishEditing = (e) => {\n const editing = this.state.editing;\n if (editing.value === null)\n return;\n\n let value = editing.value;\n if (isString(value))\n value = value.trim();\n\n if (value === editing.item[editing.field])\n return this.cancelEditing();\n\n let updated = {\n ...editing.item,\n [editing.field]: value\n };\n this.props.onChange(updated, this.cancelEditing)\n };\n\n sort = (e, sortBy, comparator) => {\n preventDefault(e);\n this.setState({\n sortOrder: this.state.sortBy === sortBy && this.state.sortOrder === SORT_ASC ? SORT_DESC : SORT_ASC,\n comparator,\n sortBy\n }, () => this.setData(this.state.data));\n }\n}\n\nconst formatValue = (item, column) => {\n const value = (column.value !== undefined) ? column.value : item[column.field];\n if (column.formatter) {\n return column.formatter(value, item, column.format)\n } else {\n return '' + value\n }\n};\n\nconst Row = React.memo(({item, disabled, editing, onClick, className, columns, editingContext}) => {\n return <tr onClick={e => onClick(item)}\n className={classNames(disabled && disabled(item) && 'disabled', className && (isFunction(className) ? className(item) : className))}>\n {columns.filter(it => !!it).map((column, i) => {\n const isEditing = editing && editing.id === item.id && editing.columnIndex === i;\n const editable = isFunction(column.editable) ? column.editable(item) : !!column.editable;\n return (\n <td key={i}\n className={classNames(editable ? 'editable' : 'ro', isEditing && 'editing', column.className)}\n onClick={!isEditing && editable ? () => editingContext.setEditing(item, i, column.field) : NOOP}>\n {(isEditing || column.displayEditor) && !column.editor && (\n <TextField\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n focused={true}\n onBlur={editingContext.cancelEditing}\n onChange={editingContext.handleInputChange}\n onKeyDown={e => {\n if (e.keyCode === 27/*escape*/) {\n preventDefault(e);\n editingContext.cancelEditing();\n }\n if (e.keyCode === 13/*enter*/) {\n preventDefault(e);\n editingContext.onFinishEditing();\n }\n }}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Select' && (\n <AutocompleteSelect\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n data={column.editorData}\n focused={true}\n withArrow={false}\n withFilter={false}\n selectedMode={'inline'}\n selectedComponent={column.editorSelectedComponent}\n mode={column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}\n onChange={column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n onSelect={!column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n childComponent={column.editorChildCompononRowClickent}\n onCancel={editingContext.cancelEditing}\n prefilter={column.prefilter}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Switch' && (\n <Switch onClick={e => {\n stopPropagation(e);\n preventDefault(e);\n editingContext.setState({\n editing: {\n ...editingContext.prepareEditing(item, column.field, i),\n value: !item[column.field]\n }\n }, editingContext.onFinishEditing);\n }} value={item[column.field]}/>\n )}\n {(isEditing || column.displayEditor) && isFunction(column.editor) && column.editor(item, editingContext.cancelEditing, isEditing)}\n {!isEditing && !column.displayEditor && formatValue(item, column)}\n </td>\n );\n })}\n </tr>\n }\n)\n\nTable.defaultProps = {\n columns: [],\n onRowClick: NOOP,\n toKey: getId,\n};\n\nif (window.isNotProductionEnvironment) {\n Table.propTypes = {\n className: PropTypes.string,\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n columns: PropTypes.arrayOf(PropTypes.shape({\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n sortable: PropTypes.bool,\n field: PropTypes.string,\n formatter: PropTypes.func,\n comparator: PropTypes.func,\n editable: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n editor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n displayEditor: PropTypes.bool,\n preEditor: PropTypes.func,\n })),\n data: PropTypes.array,\n disabled: PropTypes.func,\n onRowClick: PropTypes.func,\n onSortChange: PropTypes.func,\n onChange: PropTypes.func,\n toKey: PropTypes.func,\n };\n}\n\n\nexport default Table;"],"names":["SORT_ASC","Comparators","SORT_DESC","getId","item","id","Table","props","setData","data","state","sortBy","sortOrder","comparator","c","inverse","sort","of","setState","orNoop","onSortChange","updateHeaders","headers","hidden","querySelectorAll","fixed","i","length","style","width","offsetWidth","cancelEditing","editing","setEditing","columnIndex","field","prepareEditing","value","handleInputChange","event","extractValue","target","type","checked","selectNewValue","onFinishEditing","e","isString","trim","updated","onChange","preventDefault","columns","find","it","updateHeadersInterval","setInterval","prevProps","prevState","snapshot","onRowClick","NOOP","disabled","className","rowClassName","toKey","classNames","filter","map","column","sortable","header","clearInterval","Component","formatValue","undefined","formatter","format","Row","React","memo","onClick","editingContext","isFunction","isEditing","editable","displayEditor","editor","preEditor","keyCode","editorData","editorSelectedComponent","multiSelect","MODE_MULTIPLE_MINI","MODE_DEFAULT","onSelect","editorChildCompononRowClickent","prefilter","stopPropagation","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","func","arrayOf","shape","element","bool","array"],"mappings":"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"}
package/Tools.js CHANGED
@@ -20,9 +20,10 @@ var getRandomId = function getRandomId(prefix) {
20
20
  return prefix + Math.random();
21
21
  };
22
22
  var ref = function ref(name, component) {
23
- return function (it) {
23
+ var refKey = "__" + name;
24
+ return component[refKey] || (component[refKey] = function (it) {
24
25
  return component[name] = it;
25
- };
26
+ });
26
27
  };
27
28
  var createRef = function createRef() {
28
29
  var ref = function ref() {
package/Tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sources":["../src/react-ui-basics/Tools.js"],"sourcesContent":["var global = global || window;\nexport const WINDOW = global;\nexport const DOCUMENT = WINDOW.document;\n\nexport function classNames() {\n const filtered = [];\n const length = arguments.length;\n for (let i = 0; i < length; i++) {\n let it = arguments[i];\n !!it && filtered.push(it);\n }\n return filtered.join(' ');\n}\n\nexport const NOOP = () => {\n};\n\nexport const orNoop = f => f || NOOP;\n\nexport const getRandomId = (prefix) => prefix + Math.random();\n\nexport const ref = (name, component) => (it) => component[name] = it;\n\nexport const createRef = () => {\n const ref = function () {\n arguments.length > 0 && (ref.v = arguments[0]);\n return ref.v;\n };\n return ref;\n};\n\nexport const setOf = (list) => (list || []).reduce((map, key) => {\n map[key] = true;\n return map;\n}, {});\n\nexport const allPropsExcept = (obj, except) => {\n let result = {};\n for (let key in obj) {\n if (!except[key]) result[key] = obj[key];\n }\n return result;\n};\n\nexport const continuousIncludes = (value, inc) => {\n const length = inc.length;\n let from = -1;\n for (let i = 0; i < length; i++) {\n from = value.indexOf(inc[i], from + 1);\n if (from === -1)\n return false\n }\n return true;\n};\n\nconst isArrayShallowEqual = (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) {\n return false;\n }\n let i = a.length - 1;\n let result = true;\n while (i >= 0 && (result = (a[i] === b[i]))) {\n i--;\n }\n return result;\n}\n\nexport const debounce = (func, delay) => {\n let inDebounce;\n return function () {\n const context = this;\n const args = arguments;\n clearTimeout(inDebounce);\n inDebounce = setTimeout(() => {\n func.apply(context, args);\n }, delay)\n }\n};\n\nexport const memo = (func) => {\n let prevArgs\n let prevResult\n return function () {\n const context = this;\n const args = arguments;\n if (!isArrayShallowEqual(prevArgs, args)) {\n prevArgs = args\n prevResult = func.apply(context, args);\n }\n return prevResult\n }\n}\n\nexport const typeOf = (v) => typeof v;\nexport const isFunction = (v) => typeOf(v) === 'function';\nexport const isString = (v) => typeOf(v) === 'string';\nexport const isObject = (v) => typeOf(v) === 'object';\n\nexport const isDifferent = (a, b) => {\n if (a == null && b == null) return false;\n if (a == null || b == null) return true;\n if (a === b) return false;\n\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n if (typeA !== typeB) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (a.length !== b.length) {\n return true;\n }\n let i = a.length - 1;\n let result = false;\n while (i >= 0 && !(result = isDifferent(a[i], b[i]))) {\n i--;\n }\n return result;\n }\n\n if (typeA === 'object') {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return true;\n }\n\n let j = keysA.length - 1;\n let r = false;\n while (j >= 0 && !(r = keysA[j] !== keysB[j]) && !(r = isDifferent(a[keysA[j]], b[keysB[j]]))) {\n j--;\n }\n return r\n }\n\n return true;\n};\n\nexport const preventDefault = e => {\n e && e.preventDefault();\n};\nexport const stopPropagation = e => {\n e && e.stopPropagation();\n};\n\nexport const setTimeout = function () {\n return WINDOW.setTimeout.apply(WINDOW, arguments);\n};\nexport const clearTimeout = (id) => {\n WINDOW.clearTimeout(id);\n};\nexport const setInterval = function () {\n return WINDOW.setInterval.apply(WINDOW, arguments);\n};\nexport const clearInterval = (id) => {\n WINDOW.clearInterval(id);\n};\nexport const requestAnimationFrame = (cb) => WINDOW.requestAnimationFrame(cb);\nexport const addEventListener = (el, type, listener, options) => {\n el && el.addEventListener(type, listener, options);\n};\nexport const removeEventListener = (el, type, listener, options) => {\n el && el.removeEventListener(type, listener, options);\n};\n\nexport const UNDEFINED = undefined;\nexport const isUndefined = a => a === UNDEFINED;\n\n\nexport class Comparators {\n static SORT_ASC = 'ASC';\n static SORT_DESC = 'DESC';\n\n static of = (field, order, data) => {\n let comparator;\n if (Array.isArray(field)) {\n const isOrderArray = Array.isArray(order);\n comparator = Comparators.chain(field.map((it, i) => Comparators.of(it, (isOrderArray && order[i]) || Comparators.SORT_ASC, data)));\n } else if (isFunction(field)) {\n if (data && data[0] && isString(field(data[0]))) {\n const collator = new Intl.Collator({sensitivity: 'base'});\n comparator = (a, b) => {\n return collator.compare(field(a), field(b));\n }\n } else\n comparator = (a, b) => {\n const A = field(a);\n const B = field(b);\n return (A < B ? -1 : (A > B ? 1 : 0));\n };\n } else if (isString(field))\n comparator = Comparators.of(it => it[field], Comparators.SORT_ASC, data);\n else\n comparator = Comparators.of(it => it, Comparators.SORT_ASC, data);\n\n if (order && order === Comparators.SORT_DESC) {\n return Comparators.inverse(comparator);\n }\n\n return addComparatorMethods(comparator);\n };\n static chain = (comparators) => addComparatorMethods((a, b) => {\n let result;\n for (let i = 0; i < comparators.length; i++) {\n result = comparators[i](a, b);\n if (result !== 0)\n return result;\n }\n return result;\n }\n );\n\n static inverse = (comparator) => addComparatorMethods((a, b) => -comparator(a, b));\n}\n\nconst addComparatorMethods = function (comparator) {\n comparator.inverse = () => Comparators.inverse(comparator);\n comparator.and = (another) => Comparators.chain([comparator, another]);\n return comparator;\n};\n\nif (window.isNotProductionEnvironment) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window.tools = {\n memo\n }\n}"],"names":["global","window","WINDOW","DOCUMENT","document","classNames","filtered","length","arguments","i","it","push","join","NOOP","orNoop","f","getRandomId","prefix","Math","random","ref","name","component","createRef","v","setOf","list","reduce","map","key","allPropsExcept","obj","except","result","continuousIncludes","value","inc","from","indexOf","isArrayShallowEqual","a","b","debounce","func","delay","inDebounce","context","args","clearTimeout","setTimeout","apply","memo","prevArgs","prevResult","typeOf","isFunction","isString","isObject","isDifferent","typeA","typeB","Array","isArray","keysA","Object","keys","keysB","j","r","preventDefault","e","stopPropagation","id","setInterval","clearInterval","requestAnimationFrame","cb","addEventListener","el","type","listener","options","removeEventListener","UNDEFINED","undefined","isUndefined","Comparators","SORT_ASC","SORT_DESC","of","field","order","data","comparator","isOrderArray","chain","collator","Intl","Collator","sensitivity","compare","A","B","inverse","addComparatorMethods","comparators","and","another","isNotProductionEnvironment","tools"],"mappings":";;AAAA,IAAIA,MAAM,GAAGA,MAAM,IAAIC,MAAvB;IACaC,MAAM,GAAGF;IACTG,QAAQ,GAAGD,MAAM,CAACE;AAExB,SAASC,UAAT,GAAsB;AACzB,MAAMC,QAAQ,GAAG,EAAjB;AACA,MAAMC,MAAM,GAAGC,SAAS,CAACD,MAAzB;AACA,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAApB,EAA4BE,CAAC,EAA7B,EAAiC;AAC7B,QAAIC,EAAE,GAAGF,SAAS,CAACC,CAAD,CAAlB;AACA,KAAC,CAACC,EAAF,IAAQJ,QAAQ,CAACK,IAAT,CAAcD,EAAd,CAAR;AACH;AACD,SAAOJ,QAAQ,CAACM,IAAT,CAAc,GAAd,CAAP;AACH;IAEYC,IAAI,GAAG,SAAPA,IAAO,GAAM;IAGbC,MAAM,GAAG,SAATA,MAAS,CAAAC,CAAC;AAAA,SAAIA,CAAC,IAAIF,IAAT;AAAA;IAEVG,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD;AAAA,SAAYA,MAAM,GAAGC,IAAI,CAACC,MAAL,EAArB;AAAA;IAEdC,GAAG,GAAG,SAANA,GAAM,CAACC,IAAD,EAAOC,SAAP;AAAA,SAAqB,UAACZ,EAAD;AAAA,WAAQY,SAAS,CAACD,IAAD,CAAT,GAAkBX,EAA1B;AAAA,GAArB;AAAA;IAENa,SAAS,GAAG,SAAZA,SAAY,GAAM;AAC3B,MAAMH,GAAG,GAAG,SAANA,GAAM,GAAY;AACpBZ,IAAAA,SAAS,CAACD,MAAV,GAAmB,CAAnB,KAAyBa,GAAG,CAACI,CAAJ,GAAQhB,SAAS,CAAC,CAAD,CAA1C;AACA,WAAOY,GAAG,CAACI,CAAX;AACH,GAHD;AAIA,SAAOJ,GAAP;AACH;IAEYK,KAAK,GAAG,SAARA,KAAQ,CAACC,IAAD;AAAA,SAAU,CAACA,IAAI,IAAI,EAAT,EAAaC,MAAb,CAAoB,UAACC,GAAD,EAAMC,GAAN,EAAc;AAC7DD,IAAAA,GAAG,CAACC,GAAD,CAAH,GAAW,IAAX;AACA,WAAOD,GAAP;AACH,GAH8B,EAG5B,EAH4B,CAAV;AAAA;IAKRE,cAAc,GAAG,SAAjBA,cAAiB,CAACC,GAAD,EAAMC,MAAN,EAAiB;AAC3C,MAAIC,MAAM,GAAG,EAAb;AACA,OAAK,IAAIJ,GAAT,IAAgBE,GAAhB,EAAqB;AACjB,QAAI,CAACC,MAAM,CAACH,GAAD,CAAX,EAAkBI,MAAM,CAACJ,GAAD,CAAN,GAAcE,GAAG,CAACF,GAAD,CAAjB;AACrB;AACD,SAAOI,MAAP;AACH;IAEYC,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAQC,GAAR,EAAgB;AAC9C,MAAM7B,MAAM,GAAG6B,GAAG,CAAC7B,MAAnB;AACA,MAAI8B,IAAI,GAAG,CAAC,CAAZ;AACA,OAAK,IAAI5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAApB,EAA4BE,CAAC,EAA7B,EAAiC;AAC7B4B,IAAAA,IAAI,GAAGF,KAAK,CAACG,OAAN,CAAcF,GAAG,CAAC3B,CAAD,CAAjB,EAAsB4B,IAAI,GAAG,CAA7B,CAAP;AACA,QAAIA,IAAI,KAAK,CAAC,CAAd,EACI,OAAO,KAAP;AACP;AACD,SAAO,IAAP;AACH;AAED,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,CAAD,EAAIC,CAAJ,EAAU;AAClC,MAAID,CAAC,KAAKC,CAAV,EAAa,OAAO,IAAP;AACb,MAAID,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAtB,EAA4B,OAAO,KAAP;AAC5B,MAAID,CAAC,CAACjC,MAAF,KAAakC,CAAC,CAAClC,MAAnB,EAA2B;AACvB,WAAO,KAAP;AACH;AACD,MAAIE,CAAC,GAAG+B,CAAC,CAACjC,MAAF,GAAW,CAAnB;AACA,MAAI0B,MAAM,GAAG,IAAb;AACA,SAAOxB,CAAC,IAAI,CAAL,KAAWwB,MAAM,GAAIO,CAAC,CAAC/B,CAAD,CAAD,KAASgC,CAAC,CAAChC,CAAD,CAA/B,CAAP,EAA6C;AACzCA,IAAAA,CAAC;AACJ;AACD,SAAOwB,MAAP;AACH,CAZD;IAcaS,QAAQ,GAAG,SAAXA,QAAW,CAACC,IAAD,EAAOC,KAAP,EAAiB;AACrC,MAAIC,UAAJ;AACA,SAAO,YAAY;AACf,QAAMC,OAAO,GAAG,IAAhB;AACA,QAAMC,IAAI,GAAGvC,SAAb;AACAwC,IAAAA,YAAY,CAACH,UAAD,CAAZ;AACAA,IAAAA,UAAU,GAAGI,UAAU,CAAC,YAAM;AAC1BN,MAAAA,IAAI,CAACO,KAAL,CAAWJ,OAAX,EAAoBC,IAApB;AACH,KAFsB,EAEpBH,KAFoB,CAAvB;AAGH,GAPD;AAQH;IAEYO,IAAI,GAAG,SAAPA,IAAO,CAACR,IAAD,EAAU;AAC1B,MAAIS,QAAJ;AACA,MAAIC,UAAJ;AACA,SAAO,YAAY;AACf,QAAMP,OAAO,GAAG,IAAhB;AACA,QAAMC,IAAI,GAAGvC,SAAb;AACA,QAAI,CAAC+B,mBAAmB,CAACa,QAAD,EAAWL,IAAX,CAAxB,EAA0C;AACtCK,MAAAA,QAAQ,GAAGL,IAAX;AACAM,MAAAA,UAAU,GAAGV,IAAI,CAACO,KAAL,CAAWJ,OAAX,EAAoBC,IAApB,CAAb;AACH;AACD,WAAOM,UAAP;AACH,GARD;AASH;IAEYC,MAAM,GAAG,SAATA,MAAS,CAAC9B,CAAD;AAAA,iBAAcA,CAAd;AAAA;IACT+B,UAAU,GAAG,SAAbA,UAAa,CAAC/B,CAAD;AAAA,SAAO8B,MAAM,CAAC9B,CAAD,CAAN,KAAc,UAArB;AAAA;IACbgC,QAAQ,GAAG,SAAXA,QAAW,CAAChC,CAAD;AAAA,SAAO8B,MAAM,CAAC9B,CAAD,CAAN,KAAc,QAArB;AAAA;IACXiC,QAAQ,GAAG,SAAXA,QAAW,CAACjC,CAAD;AAAA,SAAO8B,MAAM,CAAC9B,CAAD,CAAN,KAAc,QAArB;AAAA;IAEXkC,WAAW,GAAG,SAAdA,WAAc,CAAClB,CAAD,EAAIC,CAAJ,EAAU;AACjC,MAAID,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAtB,EAA4B,OAAO,KAAP;AAC5B,MAAID,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAtB,EAA4B,OAAO,IAAP;AAC5B,MAAID,CAAC,KAAKC,CAAV,EAAa,OAAO,KAAP;AAEb,MAAMkB,KAAK,GAAGL,MAAM,CAACd,CAAD,CAApB;AACA,MAAMoB,KAAK,GAAGN,MAAM,CAACb,CAAD,CAApB;AACA,MAAIkB,KAAK,KAAKC,KAAd,EAAqB;AACjB,WAAO,IAAP;AACH;AAED,MAAIC,KAAK,CAACC,OAAN,CAActB,CAAd,CAAJ,EAAsB;AAClB,QAAIA,CAAC,CAACjC,MAAF,KAAakC,CAAC,CAAClC,MAAnB,EAA2B;AACvB,aAAO,IAAP;AACH;AACD,QAAIE,CAAC,GAAG+B,CAAC,CAACjC,MAAF,GAAW,CAAnB;AACA,QAAI0B,MAAM,GAAG,KAAb;AACA,WAAOxB,CAAC,IAAI,CAAL,IAAU,EAAEwB,MAAM,GAAGyB,WAAW,CAAClB,CAAC,CAAC/B,CAAD,CAAF,EAAOgC,CAAC,CAAChC,CAAD,CAAR,CAAtB,CAAjB,EAAsD;AAClDA,MAAAA,CAAC;AACJ;AACD,WAAOwB,MAAP;AACH;AAED,MAAI0B,KAAK,KAAK,QAAd,EAAwB;AACpB,QAAMI,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYzB,CAAZ,CAAd;AACA,QAAM0B,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYxB,CAAZ,CAAd;AACA,QAAIsB,KAAK,CAACxD,MAAN,KAAiB2D,KAAK,CAAC3D,MAA3B,EAAmC;AAC/B,aAAO,IAAP;AACH;AAED,QAAI4D,CAAC,GAAGJ,KAAK,CAACxD,MAAN,GAAe,CAAvB;AACA,QAAI6D,CAAC,GAAG,KAAR;AACA,WAAOD,CAAC,IAAI,CAAL,IAAU,EAAEC,CAAC,GAAGL,KAAK,CAACI,CAAD,CAAL,KAAaD,KAAK,CAACC,CAAD,CAAxB,CAAV,IAA0C,EAAEC,CAAC,GAAGV,WAAW,CAAClB,CAAC,CAACuB,KAAK,CAACI,CAAD,CAAN,CAAF,EAAc1B,CAAC,CAACyB,KAAK,CAACC,CAAD,CAAN,CAAf,CAAjB,CAAjD,EAA+F;AAC3FA,MAAAA,CAAC;AACJ;AACD,WAAOC,CAAP;AACH;AAED,SAAO,IAAP;AACH;IAEYC,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,CAAC,EAAI;AAC/BA,EAAAA,CAAC,IAAIA,CAAC,CAACD,cAAF,EAAL;AACH;IACYE,eAAe,GAAG,SAAlBA,eAAkB,CAAAD,CAAC,EAAI;AAChCA,EAAAA,CAAC,IAAIA,CAAC,CAACC,eAAF,EAAL;AACH;IAEYtB,UAAU,GAAG,SAAbA,UAAa,GAAY;AAClC,SAAO/C,MAAM,CAAC+C,UAAP,CAAkBC,KAAlB,CAAwBhD,MAAxB,EAAgCM,SAAhC,CAAP;AACH;IACYwC,YAAY,GAAG,SAAfA,YAAe,CAACwB,EAAD,EAAQ;AAChCtE,EAAAA,MAAM,CAAC8C,YAAP,CAAoBwB,EAApB;AACH;IACYC,WAAW,GAAG,SAAdA,WAAc,GAAY;AACnC,SAAOvE,MAAM,CAACuE,WAAP,CAAmBvB,KAAnB,CAAyBhD,MAAzB,EAAiCM,SAAjC,CAAP;AACH;IACYkE,aAAa,GAAG,SAAhBA,aAAgB,CAACF,EAAD,EAAQ;AACjCtE,EAAAA,MAAM,CAACwE,aAAP,CAAqBF,EAArB;AACH;IACYG,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,EAAD;AAAA,SAAQ1E,MAAM,CAACyE,qBAAP,CAA6BC,EAA7B,CAAR;AAAA;IACxBC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,EAAD,EAAKC,IAAL,EAAWC,QAAX,EAAqBC,OAArB,EAAiC;AAC7DH,EAAAA,EAAE,IAAIA,EAAE,CAACD,gBAAH,CAAoBE,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,CAAN;AACH;IACYC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACJ,EAAD,EAAKC,IAAL,EAAWC,QAAX,EAAqBC,OAArB,EAAiC;AAChEH,EAAAA,EAAE,IAAIA,EAAE,CAACI,mBAAH,CAAuBH,IAAvB,EAA6BC,QAA7B,EAAuCC,OAAvC,CAAN;AACH;IAEYE,SAAS,GAAGC;IACZC,WAAW,GAAG,SAAdA,WAAc,CAAA7C,CAAC;AAAA,SAAIA,CAAC,KAAK2C,SAAV;AAAA;IAGfG,WAAb;AAAA;AAAA;AAAaA,YACFC,WAAW;AADTD,YAEFE,YAAY;AAFVF,YAIFG,KAAK,UAACC,KAAD,EAAQC,KAAR,EAAeC,IAAf,EAAwB;AAChC,MAAIC,UAAJ;AACA,MAAIhC,KAAK,CAACC,OAAN,CAAc4B,KAAd,CAAJ,EAA0B;AACtB,QAAMI,YAAY,GAAGjC,KAAK,CAACC,OAAN,CAAc6B,KAAd,CAArB;AACAE,IAAAA,UAAU,GAAGP,WAAW,CAACS,KAAZ,CAAkBL,KAAK,CAAC9D,GAAN,CAAU,UAAClB,EAAD,EAAKD,CAAL;AAAA,aAAW6E,WAAW,CAACG,EAAZ,CAAe/E,EAAf,EAAoBoF,YAAY,IAAIH,KAAK,CAAClF,CAAD,CAAtB,IAA8B6E,WAAW,CAACC,QAA7D,EAAuEK,IAAvE,CAAX;AAAA,KAAV,CAAlB,CAAb;AACH,GAHD,MAGO,IAAIrC,UAAU,CAACmC,KAAD,CAAd,EAAuB;AAC1B,QAAIE,IAAI,IAAIA,IAAI,CAAC,CAAD,CAAZ,IAAmBpC,QAAQ,CAACkC,KAAK,CAACE,IAAI,CAAC,CAAD,CAAL,CAAN,CAA/B,EAAiD;AAC7C,UAAMI,QAAQ,GAAG,IAAIC,IAAI,CAACC,QAAT,CAAkB;AAACC,QAAAA,WAAW,EAAE;AAAd,OAAlB,CAAjB;AACAN,MAAAA,UAAU,GAAG,oBAACrD,CAAD,EAAIC,CAAJ,EAAU;AACnB,eAAOuD,QAAQ,CAACI,OAAT,CAAiBV,KAAK,CAAClD,CAAD,CAAtB,EAA2BkD,KAAK,CAACjD,CAAD,CAAhC,CAAP;AACH,OAFD;AAGH,KALD,MAMIoD,UAAU,GAAG,oBAACrD,CAAD,EAAIC,CAAJ,EAAU;AACnB,UAAM4D,CAAC,GAAGX,KAAK,CAAClD,CAAD,CAAf;AACA,UAAM8D,CAAC,GAAGZ,KAAK,CAACjD,CAAD,CAAf;AACA,aAAQ4D,CAAC,GAAGC,CAAJ,GAAQ,CAAC,CAAT,GAAcD,CAAC,GAAGC,CAAJ,GAAQ,CAAR,GAAY,CAAlC;AACH,KAJD;AAKP,GAZM,MAYA,IAAI9C,QAAQ,CAACkC,KAAD,CAAZ,EACHG,UAAU,GAAGP,WAAW,CAACG,EAAZ,CAAe,UAAA/E,EAAE;AAAA,WAAIA,EAAE,CAACgF,KAAD,CAAN;AAAA,GAAjB,EAAgCJ,WAAW,CAACC,QAA5C,EAAsDK,IAAtD,CAAb,CADG,KAGHC,UAAU,GAAGP,WAAW,CAACG,EAAZ,CAAe,UAAA/E,EAAE;AAAA,WAAIA,EAAJ;AAAA,GAAjB,EAAyB4E,WAAW,CAACC,QAArC,EAA+CK,IAA/C,CAAb;AAEJ,MAAID,KAAK,IAAIA,KAAK,KAAKL,WAAW,CAACE,SAAnC,EAA8C;AAC1C,WAAOF,WAAW,CAACiB,OAAZ,CAAoBV,UAApB,CAAP;AACH;AAED,SAAOW,oBAAoB,CAACX,UAAD,CAA3B;AACH;AA/BQP,YAgCFS,QAAQ,UAACU,WAAD;AAAA,SAAiBD,oBAAoB,CAAC,UAAChE,CAAD,EAAIC,CAAJ,EAAU;AACvD,QAAIR,MAAJ;AACA,SAAK,IAAIxB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgG,WAAW,CAAClG,MAAhC,EAAwCE,CAAC,EAAzC,EAA6C;AACzCwB,MAAAA,MAAM,GAAGwE,WAAW,CAAChG,CAAD,CAAX,CAAe+B,CAAf,EAAkBC,CAAlB,CAAT;AACA,UAAIR,MAAM,KAAK,CAAf,EACI,OAAOA,MAAP;AACP;AACD,WAAOA,MAAP;AACH,GAR+C,CAArC;AAAA;AAhCNqD,YA2CFiB,UAAU,UAACV,UAAD;AAAA,SAAgBW,oBAAoB,CAAC,UAAChE,CAAD,EAAIC,CAAJ;AAAA,WAAU,CAACoD,UAAU,CAACrD,CAAD,EAAIC,CAAJ,CAArB;AAAA,GAAD,CAApC;AAAA;AAGrB,IAAM+D,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAUX,UAAV,EAAsB;AAC/CA,EAAAA,UAAU,CAACU,OAAX,GAAqB;AAAA,WAAMjB,WAAW,CAACiB,OAAZ,CAAoBV,UAApB,CAAN;AAAA,GAArB;AACAA,EAAAA,UAAU,CAACa,GAAX,GAAiB,UAACC,OAAD;AAAA,WAAarB,WAAW,CAACS,KAAZ,CAAkB,CAACF,UAAD,EAAac,OAAb,CAAlB,CAAb;AAAA,GAAjB;AACA,SAAOd,UAAP;AACH,CAJD;AAMA,IAAI5F,MAAM,CAAC2G,0BAAX,EAAuC;AAGnC3G,EAAAA,MAAM,CAAC4G,KAAP,GAAe;AACX1D,IAAAA,IAAI,EAAJA;AADW,GAAf;AAGH;;;;"}
1
+ {"version":3,"file":"Tools.js","sources":["../src/react-ui-basics/Tools.js"],"sourcesContent":["var global = global || window;\nexport const WINDOW = global;\nexport const DOCUMENT = WINDOW.document;\n\nexport function classNames() {\n const filtered = [];\n const length = arguments.length;\n for (let i = 0; i < length; i++) {\n let it = arguments[i];\n !!it && filtered.push(it);\n }\n return filtered.join(' ');\n}\n\nexport const NOOP = () => {\n};\n\nexport const orNoop = f => f || NOOP;\n\nexport const getRandomId = (prefix) => prefix + Math.random();\n\nexport const ref = (name, component) => {\n const refKey = \"__\" + name;\n return component[refKey] || (component[refKey] = (it) => component[name] = it)\n};\n\nexport const createRef = () => {\n const ref = function () {\n arguments.length > 0 && (ref.v = arguments[0]);\n return ref.v;\n };\n return ref;\n};\n\nexport const setOf = (list) => (list || []).reduce((map, key) => {\n map[key] = true;\n return map;\n}, {});\n\nexport const allPropsExcept = (obj, except) => {\n let result = {};\n for (let key in obj) {\n if (!except[key]) result[key] = obj[key];\n }\n return result;\n};\n\nexport const continuousIncludes = (value, inc) => {\n const length = inc.length;\n let from = -1;\n for (let i = 0; i < length; i++) {\n from = value.indexOf(inc[i], from + 1);\n if (from === -1)\n return false\n }\n return true;\n};\n\nconst isArrayShallowEqual = (a, b) => {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) {\n return false;\n }\n let i = a.length - 1;\n let result = true;\n while (i >= 0 && (result = (a[i] === b[i]))) {\n i--;\n }\n return result;\n}\n\nexport const debounce = (func, delay) => {\n let inDebounce;\n return function () {\n const context = this;\n const args = arguments;\n clearTimeout(inDebounce);\n inDebounce = setTimeout(() => {\n func.apply(context, args);\n }, delay)\n }\n};\n\nexport const memo = (func) => {\n let prevArgs\n let prevResult\n return function () {\n const context = this;\n const args = arguments;\n if (!isArrayShallowEqual(prevArgs, args)) {\n prevArgs = args\n prevResult = func.apply(context, args);\n }\n return prevResult\n }\n}\n\nexport const typeOf = (v) => typeof v;\nexport const isFunction = (v) => typeOf(v) === 'function';\nexport const isString = (v) => typeOf(v) === 'string';\nexport const isObject = (v) => typeOf(v) === 'object';\n\nexport const isDifferent = (a, b) => {\n if (a == null && b == null) return false;\n if (a == null || b == null) return true;\n if (a === b) return false;\n\n const typeA = typeOf(a);\n const typeB = typeOf(b);\n if (typeA !== typeB) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (a.length !== b.length) {\n return true;\n }\n let i = a.length - 1;\n let result = false;\n while (i >= 0 && !(result = isDifferent(a[i], b[i]))) {\n i--;\n }\n return result;\n }\n\n if (typeA === 'object') {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return true;\n }\n\n let j = keysA.length - 1;\n let r = false;\n while (j >= 0 && !(r = keysA[j] !== keysB[j]) && !(r = isDifferent(a[keysA[j]], b[keysB[j]]))) {\n j--;\n }\n return r\n }\n\n return true;\n};\n\nexport const preventDefault = e => {\n e && e.preventDefault();\n};\nexport const stopPropagation = e => {\n e && e.stopPropagation();\n};\n\nexport const setTimeout = function () {\n return WINDOW.setTimeout.apply(WINDOW, arguments);\n};\nexport const clearTimeout = (id) => {\n WINDOW.clearTimeout(id);\n};\nexport const setInterval = function () {\n return WINDOW.setInterval.apply(WINDOW, arguments);\n};\nexport const clearInterval = (id) => {\n WINDOW.clearInterval(id);\n};\nexport const requestAnimationFrame = (cb) => WINDOW.requestAnimationFrame(cb);\nexport const addEventListener = (el, type, listener, options) => {\n el && el.addEventListener(type, listener, options);\n};\nexport const removeEventListener = (el, type, listener, options) => {\n el && el.removeEventListener(type, listener, options);\n};\n\nexport const UNDEFINED = undefined;\nexport const isUndefined = a => a === UNDEFINED;\n\n\nexport class Comparators {\n static SORT_ASC = 'ASC';\n static SORT_DESC = 'DESC';\n\n static of = (field, order, data) => {\n let comparator;\n if (Array.isArray(field)) {\n const isOrderArray = Array.isArray(order);\n comparator = Comparators.chain(field.map((it, i) => Comparators.of(it, (isOrderArray && order[i]) || Comparators.SORT_ASC, data)));\n } else if (isFunction(field)) {\n if (data && data[0] && isString(field(data[0]))) {\n const collator = new Intl.Collator({sensitivity: 'base'});\n comparator = (a, b) => {\n return collator.compare(field(a), field(b));\n }\n } else\n comparator = (a, b) => {\n const A = field(a);\n const B = field(b);\n return (A < B ? -1 : (A > B ? 1 : 0));\n };\n } else if (isString(field))\n comparator = Comparators.of(it => it[field], Comparators.SORT_ASC, data);\n else\n comparator = Comparators.of(it => it, Comparators.SORT_ASC, data);\n\n if (order && order === Comparators.SORT_DESC) {\n return Comparators.inverse(comparator);\n }\n\n return addComparatorMethods(comparator);\n };\n static chain = (comparators) => addComparatorMethods((a, b) => {\n let result;\n for (let i = 0; i < comparators.length; i++) {\n result = comparators[i](a, b);\n if (result !== 0)\n return result;\n }\n return result;\n }\n );\n\n static inverse = (comparator) => addComparatorMethods((a, b) => -comparator(a, b));\n}\n\nconst addComparatorMethods = function (comparator) {\n comparator.inverse = () => Comparators.inverse(comparator);\n comparator.and = (another) => Comparators.chain([comparator, another]);\n return comparator;\n};\n\nif (window.isNotProductionEnvironment) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window.tools = {\n memo\n }\n}"],"names":["global","window","WINDOW","DOCUMENT","document","classNames","filtered","length","arguments","i","it","push","join","NOOP","orNoop","f","getRandomId","prefix","Math","random","ref","name","component","refKey","createRef","v","setOf","list","reduce","map","key","allPropsExcept","obj","except","result","continuousIncludes","value","inc","from","indexOf","isArrayShallowEqual","a","b","debounce","func","delay","inDebounce","context","args","clearTimeout","setTimeout","apply","memo","prevArgs","prevResult","typeOf","isFunction","isString","isObject","isDifferent","typeA","typeB","Array","isArray","keysA","Object","keys","keysB","j","r","preventDefault","e","stopPropagation","id","setInterval","clearInterval","requestAnimationFrame","cb","addEventListener","el","type","listener","options","removeEventListener","UNDEFINED","undefined","isUndefined","Comparators","SORT_ASC","SORT_DESC","of","field","order","data","comparator","isOrderArray","chain","collator","Intl","Collator","sensitivity","compare","A","B","inverse","addComparatorMethods","comparators","and","another","isNotProductionEnvironment","tools"],"mappings":"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"}