react-ui-basics 0.0.212 → 0.0.214

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.
Files changed (46) hide show
  1. package/Animated.js +2 -6
  2. package/Animated.js.map +1 -1
  3. package/AutocompleteSelect.js +1 -5
  4. package/AutocompleteSelect.js.map +1 -1
  5. package/Button.js +1 -15
  6. package/Button.js.map +1 -1
  7. package/CalendarMonthView.d.ts +0 -1
  8. package/Checkbox.d.ts +2 -2
  9. package/CircleProgress.d.ts +0 -1
  10. package/Dialog.js +1 -13
  11. package/Dialog.js.map +1 -1
  12. package/DropFileInput.d.ts +2 -2
  13. package/Dropzone.d.ts +18 -0
  14. package/Dropzone.js +70 -119
  15. package/Dropzone.js.map +1 -1
  16. package/FormUploadProgress.js +1 -12
  17. package/FormUploadProgress.js.map +1 -1
  18. package/ImageGallery.js +7 -7
  19. package/ImageGallery.js.map +1 -1
  20. package/MaterialIcon.d.ts +0 -1
  21. package/Modal.js +1 -8
  22. package/Modal.js.map +1 -1
  23. package/Scrollable.js +2 -14
  24. package/Scrollable.js.map +1 -1
  25. package/Size.d.ts +0 -1
  26. package/SpinningProgress.d.ts +0 -1
  27. package/TextField.js +1 -23
  28. package/TextField.js.map +1 -1
  29. package/bundle.css +857 -857
  30. package/package.json +3 -1
  31. package/router/Link.js +1 -6
  32. package/router/Link.js.map +1 -1
  33. package/router/NavLink.js +0 -3
  34. package/router/NavLink.js.map +1 -1
  35. package/router/Route.js +1 -8
  36. package/router/Route.js.map +1 -1
  37. package/src/Checkbox.tsx +2 -2
  38. package/src/DropFileInput.tsx +1 -1
  39. package/src/{Dropzone.js → Dropzone.tsx} +33 -33
  40. package/src/store/{ProxyTools.test.js → ProxyTools.test.ts} +1 -1
  41. package/src/store/Store.test.js +86 -0
  42. package/src/store/Store.ts +30 -18
  43. package/store/ProxyTools.test.d.ts +1 -0
  44. package/store/Store.d.ts +2 -1
  45. package/store/Store.js +28 -14
  46. package/store/Store.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ImageGallery.js","sources":["./src/ImageGallery.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './ImageGallery.css'\nimport Animated from \"./Animated\";\nimport Button from \"./Button\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {\n UNDEFINED,\n preventDefault,\n stopPropagation,\n classNames,\n DOCUMENT,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n orNoop,\n createRef,\n debounce,\n isDifferent\n} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {componentDidUpdate, componentWillUnmount, componentDidMount, render, propsGetter, stateGSs} from \"./ReactConstants\";\n\nconst min = Math.min;\nconst abs = Math.abs;\n\nconst toPx = (value) => value + 'px';\n\nconst previewRatio = 4 / 3;\nconst previewHeight = 80;\nconst previewWidth = previewRatio * previewHeight;\nconst previewPadding = 8;\nconst previewsHeight = previewHeight + 15;\n\nconst calculatePosition = (it, ratio, width, height, previewsHeight, embedded, container) => {\n const windowWidth = embedded ? container.clientWidth : min(DOCUMENT.body.clientWidth, WINDOW.innerWidth);\n const windowHeight = embedded ? container.clientHeight : min(DOCUMENT.body.clientHeight, WINDOW.innerHeight);\n\n let offset = it.offset;\n if (offset == null)\n offset = (embedded ? 0 : windowHeight * 0.03);\n\n let offsetTop = it.offsetTop\n offsetTop = offsetTop == null ? offset : offsetTop\n let offsetBottom = it.offsetBottom\n offsetBottom = offsetBottom == null ? offset : offsetBottom\n let offsetLeft = it.offsetLeft\n offsetLeft = offsetLeft == null ? offset : offsetLeft\n let offsetRight = it.offsetRight\n offsetRight = offsetRight == null ? offset : offsetRight\n\n if (Number.isNaN(ratio))\n ratio = 0;\n if (embedded) {\n if (ratio > 1) {\n it.toHeight = windowHeight - previewsHeight - -offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n } else {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n } else if (ratio > 1) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n if (it.toHeight > windowHeight - previewsHeight - offsetTop - offsetBottom) {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n }\n } else {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n if (it.toWidth > windowWidth - offsetLeft - offsetRight) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n }\n\n // if (width && it.toWidth > width) {\n // it.toWidth = width;\n // it.toHeight = height;\n // }\n\n it.toTop = offsetTop + (windowHeight - previewsHeight - offsetTop - offsetBottom - it.toHeight) / 2;\n it.toLeft = (windowWidth - it.toWidth) / 2;\n\n it.toWidthPx = toPx(it.toWidth);\n // it.toHeightPx = toPx(it.toHeight);\n it.toTopPx = toPx(it.toTop);\n it.toLeftPx = toPx(it.toLeft);\n};\n\nconst calculatePreviewsScroll = (index, length, width) => {\n if (length <= 5)\n return 0;\n\n if (index < 3)\n return 0;\n\n if (index > length - 3)\n return -(length - 5) * (previewWidth + previewPadding);\n\n return -(index * (previewWidth + previewPadding) + (previewWidth) / 2 - width / 2);\n};\n\nfunction calculatePreview(width, height, url) {\n let top = 0;\n let left = 0;\n\n let ratio = width / height;\n\n if (width !== previewWidth || height !== previewHeight) {\n if (ratio < previewRatio) {\n width = previewWidth;\n height = width / ratio;\n top = -(height - previewHeight) / 2;\n } else {\n height = previewHeight;\n width = height * ratio;\n left = -(width - previewWidth) / 2;\n }\n }\n\n return {\n url,\n position: 'absolute',\n width: toPx(width),\n height: toPx(height),\n top: toPx(top),\n left: toPx(left),\n };\n}\n\nconst loadImage = (src, cb) => {\n const image = new Image();\n image.onload = () => {\n cb(image)\n };\n image.src = src;\n}\n\nconst ACTION_PREFIX = 'IMAGE_GALLERY_';\nconst ACTION_IMAGE_GALLERY_SHOW = ACTION_PREFIX + 'SHOW';\nconst ACTION_IMAGE_GALLERY_CLOSE = ACTION_PREFIX + 'CLOSE';\nconst ACTION_IMAGE_GALLERY_RECALCULATE = ACTION_PREFIX + 'RECALCULATE';\nconst ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED = ACTION_PREFIX + 'FULL_IMAGE_LOADED';\nconst ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';\n\nexport class Actions {\n static replaceImages = images => (dispatch, getState) => {\n const state = getState();\n const length = images.length;\n const nextState = {...state}\n nextState.images = images.map(item => {\n const image = state.images.find(it => it.url === item.url)\n if (image)\n return image\n\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n })\n nextState.previews.width = min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding;\n nextState.previews.totalWidth = toPx(length * previewWidth + (length - 1) * previewPadding);\n nextState.previews.images = nextState.images.map(item => {\n const preview = state.previews.images.find(it => it.url === item.previewUrl)\n if (preview)\n return preview\n\n const el = item.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n });\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data: nextState});\n };\n\n static show = (gallery) => (dispatch) => {\n const images = gallery.images;\n const length = images.length;\n const withPreviews = length > 1 && (gallery.withPreviews === UNDEFINED || !!gallery.withPreviews);\n const container = gallery.container;\n const embedded = gallery.embedded;\n const index = gallery.index;\n const data = {\n index,\n container,\n embedded,\n withPreviews,\n images: images.map(item => {\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n }),\n previews: {\n show: withPreviews,\n width: min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding,\n totalWidth: toPx(length * previewWidth + (length - 1) * previewPadding),\n scroll: UNDEFINED,\n images: images.map(it => {\n const el = it.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n })\n },\n };\n\n data.images.forEach(it => {\n if (!it.fromLeftPx) {\n const imageWithFromData = data.images.find(it => !!it.fromLeftPx);\n if (imageWithFromData) {\n it.fromLeftPx = imageWithFromData.fromLeftPx;\n it.fromTopPx = imageWithFromData.fromTopPx;\n it.fromWidthPx = imageWithFromData.fromWidthPx;\n }\n }\n });\n data.previews.scroll = calculatePreviewsScroll(index, length, data.previews.width);\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data});\n Actions.load(data.images[index])(dispatch)\n };\n static close = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_CLOSE});\n };\n static recalculate = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_RECALCULATE});\n };\n static loaded = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED, item, image});\n };\n static loadedPreview = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_PREVIEW_LOADED, item, image});\n };\n static load = (item) => (dispatch) => {\n loadImage(item.url, (image) => {\n Actions.loaded(item, image)(dispatch);\n })\n };\n\n static loadPreview = (item) => (dispatch) => {\n loadImage(item.previewUrl, (image) => {\n Actions.loadedPreview(item, image)(dispatch);\n })\n };\n}\n\nconst reducers = {\n [ACTION_IMAGE_GALLERY_SHOW]: (state, action) => ({...action.data, open: true}),\n [ACTION_IMAGE_GALLERY_CLOSE]: (state, action) => ({...state, open: false}),\n [ACTION_IMAGE_GALLERY_RECALCULATE]: (state, action) => {\n const images = [...state.images];\n const result = {...state, images};\n for (let i = 0; i < images.length; i++) {\n if (!images[i].width && !images[i].fromWidthPx)\n continue\n\n const it = {...images[i]};\n const width = it.width || Number.parseInt(it.fromWidthPx);\n const height = it.height || Number.parseInt(it.fromHeightPx);\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[i] = it;\n }\n\n return result;\n },\n [ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n\n const width = image.width\n const height = image.height\n const it = {...images[index], loaded: true, width, height};\n // debugger\n // if (it.toWidth > image.width)\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n return result;\n },\n [ACTION_IMAGE_GALLERY_PREVIEW_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n const it = {...images[index]};\n\n if (!it.toWidth || !it.toHeight)\n calculatePosition(it, image.width / image.height, image.width, image.height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n\n const previewImages = [...state.previews.images];\n result.previews.images = previewImages;\n const preview = calculatePreview(image.width, image.height, image.src);\n previewImages[index] = preview;\n\n return result;\n },\n};\n\nconst small = (it, index, i, length) => {\n if (index !== i)\n return big(it, index, i, 0, length);\n\n return {\n position: 'absolute',\n top: it.fromTopPx,\n left: it.fromLeftPx,\n width: it.fromWidthPx,\n // height: it.fromHeightPx,\n opacity: 0,\n };\n};\n\nconst big = (it, index, i, shift, length, previous) => {\n const styles = {\n position: 'absolute',\n top: it.toTopPx,\n left: toPx(it.toLeft + shift),\n width: it.toWidthPx,\n // height: it.toHeightPx,\n };\n\n\n // if (previous !== UNDEFINED && abs(index - previous) > 1) {\n // styles.transitionDelay = 100 * abs(previous - i) + 'ms';\n // }\n\n if (index !== i) {\n const width = WINDOW.innerWidth;\n const additionalOffset = it.toLeft < 0 ? -it.toLeft : 0;\n\n if (i < index)\n styles.left = toPx(it.toLeft - width - additionalOffset + (i + 1 === index ? shift : 0));\n else\n styles.left = toPx(it.toLeft + width + additionalOffset + (i - 1 === index ? shift : 0));\n }\n return styles;\n};\n\nclass ImageGallery extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n shift,\n index,\n previous,\n zoomed,\n previewScroll,\n ] = stateGSs(that, 5);\n\n\n const props = propsGetter(that);\n\n that[componentDidUpdate] = (prevProps, prevState, snapshot) => {\n if (props().open !== prevProps.open && !props().open) {\n setTimeout(() => {\n shift(0)\n index(UNDEFINED)\n previous(UNDEFINED)\n }, 250 + 100); // 250ms transition + 100ms to be sure it ended\n }\n\n const images = props().images;\n if (!images)\n return\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const image = images[indexValue];\n if (!image) {\n const i = images.length - 1\n if (i === -1) {\n if (prevProps.images !== images) {\n onClose()\n }\n } else {\n scrollTo(i, UNDEFINED)\n }\n } else if (!image.loaded) {\n props().load(image)\n }\n }\n\n const resizeListener = debounce(() => {\n props().open && props().recalculate()\n }, 100)\n that[componentDidMount] = () => {\n addEventListener(WINDOW, 'resize', resizeListener)\n }\n that[componentWillUnmount] = () => {\n removeEventListener(WINDOW, 'resize', resizeListener)\n }\n const onClose = () => {\n resetZoom()\n moveListenerAdded = false;\n this.props.close();\n }\n\n const onKeyDown = e => {\n const keyCode = e.keyCode;\n if (keyCode === 37/*left*/) {\n left();\n preventDefault(e);\n }\n if (keyCode === 39/*right*/) {\n right();\n preventDefault(e);\n }\n if (keyCode === 27/*escape*/ && !props().embedded) {\n onClose();\n preventDefault(e);\n }\n };\n\n let touchesStart;\n let zoomValue = 1;\n let zoomValueStarted;\n let zoomedImage;\n let oldLeft;\n let oldTop;\n\n let defaultWidth;\n let defaultLeft;\n let defaultTop;\n let touchpadStarted = null;\n\n const onKeyUp = e => {\n const keyCode = e.keyCode;\n if (touchpadStarted && keyCode === 17/*ctrl*/ && zoomed() && zoomValue < 1) {\n resetZoom()\n }\n };\n\n const resetZoom = () => {\n if (!zoomed()) return\n zoomed(false)\n zoomedImage.style.width = defaultWidth;\n zoomedImage.style.left = defaultLeft;\n zoomedImage.style.top = defaultTop;\n zoomedImage.style.transition = null\n touchpadStarted = null\n }\n const initZoom = () => {\n zoomed(true)\n defaultWidth = zoomedImage.style.width;\n defaultLeft = zoomedImage.style.left;\n defaultTop = zoomedImage.style.top;\n }\n\n const initTouchpadDragging = () => {\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n zoomedImage.style.transition = 'none'\n touchpadStarted = true;\n }\n\n const onWheel = (e) => {\n if (!zoomed()) return;\n\n preventDefault(e)\n if (!touchpadStarted) {\n initTouchpadDragging()\n }\n\n if (e.ctrlKey) {\n let diff = e.deltaY * 0.005;\n\n let newZoom = Math.min(Math.max(zoomValue + diff, 0.5), 10)\n let zoomX = e.pageX;\n oldLeft = zoomX - (zoomX - oldLeft) * newZoom / zoomValue;\n\n let zoomY = e.pageY;\n oldTop = zoomY - (zoomY - oldTop) * newZoom / zoomValue;\n zoomValue = newZoom\n\n zoomedImage.style.width = (zoomValue * 100) + '%';\n } else {\n oldLeft += e.deltaX * 0.5;\n oldTop += e.deltaY * 0.5;\n }\n zoomedImage.style.left = oldLeft + 'px'\n zoomedImage.style.top = oldTop + 'px'\n }\n\n let moveListenerAdded\n\n const onTouchStart = e => {\n e.swipeProcessed = false;\n if (e.button === 2) return;\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchStart', e.touches, e.target);\n\n zoomedImage = e.target;\n zoomedImage = zoomedImage.tagName.toLowerCase() === 'img' ? zoomedImage.parentElement : zoomedImage;\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n if (zoomed()) {\n zoomedImage.style.transition = 'none'\n }\n if (!moveListenerAdded) {\n //need to add it like this to be able to call preventDefault\n addEventListener(this.gallery, 'touchmove', onTouchMove, false)\n moveListenerAdded = true;\n }\n\n if (touches.length === 2) {\n if (zoomed())\n zoomValueStarted = zoomValue;\n else if (!props().embedded) {\n initZoom()\n zoomedImage.style.transition = 'none'\n zoomValueStarted = zoomValue = Number.parseFloat(zoomedImage.style.width) / WINDOW.innerWidth;\n }\n }\n touchesStart = (touches)\n };\n\n const power2 = x => x * x;\n\n const distance = touches => {\n const a = touches[0]\n const b = touches[1]\n return Math.sqrt(power2(a.pageX - b.pageX) + power2(a.pageY - b.pageY))\n }\n const center = touches => {\n const a = touches[0]\n const b = touches[1]\n return {x: (a.pageX + b.pageX) / 2, y: (a.pageY + b.pageY) / 2}\n }\n\n const onTouchMove = e => {\n if (!touchesStart)\n return;\n\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchMove', touches, e)\n\n if (zoomed()) {\n preventDefault(e)\n if (touches.length === 2) {\n const diff = distance(touches) / distance(touchesStart);\n\n zoomValue = Math.min(Math.max(zoomValueStarted * diff, 0.5), 10)\n\n let zoomedAt = center(touchesStart)\n let zoomX = zoomedAt.x;\n let newLeft = zoomX - (zoomX - oldLeft) * zoomValue / zoomValueStarted;\n\n let zoomY = zoomedAt.y;\n let newTop = zoomY - (zoomY - oldTop) * zoomValue / zoomValueStarted;\n\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n zoomedImage.style.width = (zoomValue * 100) + '%';\n\n return;\n } else {\n let touch = touches[0];\n let touchStart = touchesStart[0];\n let newLeft = oldLeft + touch.pageX - touchStart.pageX\n let newTop = oldTop + touch.pageY - touchStart.pageY\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n return;\n }\n }\n\n if (touches.length > 1 || zoomed())\n return;\n\n let touch = touches[0];\n let touchStart = touchesStart[0];\n shift(touch.pageX - touchStart.pageX)\n };\n\n const onTouchEnd = e => {\n if (!touchesStart)\n return;\n\n if (zoomed()) {\n touchesStart = (UNDEFINED)\n if (zoomValue < 1) {\n resetZoom()\n }\n return;\n }\n\n const touches = e.changedTouches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchEnd', touches, e)\n\n let touchEnd = touches[0];\n let touchStart = touchesStart[0];\n let distX = touchEnd.pageX - touchStart.pageX;\n let distY = touchEnd.pageY - touchStart.pageY;\n\n touchesStart = (UNDEFINED)\n shift(0)\n const minDistance = 20;\n\n if (abs(distX / distY) > 2 && abs(distX) > minDistance) {\n distX < 0 ? right() : left();\n e.swipeProcessed = true\n } else if (abs(distY / distX) > 2 && abs(distY) > minDistance) {\n !props().embedded && onClose();\n e.swipeProcessed = true\n }\n };\n\n const scrollTo = (i, prev) => {\n const {previews} = props();\n index(i)\n previous(prev)\n previewScroll(calculatePreviewsScroll(i, previews.images.length, previews.width))\n };\n\n const left = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue > 0)\n scrollTo(indexValue - 1, indexValue)\n else if (props().loop)\n scrollTo(props().images.length - 1, indexValue)\n };\n\n const right = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const {images} = props();\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue < images.length - 1)\n scrollTo(indexValue + 1, indexValue)\n else if (props().loop)\n scrollTo(0, indexValue)\n };\n\n that.scrollTo = scrollTo;\n that.left = left;\n that.right = right;\n\n const animatedRoundButton = (show, className, onClick, icon) => (\n <Animated value={show}>\n <Button className={className} onClick={onClick} round={true}>\n <MaterialIcon icon={icon}/>\n </Button>\n </Animated>);\n\n that[render] = () => {\n const {open} = props();\n const {images = [], previews = {}, indicator, embedded, loop, onClick, children} = props();\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const length = images.length;\n const isZoomed = zoomed();\n const shiftValue = shift() || 0;\n const previousValue = previous();\n return (\n <Animated value={open}>\n <div className={classNames('ImageGallery', embedded && 'embedded', isZoomed && 'zoomed')}\n tabIndex={0}\n ref={it => (that.gallery = it) && !embedded && it.focus()}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n // onClick={e => e.target === that.gallery && !e.swipeProcessed && !embedded && onClose()}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onMouseDown={onTouchStart}\n onMouseUp={onTouchEnd}\n onMouseMove={onTouchMove}\n onMouseLeave={onTouchEnd}\n onWheel={onWheel}\n >\n {images.map((it, i) => {\n const isZoomedCurrent = isZoomed && i === indexValue;\n const loaded = it.loaded;\n return <Animated key={it.id} value={open} styles={{\n default: small(it, indexValue, i, length),\n mounting: big(it, indexValue, i, shiftValue, length, previousValue),\n mountend: big(it, indexValue, i, shiftValue, length, previousValue),\n unmounting: small(it, indexValue, i, length),\n }}>\n <div\n draggable={false}\n onDoubleClick={e => {\n const img = e.target;\n if (img.naturalWidth === img.clientWidth && img.naturalHeight === img.clientHeight)\n return;\n\n if (!isZoomed) {\n zoomedImage = img.tagName.toLowerCase() === 'img' ? img.parentElement : img;\n initZoom()\n zoomValue = 2;\n let newWidth = WINDOW.innerWidth * 2;\n let oldWidth = Number.parseFloat(zoomedImage.style.width);\n let oldLeft = Number.parseFloat(zoomedImage.style.left);\n let zoomX = e.pageX;\n let diff = newWidth / oldWidth;\n let newLeft = zoomX - (zoomX - oldLeft) * diff;\n\n let oldTop = Number.parseFloat(zoomedImage.style.top);\n let zoomY = e.pageY;\n let newTop = zoomY - (zoomY - oldTop) * diff;\n\n zoomedImage.style.width = '200%'\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n } else {\n resetZoom()\n }\n }}\n onClick={(e) => {\n !e.swipeProcessed && orNoop(onClick)(e, it, i)\n }}\n key={i} className={classNames('image', touchesStart && 'dragging', isZoomedCurrent && 'zoomed', i === indexValue && 'current')}\n >\n <img draggable={false} src={loaded ? it.url : it.previewUrl} onDragStart={preventDefault}/>\n\n <Animated value={!loaded && Math.abs(indexValue - i) <= 1}>\n <div className={'spinner'}><SpinningProgress/></div>\n </Animated>\n\n {!embedded && animatedRoundButton(open && !isZoomedCurrent,\n 'close',\n onClose,\n 'close'\n )}\n\n\n <Animated value={loaded && !isZoomedCurrent}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {!isZoomedCurrent && loaded && it.overlay}\n </div>\n </Animated>;\n })}\n\n {animatedRoundButton(open && length > 1 && (indexValue > 0 || loop) && !isZoomed,\n 'arrow left',\n left,\n 'chevron_left'\n )}\n\n {animatedRoundButton(open && length > 1 && (indexValue !== length - 1 || loop) && !isZoomed,\n 'arrow right',\n right,\n 'chevron_right'\n )}\n\n <Animated value={open && length > 1 && !isZoomed}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {indicator && <Animated value={open && length > 1 && !isZoomed}>\n {indicator(indexValue, length)}\n </Animated>}\n\n <Animated value={open && previews.show && !isZoomed}>\n <div className=\"previews\" style={{width: previews.width}}>\n <div className=\"viewport\">\n <div className=\"container\" style={{width: previews.totalWidth, left: toPx(previewScroll() || previews.scroll)}}>\n {(previews.images || []).map((it, i) =>\n <div key={i}\n className={classNames('preview', indexValue === i && 'selected')}\n onClick={() => scrollTo(i, indexValue)}\n >\n <img src={it.url} style={it}/>\n\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n </div>)}\n </div>\n </div>\n\n {animatedRoundButton(indexValue > 0 || loop,\n 'arrow left',\n left,\n 'keyboard_arrow_left'\n )}\n {animatedRoundButton(indexValue !== length - 1 || loop,\n 'arrow right',\n right,\n 'keyboard_arrow_right'\n )}\n </div>\n </Animated>\n\n {children}\n </div>\n </Animated>\n )\n }\n\n }\n}\n\nexport const IMAGE_GALLERY_REDUCER_NAME = 'gallery';\nexport const IMAGE_GALLERY_REDUCER = (state, action) => {\n state = state || {};\n const reducer = reducers[action.type];\n return reducer ? reducer(state, action) : state;\n};\n\nexport const mapStateToProps = (state, ownProps) => state[IMAGE_GALLERY_REDUCER_NAME];\n\nexport default ImageGallery;\n\nexport class ImageGalleryContainer extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n\n that.state = IMAGE_GALLERY_REDUCER(null, {})\n const getState = () => that.state;\n\n const dispatch = (action) => setTimeout(() => {\n that.setState(state => {\n // console.log('before action', action, state)\n state = IMAGE_GALLERY_REDUCER(state, action);\n // console.log('after action', action, state)\n return state;\n })\n }, 0)\n\n const props = propsGetter(that)\n\n const embedded = 'embedded'\n const galleryRef = createRef()\n\n const show = that.show = (gallery) => {\n if (!!props()[embedded]) {\n if (props().containerRef()) {\n Actions.show({\n ...gallery,\n [embedded]: !!props()[embedded],\n container: props().containerRef(),\n })(dispatch)\n } else {\n setTimeout(show, 1, gallery)\n }\n } else {\n Actions.show(gallery)(dispatch)\n }\n };\n const close = that.close = () => {\n Actions.close()(dispatch)\n };\n const load = that.load = (item) => {\n Actions.load(item)(dispatch)\n };\n const recalculate = that.recalculate = () => {\n Actions.recalculate()(dispatch)\n };\n that.replaceImages = (images) => {\n Actions.replaceImages(images)(dispatch, getState)\n };\n\n that[render] = () => <ImageGallery ref={galleryRef} {...that.props} {...that.state} show={show} load={load} close={close} recalculate={recalculate}>\n {that.props.children}\n </ImageGallery>\n\n that[componentDidMount] = () => {\n props()[embedded] && show(props()[embedded])\n that.scrollTo = galleryRef().scrollTo;\n that.left = galleryRef().left;\n that.right = galleryRef().right;\n }\n that[componentDidUpdate] = (prevProps, prevState) => {\n isDifferent(prevProps[embedded], props()[embedded]) && props()[embedded] && show(props()[embedded])\n }\n }\n}\n"],"names":["min","Math","abs","toPx","value","previewRatio","previewHeight","previewWidth","previewPadding","previewsHeight","calculatePosition","it","ratio","width","height","embedded","container","windowWidth","clientWidth","DOCUMENT","body","WINDOW","innerWidth","windowHeight","clientHeight","innerHeight","offset","offsetTop","offsetBottom","offsetLeft","offsetRight","Number","isNaN","toHeight","toWidth","toTop","toLeft","toWidthPx","toTopPx","toLeftPx","calculatePreviewsScroll","index","length","calculatePreview","url","top","left","position","loadImage","src","cb","image","Image","onload","ACTION_PREFIX","ACTION_IMAGE_GALLERY_SHOW","ACTION_IMAGE_GALLERY_CLOSE","ACTION_IMAGE_GALLERY_RECALCULATE","ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED","ACTION_IMAGE_GALLERY_PREVIEW_LOADED","Actions","_createClass","_classCallCheck","_class","replaceImages","images","dispatch","getState","state","nextState","_objectSpread","map","item","find","el","rect","getBoundingClientRect","fromWidth","fromHeight","fromLeftPx","fromTopPx","fromWidthPx","naturalWidth","naturalHeight","withPreviews","loadPreview","previews","totalWidth","preview","previewUrl","type","data","show","gallery","UNDEFINED","scroll","forEach","imageWithFromData","load","close","recalculate","loaded","loadedPreview","reducers","_reducers","_defineProperty","action","open","_toConsumableArray","result","i","parseInt","fromHeightPx","findIndex","id","previewImages","small","big","opacity","shift","previous","styles","additionalOffset","ImageGallery","_React$Component","_inherits","_super","_createSuper","properties","_this","call","that","_assertThisInitialized","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","zoomed","previewScroll","props","propsGetter","componentDidUpdate","prevProps","prevState","snapshot","setTimeout","indexValue","onClose","scrollTo","resizeListener","debounce","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","resetZoom","moveListenerAdded","onKeyDown","e","keyCode","preventDefault","right","touchesStart","zoomValue","zoomValueStarted","zoomedImage","oldLeft","oldTop","defaultWidth","defaultLeft","defaultTop","touchpadStarted","onKeyUp","style","transition","initZoom","initTouchpadDragging","parseFloat","onWheel","ctrlKey","diff","deltaY","newZoom","max","zoomX","pageX","zoomY","pageY","deltaX","onTouchStart","swipeProcessed","button","touches","target","tagName","toLowerCase","parentElement","onTouchMove","power2","x","distance","a","b","sqrt","center","y","zoomedAt","newLeft","newTop","touch","touchStart","onTouchEnd","changedTouches","touchEnd","distX","distY","minDistance","prev","_props","stopPropagation","loop","_props2","animatedRoundButton","className","onClick","icon","ReactCreateElement","Animated","Button","round","MaterialIcon","render","_props3","_props4","_props4$images","_props4$previews","indicator","children","isZoomed","shiftValue","classNames","tabIndex","ref","focus","onMouseDown","onMouseUp","onMouseMove","onMouseLeave","isZoomedCurrent","key","mounting","mountend","unmounting","draggable","onDoubleClick","img","newWidth","oldWidth","orNoop","onDragStart","SpinningProgress","overlay","React","Component","IMAGE_GALLERY_REDUCER","reducer","ImageGalleryContainer","_React$Component2","_super2","_this2","setState","galleryRef","createRef","containerRef","_objectSpread2","_extends","isDifferent"],"mappings":"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"}
1
+ {"version":3,"file":"ImageGallery.js","sources":["./src/ImageGallery.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './ImageGallery.css'\nimport Animated from \"./Animated\";\nimport Button from \"./Button\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {\n UNDEFINED,\n preventDefault,\n stopPropagation,\n classNames,\n DOCUMENT,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n orNoop,\n createRef,\n debounce,\n isDifferent\n} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {componentDidUpdate, componentWillUnmount, componentDidMount, render, propsGetter, stateGSs} from \"./ReactConstants\";\n\nconst min = Math.min;\nconst abs = Math.abs;\n\nconst toPx = (value) => value + 'px';\n\nconst previewRatio = 4 / 3;\nconst previewHeight = 80;\nconst previewWidth = previewRatio * previewHeight;\nconst previewPadding = 8;\nconst previewsHeight = previewHeight + 15;\n\nconst calculatePosition = (it, ratio, width, height, previewsHeight, embedded, container) => {\n const windowWidth = embedded ? container.clientWidth : min(DOCUMENT.body.clientWidth, WINDOW.innerWidth);\n const windowHeight = embedded ? container.clientHeight : min(DOCUMENT.body.clientHeight, WINDOW.innerHeight);\n\n let offset = it.offset;\n if (offset == null)\n offset = (embedded ? 0 : windowHeight * 0.03);\n\n let offsetTop = it.offsetTop\n offsetTop = offsetTop == null ? offset : offsetTop\n let offsetBottom = it.offsetBottom\n offsetBottom = offsetBottom == null ? offset : offsetBottom\n let offsetLeft = it.offsetLeft\n offsetLeft = offsetLeft == null ? offset : offsetLeft\n let offsetRight = it.offsetRight\n offsetRight = offsetRight == null ? offset : offsetRight\n\n if (Number.isNaN(ratio))\n ratio = 0;\n if (embedded) {\n if (ratio > 1) {\n it.toHeight = windowHeight - previewsHeight - -offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n } else {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n } else if (ratio > 1) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n if (it.toHeight > windowHeight - previewsHeight - offsetTop - offsetBottom) {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n }\n } else {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n if (it.toWidth > windowWidth - offsetLeft - offsetRight) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n }\n\n // if (width && it.toWidth > width) {\n // it.toWidth = width;\n // it.toHeight = height;\n // }\n\n it.toTop = offsetTop + (windowHeight - previewsHeight - offsetTop - offsetBottom - it.toHeight) / 2;\n it.toLeft = (windowWidth - it.toWidth) / 2;\n\n it.toWidthPx = toPx(it.toWidth);\n // it.toHeightPx = toPx(it.toHeight);\n it.toTopPx = toPx(it.toTop);\n it.toLeftPx = toPx(it.toLeft);\n};\n\nconst calculatePreviewsScroll = (index, length, width) => {\n if (length <= 5)\n return 0;\n\n if (index < 3)\n return 0;\n\n if (index > length - 3)\n return -(length - 5) * (previewWidth + previewPadding);\n\n return -(index * (previewWidth + previewPadding) + (previewWidth) / 2 - width / 2);\n};\n\nfunction calculatePreview(width, height, url) {\n let top = 0;\n let left = 0;\n\n let ratio = width / height;\n\n if (width !== previewWidth || height !== previewHeight) {\n if (ratio < previewRatio) {\n width = previewWidth;\n height = width / ratio;\n top = -(height - previewHeight) / 2;\n } else {\n height = previewHeight;\n width = height * ratio;\n left = -(width - previewWidth) / 2;\n }\n }\n\n return {\n url,\n position: 'absolute',\n width: toPx(width),\n height: toPx(height),\n top: toPx(top),\n left: toPx(left),\n };\n}\n\nconst loadImage = (src, cb) => {\n const image = new Image();\n image.onload = () => {\n cb(image)\n };\n image.src = src;\n}\n\nconst ACTION_PREFIX = 'IMAGE_GALLERY_';\nconst ACTION_IMAGE_GALLERY_SHOW = ACTION_PREFIX + 'SHOW';\nconst ACTION_IMAGE_GALLERY_CLOSE = ACTION_PREFIX + 'CLOSE';\nconst ACTION_IMAGE_GALLERY_RECALCULATE = ACTION_PREFIX + 'RECALCULATE';\nconst ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED = ACTION_PREFIX + 'FULL_IMAGE_LOADED';\nconst ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';\n\nexport class Actions {\n static replaceImages = images => (dispatch, getState) => {\n const state = getState();\n const length = images.length;\n const nextState = {...state}\n nextState.images = images.map(item => {\n const image = state.images.find(it => it.url === item.url)\n if (image)\n return image\n\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n })\n nextState.previews.width = min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding;\n nextState.previews.totalWidth = toPx(length * previewWidth + (length - 1) * previewPadding);\n nextState.previews.images = nextState.images.map(item => {\n const preview = state.previews.images.find(it => it.url === item.previewUrl)\n if (preview)\n return preview\n\n const el = item.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n });\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data: nextState});\n };\n\n static show = (gallery) => (dispatch) => {\n const images = gallery.images;\n const length = images.length;\n const withPreviews = length > 1 && (gallery.withPreviews === UNDEFINED || !!gallery.withPreviews);\n const container = gallery.container;\n const embedded = gallery.embedded;\n const index = gallery.index;\n const data = {\n index,\n container,\n embedded,\n withPreviews,\n images: images.map(item => {\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n }),\n previews: {\n show: withPreviews,\n width: min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding,\n totalWidth: toPx(length * previewWidth + (length - 1) * previewPadding),\n scroll: UNDEFINED,\n images: images.map(it => {\n const el = it.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n })\n },\n };\n\n data.images.forEach(it => {\n if (!it.fromLeftPx) {\n const imageWithFromData = data.images.find(it => !!it.fromLeftPx);\n if (imageWithFromData) {\n it.fromLeftPx = imageWithFromData.fromLeftPx;\n it.fromTopPx = imageWithFromData.fromTopPx;\n it.fromWidthPx = imageWithFromData.fromWidthPx;\n }\n }\n });\n data.previews.scroll = calculatePreviewsScroll(index, length, data.previews.width);\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data});\n Actions.load(data.images[index])(dispatch)\n };\n static close = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_CLOSE});\n };\n static recalculate = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_RECALCULATE});\n };\n static loaded = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED, item, image});\n };\n static loadedPreview = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_PREVIEW_LOADED, item, image});\n };\n static load = (item) => (dispatch) => {\n loadImage(item.url, (image) => {\n Actions.loaded(item, image)(dispatch);\n })\n };\n\n static loadPreview = (item) => (dispatch) => {\n loadImage(item.previewUrl, (image) => {\n Actions.loadedPreview(item, image)(dispatch);\n })\n };\n}\n\nconst reducers = {\n [ACTION_IMAGE_GALLERY_SHOW]: (state, action) => ({...action.data, open: true}),\n [ACTION_IMAGE_GALLERY_CLOSE]: (state, action) => ({...state, open: false}),\n [ACTION_IMAGE_GALLERY_RECALCULATE]: (state, action) => {\n const images = [...state.images];\n const result = {...state, images};\n for (let i = 0; i < images.length; i++) {\n if (!images[i].width && !images[i].fromWidthPx)\n continue\n\n const it = {...images[i]};\n const width = it.width || Number.parseInt(it.fromWidthPx);\n const height = it.height || Number.parseInt(it.fromHeightPx);\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[i] = it;\n }\n\n return result;\n },\n [ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n\n const width = image.width\n const height = image.height\n const it = {...images[index], loaded: true, width, height};\n // debugger\n // if (it.toWidth > image.width)\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n return result;\n },\n [ACTION_IMAGE_GALLERY_PREVIEW_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n const it = {...images[index]};\n\n if (!it.toWidth || !it.toHeight)\n calculatePosition(it, image.width / image.height, image.width, image.height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n\n const previewImages = [...state.previews.images];\n result.previews.images = previewImages;\n const preview = calculatePreview(image.width, image.height, image.src);\n previewImages[index] = preview;\n\n return result;\n },\n};\n\nconst small = (it, index, i, length) => {\n if (index !== i)\n return big(it, index, i, 0, length);\n\n return {\n position: 'absolute',\n top: it.fromTopPx,\n left: it.fromLeftPx,\n width: it.fromWidthPx,\n // height: it.fromHeightPx,\n opacity: 0,\n };\n};\n\nconst big = (it, index, i, shift, length, previous) => {\n const styles = {\n position: 'absolute',\n top: it.toTopPx,\n left: toPx(it.toLeft + shift),\n width: it.toWidthPx,\n // height: it.toHeightPx,\n };\n\n\n // if (previous !== UNDEFINED && abs(index - previous) > 1) {\n // styles.transitionDelay = 100 * abs(previous - i) + 'ms';\n // }\n\n if (index !== i) {\n const width = WINDOW.innerWidth;\n const additionalOffset = it.toLeft < 0 ? -it.toLeft : 0;\n\n if (i < index)\n styles.left = toPx(it.toLeft - width - additionalOffset + (i + 1 === index ? shift : 0));\n else\n styles.left = toPx(it.toLeft + width + additionalOffset + (i - 1 === index ? shift : 0));\n }\n return styles;\n};\n\nclass ImageGallery extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n shift,\n index,\n previous,\n zoomed,\n previewScroll,\n ] = stateGSs(that, 5);\n\n\n const props = propsGetter(that);\n\n that[componentDidUpdate] = (prevProps, prevState, snapshot) => {\n if (props().open !== prevProps.open && !props().open) {\n setTimeout(() => {\n shift(0)\n index(UNDEFINED)\n previous(UNDEFINED)\n }, 250 + 100); // 250ms transition + 100ms to be sure it ended\n }\n\n const images = props().images;\n if (!images)\n return\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const image = images[indexValue];\n if (!image) {\n const i = images.length - 1\n if (i === -1) {\n if (prevProps.images !== images) {\n onClose()\n }\n } else {\n scrollTo(i, UNDEFINED)\n }\n } else if (!image.loaded) {\n props().load(image)\n }\n }\n\n const resizeListener = debounce(() => {\n props().open && props().recalculate()\n }, 100)\n that[componentDidMount] = () => {\n addEventListener(WINDOW, 'resize', resizeListener)\n }\n that[componentWillUnmount] = () => {\n removeEventListener(WINDOW, 'resize', resizeListener)\n }\n const onClose = () => {\n resetZoom()\n moveListenerAdded = false;\n this.props.close();\n }\n\n const onKeyDown = e => {\n const keyCode = e.keyCode;\n if (keyCode === 37/*left*/) {\n left();\n preventDefault(e);\n }\n if (keyCode === 39/*right*/) {\n right();\n preventDefault(e);\n }\n if (keyCode === 27/*escape*/ && !props().embedded) {\n onClose();\n preventDefault(e);\n }\n };\n\n let touchesStart;\n let zoomValue = 1;\n let zoomValueStarted;\n let zoomedImage;\n let oldLeft;\n let oldTop;\n\n let defaultWidth;\n let defaultLeft;\n let defaultTop;\n let touchpadStarted = null;\n\n const onKeyUp = e => {\n const keyCode = e.keyCode;\n if (touchpadStarted && keyCode === 17/*ctrl*/ && zoomed() && zoomValue < 1) {\n resetZoom()\n }\n };\n\n const resetZoom = () => {\n if (!zoomed()) return\n zoomed(false)\n zoomedImage.style.width = defaultWidth;\n zoomedImage.style.left = defaultLeft;\n zoomedImage.style.top = defaultTop;\n zoomedImage.style.transition = null\n touchpadStarted = null\n }\n const initZoom = () => {\n zoomed(true)\n defaultWidth = zoomedImage.style.width;\n defaultLeft = zoomedImage.style.left;\n defaultTop = zoomedImage.style.top;\n }\n\n const initTouchpadDragging = () => {\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n zoomedImage.style.transition = 'none'\n touchpadStarted = true;\n }\n\n const onWheel = (e) => {\n if (!zoomed()) return;\n\n preventDefault(e)\n if (!touchpadStarted) {\n initTouchpadDragging()\n }\n\n if (e.ctrlKey) {\n let diff = e.deltaY * 0.005;\n\n let newZoom = Math.min(Math.max(zoomValue + diff, 0.5), 10)\n let zoomX = e.pageX;\n oldLeft = zoomX - (zoomX - oldLeft) * newZoom / zoomValue;\n\n let zoomY = e.pageY;\n oldTop = zoomY - (zoomY - oldTop) * newZoom / zoomValue;\n zoomValue = newZoom\n\n zoomedImage.style.width = (zoomValue * 100) + '%';\n } else {\n oldLeft += e.deltaX * 0.5;\n oldTop += e.deltaY * 0.5;\n }\n zoomedImage.style.left = oldLeft + 'px'\n zoomedImage.style.top = oldTop + 'px'\n }\n\n let moveListenerAdded\n\n const onTouchStart = e => {\n e.swipeProcessed = false;\n if (e.button === 2) return;\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchStart', e.touches, e.target);\n\n zoomedImage = e.target;\n zoomedImage = zoomedImage.tagName.toLowerCase() === 'img' ? zoomedImage.parentElement : zoomedImage;\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n if (zoomed()) {\n zoomedImage.style.transition = 'none'\n }\n if (!moveListenerAdded) {\n //need to add it like this to be able to call preventDefault\n addEventListener(this.gallery, 'touchmove', onTouchMove, false)\n moveListenerAdded = true;\n }\n\n if (touches.length === 2) {\n if (zoomed())\n zoomValueStarted = zoomValue;\n else if (!props().embedded) {\n initZoom()\n zoomedImage.style.transition = 'none'\n zoomValueStarted = zoomValue = Number.parseFloat(zoomedImage.style.width) / WINDOW.innerWidth;\n }\n }\n touchesStart = (touches)\n };\n\n const power2 = x => x * x;\n\n const distance = touches => {\n const a = touches[0]\n const b = touches[1]\n return Math.sqrt(power2(a.pageX - b.pageX) + power2(a.pageY - b.pageY))\n }\n const center = touches => {\n const a = touches[0]\n const b = touches[1]\n return {x: (a.pageX + b.pageX) / 2, y: (a.pageY + b.pageY) / 2}\n }\n\n const onTouchMove = e => {\n if (!touchesStart)\n return;\n\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchMove', touches, e)\n\n if (zoomed()) {\n preventDefault(e)\n if (touches.length === 2) {\n const diff = distance(touches) / distance(touchesStart);\n\n zoomValue = Math.min(Math.max(zoomValueStarted * diff, 0.5), 10)\n\n let zoomedAt = center(touchesStart)\n let zoomX = zoomedAt.x;\n let newLeft = zoomX - (zoomX - oldLeft) * zoomValue / zoomValueStarted;\n\n let zoomY = zoomedAt.y;\n let newTop = zoomY - (zoomY - oldTop) * zoomValue / zoomValueStarted;\n\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n zoomedImage.style.width = (zoomValue * 100) + '%';\n\n return;\n } else {\n let touch = touches[0];\n let touchStart = touchesStart[0];\n let newLeft = oldLeft + touch.pageX - touchStart.pageX\n let newTop = oldTop + touch.pageY - touchStart.pageY\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n return;\n }\n }\n\n if (touches.length > 1 || zoomed())\n return;\n\n let touch = touches[0];\n let touchStart = touchesStart[0];\n shift(touch.pageX - touchStart.pageX)\n };\n\n const onTouchEnd = e => {\n if (!touchesStart)\n return;\n\n if (zoomed()) {\n touchesStart = (UNDEFINED)\n if (zoomValue < 1) {\n resetZoom()\n }\n return;\n }\n\n const touches = e.changedTouches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchEnd', touches, e)\n\n let touchEnd = touches[0];\n let touchStart = touchesStart[0];\n let distX = touchEnd.pageX - touchStart.pageX;\n let distY = touchEnd.pageY - touchStart.pageY;\n\n touchesStart = (UNDEFINED)\n shift(0)\n const minDistance = 20;\n\n if (abs(distX / distY) > 2 && abs(distX) > minDistance) {\n distX < 0 ? right() : left();\n e.swipeProcessed = true\n } else if (abs(distY / distX) > 2 && abs(distY) > minDistance) {\n !props().embedded && onClose();\n e.swipeProcessed = true\n }\n };\n\n const scrollTo = (i, prev) => {\n const {previews} = props();\n index(i)\n previous(prev)\n previewScroll(calculatePreviewsScroll(i, previews.images.length, previews.width))\n };\n\n const left = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue > 0)\n scrollTo(indexValue - 1, indexValue)\n else if (props().loop)\n scrollTo(props().images.length - 1, indexValue)\n };\n\n const right = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const {images} = props();\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue < images.length - 1)\n scrollTo(indexValue + 1, indexValue)\n else if (props().loop)\n scrollTo(0, indexValue)\n };\n\n that.scrollTo = scrollTo;\n that.left = left;\n that.right = right;\n\n const animatedRoundButton = (show, className, onClick, icon) => (\n <Animated value={show}>\n <Button className={className} onClick={onClick} round={true}>\n <MaterialIcon icon={icon}/>\n </Button>\n </Animated>);\n\n that[render] = () => {\n const {open} = props();\n const {images = [], previews = {}, indicator, embedded, loop, onClick, children} = props();\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const length = images.length;\n const isZoomed = zoomed();\n const shiftValue = shift() || 0;\n const previousValue = previous();\n return (\n <Animated value={open}>\n <div className={classNames('ImageGallery', embedded && 'embedded', isZoomed && 'zoomed')}\n tabIndex={0}\n ref={it => (that.gallery = it) && !embedded && it.focus()}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n // onClick={e => e.target === that.gallery && !e.swipeProcessed && !embedded && onClose()}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onMouseDown={onTouchStart}\n onMouseUp={onTouchEnd}\n onMouseMove={onTouchMove}\n onMouseLeave={onTouchEnd}\n onWheel={onWheel}\n >\n {images.map((it, i) => {\n const isZoomedCurrent = isZoomed && i === indexValue;\n const loaded = it.loaded;\n return <Animated key={it.id} value={open} styles={{\n default: small(it, indexValue, i, length),\n mounting: big(it, indexValue, i, shiftValue, length, previousValue),\n mountend: big(it, indexValue, i, shiftValue, length, previousValue),\n unmounting: small(it, indexValue, i, length),\n }}>\n <div\n draggable={false}\n onDoubleClick={e => {\n const img = e.target;\n if (img.naturalWidth === img.clientWidth && img.naturalHeight === img.clientHeight)\n return;\n\n if (!isZoomed) {\n zoomedImage = img.tagName.toLowerCase() === 'img' ? img.parentElement : img;\n initZoom()\n zoomValue = 2;\n let newWidth = WINDOW.innerWidth * 2;\n let oldWidth = Number.parseFloat(zoomedImage.style.width);\n let oldLeft = Number.parseFloat(zoomedImage.style.left);\n let zoomX = e.pageX;\n let diff = newWidth / oldWidth;\n let newLeft = zoomX - (zoomX - oldLeft) * diff;\n\n let oldTop = Number.parseFloat(zoomedImage.style.top);\n let zoomY = e.pageY;\n let newTop = zoomY - (zoomY - oldTop) * diff;\n\n zoomedImage.style.width = '200%'\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n } else {\n resetZoom()\n }\n }}\n onClick={(e) => {\n !e.swipeProcessed && orNoop(onClick)(e, it, i)\n }}\n key={i} className={classNames('image', touchesStart && 'dragging', isZoomedCurrent && 'zoomed', i === indexValue && 'current')}\n >\n <img draggable={false} src={loaded ? it.url : it.previewUrl} onDragStart={preventDefault}/>\n\n <Animated value={!loaded && Math.abs(indexValue - i) <= 1}>\n <div className={'spinner'}><SpinningProgress/></div>\n </Animated>\n\n {!embedded && animatedRoundButton(open && !isZoomedCurrent,\n 'close',\n onClose,\n 'close'\n )}\n\n\n <Animated value={loaded && !isZoomedCurrent}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {!isZoomedCurrent && loaded && it.overlay}\n </div>\n </Animated>;\n })}\n\n {animatedRoundButton(open && length > 1 && (indexValue > 0 || loop) && !isZoomed,\n 'arrow left',\n left,\n 'chevron_left'\n )}\n\n {animatedRoundButton(open && length > 1 && (indexValue !== length - 1 || loop) && !isZoomed,\n 'arrow right',\n right,\n 'chevron_right'\n )}\n\n <Animated value={open && length > 1 && !isZoomed}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {indicator && <Animated value={open && length > 1 && !isZoomed}>\n {indicator(indexValue, length)}\n </Animated>}\n\n <Animated value={open && previews.show && !isZoomed}>\n <div className=\"previews\" style={{width: previews.width}}>\n <div className=\"viewport\">\n <div className=\"container\" style={{width: previews.totalWidth, left: toPx(previewScroll() || previews.scroll)}}>\n {(previews.images || []).map((it, i) =>\n <div key={i}\n className={classNames('preview', indexValue === i && 'selected')}\n onClick={() => scrollTo(i, indexValue)}\n >\n <img src={it.url} style={it}/>\n\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n </div>)}\n </div>\n </div>\n\n {animatedRoundButton(indexValue > 0 || loop,\n 'arrow left',\n left,\n 'keyboard_arrow_left'\n )}\n {animatedRoundButton(indexValue !== length - 1 || loop,\n 'arrow right',\n right,\n 'keyboard_arrow_right'\n )}\n </div>\n </Animated>\n\n {children}\n </div>\n </Animated>\n )\n }\n\n }\n}\n\nexport const IMAGE_GALLERY_REDUCER_NAME = 'gallery';\nexport const IMAGE_GALLERY_REDUCER = (state, action) => {\n state = state || {};\n const reducer = reducers[action.type];\n return reducer ? reducer(state, action) : state;\n};\n\nexport const mapStateToProps = (state, ownProps) => state[IMAGE_GALLERY_REDUCER_NAME];\n\nexport default ImageGallery;\n\nexport class ImageGalleryContainer extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n\n that.state = IMAGE_GALLERY_REDUCER(null, {})\n const getState = () => that.state;\n\n const dispatch = (action) => setTimeout(() => {\n that.setState(state => {\n // console.log('before action', action, state)\n state = IMAGE_GALLERY_REDUCER(state, action);\n // console.log('after action', action, state)\n return state;\n })\n }, 0)\n\n const props = propsGetter(that)\n\n const embedded = 'embedded'\n const galleryRef = createRef()\n\n const show = that.show = (gallery) => {\n if (!!props()[embedded]) {\n if (props().containerRef()) {\n Actions.show({\n ...gallery,\n [embedded]: !!props()[embedded],\n container: props().containerRef(),\n })(dispatch)\n } else {\n setTimeout(show, 1, gallery)\n }\n } else {\n Actions.show(gallery)(dispatch)\n }\n };\n const close = that.close = () => {\n Actions.close()(dispatch)\n };\n const load = that.load = (item) => {\n Actions.load(item)(dispatch)\n };\n const recalculate = that.recalculate = () => {\n Actions.recalculate()(dispatch)\n };\n that.replaceImages = (images) => {\n Actions.replaceImages(images)(dispatch, getState)\n };\n\n that[render] = () => <ImageGallery ref={galleryRef} {...that.props} {...that.state} show={show} load={load} close={close} recalculate={recalculate}>\n {that.props.children}\n </ImageGallery>\n\n that[componentDidMount] = () => {\n props()[embedded] && show(props()[embedded])\n that.scrollTo = galleryRef().scrollTo;\n that.left = galleryRef().left;\n that.right = galleryRef().right;\n }\n that[componentDidUpdate] = (prevProps, prevState) => {\n isDifferent(prevProps[embedded], props()[embedded]) && props()[embedded] && show(props()[embedded])\n }\n }\n}\n"],"names":["min","Math","abs","toPx","value","previewRatio","previewHeight","previewWidth","previewPadding","previewsHeight","calculatePosition","it","ratio","width","height","embedded","container","windowWidth","clientWidth","DOCUMENT","body","WINDOW","innerWidth","windowHeight","clientHeight","innerHeight","offset","offsetTop","offsetBottom","offsetLeft","offsetRight","Number","isNaN","toHeight","toWidth","toTop","toLeft","toWidthPx","toTopPx","toLeftPx","calculatePreviewsScroll","index","length","calculatePreview","url","top","left","position","loadImage","src","cb","image","Image","onload","ACTION_PREFIX","ACTION_IMAGE_GALLERY_SHOW","ACTION_IMAGE_GALLERY_CLOSE","ACTION_IMAGE_GALLERY_RECALCULATE","ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED","ACTION_IMAGE_GALLERY_PREVIEW_LOADED","Actions","_createClass","_classCallCheck","_Actions","replaceImages","images","dispatch","getState","state","nextState","_objectSpread","map","item","find","el","rect","getBoundingClientRect","fromWidth","fromHeight","fromLeftPx","fromTopPx","fromWidthPx","naturalWidth","naturalHeight","withPreviews","loadPreview","previews","totalWidth","preview","previewUrl","type","data","show","gallery","UNDEFINED","scroll","forEach","imageWithFromData","load","close","recalculate","loaded","loadedPreview","reducers","_reducers","_defineProperty","action","open","_toConsumableArray","result","i","parseInt","fromHeightPx","findIndex","id","previewImages","small","big","opacity","shift","previous","styles","additionalOffset","ImageGallery","_React$Component","_inherits","_super","_createSuper","properties","_this","call","that","_assertThisInitialized","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","zoomed","previewScroll","props","propsGetter","componentDidUpdate","prevProps","prevState","snapshot","setTimeout","indexValue","onClose","scrollTo","resizeListener","debounce","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","resetZoom","moveListenerAdded","onKeyDown","e","keyCode","preventDefault","right","touchesStart","zoomValue","zoomValueStarted","zoomedImage","oldLeft","oldTop","defaultWidth","defaultLeft","defaultTop","touchpadStarted","onKeyUp","style","transition","initZoom","initTouchpadDragging","parseFloat","onWheel","ctrlKey","diff","deltaY","newZoom","max","zoomX","pageX","zoomY","pageY","deltaX","onTouchStart","swipeProcessed","button","touches","target","tagName","toLowerCase","parentElement","onTouchMove","power2","x","distance","a","b","sqrt","center","y","zoomedAt","newLeft","newTop","touch","touchStart","onTouchEnd","changedTouches","touchEnd","distX","distY","minDistance","prev","_props","stopPropagation","loop","_props2","animatedRoundButton","className","onClick","icon","ReactCreateElement","Animated","Button","round","MaterialIcon","render","_props3","_props4","_props4$images","_props4$previews","indicator","children","isZoomed","shiftValue","classNames","tabIndex","ref","focus","onMouseDown","onMouseUp","onMouseMove","onMouseLeave","isZoomedCurrent","key","mounting","mountend","unmounting","draggable","onDoubleClick","img","newWidth","oldWidth","orNoop","onDragStart","SpinningProgress","overlay","React","Component","IMAGE_GALLERY_REDUCER","reducer","ImageGalleryContainer","_React$Component2","_super2","_this2","setState","galleryRef","createRef","containerRef","_objectSpread2","_extends","isDifferent"],"mappings":"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"}
package/MaterialIcon.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  /**
3
2
  * Component to render https://google.github.io/material-design-icons/
4
3
  */
package/Modal.js CHANGED
@@ -6,7 +6,7 @@ import Button from './Button.js';
6
6
  import { UNDEFINED, removeEventListener, addEventListener, DOCUMENT, classNames, orNoop, setTimeout, createRef, stopPropagation } from './Tools.js';
7
7
  import { stateGSs, render, componentDidMount, componentDidUpdate, PureComponent, propsGetter } from './ReactConstants.js';
8
8
  import MaterialIcon from './MaterialIcon.js';
9
- import PropTypes from 'prop-types';
9
+ import 'prop-types';
10
10
 
11
11
  var listenerRef;
12
12
  var zIndex = 100;
@@ -142,13 +142,6 @@ Modal.defaultContainer = UNDEFINED;
142
142
  Modal.pollListener = pollListener;
143
143
  Modal.addListener = addListener;
144
144
  var Modal$1 = Modal;
145
- if (process.env.NODE_ENV !== 'production') {
146
- Modal.propTypes = {
147
- [ReactConstants[5]]: PropTypes.string,
148
- top: PropTypes.number,
149
- container: PropTypes.node
150
- };
151
- }
152
145
 
153
146
  export { Modal$1 as default };
154
147
  //# sourceMappingURL=Modal.js.map
package/Modal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["./src/Modal.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Modal.css'\nimport Button from \"./Button\";\nimport {classNames, orNoop, setTimeout, DOCUMENT, addEventListener, removeEventListener, createRef, UNDEFINED, stopPropagation} from \"./Tools\";\nimport {PureComponent, componentDidMount, render, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport PropTypes from \"prop-types\";\n\nlet listenerRef;\nlet zIndex = 100;\n\nconst EVENT_TYPE = 'keydown';\nconst pollListener = (modal) => {\n removeEventListener(DOCUMENT, EVENT_TYPE, listenerRef);\n const listener = modal._pl;\n listener && addEventListener(DOCUMENT, EVENT_TYPE, listener);\n listenerRef = listener;\n};\n\nconst addListener = (modal, listener) => {\n const prev = listenerRef;\n prev && removeEventListener(DOCUMENT, EVENT_TYPE, prev);\n modal._pl = prev;\n addEventListener(DOCUMENT, EVENT_TYPE, listenerRef = listener);\n};\n\nclass Modal extends PureComponent {\n\n static defaultProps = {\n closeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n isShow,\n getMenu,\n getBeforeClose,\n ] = stateGSs(that, 3);\n const overlay = createRef();\n const el = createRef();\n const content = createRef();\n const props = propsGetter(that);\n\n const beforeClose = (e) => {\n stopPropagation(e);\n const bc = getBeforeClose() || props().beforeClose;\n if (!bc || bc(that.close))\n that.close(e);\n };\n\n const shouldClose = (e) => {\n const isSameModal = el().style.zIndex == zIndex - 1;\n !(e && content().contains(e.target)) && isSameModal && beforeClose(e);\n };\n\n const addTransitionListener = () => {\n const transitionend = \"transitionend\";\n let listener = () => {\n removeEventListener(overlay(), transitionend, listener);\n orNoop(isShow() ? props().onOpen : orNoop(props().onClose))();\n el() && (el().style.paddingBottom = isShow() ? '1px' : '0px'); // force invalidate scroll\n };\n addEventListener(overlay(), transitionend, listener);\n };\n that[render] = () => {\n const {className, top, container = Modal.defaultContainer, children, closeIcon} = props();\n const menu = getMenu();\n const show = isShow();\n const modal = <div className={classNames(`Modal`, className, show && 'show')} ref={el} onClick={shouldClose}>\n <div ref={overlay} className={classNames(`overlay`, show && 'show')}>\n </div>\n <div className={classNames(`content`, show && 'show', top && 'top')}\n style={top && {top: top + 'px'}}\n ref={content}\n >\n {React.Children.map(children, child => React.cloneElement(child, {\n modalMenuConsumer: getMenu,\n modalBeforeCloseConsumer: getBeforeClose\n }))}\n {menu}\n <Button className=\"close\" flat={true} round={true} onClick={beforeClose}>\n {closeIcon}\n </Button>\n </div>\n </div>;\n\n return container ? ReactDOM.createPortal(modal, container) : modal;\n };\n\n const close = that.close = () => {\n if (!isShow())\n return;\n\n zIndex--;\n addTransitionListener();\n isShow(false);\n\n pollListener(that);\n };\n const open = that.open = () => {\n if (isShow())\n return;\n\n el() && (el().style.zIndex = zIndex++);\n addTransitionListener();\n isShow(true);\n\n let listener = event => {\n if (!event.defaultPrevented && event.keyCode === 27/*escape*/)\n beforeClose();\n return true;\n };\n\n addListener(that, listener)\n };\n\n that[componentDidMount] = () => {\n const _props = props();\n orNoop(_props.open)(() => {\n setTimeout(open, 0);\n });\n orNoop(_props.close)(() => {\n setTimeout(close, 0);\n });\n _props.show && setTimeout(open, 0)\n };\n that[componentDidUpdate] = (prevProps) => {\n const show = props().show;\n if (show !== prevProps.show) {\n show ? open() : close();\n }\n };\n }\n}\n\nModal.defaultContainer = UNDEFINED;\nModal.pollListener = pollListener;\nModal.addListener = addListener;\n\nexport default Modal;\n\nif (window.isNotProductionEnvironment) {\n Modal.propTypes = {\n className: PropTypes.string,\n top: PropTypes.number,\n container: PropTypes.node,\n };\n}"],"names":["listenerRef","zIndex","EVENT_TYPE","pollListener","modal","removeEventListener","DOCUMENT","listener","_pl","addEventListener","addListener","prev","Modal","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isShow","getMenu","getBeforeClose","overlay","createRef","el","content","props","propsGetter","beforeClose","e","stopPropagation","bc","close","shouldClose","isSameModal","style","contains","target","addTransitionListener","transitionend","orNoop","onOpen","onClose","paddingBottom","render","_props2","className","top","_props2$container","container","defaultContainer","children","closeIcon","menu","show","ReactCreateElement","classNames","ref","onClick","React","Children","map","child","cloneElement","modalMenuConsumer","modalBeforeCloseConsumer","Button","flat","round","ReactDOM","createPortal","open","event","defaultPrevented","keyCode","componentDidMount","_props","setTimeout","componentDidUpdate","prevProps","_createClass","PureComponent","defaultProps","MaterialIcon","icon","UNDEFINED","window","isNotProductionEnvironment","propTypes","PropTypes","string","number","node"],"mappings":";;;;;;;;;;AAUA,IAAIA,WAAW,CAAA;AACf,IAAIC,MAAM,GAAG,GAAG,CAAA;AAEhB,IAAMC,UAAU,GAAG,SAAS,CAAA;AAC5B,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAK,EAAK;AAC5BC,EAAAA,mBAAmB,CAACC,QAAQ,EAAEJ,UAAU,EAAEF,WAAW,CAAC,CAAA;AACtD,EAAA,IAAMO,QAAQ,GAAGH,KAAK,CAACI,GAAG,CAAA;EAC1BD,QAAQ,IAAIE,gBAAgB,CAACH,QAAQ,EAAEJ,UAAU,EAAEK,QAAQ,CAAC,CAAA;AAC5DP,EAAAA,WAAW,GAAGO,QAAQ,CAAA;AAC1B,CAAC,CAAA;AAED,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAIN,KAAK,EAAEG,QAAQ,EAAK;EACrC,IAAMI,IAAI,GAAGX,WAAW,CAAA;EACxBW,IAAI,IAAIN,mBAAmB,CAACC,QAAQ,EAAEJ,UAAU,EAAES,IAAI,CAAC,CAAA;EACvDP,KAAK,CAACI,GAAG,GAAGG,IAAI,CAAA;EAChBF,gBAAgB,CAACH,QAAQ,EAAEJ,UAAU,EAAEF,WAAW,GAAGO,QAAQ,CAAC,CAAA;AAClE,CAAC,CAAA;AAAC,IAEIK,KAAK,aAAAC,cAAA,EAAA;EAAAC,SAAA,CAAAF,KAAA,EAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,KAAA,CAAA,CAAA;EAMP,SAAAA,KAAAA,CAAYK,UAAU,EAAE;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,eAAA,OAAAP,KAAA,CAAA,CAAA;AACpBM,IAAAA,KAAA,GAAAH,MAAA,CAAAK,IAAA,OAAMH,UAAU,CAAA,CAAA;AAChB,IAAA,IAAMI,IAAI,GAAAC,sBAAA,CAAAJ,KAAA,CAAO,CAAA;AACjBG,IAAAA,IAAI,CAACE,KAAK,GAAG,EAAE,CAAA;AAEf,IAAA,IAAAC,SAAA,GAIIC,QAAQ,CAACJ,IAAI,EAAE,CAAC,CAAC;MAAAK,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAHjBI,MAAAA,MAAM,GAAAF,UAAA,CAAA,CAAA,CAAA;AACNG,MAAAA,OAAO,GAAAH,UAAA,CAAA,CAAA,CAAA;AACPI,MAAAA,cAAc,GAAAJ,UAAA,CAAA,CAAA,CAAA,CAAA;AAElB,IAAA,IAAMK,OAAO,GAAGC,SAAS,EAAE,CAAA;AAC3B,IAAA,IAAMC,EAAE,GAAGD,SAAS,EAAE,CAAA;AACtB,IAAA,IAAME,OAAO,GAAGF,SAAS,EAAE,CAAA;AAC3B,IAAA,IAAMG,KAAK,GAAGC,WAAW,CAACf,IAAI,CAAC,CAAA;AAE/B,IAAA,IAAMgB,WAAW,GAAG,SAAdA,WAAWA,CAAIC,CAAC,EAAK;MACvBC,eAAe,CAACD,CAAC,CAAC,CAAA;MAClB,IAAME,EAAE,GAAGV,cAAc,EAAE,IAAIK,KAAK,EAAE,CAACE,WAAW,CAAA;AAClD,MAAA,IAAI,CAACG,EAAE,IAAIA,EAAE,CAACnB,IAAI,CAACoB,KAAK,CAAC,EACrBpB,IAAI,CAACoB,KAAK,CAACH,CAAC,CAAC,CAAA;KACpB,CAAA;AAED,IAAA,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAIJ,CAAC,EAAK;AACvB,MAAA,IAAMK,WAAW,GAAGV,EAAE,EAAE,CAACW,KAAK,CAAC3C,MAAM,IAAIA,MAAM,GAAG,CAAC,CAAA;AACnD,MAAA,EAAEqC,CAAC,IAAIJ,OAAO,EAAE,CAACW,QAAQ,CAACP,CAAC,CAACQ,MAAM,CAAC,CAAC,IAAIH,WAAW,IAAIN,WAAW,CAACC,CAAC,CAAC,CAAA;KACxE,CAAA;AAED,IAAA,IAAMS,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;MAChC,IAAMC,aAAa,GAAG,eAAe,CAAA;AACrC,MAAA,IAAIzC,QAAQ,GAAG,SAAXA,QAAQA,GAAS;QACjBF,mBAAmB,CAAC0B,OAAO,EAAE,EAAEiB,aAAa,EAAEzC,QAAQ,CAAC,CAAA;QACvD0C,MAAM,CAACrB,MAAM,EAAE,GAAGO,KAAK,EAAE,CAACe,MAAM,GAAGD,MAAM,CAACd,KAAK,EAAE,CAACgB,OAAO,CAAC,CAAC,EAAE,CAAA;QAC7DlB,EAAE,EAAE,KAAKA,EAAE,EAAE,CAACW,KAAK,CAACQ,aAAa,GAAGxB,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;OACjE,CAAA;MACDnB,gBAAgB,CAACsB,OAAO,EAAE,EAAEiB,aAAa,EAAEzC,QAAQ,CAAC,CAAA;KACvD,CAAA;AACDc,IAAAA,IAAI,CAACgC,MAAM,CAAC,GAAG,YAAM;AACjB,MAAA,IAAAC,OAAA,GAAkFnB,KAAK,EAAE;QAAlFoB,SAAS,GAAAD,OAAA,CAATC,SAAS;QAAEC,GAAG,GAAAF,OAAA,CAAHE,GAAG;QAAAC,iBAAA,GAAAH,OAAA,CAAEI,SAAS;AAATA,QAAAA,SAAS,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG7C,KAAK,CAAC+C,gBAAgB,GAAAF,iBAAA;QAAEG,QAAQ,GAAAN,OAAA,CAARM,QAAQ;QAAEC,SAAS,GAAAP,OAAA,CAATO,SAAS,CAAA;AAC9E,MAAA,IAAMC,IAAI,GAAGjC,OAAO,EAAE,CAAA;AACtB,MAAA,IAAMkC,IAAI,GAAGnC,MAAM,EAAE,CAAA;MACrB,IAAMxB,KAAK,GAAG4D,kBAAA,CAAA,KAAA,EAAA;QAAKT,SAAS,EAAEU,UAAU,CAAUV,OAAAA,EAAAA,SAAS,EAAEQ,IAAI,IAAI,MAAM,CAAE;AAACG,QAAAA,GAAG,EAAEjC,EAAG;AAACkC,QAAAA,OAAO,EAAEzB,WAAAA;AAAY,OAAA,EACxGsB,kBAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,GAAG,EAAEnC,OAAQ;AAACwB,QAAAA,SAAS,EAAEU,UAAU,CAAYF,SAAAA,EAAAA,IAAI,IAAI,MAAM,CAAA;OAC7D,CAAC,EACNC,kBAAA,CAAA,KAAA,EAAA;QAAKT,SAAS,EAAEU,UAAU,CAAA,SAAA,EAAYF,IAAI,IAAI,MAAM,EAAEP,GAAG,IAAI,KAAK,CAAE;QAC/DZ,KAAK,EAAEY,GAAG,IAAI;UAACA,GAAG,EAAEA,GAAG,GAAG,IAAA;SAAM;AAChCU,QAAAA,GAAG,EAAEhC,OAAAA;OAELkC,EAAAA,KAAK,CAACC,QAAQ,CAACC,GAAG,CAACV,QAAQ,EAAE,UAAAW,KAAK,EAAA;AAAA,QAAA,OAAIH,KAAK,CAACI,YAAY,CAACD,KAAK,EAAE;AAC7DE,UAAAA,iBAAiB,EAAE5C,OAAO;AAC1B6C,UAAAA,wBAAwB,EAAE5C,cAAAA;AAC9B,SAAC,CAAC,CAAA;AAAA,OAAA,CAAC,EACFgC,IAAI,EACLE,kBAAA,CAACW,MAAM,EAAA;AAACpB,QAAAA,SAAS,EAAC,OAAO;AAACqB,QAAAA,IAAI,EAAE,IAAK;AAACC,QAAAA,KAAK,EAAE,IAAK;AAACV,QAAAA,OAAO,EAAE9B,WAAAA;OACvDwB,EAAAA,SACG,CACP,CACJ,CAAC,CAAA;MAEN,OAAOH,SAAS,GAAGoB,QAAQ,CAACC,YAAY,CAAC3E,KAAK,EAAEsD,SAAS,CAAC,GAAGtD,KAAK,CAAA;KACrE,CAAA;AAED,IAAA,IAAMqC,KAAK,GAAGpB,IAAI,CAACoB,KAAK,GAAG,YAAM;AAC7B,MAAA,IAAI,CAACb,MAAM,EAAE,EACT,OAAA;AAEJ3B,MAAAA,MAAM,EAAE,CAAA;AACR8C,MAAAA,qBAAqB,EAAE,CAAA;MACvBnB,MAAM,CAAC,KAAK,CAAC,CAAA;MAEbzB,YAAY,CAACkB,IAAI,CAAC,CAAA;KACrB,CAAA;AACD,IAAA,IAAM2D,IAAI,GAAG3D,IAAI,CAAC2D,IAAI,GAAG,YAAM;MAC3B,IAAIpD,MAAM,EAAE,EACR,OAAA;AAEJK,MAAAA,EAAE,EAAE,KAAKA,EAAE,EAAE,CAACW,KAAK,CAAC3C,MAAM,GAAGA,MAAM,EAAE,CAAC,CAAA;AACtC8C,MAAAA,qBAAqB,EAAE,CAAA;MACvBnB,MAAM,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAA,IAAIrB,QAAQ,GAAG,SAAXA,QAAQA,CAAG0E,KAAK,EAAI;AACpB,QAAA,IAAI,CAACA,KAAK,CAACC,gBAAgB,IAAID,KAAK,CAACE,OAAO,KAAK,EAAE,GAC/C9C,WAAW,EAAE,CAAA;AACjB,QAAA,OAAO,IAAI,CAAA;OACd,CAAA;AAED3B,MAAAA,WAAW,CAACW,IAAI,EAAEd,QAAQ,CAAC,CAAA;KAC9B,CAAA;AAEDc,IAAAA,IAAI,CAAC+D,iBAAiB,CAAC,GAAG,YAAM;AAC5B,MAAA,IAAMC,MAAM,GAAGlD,KAAK,EAAE,CAAA;AACtBc,MAAAA,MAAM,CAACoC,MAAM,CAACL,IAAI,CAAC,CAAC,YAAM;AACtBM,QAAAA,UAAU,CAACN,IAAI,EAAE,CAAC,CAAC,CAAA;AACvB,OAAC,CAAC,CAAA;AACF/B,MAAAA,MAAM,CAACoC,MAAM,CAAC5C,KAAK,CAAC,CAAC,YAAM;AACvB6C,QAAAA,UAAU,CAAC7C,KAAK,EAAE,CAAC,CAAC,CAAA;AACxB,OAAC,CAAC,CAAA;MACF4C,MAAM,CAACtB,IAAI,IAAIuB,UAAU,CAACN,IAAI,EAAE,CAAC,CAAC,CAAA;KACrC,CAAA;AACD3D,IAAAA,IAAI,CAACkE,kBAAkB,CAAC,GAAG,UAACC,SAAS,EAAK;AACtC,MAAA,IAAMzB,IAAI,GAAG5B,KAAK,EAAE,CAAC4B,IAAI,CAAA;AACzB,MAAA,IAAIA,IAAI,KAAKyB,SAAS,CAACzB,IAAI,EAAE;AACzBA,QAAAA,IAAI,GAAGiB,IAAI,EAAE,GAAGvC,KAAK,EAAE,CAAA;AAC3B,OAAA;KACH,CAAA;AAAC,IAAA,OAAAvB,KAAA,CAAA;AACN,GAAA;EAAC,OAAAuE,YAAA,CAAA7E,KAAA,CAAA,CAAA;AAAA,CAAA,CA9Ge8E,aAAa,CAAA,CAAA;AAA3B9E,KAAK,CAEA+E,YAAY,GAAG;EAClB9B,SAAS,EAAEG,kBAAA,CAAC4B,YAAY,EAAA;AAACC,IAAAA,IAAI,EAAC,OAAA;GAAQ,CAAA;AAC1C,CAAC,CAAA;AA6GLjF,KAAK,CAAC+C,gBAAgB,GAAGmC,SAAS,CAAA;AAClClF,KAAK,CAACT,YAAY,GAAGA,YAAY,CAAA;AACjCS,KAAK,CAACF,WAAW,GAAGA,WAAW,CAAA;AAE/B,cAAeE,KAAK,CAAA;AAEpB,IAAImF,MAAM,CAACC,0BAA0B,EAAE;EACnCpF,KAAK,CAACqF,SAAS,GAAG;IACd1C,SAAS,EAAE2C,SAAS,CAACC,MAAM;IAC3B3C,GAAG,EAAE0C,SAAS,CAACE,MAAM;IACrB1C,SAAS,EAAEwC,SAAS,CAACG,IAAAA;GACxB,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"Modal.js","sources":["./src/Modal.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Modal.css'\nimport Button from \"./Button\";\nimport {classNames, orNoop, setTimeout, DOCUMENT, addEventListener, removeEventListener, createRef, UNDEFINED, stopPropagation} from \"./Tools\";\nimport {PureComponent, componentDidMount, render, propsGetter, stateGSs, componentDidUpdate} from \"./ReactConstants\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport PropTypes from \"prop-types\";\n\nlet listenerRef;\nlet zIndex = 100;\n\nconst EVENT_TYPE = 'keydown';\nconst pollListener = (modal) => {\n removeEventListener(DOCUMENT, EVENT_TYPE, listenerRef);\n const listener = modal._pl;\n listener && addEventListener(DOCUMENT, EVENT_TYPE, listener);\n listenerRef = listener;\n};\n\nconst addListener = (modal, listener) => {\n const prev = listenerRef;\n prev && removeEventListener(DOCUMENT, EVENT_TYPE, prev);\n modal._pl = prev;\n addEventListener(DOCUMENT, EVENT_TYPE, listenerRef = listener);\n};\n\nclass Modal extends PureComponent {\n\n static defaultProps = {\n closeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n isShow,\n getMenu,\n getBeforeClose,\n ] = stateGSs(that, 3);\n const overlay = createRef();\n const el = createRef();\n const content = createRef();\n const props = propsGetter(that);\n\n const beforeClose = (e) => {\n stopPropagation(e);\n const bc = getBeforeClose() || props().beforeClose;\n if (!bc || bc(that.close))\n that.close(e);\n };\n\n const shouldClose = (e) => {\n const isSameModal = el().style.zIndex == zIndex - 1;\n !(e && content().contains(e.target)) && isSameModal && beforeClose(e);\n };\n\n const addTransitionListener = () => {\n const transitionend = \"transitionend\";\n let listener = () => {\n removeEventListener(overlay(), transitionend, listener);\n orNoop(isShow() ? props().onOpen : orNoop(props().onClose))();\n el() && (el().style.paddingBottom = isShow() ? '1px' : '0px'); // force invalidate scroll\n };\n addEventListener(overlay(), transitionend, listener);\n };\n that[render] = () => {\n const {className, top, container = Modal.defaultContainer, children, closeIcon} = props();\n const menu = getMenu();\n const show = isShow();\n const modal = <div className={classNames(`Modal`, className, show && 'show')} ref={el} onClick={shouldClose}>\n <div ref={overlay} className={classNames(`overlay`, show && 'show')}>\n </div>\n <div className={classNames(`content`, show && 'show', top && 'top')}\n style={top && {top: top + 'px'}}\n ref={content}\n >\n {React.Children.map(children, child => React.cloneElement(child, {\n modalMenuConsumer: getMenu,\n modalBeforeCloseConsumer: getBeforeClose\n }))}\n {menu}\n <Button className=\"close\" flat={true} round={true} onClick={beforeClose}>\n {closeIcon}\n </Button>\n </div>\n </div>;\n\n return container ? ReactDOM.createPortal(modal, container) : modal;\n };\n\n const close = that.close = () => {\n if (!isShow())\n return;\n\n zIndex--;\n addTransitionListener();\n isShow(false);\n\n pollListener(that);\n };\n const open = that.open = () => {\n if (isShow())\n return;\n\n el() && (el().style.zIndex = zIndex++);\n addTransitionListener();\n isShow(true);\n\n let listener = event => {\n if (!event.defaultPrevented && event.keyCode === 27/*escape*/)\n beforeClose();\n return true;\n };\n\n addListener(that, listener)\n };\n\n that[componentDidMount] = () => {\n const _props = props();\n orNoop(_props.open)(() => {\n setTimeout(open, 0);\n });\n orNoop(_props.close)(() => {\n setTimeout(close, 0);\n });\n _props.show && setTimeout(open, 0)\n };\n that[componentDidUpdate] = (prevProps) => {\n const show = props().show;\n if (show !== prevProps.show) {\n show ? open() : close();\n }\n };\n }\n}\n\nModal.defaultContainer = UNDEFINED;\nModal.pollListener = pollListener;\nModal.addListener = addListener;\n\nexport default Modal;\n\nif (window.isNotProductionEnvironment) {\n Modal.propTypes = {\n className: PropTypes.string,\n top: PropTypes.number,\n container: PropTypes.node,\n };\n}"],"names":["listenerRef","zIndex","EVENT_TYPE","pollListener","modal","removeEventListener","DOCUMENT","listener","_pl","addEventListener","addListener","prev","Modal","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","isShow","getMenu","getBeforeClose","overlay","createRef","el","content","props","propsGetter","beforeClose","e","stopPropagation","bc","close","shouldClose","isSameModal","style","contains","target","addTransitionListener","transitionend","orNoop","onOpen","onClose","paddingBottom","render","_props2","className","top","_props2$container","container","defaultContainer","children","closeIcon","menu","show","ReactCreateElement","classNames","ref","onClick","React","Children","map","child","cloneElement","modalMenuConsumer","modalBeforeCloseConsumer","Button","flat","round","ReactDOM","createPortal","open","event","defaultPrevented","keyCode","componentDidMount","_props","setTimeout","componentDidUpdate","prevProps","_createClass","PureComponent","defaultProps","MaterialIcon","icon","UNDEFINED"],"mappings":";;;;;;;;;;AAUA,IAAIA,WAAW,CAAA;AACf,IAAIC,MAAM,GAAG,GAAG,CAAA;AAEhB,IAAMC,UAAU,GAAG,SAAS,CAAA;AAC5B,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAK,EAAK;AAC5BC,EAAAA,mBAAmB,CAACC,QAAQ,EAAEJ,UAAU,EAAEF,WAAW,CAAC,CAAA;AACtD,EAAA,IAAMO,QAAQ,GAAGH,KAAK,CAACI,GAAG,CAAA;EAC1BD,QAAQ,IAAIE,gBAAgB,CAACH,QAAQ,EAAEJ,UAAU,EAAEK,QAAQ,CAAC,CAAA;AAC5DP,EAAAA,WAAW,GAAGO,QAAQ,CAAA;AAC1B,CAAC,CAAA;AAED,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAIN,KAAK,EAAEG,QAAQ,EAAK;EACrC,IAAMI,IAAI,GAAGX,WAAW,CAAA;EACxBW,IAAI,IAAIN,mBAAmB,CAACC,QAAQ,EAAEJ,UAAU,EAAES,IAAI,CAAC,CAAA;EACvDP,KAAK,CAACI,GAAG,GAAGG,IAAI,CAAA;EAChBF,gBAAgB,CAACH,QAAQ,EAAEJ,UAAU,EAAEF,WAAW,GAAGO,QAAQ,CAAC,CAAA;AAClE,CAAC,CAAA;AAAC,IAEIK,KAAK,aAAAC,cAAA,EAAA;EAAAC,SAAA,CAAAF,KAAA,EAAAC,cAAA,CAAA,CAAA;AAAA,EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,KAAA,CAAA,CAAA;EAMP,SAAAA,KAAAA,CAAYK,UAAU,EAAE;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAAC,IAAAA,eAAA,OAAAP,KAAA,CAAA,CAAA;AACpBM,IAAAA,KAAA,GAAAH,MAAA,CAAAK,IAAA,OAAMH,UAAU,CAAA,CAAA;AAChB,IAAA,IAAMI,IAAI,GAAAC,sBAAA,CAAAJ,KAAA,CAAO,CAAA;AACjBG,IAAAA,IAAI,CAACE,KAAK,GAAG,EAAE,CAAA;AAEf,IAAA,IAAAC,SAAA,GAIIC,QAAQ,CAACJ,IAAI,EAAE,CAAC,CAAC;MAAAK,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAHjBI,MAAAA,MAAM,GAAAF,UAAA,CAAA,CAAA,CAAA;AACNG,MAAAA,OAAO,GAAAH,UAAA,CAAA,CAAA,CAAA;AACPI,MAAAA,cAAc,GAAAJ,UAAA,CAAA,CAAA,CAAA,CAAA;AAElB,IAAA,IAAMK,OAAO,GAAGC,SAAS,EAAE,CAAA;AAC3B,IAAA,IAAMC,EAAE,GAAGD,SAAS,EAAE,CAAA;AACtB,IAAA,IAAME,OAAO,GAAGF,SAAS,EAAE,CAAA;AAC3B,IAAA,IAAMG,KAAK,GAAGC,WAAW,CAACf,IAAI,CAAC,CAAA;AAE/B,IAAA,IAAMgB,WAAW,GAAG,SAAdA,WAAWA,CAAIC,CAAC,EAAK;MACvBC,eAAe,CAACD,CAAC,CAAC,CAAA;MAClB,IAAME,EAAE,GAAGV,cAAc,EAAE,IAAIK,KAAK,EAAE,CAACE,WAAW,CAAA;AAClD,MAAA,IAAI,CAACG,EAAE,IAAIA,EAAE,CAACnB,IAAI,CAACoB,KAAK,CAAC,EACrBpB,IAAI,CAACoB,KAAK,CAACH,CAAC,CAAC,CAAA;KACpB,CAAA;AAED,IAAA,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAIJ,CAAC,EAAK;AACvB,MAAA,IAAMK,WAAW,GAAGV,EAAE,EAAE,CAACW,KAAK,CAAC3C,MAAM,IAAIA,MAAM,GAAG,CAAC,CAAA;AACnD,MAAA,EAAEqC,CAAC,IAAIJ,OAAO,EAAE,CAACW,QAAQ,CAACP,CAAC,CAACQ,MAAM,CAAC,CAAC,IAAIH,WAAW,IAAIN,WAAW,CAACC,CAAC,CAAC,CAAA;KACxE,CAAA;AAED,IAAA,IAAMS,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAS;MAChC,IAAMC,aAAa,GAAG,eAAe,CAAA;AACrC,MAAA,IAAIzC,QAAQ,GAAG,SAAXA,QAAQA,GAAS;QACjBF,mBAAmB,CAAC0B,OAAO,EAAE,EAAEiB,aAAa,EAAEzC,QAAQ,CAAC,CAAA;QACvD0C,MAAM,CAACrB,MAAM,EAAE,GAAGO,KAAK,EAAE,CAACe,MAAM,GAAGD,MAAM,CAACd,KAAK,EAAE,CAACgB,OAAO,CAAC,CAAC,EAAE,CAAA;QAC7DlB,EAAE,EAAE,KAAKA,EAAE,EAAE,CAACW,KAAK,CAACQ,aAAa,GAAGxB,MAAM,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;OACjE,CAAA;MACDnB,gBAAgB,CAACsB,OAAO,EAAE,EAAEiB,aAAa,EAAEzC,QAAQ,CAAC,CAAA;KACvD,CAAA;AACDc,IAAAA,IAAI,CAACgC,MAAM,CAAC,GAAG,YAAM;AACjB,MAAA,IAAAC,OAAA,GAAkFnB,KAAK,EAAE;QAAlFoB,SAAS,GAAAD,OAAA,CAATC,SAAS;QAAEC,GAAG,GAAAF,OAAA,CAAHE,GAAG;QAAAC,iBAAA,GAAAH,OAAA,CAAEI,SAAS;AAATA,QAAAA,SAAS,GAAAD,iBAAA,KAAA,KAAA,CAAA,GAAG7C,KAAK,CAAC+C,gBAAgB,GAAAF,iBAAA;QAAEG,QAAQ,GAAAN,OAAA,CAARM,QAAQ;QAAEC,SAAS,GAAAP,OAAA,CAATO,SAAS,CAAA;AAC9E,MAAA,IAAMC,IAAI,GAAGjC,OAAO,EAAE,CAAA;AACtB,MAAA,IAAMkC,IAAI,GAAGnC,MAAM,EAAE,CAAA;MACrB,IAAMxB,KAAK,GAAG4D,kBAAA,CAAA,KAAA,EAAA;QAAKT,SAAS,EAAEU,UAAU,CAAUV,OAAAA,EAAAA,SAAS,EAAEQ,IAAI,IAAI,MAAM,CAAE;AAACG,QAAAA,GAAG,EAAEjC,EAAG;AAACkC,QAAAA,OAAO,EAAEzB,WAAAA;AAAY,OAAA,EACxGsB,kBAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,GAAG,EAAEnC,OAAQ;AAACwB,QAAAA,SAAS,EAAEU,UAAU,CAAYF,SAAAA,EAAAA,IAAI,IAAI,MAAM,CAAA;OAC7D,CAAC,EACNC,kBAAA,CAAA,KAAA,EAAA;QAAKT,SAAS,EAAEU,UAAU,CAAA,SAAA,EAAYF,IAAI,IAAI,MAAM,EAAEP,GAAG,IAAI,KAAK,CAAE;QAC/DZ,KAAK,EAAEY,GAAG,IAAI;UAACA,GAAG,EAAEA,GAAG,GAAG,IAAA;SAAM;AAChCU,QAAAA,GAAG,EAAEhC,OAAAA;OAELkC,EAAAA,KAAK,CAACC,QAAQ,CAACC,GAAG,CAACV,QAAQ,EAAE,UAAAW,KAAK,EAAA;AAAA,QAAA,OAAIH,KAAK,CAACI,YAAY,CAACD,KAAK,EAAE;AAC7DE,UAAAA,iBAAiB,EAAE5C,OAAO;AAC1B6C,UAAAA,wBAAwB,EAAE5C,cAAAA;AAC9B,SAAC,CAAC,CAAA;AAAA,OAAA,CAAC,EACFgC,IAAI,EACLE,kBAAA,CAACW,MAAM,EAAA;AAACpB,QAAAA,SAAS,EAAC,OAAO;AAACqB,QAAAA,IAAI,EAAE,IAAK;AAACC,QAAAA,KAAK,EAAE,IAAK;AAACV,QAAAA,OAAO,EAAE9B,WAAAA;OACvDwB,EAAAA,SACG,CACP,CACJ,CAAC,CAAA;MAEN,OAAOH,SAAS,GAAGoB,QAAQ,CAACC,YAAY,CAAC3E,KAAK,EAAEsD,SAAS,CAAC,GAAGtD,KAAK,CAAA;KACrE,CAAA;AAED,IAAA,IAAMqC,KAAK,GAAGpB,IAAI,CAACoB,KAAK,GAAG,YAAM;AAC7B,MAAA,IAAI,CAACb,MAAM,EAAE,EACT,OAAA;AAEJ3B,MAAAA,MAAM,EAAE,CAAA;AACR8C,MAAAA,qBAAqB,EAAE,CAAA;MACvBnB,MAAM,CAAC,KAAK,CAAC,CAAA;MAEbzB,YAAY,CAACkB,IAAI,CAAC,CAAA;KACrB,CAAA;AACD,IAAA,IAAM2D,IAAI,GAAG3D,IAAI,CAAC2D,IAAI,GAAG,YAAM;MAC3B,IAAIpD,MAAM,EAAE,EACR,OAAA;AAEJK,MAAAA,EAAE,EAAE,KAAKA,EAAE,EAAE,CAACW,KAAK,CAAC3C,MAAM,GAAGA,MAAM,EAAE,CAAC,CAAA;AACtC8C,MAAAA,qBAAqB,EAAE,CAAA;MACvBnB,MAAM,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAA,IAAIrB,QAAQ,GAAG,SAAXA,QAAQA,CAAG0E,KAAK,EAAI;AACpB,QAAA,IAAI,CAACA,KAAK,CAACC,gBAAgB,IAAID,KAAK,CAACE,OAAO,KAAK,EAAE,GAC/C9C,WAAW,EAAE,CAAA;AACjB,QAAA,OAAO,IAAI,CAAA;OACd,CAAA;AAED3B,MAAAA,WAAW,CAACW,IAAI,EAAEd,QAAQ,CAAC,CAAA;KAC9B,CAAA;AAEDc,IAAAA,IAAI,CAAC+D,iBAAiB,CAAC,GAAG,YAAM;AAC5B,MAAA,IAAMC,MAAM,GAAGlD,KAAK,EAAE,CAAA;AACtBc,MAAAA,MAAM,CAACoC,MAAM,CAACL,IAAI,CAAC,CAAC,YAAM;AACtBM,QAAAA,UAAU,CAACN,IAAI,EAAE,CAAC,CAAC,CAAA;AACvB,OAAC,CAAC,CAAA;AACF/B,MAAAA,MAAM,CAACoC,MAAM,CAAC5C,KAAK,CAAC,CAAC,YAAM;AACvB6C,QAAAA,UAAU,CAAC7C,KAAK,EAAE,CAAC,CAAC,CAAA;AACxB,OAAC,CAAC,CAAA;MACF4C,MAAM,CAACtB,IAAI,IAAIuB,UAAU,CAACN,IAAI,EAAE,CAAC,CAAC,CAAA;KACrC,CAAA;AACD3D,IAAAA,IAAI,CAACkE,kBAAkB,CAAC,GAAG,UAACC,SAAS,EAAK;AACtC,MAAA,IAAMzB,IAAI,GAAG5B,KAAK,EAAE,CAAC4B,IAAI,CAAA;AACzB,MAAA,IAAIA,IAAI,KAAKyB,SAAS,CAACzB,IAAI,EAAE;AACzBA,QAAAA,IAAI,GAAGiB,IAAI,EAAE,GAAGvC,KAAK,EAAE,CAAA;AAC3B,OAAA;KACH,CAAA;AAAC,IAAA,OAAAvB,KAAA,CAAA;AACN,GAAA;EAAC,OAAAuE,YAAA,CAAA7E,KAAA,CAAA,CAAA;AAAA,CAAA,CA9Ge8E,aAAa,CAAA,CAAA;AAA3B9E,KAAK,CAEA+E,YAAY,GAAG;EAClB9B,SAAS,EAAEG,kBAAA,CAAC4B,YAAY,EAAA;AAACC,IAAAA,IAAI,EAAC,OAAA;GAAQ,CAAA;AAC1C,CAAC,CAAA;AA6GLjF,KAAK,CAAC+C,gBAAgB,GAAGmC,SAAS,CAAA;AAClClF,KAAK,CAACT,YAAY,GAAGA,YAAY,CAAA;AACjCS,KAAK,CAACF,WAAW,GAAGA,WAAW,CAAA;AAE/B,cAAeE,KAAK;;;;"}
package/Scrollable.js CHANGED
@@ -1,12 +1,11 @@
1
1
  import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './Scrollable.css'; import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
- import PropTypes from 'prop-types';
4
+ import 'prop-types';
5
5
  import { classNames, ref, createRef, clearInterval, clearTimeout, orNoop, addEventListener, WINDOW, preventDefault, setTimeout, setInterval, removeEventListener } from './Tools.js';
6
6
  import { stateGS, componentDidMount, componentWillUnmount, componentDidUpdate, render, PureComponent, propsGetter } from './ReactConstants.js';
7
7
 
8
8
  var SCROLLBAR_MODE_HIDDEN = 'hidden';
9
- var SCROLLBAR_MODE_VISIBLE = 'visible';
10
9
  var SCROLLBAR_MODE_AUTO = 'auto';
11
10
  var SCROLLBAR_RESIZE_DISABLED = 'disabled';
12
11
  var NATIVE_SCROLL_WIDTH = -1;
@@ -329,17 +328,6 @@ Scrollable.defaultProps = {
329
328
  autoScrollTop: true,
330
329
  horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN
331
330
  };
332
- if (process.env.NODE_ENV !== 'production') {
333
- Scrollable.propTypes = {
334
- scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
335
- horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
336
- [ReactConstants[5]]: PropTypes.string,
337
- style: PropTypes.object,
338
- onScrolledToBottom: PropTypes.func,
339
- onScrolledToTop: PropTypes.func,
340
- autoScrollTop: PropTypes.bool
341
- };
342
- }
343
331
 
344
- export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED, Scrollable$1 as default };
332
+ export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_RESIZE_DISABLED, Scrollable$1 as default };
345
333
  //# sourceMappingURL=Scrollable.js.map