react-ui-basics 0.0.148 → 0.0.151
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/Animated.js +3 -0
- package/Animated.js.map +1 -1
- package/AutocompleteSelect.js +17 -14
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js +6 -3
- package/Button.js.map +1 -1
- package/Checkbox.js +5 -2
- package/Checkbox.js.map +1 -1
- package/CircleProgress.js +5 -2
- package/CircleProgress.js.map +1 -1
- package/DNDContainer.js +5 -2
- package/DNDContainer.js.map +1 -1
- package/DNDDraggable.js +4 -1
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js +4 -1
- package/DNDDroppable.js.map +1 -1
- package/Dialog.js +9 -6
- package/Dialog.js.map +1 -1
- package/DropFileInput.js +5 -2
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js +4 -1
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js +4 -1
- package/DroppableList.js.map +1 -1
- package/Dropzone.js +8 -5
- package/Dropzone.js.map +1 -1
- package/FilteredList.js +6 -3
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.js +4 -1
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js +8 -5
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js +15 -12
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.js +5 -2
- package/MaterialIcon.js.map +1 -1
- package/Modal.js +8 -5
- package/Modal.js.map +1 -1
- package/ModalMenu.js +6 -3
- package/ModalMenu.js.map +1 -1
- package/ReactConstants.js +1 -1
- package/ReactConstants.js.map +1 -1
- package/ReactCreateElement.js.map +1 -1
- package/ReadyListener.js +3 -0
- package/ReadyListener.js.map +1 -1
- package/Scrollable.js +10 -7
- package/Scrollable.js.map +1 -1
- package/ScrollableTable.js +4 -1
- package/ScrollableTable.js.map +1 -1
- package/Size.js +4 -1
- package/Size.js.map +1 -1
- package/Snackbar.js +6 -3
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.js +6 -3
- package/SpinningProgress.js.map +1 -1
- package/Switch.js +10 -7
- package/Switch.js.map +1 -1
- package/Table.d.ts +76 -0
- package/Table.js +138 -321
- package/Table.js.map +1 -1
- package/TextField.js +9 -6
- package/TextField.js.map +1 -1
- package/Tools.d.ts +2 -2
- package/Tools.js +4 -4
- package/Tools.js.map +1 -1
- package/_virtual/_commonjsHelpers.js +6 -0
- package/_virtual/_commonjsHelpers.js.map +1 -0
- package/_virtual/_react.js +3 -0
- package/_virtual/_react.js.map +1 -0
- package/_virtual/react-jsx-runtime.development.js +3 -0
- package/_virtual/react-jsx-runtime.development.js.map +1 -0
- package/bundle.css +508 -508
- package/index.js +3 -0
- package/package.json +3 -2
- package/router/HistoryTools.js.map +1 -1
- package/router/Link.js +4 -1
- package/router/Link.js.map +1 -1
- package/router/NavLink.js +4 -1
- package/router/NavLink.js.map +1 -1
- package/router/Route.js +6 -3
- package/router/Route.js.map +1 -1
- package/router/index.js +3 -0
- package/router/index.js.map +1 -1
- package/store/ProxyTools.js +3 -0
- package/store/ProxyTools.js.map +1 -1
- package/store/Store.js +3 -0
- package/store/Store.js.map +1 -1
package/ImageGallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageGallery.js","sources":["../src/react-ui-basics/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 // console.log('before action', action, that.state)\n const state = IMAGE_GALLERY_REDUCER(that.state, action);\n // console.log('after action', action, state)\n if (state !== that.state)\n that.setState(state)\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","replaceImages","images","dispatch","getState","state","nextState","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","action","open","_objectSpread","result","i","parseInt","fromHeightPx","findIndex","id","previewImages","small","big","opacity","shift","previous","styles","additionalOffset","ImageGallery","properties","that","stateGSs","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","stopPropagation","loop","animatedRoundButton","className","onClick","icon","render","indicator","children","isZoomed","shiftValue","classNames","focus","isZoomedCurrent","mounting","mountend","unmounting","img","newWidth","oldWidth","orNoop","overlay","React","Component","IMAGE_GALLERY_REDUCER","reducer","ImageGalleryContainer","setState","galleryRef","createRef","containerRef","_objectSpread2","isDifferent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImageGallery.js","sources":["../../../src/react-ui-basics/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 // console.log('before action', action, that.state)\n const state = IMAGE_GALLERY_REDUCER(that.state, action);\n // console.log('after action', action, state)\n if (state !== that.state)\n that.setState(state)\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","replaceImages","images","dispatch","getState","state","nextState","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","action","open","_objectSpread","result","i","parseInt","fromHeightPx","findIndex","id","previewImages","small","big","opacity","shift","previous","styles","additionalOffset","ImageGallery","properties","that","stateGSs","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","stopPropagation","loop","animatedRoundButton","className","onClick","icon","render","indicator","children","isZoomed","shiftValue","classNames","focus","isZoomedCurrent","mounting","mountend","unmounting","img","newWidth","oldWidth","orNoop","overlay","React","Component","IMAGE_GALLERY_REDUCER","reducer","ImageGalleryContainer","setState","galleryRef","createRef","containerRef","_objectSpread2","isDifferent"],"mappings":"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"}
|
package/MaterialIcon.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
+
import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers";
|
|
3
|
+
import {className as __className} from "./ReactConstants";
|
|
4
|
+
import {children as __children} from "./ReactConstants";
|
|
2
5
|
import ReactCreateElement from './ReactCreateElement.js';
|
|
3
6
|
import { classNames } from './Tools.js';
|
|
4
7
|
import PropTypes from 'prop-types';
|
|
@@ -7,13 +10,13 @@ var MaterialIcon = function MaterialIcon(_ref) {
|
|
|
7
10
|
var icon = _ref.icon,
|
|
8
11
|
className = _ref.className;
|
|
9
12
|
return ReactCreateElement("i", {
|
|
10
|
-
|
|
13
|
+
[__className]: classNames('MaterialIcon', 'material-icons', className)
|
|
11
14
|
}, icon);
|
|
12
15
|
};
|
|
13
16
|
var MaterialIcon$1 = MaterialIcon;
|
|
14
17
|
if (process.env.NODE_ENV !== 'production') {
|
|
15
18
|
MaterialIcon.propTypes = {
|
|
16
|
-
|
|
19
|
+
[__className]: PropTypes.string,
|
|
17
20
|
icon: PropTypes.oneOf(['10k', '10mp', '11mp', '12mp', '13mp', '14mp', '15mp', '16mp', '17mp', '18mp', '19mp', '1k', '1k_plus', '1x_mobiledata', '20mp', '21mp', '22mp', '23mp', '24mp', '2k', '2k_plus', '2mp', '30fps', '30fps_select', '360', '3d_rotation', '3g_mobiledata', '3k', '3k_plus', '3mp', '3p', '4g_mobiledata', '4g_plus_mobiledata', '4k', '4k_plus', '4mp', '5g', '5k', '5k_plus', '5mp', '60fps', '60fps_select', '6_ft_apart', '6k', '6k_plus', '6mp', '7k', '7k_plus', '7mp', '8k', '8k_plus', '8mp', '9k', '9k_plus', '9mp', 'ac_unit', 'access_alarm', 'access_alarms', 'access_time', 'access_time_filled', 'accessibility', 'accessibility_new', 'accessible', 'accessible_forward', 'account_balance', 'account_balance_wallet', 'account_box', 'account_circle', 'account_tree', 'ad_units', 'adb', 'add', 'add', 'add_a_photo', 'add_alarm', 'add_alert', 'add_box', 'add_business', 'add_chart', 'add_circle', 'add_circle_outline', 'add_comment', 'add_ic_call', 'add_link', 'add_location', 'add_location_alt', 'add_moderator', 'add_photo_alternate', 'add_reaction', 'add_road', 'add_shopping_cart', 'add_task', 'add_to_drive', 'add_to_home_screen', 'add_to_photos', 'add_to_queue', 'addchart', 'adjust', 'admin_panel_settings', 'ads_click', 'agriculture', 'air', 'airline_seat_flat', 'airline_seat_flat_angled', 'airline_seat_individual_suite', 'airline_seat_legroom_extra', 'airline_seat_legroom_normal', 'airline_seat_legroom_reduced', 'airline_seat_recline_extra', 'airline_seat_recline_normal', 'airplane_ticket', 'airplanemode_active', 'airplanemode_inactive', 'airplay', 'airport_shuttle', 'alarm', 'alarm_add', 'alarm_off', 'alarm_on', 'album', 'align_horizontal_center', 'align_horizontal_left', 'align_horizontal_right', 'align_vertical_bottom', 'align_vertical_center', 'align_vertical_top', 'all_inbox', 'all_inclusive', 'all_out', 'alt_route', 'alternate_email', 'analytics', 'anchor', 'android', 'animation', 'announcement', 'aod', 'apartment', 'api', 'app_blocking', 'app_registration', 'app_settings_alt', 'approval', 'apps', 'architecture', 'archive', 'area_chart', 'arrow_back', 'arrow_back_ios', 'arrow_back_ios_new', 'arrow_circle_down', 'arrow_circle_up', 'arrow_downward', 'arrow_drop_down', 'arrow_drop_down_circle', 'arrow_drop_up', 'arrow_forward', 'arrow_forward_ios', 'arrow_left', 'arrow_right', 'arrow_right_alt', 'arrow_upward', 'art_track', 'article', 'aspect_ratio', 'assessment', 'assignment', 'assignment_ind', 'assignment_late', 'assignment_return', 'assignment_returned', 'assignment_turned_in', 'assistant', 'assistant_direction', 'assistant_photo', 'atm', 'attach_email', 'attach_file', 'attach_money', 'attach_money', 'attachment', 'attractions', 'attribution', 'audiotrack', 'auto_awesome', 'auto_awesome_mosaic', 'auto_awesome_motion', 'auto_delete', 'auto_fix_high', 'auto_fix_normal', 'auto_fix_off', 'auto_graph', 'auto_stories', 'autofps_select', 'autorenew', 'av_timer', 'baby_changing_station', 'back_hand', 'backpack', 'backspace', 'backup', 'backup_table', 'badge', 'bakery_dining', 'balcony', 'ballot', 'bar_chart', 'batch_prediction', 'bathroom', 'bathtub', 'battery_alert', 'battery_charging_full', 'battery_full', 'battery_saver', 'battery_std', 'battery_unknown', 'beach_access', 'bed', 'bedroom_baby', 'bedroom_child', 'bedroom_parent', 'bedtime', 'beenhere', 'bento', 'bike_scooter', 'biotech', 'blender', 'block', 'bloodtype', 'bluetooth', 'bluetooth_audio', 'bluetooth_connected', 'bluetooth_disabled', 'bluetooth_drive', 'bluetooth_searching', 'blur_circular', 'blur_linear', 'blur_off', 'blur_on', 'bolt', 'book', 'book_online', 'bookmark', 'bookmark_add', 'bookmark_added', 'bookmark_border', 'bookmark_remove', 'bookmarks', 'border_all', 'border_bottom', 'border_clear', 'border_color', 'border_horizontal', 'border_inner', 'border_left', 'border_outer', 'border_right', 'border_style', 'border_top', 'border_vertical', 'branding_watermark', 'breakfast_dining', 'brightness_1', 'brightness_2', 'brightness_3', 'brightness_4', 'brightness_5', 'brightness_6', 'brightness_7', 'brightness_auto', 'brightness_high', 'brightness_low', 'brightness_medium', 'broken_image', 'browser_not_supported', 'brunch_dining', 'brush', 'bubble_chart', 'bug_report', 'build', 'build_circle', 'bungalow', 'burst_mode', 'bus_alert', 'business', 'business_center', 'cabin', 'cable', 'cached', 'cake', 'calculate', 'calendar_today', 'calendar_view_day', 'calendar_view_month', 'calendar_view_week', 'call', 'call_end', 'call_made', 'call_merge', 'call_missed', 'call_missed_outgoing', 'call_received', 'call_split', 'call_to_action', 'camera', 'camera_alt', 'camera_enhance', 'camera_front', 'camera_indoor', 'camera_outdoor', 'camera_rear', 'camera_roll', 'cameraswitch', 'campaign', 'cancel', 'cancel_presentation', 'cancel_schedule_send', 'car_rental', 'car_repair', 'card_giftcard', 'card_membership', 'card_travel', 'carpenter', 'cases', 'casino', 'cast', 'cast_connected', 'cast_for_education', 'catching_pokemon', 'category', 'celebration', 'cell_wifi', 'center_focus_strong', 'center_focus_weak', 'chair', 'chair_alt', 'chalet', 'change_circle', 'change_history', 'charging_station', 'chat', 'chat_bubble', 'chat_bubble_outline', 'check', 'check_box', 'check_box_outline_blank', 'check_circle', 'check_circle_outline', 'checklist', 'checklist_rtl', 'checkroom', 'chevron_left', 'chevron_right', 'child_care', 'child_friendly', 'chrome_reader_mode', 'circle', 'circle_notifications', 'class', 'clean_hands', 'cleaning_services', 'clear', 'clear_all', 'close', 'close', 'close_fullscreen', 'closed_caption', 'closed_caption_disabled', 'closed_caption_off', 'cloud', 'cloud_circle', 'cloud_done', 'cloud_download', 'cloud_off', 'cloud_queue', 'cloud_upload', 'code', 'code_off', 'coffee', 'coffee_maker', 'collections', 'collections_bookmark', 'color_lens', 'colorize', 'comment', 'comment_bank', 'commute', 'compare', 'compare_arrows', 'compass_calibration', 'compost', 'compress', 'computer', 'confirmation_number', 'connect_without_contact', 'connected_tv', 'construction', 'contact_mail', 'contact_page', 'contact_phone', 'contact_support', 'contactless', 'contacts', 'content_copy', 'content_cut', 'content_paste', 'content_paste_off', 'control_camera', 'control_point', 'control_point_duplicate', 'copy_all', 'copyright', 'coronavirus', 'corporate_fare', 'cottage', 'countertops', 'create', 'create_new_folder', 'credit_card', 'credit_card_off', 'credit_score', 'crib', 'crop', 'crop_16_9', 'crop_3_2', 'crop_5_4', 'crop_7_5', 'crop_din', 'crop_free', 'crop_landscape', 'crop_original', 'crop_portrait', 'crop_rotate', 'crop_square', 'cruelty_free', 'dangerous', 'dark_mode', 'dashboard', 'dashboard_customize', 'data_exploration', 'data_saver_off', 'data_saver_on', 'data_usage', 'date_range', 'deck', 'dehaze', 'delete', 'delete_forever', 'delete_outline', 'delete_sweep', 'delivery_dining', 'departure_board', 'description', 'design_services', 'desktop_access_disabled', 'desktop_mac', 'desktop_windows', 'details', 'developer_board', 'developer_board_off', 'developer_mode', 'device_hub', 'device_thermostat', 'device_unknown', 'devices', 'devices_other', 'dialer_sip', 'dialpad', 'dining', 'dinner_dining', 'directions', 'directions_bike', 'directions_boat', 'directions_boat_filled', 'directions_bus', 'directions_bus_filled', 'directions_car', 'directions_car_filled', 'directions_off', 'directions_railway', 'directions_railway_filled', 'directions_run', 'directions_subway', 'directions_subway_filled', 'directions_transit', 'directions_transit_filled', 'directions_walk', 'dirty_lens', 'disabled_by_default', 'disabled_visible', 'disc_full', 'dns', 'do_disturb', 'do_disturb_alt', 'do_disturb_off', 'do_disturb_on', 'do_not_disturb', 'do_not_disturb_alt', 'do_not_disturb_off', 'do_not_disturb_on', 'do_not_disturb_on_total_silence', 'do_not_step', 'do_not_touch', 'dock', 'document_scanner', 'domain', 'domain_disabled', 'domain_verification', 'done', 'done_all', 'done_outline', 'donut_large', 'donut_small', 'door_back', 'door_front', 'door_sliding', 'doorbell', 'double_arrow', 'downhill_skiing', 'download', 'download_done', 'download_for_offline', 'downloading', 'drafts', 'drag_handle', 'drag_indicator', 'draw', 'drive_eta', 'drive_file_move', 'drive_file_move_rtl', 'drive_file_rename_outline', 'drive_folder_upload', 'dry', 'dry_cleaning', 'duo', 'dvr', 'dynamic_feed', 'dynamic_form', 'e_mobiledata', 'earbuds', 'earbuds_battery', 'east', 'edgesensor_high', 'edgesensor_low', 'edit', 'edit', 'edit_attributes', 'edit_calendar', 'edit_location', 'edit_location_alt', 'edit_note', 'edit_notifications', 'edit_off', 'edit_road', 'eject', 'elderly', 'electric_bike', 'electric_car', 'electric_moped', 'electric_rickshaw', 'electric_scooter', 'electrical_services', 'elevator', 'email', 'email', 'emergency', 'emoji_emotions', 'emoji_events', 'emoji_flags', 'emoji_food_beverage', 'emoji_nature', 'emoji_objects', 'emoji_people', 'emoji_symbols', 'emoji_transportation', 'engineering', 'enhanced_encryption', 'equalizer', 'error', 'error_outline', 'escalator', 'escalator_warning', 'euro', 'euro_symbol', 'ev_station', 'event', 'event_available', 'event_busy', 'event_note', 'event_seat', 'exit_to_app', 'expand', 'expand_less', 'expand_more', 'explicit', 'explore', 'explore_off', 'exposure', 'exposure_neg_1', 'exposure_neg_2', 'exposure_plus_1', 'exposure_plus_2', 'exposure_zero', 'extension', 'extension_off', 'face', 'face_retouching_natural', 'face_retouching_off', 'facebook', 'fact_check', 'family_restroom', 'fast_forward', 'fast_rewind', 'fastfood', 'favorite', 'favorite_border', 'featured_play_list', 'featured_video', 'feed', 'feed', 'feedback', 'female', 'fence', 'festival', 'fiber_dvr', 'fiber_manual_record', 'fiber_new', 'fiber_pin', 'fiber_smart_record', 'file_copy', 'file_download', 'file_download', 'file_download_done', 'file_download_off', 'file_present', 'file_upload', 'filter', 'filter_1', 'filter_2', 'filter_3', 'filter_4', 'filter_5', 'filter_6', 'filter_7', 'filter_8', 'filter_9', 'filter_9_plus', 'filter_alt', 'filter_b_and_w', 'filter_center_focus', 'filter_drama', 'filter_frames', 'filter_hdr', 'filter_list', 'filter_none', 'filter_tilt_shift', 'filter_vintage', 'find_in_page', 'find_replace', 'fingerprint', 'fire_extinguisher', 'fireplace', 'first_page', 'fit_screen', 'fitness_center', 'flag', 'flaky', 'flare', 'flash_auto', 'flash_off', 'flash_on', 'flashlight_off', 'flashlight_on', 'flatware', 'flight', 'flight_land', 'flight_takeoff', 'flip', 'flip_camera_android', 'flip_camera_ios', 'flip_to_back', 'flip_to_front', 'flourescent', 'flutter_dash', 'fmd_bad', 'fmd_good', 'folder', 'folder_open', 'folder_shared', 'folder_special', 'follow_the_signs', 'font_download', 'font_download_off', 'food_bank', 'format_align_center', 'format_align_justify', 'format_align_left', 'format_align_right', 'format_bold', 'format_clear', 'format_color_fill', 'format_color_reset', 'format_color_text', 'format_indent_decrease', 'format_indent_increase', 'format_italic', 'format_line_spacing', 'format_list_bulleted', 'format_list_numbered', 'format_list_numbered_rtl', 'format_paint', 'format_quote', 'format_shapes', 'format_size', 'format_strikethrough', 'format_textdirection_l_to_r', 'format_textdirection_r_to_l', 'format_underlined', 'forum', 'forward', 'forward_10', 'forward_30', 'forward_5', 'forward_to_inbox', 'foundation', 'free_breakfast', 'free_cancellation', 'front_hand', 'fullscreen', 'fullscreen_exit', 'functions', 'g_mobiledata', 'g_translate', 'gamepad', 'games', 'garage', 'gavel', 'generating_tokens', 'gesture', 'get_app', 'gif', 'gite', 'golf_course', 'gpp_bad', 'gpp_good', 'gpp_maybe', 'gps_fixed', 'gps_not_fixed', 'gps_off', 'grade', 'gradient', 'grading', 'grain', 'graphic_eq', 'grass', 'grid_3x3', 'grid_4x4', 'grid_goldenratio', 'grid_off', 'grid_on', 'grid_view', 'group', 'group_add', 'group_off', 'group_work', 'groups', 'h_mobiledata', 'h_plus_mobiledata', 'hail', 'handyman', 'hardware', 'hd', 'hdr_auto', 'hdr_auto_select', 'hdr_enhanced_select', 'hdr_off', 'hdr_off_select', 'hdr_on', 'hdr_on_select', 'hdr_plus', 'hdr_strong', 'hdr_weak', 'headphones', 'headphones_battery', 'headset', 'headset_mic', 'headset_off', 'healing', 'health_and_safety', 'hearing', 'hearing_disabled', 'height', 'help', 'help_center', 'help_outline', 'hevc', 'hide_image', 'hide_source', 'high_quality', 'highlight', 'highlight_alt', 'highlight_off', 'hiking', 'history', 'history_edu', 'history_toggle_off', 'holiday_village', 'home', 'home_max', 'home_mini', 'home_repair_service', 'home_work', 'horizontal_distribute', 'horizontal_rule', 'horizontal_split', 'hot_tub', 'hotel', 'hotel_class', 'hourglass_bottom', 'hourglass_disabled', 'hourglass_empty', 'hourglass_full', 'hourglass_top', 'house', 'house_siding', 'houseboat', 'how_to_reg', 'how_to_vote', 'http', 'https', 'hvac', 'ice_skating', 'icecream', 'image', 'image_aspect_ratio', 'image_not_supported', 'image_search', 'imagesearch_roller', 'import_contacts', 'import_export', 'important_devices', 'inbox', 'incomplete_circle', 'indeterminate_check_box', 'info', 'input', 'insert_chart', 'insert_chart_outlined', 'insert_comment', 'insert_drive_file', 'insert_emoticon', 'insert_invitation', 'insert_link', 'insert_photo', 'insights', 'integration_instructions', 'inventory', 'inventory_2', 'invert_colors', 'invert_colors_off', 'ios_share', 'iron', 'iso', 'kayaking', 'keyboard', 'keyboard_alt', 'keyboard_arrow_down', 'keyboard_arrow_down', 'keyboard_arrow_left', 'keyboard_arrow_right', 'keyboard_arrow_up', 'keyboard_backspace', 'keyboard_capslock', 'keyboard_hide', 'keyboard_return', 'keyboard_tab', 'keyboard_voice', 'king_bed', 'kitchen', 'kitesurfing', 'label', 'label_important', 'label_off', 'landscape', 'language', 'laptop', 'laptop_chromebook', 'laptop_mac', 'laptop_windows', 'last_page', 'launch', 'layers', 'layers_clear', 'leaderboard', 'leak_add', 'leak_remove', 'legend_toggle', 'lens', 'lens_blur', 'library_add', 'library_add_check', 'library_books', 'library_music', 'light', 'light_mode', 'light_mode', 'lightbulb', 'line_style', 'line_weight', 'linear_scale', 'link', 'link_off', 'linked_camera', 'liquor', 'list', 'list_alt', 'live_help', 'live_tv', 'living', 'local_activity', 'local_airport', 'local_atm', 'local_bar', 'local_cafe', 'local_car_wash', 'local_convenience_store', 'local_dining', 'local_drink', 'local_fire_department', 'local_florist', 'local_gas_station', 'local_grocery_store', 'local_hospital', 'local_hotel', 'local_laundry_service', 'local_library', 'local_mall', 'local_movies', 'local_offer', 'local_parking', 'local_pharmacy', 'local_phone', 'local_pizza', 'local_play', 'local_police', 'local_post_office', 'local_printshop', 'local_see', 'local_shipping', 'local_shipping', 'local_taxi', 'location_city', 'location_disabled', 'location_off', 'location_on', 'location_searching', 'lock', 'lock_clock', 'lock_open', 'login', 'logout', 'looks', 'looks_3', 'looks_4', 'looks_5', 'looks_6', 'looks_one', 'looks_two', 'loop', 'loupe', 'low_priority', 'loyalty', 'lte_mobiledata', 'lte_plus_mobiledata', 'luggage', 'lunch_dining', 'mail', 'mail_outline', 'male', 'manage_accounts', 'manage_search', 'map', 'maps_home_work', 'maps_ugc', 'margin', 'mark_as_unread', 'mark_chat_read', 'mark_chat_unread', 'mark_email_read', 'mark_email_unread', 'markunread', 'markunread_mailbox', 'masks', 'maximize', 'media_bluetooth_off', 'media_bluetooth_on', 'mediation', 'medical_services', 'medication', 'meeting_room', 'memory', 'menu', 'menu_book', 'menu_open', 'merge_type', 'message', 'mic', 'mic_external_off', 'mic_external_on', 'mic_none', 'mic_off', 'microwave', 'military_tech', 'minimize', 'miscellaneous_services', 'missed_video_call', 'mms', 'mobile_friendly', 'mobile_off', 'mobile_screen_share', 'mobiledata_off', 'mode', 'mode_comment', 'mode_edit', 'mode_edit_outline', 'mode_night', 'mode_standby', 'model_training', 'monetization_on', 'money', 'money_off', 'money_off_csred', 'monitor', 'monitor_weight', 'monochrome_photos', 'mood', 'mood_bad', 'moped', 'more', 'more_horiz', 'more_time', 'more_vert', 'motion_photos_auto', 'motion_photos_off', 'motion_photos_on', 'motion_photos_pause', 'motion_photos_paused', 'mouse', 'move_to_inbox', 'movie', 'movie_creation', 'movie_filter', 'moving', 'mp', 'multiline_chart', 'multiple_stop', 'museum', 'music_note', 'music_off', 'music_video', 'my_location', 'nat', 'nature', 'nature_people', 'navigate_before', 'navigate_next', 'navigation', 'near_me', 'near_me_disabled', 'nearby_error', 'nearby_off', 'network_cell', 'network_check', 'network_locked', 'network_wifi', 'new_label', 'new_releases', 'next_plan', 'next_week', 'nfc', 'night_shelter', 'nightlife', 'nightlight', 'nightlight_round', 'nights_stay', 'no_accounts', 'no_backpack', 'no_cell', 'no_drinks', 'no_encryption', 'no_encryption_gmailerrorred', 'no_flash', 'no_food', 'no_luggage', 'no_meals', 'no_meeting_room', 'no_photography', 'no_sim', 'no_stroller', 'no_transfer', 'nordic_walking', 'north', 'north_east', 'north_west', 'not_accessible', 'not_interested', 'not_listed_location', 'not_started', 'note', 'note_add', 'note_alt', 'notes', 'notification_add', 'notification_important', 'notifications', 'notifications_active', 'notifications_none', 'notifications_off', 'notifications_paused', 'offline_bolt', 'offline_pin', 'offline_share', 'ondemand_video', 'online_prediction', 'opacity', 'open_in_browser', 'open_in_full', 'open_in_new', 'open_in_new_off', 'open_with', 'other_houses', 'outbound', 'outbox', 'outdoor_grill', 'outlet', 'outlined_flag', 'padding', 'pages', 'pageview', 'paid', 'palette', 'pan_tool', 'panorama', 'panorama_fish_eye', 'panorama_horizontal', 'panorama_horizontal_select', 'panorama_photosphere', 'panorama_photosphere_select', 'panorama_vertical', 'panorama_vertical_select', 'panorama_wide_angle', 'panorama_wide_angle_select', 'paragliding', 'park', 'party_mode', 'password', 'pattern', 'pause', 'pause_circle', 'pause_circle_filled', 'pause_circle_outline', 'pause_presentation', 'payment', 'payments', 'pedal_bike', 'pending', 'pending_actions', 'people', 'people_alt', 'people_outline', 'perm_camera_mic', 'perm_contact_calendar', 'perm_data_setting', 'perm_device_information', 'perm_identity', 'perm_media', 'perm_phone_msg', 'perm_scan_wifi', 'person', 'person', 'person_add', 'person_add_alt', 'person_add_alt_1', 'person_add_disabled', 'person_off', 'person_outline', 'person_pin', 'person_pin_circle', 'person_remove', 'person_remove_alt_1', 'person_search', 'personal_injury', 'personal_video', 'pest_control', 'pest_control_rodent', 'pets', 'phone', 'phone_android', 'phone_bluetooth_speaker', 'phone_callback', 'phone_disabled', 'phone_enabled', 'phone_forwarded', 'phone_in_talk', 'phone_iphone', 'phone_locked', 'phone_missed', 'phone_paused', 'phonelink', 'phonelink_erase', 'phonelink_lock', 'phonelink_off', 'phonelink_ring', 'phonelink_setup', 'photo', 'photo_album', 'photo_camera', 'photo_camera_back', 'photo_camera_front', 'photo_filter', 'photo_library', 'photo_size_select_actual', 'photo_size_select_large', 'photo_size_select_small', 'piano', 'piano_off', 'picture_as_pdf', 'picture_in_picture', 'picture_in_picture_alt', 'pie_chart', 'pie_chart_outline', 'pin', 'pin_drop', 'pin_end', 'pin_invoke', 'pivot_table_chart', 'place', 'plagiarism', 'play_arrow', 'play_arrow', 'play_circle', 'play_circle_filled', 'play_circle_outline', 'play_disabled', 'play_for_work', 'play_lesson', 'playlist_add', 'playlist_add_check', 'playlist_play', 'plumbing', 'plus_one', 'podcasts', 'point_of_sale', 'policy', 'poll', 'polymer', 'pool', 'portable_wifi_off', 'portrait', 'post_add', 'power', 'power_input', 'power_off', 'power_settings_new', 'precision_manufacturing', 'pregnant_woman', 'present_to_all', 'preview', 'price_change', 'price_check', 'print', 'print_disabled', 'priority_high', 'privacy_tip', 'private_connectivity', 'production_quantity_limits', 'psychology', 'public', 'public_off', 'publish', 'published_with_changes', 'push_pin', 'qr_code', 'qr_code_2', 'qr_code_scanner', 'query_builder', 'query_stats', 'question_answer', 'queue', 'queue_music', 'queue_play_next', 'quickreply', 'quiz', 'r_mobiledata', 'radar', 'radio', 'radio_button_checked', 'radio_button_unchecked', 'railway_alert', 'ramen_dining', 'rate_review', 'raw_off', 'raw_on', 'read_more', 'real_estate_agent', 'receipt', 'receipt_long', 'recent_actors', 'recommend', 'record_voice_over', 'recycling', 'redeem', 'redo', 'reduce_capacity', 'refresh', 'remember_me', 'remove', 'remove_circle', 'remove_circle_outline', 'remove_done', 'remove_from_queue', 'remove_moderator', 'remove_red_eye', 'remove_shopping_cart', 'reorder', 'repeat', 'repeat_on', 'repeat_one', 'repeat_one_on', 'replay', 'replay_10', 'replay_30', 'replay_5', 'replay_circle_filled', 'reply', 'reply_all', 'report', 'report_gmailerrorred', 'report_off', 'report_problem', 'request_page', 'request_quote', 'reset_tv', 'restart_alt', 'restaurant', 'restaurant_menu', 'restore', 'restore_from_trash', 'restore_page', 'reviews', 'rice_bowl', 'ring_volume', 'roofing', 'room', 'room_preferences', 'room_service', 'rotate_90_degrees_ccw', 'rotate_left', 'rotate_right', 'rounded_corner', 'router', 'rowing', 'rss_feed', 'rsvp', 'rtt', 'rule', 'rule_folder', 'run_circle', 'running_with_errors', 'rv_hookup', 'safety_divider', 'sailing', 'sanitizer', 'satellite', 'save', 'save_alt', 'saved_search', 'savings', 'scanner', 'scatter_plot', 'schedule', 'schedule_send', 'schema', 'school', 'science', 'score', 'screen_lock_landscape', 'screen_lock_portrait', 'screen_lock_rotation', 'screen_rotation', 'screen_search_desktop', 'screen_share', 'screenshot', 'sd', 'sd_card', 'sd_card_alert', 'sd_storage', 'search', 'search', 'search_off', 'security', 'security_update', 'security_update_good', 'security_update_warning', 'segment', 'select_all', 'self_improvement', 'sell', 'send', 'send_and_archive', 'send_to_mobile', 'sensor_door', 'sensor_door', 'sensor_window', 'sensors', 'sensors_off', 'sentiment_dissatisfied', 'sentiment_neutral', 'sentiment_satisfied', 'sentiment_satisfied_alt', 'sentiment_very_dissatisfied', 'sentiment_very_satisfied', 'set_meal', 'settings', 'settings_accessibility', 'settings_applications', 'settings_backup_restore', 'settings_bluetooth', 'settings_brightness', 'settings_cell', 'settings_ethernet', 'settings_input_antenna', 'settings_input_component', 'settings_input_composite', 'settings_input_hdmi', 'settings_input_svideo', 'settings_overscan', 'settings_phone', 'settings_power', 'settings_remote', 'settings_suggest', 'settings_system_daydream', 'settings_voice', 'share', 'share_location', 'shield', 'shop', 'shop_2', 'shop_two', 'shopping_bag', 'shopping_basket', 'shopping_cart', 'short_text', 'shortcut', 'show_chart', 'shower', 'shuffle', 'shuffle_on', 'shutter_speed', 'sick', 'signal_cellular_0_bar', 'signal_cellular_4_bar', 'signal_cellular_alt', 'signal_cellular_connected_no_internet_0_bar', 'signal_cellular_connected_no_internet_4_bar', 'signal_cellular_no_sim', 'signal_cellular_nodata', 'signal_cellular_null', 'signal_cellular_off', 'signal_wifi_0_bar', 'signal_wifi_4_bar', 'signal_wifi_4_bar_lock', 'signal_wifi_bad', 'signal_wifi_connected_no_internet_4', 'signal_wifi_off', 'signal_wifi_statusbar_4_bar', 'signal_wifi_statusbar_connected_no_internet_4', 'signal_wifi_statusbar_null', 'sim_card', 'sim_card_alert', 'sim_card_download', 'single_bed', 'sip', 'skateboarding', 'skip_next', 'skip_previous', 'sledding', 'slideshow', 'slow_motion_video', 'smart_button', 'smart_display', 'smart_screen', 'smart_toy', 'smartphone', 'smoke_free', 'smoking_rooms', 'sms', 'sms_failed', 'snippet_folder', 'snooze', 'snowboarding', 'snowmobile', 'snowshoeing', 'soap', 'social_distance', 'sort', 'sort_by_alpha', 'source', 'south', 'south_east', 'south_west', 'spa', 'space_bar', 'space_dashboard', 'speaker', 'speaker_group', 'speaker_notes', 'speaker_notes_off', 'speaker_phone', 'speed', 'spellcheck', 'splitscreen', 'sports', 'sports_bar', 'sports_baseball', 'sports_basketball', 'sports_cricket', 'sports_esports', 'sports_football', 'sports_golf', 'sports_handball', 'sports_hockey', 'sports_kabaddi', 'sports_mma', 'sports_motorsports', 'sports_rugby', 'sports_score', 'sports_soccer', 'sports_tennis', 'sports_volleyball', 'square_foot', 'stacked_bar_chart', 'stacked_line_chart', 'stairs', 'star', 'star', 'star_border', 'star_border_purple500', 'star_half', 'star_outline', 'star_purple500', 'star_rate', 'stars', 'stay_current_landscape', 'stay_current_portrait', 'stay_primary_landscape', 'stay_primary_portrait', 'sticky_note_2', 'stop', 'stop_circle', 'stop_screen_share', 'storage', 'store', 'store_mall_directory', 'storefront', 'storefront', 'storm', 'straighten', 'stream', 'streetview', 'strikethrough_s', 'stroller', 'style', 'subdirectory_arrow_left', 'subdirectory_arrow_right', 'subject', 'subscript', 'subscriptions', 'subtitles', 'subtitles_off', 'subway', 'summarize', 'superscript', 'supervised_user_circle', 'supervisor_account', 'support', 'support_agent', 'support_agent', 'surfing', 'surround_sound', 'swap_calls', 'swap_horiz', 'swap_horizontal_circle', 'swap_vert', 'swap_vertical_circle', 'swipe', 'switch_account', 'switch_camera', 'switch_left', 'switch_right', 'switch_video', 'sync', 'sync_alt', 'sync_disabled', 'sync_problem', 'system_security_update', 'system_security_update_good', 'system_security_update_warning', 'system_update', 'system_update_alt', 'tab', 'tab_unselected', 'table_chart', 'table_rows', 'table_view', 'tablet', 'tablet_android', 'tablet_mac', 'tag', 'tag_faces', 'takeout_dining', 'tap_and_play', 'tapas', 'task', 'task_alt', 'taxi_alert', 'terrain', 'text_fields', 'text_format', 'text_rotate_up', 'text_rotate_vertical', 'text_rotation_angledown', 'text_rotation_angleup', 'text_rotation_down', 'text_rotation_none', 'text_snippet', 'textsms', 'texture', 'theater_comedy', 'theaters', 'thermostat', 'thermostat_auto', 'thumb_down', 'thumb_down_alt', 'thumb_down_off_alt', 'thumb_up', 'thumb_up_alt', 'thumb_up_off_alt', 'thumbs_up_down', 'time_to_leave', 'timelapse', 'timeline', 'timer', 'timer_10', 'timer_10_select', 'timer_3', 'timer_3_select', 'timer_off', 'tips_and_updates', 'title', 'toc', 'today', 'toggle_off', 'toggle_on', 'toll', 'tonality', 'topic', 'touch_app', 'tour', 'toys', 'track_changes', 'traffic', 'train', 'tram', 'transfer_within_a_station', 'transform', 'transgender', 'transit_enterexit', 'translate', 'travel_explore', 'trending_down', 'trending_flat', 'trending_up', 'trip_origin', 'try', 'tty', 'tune', 'tungsten', 'turned_in', 'turned_in_not', 'tv', 'tv_off', 'two_wheeler', 'umbrella', 'unarchive', 'undo', 'unfold_less', 'unfold_more', 'unpublished', 'unsubscribe', 'upcoming', 'update', 'update_disabled', 'upgrade', 'upload', 'upload_file', 'usb', 'usb_off', 'verified', 'verified_user', 'vertical_align_bottom', 'vertical_align_center', 'vertical_align_top', 'vertical_distribute', 'vertical_split', 'vibration', 'video_call', 'video_camera_back', 'video_camera_front', 'video_label', 'video_library', 'video_settings', 'video_stable', 'videocam', 'videocam_off', 'videogame_asset', 'videogame_asset_off', 'view_agenda', 'view_array', 'view_carousel', 'view_column', 'view_comfy', 'view_compact', 'view_day', 'view_headline', 'view_in_ar', 'view_list', 'view_module', 'view_quilt', 'view_sidebar', 'view_stream', 'view_week', 'vignette', 'villa', 'visibility', 'visibility_off', 'voice_chat', 'voice_over_off', 'voicemail', 'volume_down', 'volume_mute', 'volume_off', 'volume_up', 'volunteer_activism', 'vpn_key', 'vpn_lock', 'vrpano', 'wallpaper', 'warning', 'warning', 'warning_amber', 'wash', 'watch', 'watch_later', 'water', 'water_damage', 'water_drop', 'waterfall_chart', 'waves', 'waving_hand', 'wb_auto', 'wb_cloudy', 'wb_incandescent', 'wb_iridescent', 'wb_shade', 'wb_sunny', 'wb_twilight', 'wc', 'web', 'web_asset', 'web_asset_off', 'weekend', 'west', 'whatshot', 'wheelchair_pickup', 'where_to_vote', 'widgets', 'wifi', 'wifi_calling', 'wifi_calling_3', 'wifi_lock', 'wifi_off', 'wifi_protected_setup', 'wifi_tethering', 'wifi_tethering_error_rounded', 'wifi_tethering_off', 'window', 'wine_bar', 'work', 'work_off', 'work_outline', 'workspaces', 'wrap_text', 'wrong_location', 'wysiwyg', 'yard', 'youtube_searched_for', 'zoom_in', 'zoom_out', 'zoom_out_map'])
|
|
18
21
|
};
|
|
19
22
|
}
|