react-ui-basics 0.0.142 → 0.0.145
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 -3
- package/Animated.js.map +1 -1
- package/AutocompleteSelect.js +35 -32
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js +3 -3
- package/Button.js.map +1 -1
- package/Checkbox.js +3 -3
- package/Checkbox.js.map +1 -1
- package/CircleProgress.js.map +1 -1
- package/DNDContainer.js.map +1 -1
- package/DNDDraggable.js +2 -2
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js +2 -2
- package/DNDDroppable.js.map +1 -1
- package/Dialog.js +4 -4
- package/Dialog.js.map +1 -1
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js +2 -2
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js +2 -2
- package/DroppableList.js.map +1 -1
- package/Dropzone.js +2 -2
- package/Dropzone.js.map +1 -1
- package/FilteredList.js +6 -5
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js +6 -6
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.js +1 -1
- package/MaterialIcon.js.map +1 -1
- package/Modal.js +3 -3
- package/Modal.js.map +1 -1
- package/ModalMenu.js +2 -2
- package/ModalMenu.js.map +1 -1
- package/ReactConstants.js.map +1 -1
- package/ReadyListener.js +3 -3
- package/ReadyListener.js.map +1 -1
- package/Scrollable.js +3 -3
- package/Scrollable.js.map +1 -1
- package/ScrollableTable.js +2 -2
- package/ScrollableTable.js.map +1 -1
- package/Size.js.map +1 -1
- package/Snackbar.js +2 -2
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.js.map +1 -1
- package/Switch.js +3 -3
- package/Switch.js.map +1 -1
- package/Table.js.map +1 -1
- package/TextField.js +3 -3
- package/TextField.js.map +1 -1
- package/Tools.d.ts +36 -0
- package/Tools.js +183 -205
- package/Tools.js.map +1 -1
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/bundle.css +635 -634
- package/package.json +30 -27
- package/router/HistoryTools.js.map +1 -1
- package/router/Link.js.map +1 -1
- package/router/NavLink.js.map +1 -1
- package/router/Route.js +3 -3
- package/router/Route.js.map +1 -1
- package/router/index.js.map +1 -1
- package/store/ProxyTools.js.map +1 -1
- package/store/Store.d.ts +21 -0
- package/store/Store.js +43 -57
- package/store/Store.js.map +1 -1
package/FilteredList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilteredList.js","sources":["../src/react-ui-basics/FilteredList.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FilteredList.css'\nimport Scrollable from \"./Scrollable\";\nimport {classNames, orNoop, ref, stopPropagation, isFunction, isObject} from \"./Tools\";\n\nexport const getLabel = (labels, id) => isFunction(labels) ? labels(id) : labels[id]\n\nclass FilteredList extends React.Component {\n\n static defaultProps = {\n data: [],\n labels: {},\n selected: {},\n inline: false,\n selectSingle: true,\n filter: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {selected: -1};\n this.hidden = {};\n this.elements = {};\n }\n\n componentDidMount() {\n orNoop(this.props.nextProvider)(this.next);\n orNoop(this.props.prevProvider)(this.prev);\n orNoop(this.props.selectedProvider)(this.selected);\n orNoop(this.props.resetProvider)(this.reset);\n\n this.updateList(this.props)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data === prevProps.data)\n return;\n\n this.updateList(this.props)\n }\n\n updateList = (props) => {\n const {data} = props;\n const {selected} = this.state;\n this.list = data || [];\n\n if (!this.list.includes(selected))\n this.setState({selected: -1})\n };\n\n render() {\n const {data, labels, filter, className, selected, inline, childComponent, childProps, style, scroll} = this.props;\n return (\n <Scrollable className={classNames('FilteredList', className, inline ? 'inline' : 'popup')}\n ref={ref('el', this)} style={style} scrollBarMode={scroll}>\n {(data || []).filter(id => id !== false && id != null).map(id => <ItemWrapper\n id={id}\n key={id}\n label={getLabel(labels, id)}\n childComponent={childComponent}\n childProps={childProps}\n element={el => this.elements[id] = el}\n onClick={e => {\n stopPropagation(e);\n this.onSelect(id);\n }}\n onMouseEnter={e => this.setState({selected: id})}\n onMouseLeave={e => id === this.state.selected && this.setState({selected: -1})}\n className={classNames('child', this.state.selected === id && 'active', selected === id || (isObject(selected) && selected[id]) && 'selected')}\n classProvider={it => (this.hidden[id] = !filter(it)) && 'hidden'}\n />)}\n </Scrollable>\n )\n }\n\n onSelect = (id) => {\n this.setState({selected: id});\n this.props.onSelect(id);\n };\n\n selected = () => {\n const {selected: value} = this.state;\n const {selectSingle} = this.props;\n\n\n if (value === -1 || this.hidden[value]) {\n let filtered = this.list.filter(id => !this.hidden[id]);\n if (selectSingle && filtered.length === 1)\n return filtered[0];\n\n return null;\n } else {\n return value;\n }\n };\n\n next = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = -1;\n\n while (++position < list.length) {\n if (!this.hidden[list[position]])\n break\n }\n if (position < list.length) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n prev = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = list.length;\n\n while (--position >= 0) {\n if (!this.hidden[list[position]])\n break\n }\n if (position >= 0) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n updateScroll = (id) => {\n let child = this.elements[id];\n let container = this.el;\n const scrollTop = container.getScroll();\n const height = container.getHeight();\n let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + child.clientHeight;\n if (!isVisible) {\n let scrollToBottom = child.offsetTop + child.clientHeight - height;\n let scrollToTop = child.offsetTop;\n if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {\n container.setScroll(scrollToTop)\n } else {\n container.setScroll(scrollToBottom)\n }\n }\n };\n\n reset = () => {\n this.setState({selected: -1});\n this.el.scrollTop = 0;\n };\n\n scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);\n}\n\nexport default FilteredList;\n\nclass ItemWrapper extends React.Component {\n render() {\n const {id, label, onClick, onMouseDown, onMouseEnter, onMouseLeave, classProvider, className, childComponent, childProps} = this.props;\n const child = React.createElement(childComponent, {\n ...childProps,\n id,\n label,\n dataConsumer: (data) => this.data = data,\n });\n\n const cssClass = orNoop(classProvider)(this.data);\n return (\n <div className={classNames('ItemWrapper', cssClass, className)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseDown={onMouseDown}\n onClick={onClick}\n ref={ref('el', this)}\n >\n {child}\n </div>\n )\n }\n\n componentDidMount() {\n orNoop(this.props.element)(this.el);\n this.forceUpdate();\n }\n}\n"],"names":["getLabel","labels","id","isFunction","FilteredList","props","updateList","data","selected","state","list","includes","setState","onSelect","value","selectSingle","hidden","filtered","filter","length","next","position","findIndex","updateScroll","prev","child","elements","container","el","scrollTop","getScroll","height","getHeight","isVisible","offsetTop","clientHeight","scrollToBottom","scrollToTop","Math","abs","setScroll","reset","scrollTo","orNoop","nextProvider","prevProvider","selectedProvider","resetProvider","prevProps","prevState","snapshot","className","inline","childComponent","childProps","style","scroll","classNames","ref","map","e","stopPropagation","isObject","it","React","Component","defaultProps","ItemWrapper","label","onClick","onMouseDown","onMouseEnter","onMouseLeave","classProvider","createElement","dataConsumer","cssClass","element","forceUpdate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilteredList.js","sources":["../src/react-ui-basics/FilteredList.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FilteredList.css'\nimport Scrollable from \"./Scrollable\";\nimport {classNames, orNoop, ref, stopPropagation, isFunction, isObject} from \"./Tools\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const getLabel = (labels, id) => isFunction(labels) ? labels(id) : labels[id]\n\nclass FilteredList extends PureComponent {\n\n static defaultProps = {\n data: [],\n labels: {},\n selected: {},\n inline: false,\n selectSingle: true,\n filter: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {selected: -1};\n this.hidden = {};\n this.elements = {};\n }\n\n componentDidMount() {\n orNoop(this.props.nextProvider)(this.next);\n orNoop(this.props.prevProvider)(this.prev);\n orNoop(this.props.selectedProvider)(this.selected);\n orNoop(this.props.resetProvider)(this.reset);\n\n this.updateList(this.props)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data === prevProps.data)\n return;\n\n this.updateList(this.props)\n }\n\n updateList = (props) => {\n const {data} = props;\n const {selected} = this.state;\n this.list = data || [];\n\n if (!this.list.includes(selected))\n this.setState({selected: -1})\n };\n\n render() {\n const {data, labels, filter, className, selected, inline, childComponent, childProps, style, scroll} = this.props;\n return (\n <Scrollable className={classNames('FilteredList', className, inline ? 'inline' : 'popup')}\n ref={ref('el', this)} style={style} scrollBarMode={scroll}>\n {(data || []).filter(id => id !== false && id != null).map(id => <ItemWrapper\n id={id}\n key={id}\n label={getLabel(labels, id)}\n childComponent={childComponent}\n childProps={childProps}\n element={el => this.elements[id] = el}\n onClick={e => {\n stopPropagation(e);\n this.onSelect(id);\n }}\n onMouseEnter={e => this.setState({selected: id})}\n onMouseLeave={e => id === this.state.selected && this.setState({selected: -1})}\n className={classNames('child', this.state.selected === id && 'active', selected === id || (isObject(selected) && selected[id]) && 'selected')}\n classProvider={it => (this.hidden[id] = !filter(it)) && 'hidden'}\n />)}\n </Scrollable>\n )\n }\n\n onSelect = (id) => {\n this.setState({selected: id});\n this.props.onSelect(id);\n };\n\n selected = () => {\n const {selected: value} = this.state;\n const {selectSingle} = this.props;\n\n\n if (value === -1 || this.hidden[value]) {\n let filtered = this.list.filter(id => !this.hidden[id]);\n if (selectSingle && filtered.length === 1)\n return filtered[0];\n\n return null;\n } else {\n return value;\n }\n };\n\n next = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = -1;\n\n while (++position < list.length) {\n if (!this.hidden[list[position]])\n break\n }\n if (position < list.length) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n prev = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = list.length;\n\n while (--position >= 0) {\n if (!this.hidden[list[position]])\n break\n }\n if (position >= 0) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n updateScroll = (id) => {\n let child = this.elements[id];\n let container = this.el;\n const scrollTop = container.getScroll();\n const height = container.getHeight();\n let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + child.clientHeight;\n if (!isVisible) {\n let scrollToBottom = child.offsetTop + child.clientHeight - height;\n let scrollToTop = child.offsetTop;\n if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {\n container.setScroll(scrollToTop)\n } else {\n container.setScroll(scrollToBottom)\n }\n }\n };\n\n reset = () => {\n this.setState({selected: -1});\n this.el.scrollTop = 0;\n };\n\n scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);\n}\n\nexport default FilteredList;\n\nclass ItemWrapper extends React.Component {\n render() {\n const {id, label, onClick, onMouseDown, onMouseEnter, onMouseLeave, classProvider, className, childComponent, childProps} = this.props;\n const child = React.createElement(childComponent, {\n ...childProps,\n id,\n label,\n dataConsumer: (data) => this.data = data,\n });\n\n const cssClass = orNoop(classProvider)(this.data);\n return (\n <div className={classNames('ItemWrapper', cssClass, className)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseDown={onMouseDown}\n onClick={onClick}\n ref={ref('el', this)}\n >\n {child}\n </div>\n )\n }\n\n componentDidMount() {\n orNoop(this.props.element)(this.el);\n this.forceUpdate();\n }\n}\n"],"names":["getLabel","labels","id","isFunction","FilteredList","props","updateList","data","selected","state","list","includes","setState","onSelect","value","selectSingle","hidden","filtered","filter","length","next","position","findIndex","updateScroll","prev","child","elements","container","el","scrollTop","getScroll","height","getHeight","isVisible","offsetTop","clientHeight","scrollToBottom","scrollToTop","Math","abs","setScroll","reset","scrollTo","orNoop","nextProvider","prevProvider","selectedProvider","resetProvider","prevProps","prevState","snapshot","className","inline","childComponent","childProps","style","scroll","classNames","ref","map","e","stopPropagation","isObject","it","PureComponent","defaultProps","ItemWrapper","label","onClick","onMouseDown","onMouseEnter","onMouseLeave","classProvider","React","createElement","dataConsumer","cssClass","element","forceUpdate","Component"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingActionButton.js","sources":["../src/react-ui-basics/FloatingActionButton.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './FloatingActionButton.css'\nimport Button from \"./Button\";\nimport {classNames} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nconst FloatingActionButton = ({icon, onClick, mini, className, hidden}) => {\n return <Button onClick={onClick} round={true} className={classNames(\"FloatingActionButton\", className, mini && 'mini', hidden && 'hidden')}>\n <MaterialIcon icon={icon}/>\n </Button>;\n};\n\nif (window.isNotProductionEnvironment) {\n FloatingActionButton.propTypes = {\n icon: MaterialIcon.propTypes.icon,\n mini: PropTypes.bool,\n hidden: PropTypes.bool,\n };\n}\n\nFloatingActionButton.defaultProps = {\n icon: 'add',\n mini: false,\n hidden: false,\n};\n\nexport default FloatingActionButton;"],"names":["FloatingActionButton","icon","onClick","mini","className","hidden","classNames","window","isNotProductionEnvironment","propTypes","MaterialIcon","PropTypes","bool","defaultProps"],"mappings":";;;;;;;AAQA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,
|
|
1
|
+
{"version":3,"file":"FloatingActionButton.js","sources":["../src/react-ui-basics/FloatingActionButton.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './FloatingActionButton.css'\nimport Button from \"./Button\";\nimport {classNames} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nconst FloatingActionButton = ({icon, onClick, mini, className, hidden}) => {\n return <Button onClick={onClick} round={true} className={classNames(\"FloatingActionButton\", className, mini && 'mini', hidden && 'hidden')}>\n <MaterialIcon icon={icon}/>\n </Button>;\n};\n\nif (window.isNotProductionEnvironment) {\n FloatingActionButton.propTypes = {\n icon: MaterialIcon.propTypes.icon,\n mini: PropTypes.bool,\n hidden: PropTypes.bool,\n };\n}\n\nFloatingActionButton.defaultProps = {\n icon: 'add',\n mini: false,\n hidden: false,\n};\n\nexport default FloatingActionButton;"],"names":["FloatingActionButton","icon","onClick","mini","className","hidden","classNames","window","isNotProductionEnvironment","propTypes","MaterialIcon","PropTypes","bool","defaultProps"],"mappings":";;;;;;;AAQA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAA8C,IAAA,EAAA;AAAA,EAA5CC,IAAAA,IAA4C,QAA5CA,IAA4C;AAAA,MAAtCC,OAAsC,QAAtCA,OAAsC;AAAA,MAA7BC,IAA6B,QAA7BA,IAA6B;AAAA,MAAvBC,SAAuB,QAAvBA,SAAuB;AAAA,MAAZC,MAAY,QAAZA,MAAY,CAAA;AACvE,EAAA,OAAO,mBAAC,MAAD,EAAA;AAAQ,IAAA,OAAO,EAAEH,OAAjB;AAA0B,IAAA,KAAK,EAAE,IAAjC;AAAuC,IAAA,SAAS,EAAEI,UAAU,CAAC,sBAAD,EAAyBF,SAAzB,EAAoCD,IAAI,IAAI,MAA5C,EAAoDE,MAAM,IAAI,QAA9D,CAAA;AAA5D,GAAA,EACH,mBAAC,YAAD,EAAA;AAAc,IAAA,IAAI,EAAEJ,IAAAA;AAApB,GAAA,CADG,CAAP,CAAA;AAGH,CAJD,CAAA;AAMA,IAAIM,MAAM,CAACC,0BAAX,EAAuC;AACnCR,EAAAA,oBAAoB,CAACS,SAArB,GAAiC;AAC7BR,IAAAA,IAAI,EAAES,YAAY,CAACD,SAAb,CAAuBR,IADA;AAE7BE,IAAAA,IAAI,EAAEQ,SAAS,CAACC,IAFa;AAG7BP,IAAAA,MAAM,EAAEM,SAAS,CAACC,IAAAA;AAHW,GAAjC,CAAA;AAKH,CAAA;AAEDZ,oBAAoB,CAACa,YAArB,GAAoC;AAChCZ,EAAAA,IAAI,EAAE,KAD0B;AAEhCE,EAAAA,IAAI,EAAE,KAF0B;AAGhCE,EAAAA,MAAM,EAAE,KAAA;AAHwB,CAApC,CAAA;AAMA,6BAAeL,oBAAf;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormUploadProgress.js","sources":["../src/react-ui-basics/FormUploadProgress.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FormUploadProgress.css'\nimport Button from \"./Button\";\nimport Animated from \"./Animated\";\nimport CircleProgress from \"./CircleProgress\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {formatAbbreviation, formatNumberWithMaxLength} from \"./Size\";\nimport PropTypes from \"prop-types\";\nimport {preventDefault} from \"./Tools\";\n\n\nconst defaultValueFormat = (value, loaded, total) => {\n if (total == null)\n return Math.floor(Number.isFinite(value) ? value : 0) + '%';\n\n const abbreviation = formatAbbreviation(total);\n return <>\n {formatNumberWithMaxLength(loaded, 1, abbreviation, 4)}\n /\n {formatNumberWithMaxLength(total, 1, abbreviation, 4)}\n <br/>\n {abbreviation}\n </>\n};\n\nconst FormUploadProgress = ({\n value,\n cancel,\n loaded,\n total,\n formatValue,\n processingLabel,\n cancelLabel,\n }) => {\n return (\n <Animated value={total > 0}>\n <div className=\"FormUploadProgress\">\n <div className=\"wrapper\">\n <div className=\"progress\">\n {loaded === total && <SpinningProgress/>}\n {loaded !== total && <CircleProgress value={value}/>}\n <div className={'value'}>{formatValue(value, loaded, total)}</div>\n </div>\n {cancel && <Button className={\"cancel\"} disabled={loaded === total} onClick={e => {\n preventDefault(e);\n cancel();\n }}>\n {loaded === total && processingLabel}\n {loaded !== total && cancelLabel}\n </Button>}\n </div>\n </div>\n </Animated>\n );\n};\n\nFormUploadProgress.defaultProps = {\n value: 0,\n formatValue: defaultValueFormat,\n};\n\nif (window.isNotProductionEnvironment) {\n FormUploadProgress.propTypes = {\n value: PropTypes.number,\n loaded: PropTypes.number,\n total: PropTypes.number,\n formatValue: PropTypes.func,\n processingLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancelLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancel: PropTypes.func,\n };\n}\n\nexport default FormUploadProgress;\n"],"names":["defaultValueFormat","value","loaded","total","Math","floor","Number","isFinite","abbreviation","formatAbbreviation","formatNumberWithMaxLength","FormUploadProgress","cancel","formatValue","processingLabel","cancelLabel","e","preventDefault","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number","func","oneOfType","string","element"],"mappings":";;;;;;;;;;AAYA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAQC,MAAR,EAAgBC,KAAhB,EAA0B;AACjD,
|
|
1
|
+
{"version":3,"file":"FormUploadProgress.js","sources":["../src/react-ui-basics/FormUploadProgress.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FormUploadProgress.css'\nimport Button from \"./Button\";\nimport Animated from \"./Animated\";\nimport CircleProgress from \"./CircleProgress\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {formatAbbreviation, formatNumberWithMaxLength} from \"./Size\";\nimport PropTypes from \"prop-types\";\nimport {preventDefault} from \"./Tools\";\n\n\nconst defaultValueFormat = (value, loaded, total) => {\n if (total == null)\n return Math.floor(Number.isFinite(value) ? value : 0) + '%';\n\n const abbreviation = formatAbbreviation(total);\n return <>\n {formatNumberWithMaxLength(loaded, 1, abbreviation, 4)}\n /\n {formatNumberWithMaxLength(total, 1, abbreviation, 4)}\n <br/>\n {abbreviation}\n </>\n};\n\nconst FormUploadProgress = ({\n value,\n cancel,\n loaded,\n total,\n formatValue,\n processingLabel,\n cancelLabel,\n }) => {\n return (\n <Animated value={total > 0}>\n <div className=\"FormUploadProgress\">\n <div className=\"wrapper\">\n <div className=\"progress\">\n {loaded === total && <SpinningProgress/>}\n {loaded !== total && <CircleProgress value={value}/>}\n <div className={'value'}>{formatValue(value, loaded, total)}</div>\n </div>\n {cancel && <Button className={\"cancel\"} disabled={loaded === total} onClick={e => {\n preventDefault(e);\n cancel();\n }}>\n {loaded === total && processingLabel}\n {loaded !== total && cancelLabel}\n </Button>}\n </div>\n </div>\n </Animated>\n );\n};\n\nFormUploadProgress.defaultProps = {\n value: 0,\n formatValue: defaultValueFormat,\n};\n\nif (window.isNotProductionEnvironment) {\n FormUploadProgress.propTypes = {\n value: PropTypes.number,\n loaded: PropTypes.number,\n total: PropTypes.number,\n formatValue: PropTypes.func,\n processingLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancelLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancel: PropTypes.func,\n };\n}\n\nexport default FormUploadProgress;\n"],"names":["defaultValueFormat","value","loaded","total","Math","floor","Number","isFinite","abbreviation","formatAbbreviation","formatNumberWithMaxLength","FormUploadProgress","cancel","formatValue","processingLabel","cancelLabel","e","preventDefault","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number","func","oneOfType","string","element"],"mappings":";;;;;;;;;;AAYA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAQC,MAAR,EAAgBC,KAAhB,EAA0B;AACjD,EAAA,IAAIA,KAAK,IAAI,IAAb,EACI,OAAOC,IAAI,CAACC,KAAL,CAAWC,MAAM,CAACC,QAAP,CAAgBN,KAAhB,CAAA,GAAyBA,KAAzB,GAAiC,CAA5C,IAAiD,GAAxD,CAAA;AAEJ,EAAA,IAAMO,YAAY,GAAGC,kBAAkB,CAACN,KAAD,CAAvC,CAAA;AACA,EAAO,OAAA,kBAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACFO,yBAAyB,CAACR,MAAD,EAAS,CAAT,EAAYM,YAAZ,EAA0B,CAA1B,CADvB,EAGFE,GAAAA,EAAAA,yBAAyB,CAACP,KAAD,EAAQ,CAAR,EAAWK,YAAX,EAAyB,CAAzB,CAHvB,EAIH,kBAAA,CAAA,IAAA,EAAA,IAAA,CAJG,EAKFA,YALE,CAAP,CAAA;AAOH,CAZD,CAAA;AAcA,IAAMG,kBAAkB,GAAG,SAArBA,kBAAqB,CAQO,IAAA,EAAA;AAAA,EAPFV,IAAAA,KAOE,QAPFA,KAOE;AAAA,MANFW,MAME,QANFA,MAME;AAAA,MALFV,MAKE,QALFA,MAKE;AAAA,MAJFC,KAIE,QAJFA,KAIE;AAAA,MAHFU,WAGE,QAHFA,WAGE;AAAA,MAFFC,eAEE,QAFFA,eAEE;AAAA,MADFC,WACE,QADFA,WACE,CAAA;AAC9B,EAAA,OACI,mBAAC,QAAD,EAAA;AAAU,IAAA,KAAK,EAAEZ,KAAK,GAAG,CAAA;AAAzB,GACI,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,oBAAA;AAAf,GACI,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,SAAA;AAAf,GACI,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,UAAA;AAAf,GAAA,EACKD,MAAM,KAAKC,KAAX,IAAoB,kBAAC,CAAA,gBAAD,EADzB,IAAA,CAAA,EAEKD,MAAM,KAAKC,KAAX,IAAoB,mBAAC,cAAD,EAAA;AAAgB,IAAA,KAAK,EAAEF,KAAAA;AAAvB,GAAA,CAFzB,EAGI,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAE,OAAA;AAAhB,GAAA,EAA0BY,WAAW,CAACZ,KAAD,EAAQC,MAAR,EAAgBC,KAAhB,CAArC,CAHJ,CADJ,EAMKS,MAAM,IAAI,mBAAC,MAAD,EAAA;AAAQ,IAAA,SAAS,EAAE,QAAnB;AAA6B,IAAA,QAAQ,EAAEV,MAAM,KAAKC,KAAlD;AAAyD,IAAA,OAAO,EAAE,SAAAa,OAAAA,CAAAA,CAAC,EAAI;AAC9EC,MAAAA,cAAc,CAACD,CAAD,CAAd,CAAA;AACAJ,MAAAA,MAAM,EAAA,CAAA;AACT,KAAA;AAHU,GAAA,EAINV,MAAM,KAAKC,KAAX,IAAoBW,eAJd,EAKNZ,MAAM,KAAKC,KAAX,IAAoBY,WALd,CANf,CADJ,CADJ,CADJ,CAAA;AAoBH,CA7BD,CAAA;AA+BAJ,kBAAkB,CAACO,YAAnB,GAAkC;AAC9BjB,EAAAA,KAAK,EAAE,CADuB;AAE9BY,EAAAA,WAAW,EAAEb,kBAAAA;AAFiB,CAAlC,CAAA;AAKA,IAAImB,MAAM,CAACC,0BAAX,EAAuC;AACnCT,EAAAA,kBAAkB,CAACU,SAAnB,GAA+B;AAC3BpB,IAAAA,KAAK,EAAEqB,SAAS,CAACC,MADU;AAE3BrB,IAAAA,MAAM,EAAEoB,SAAS,CAACC,MAFS;AAG3BpB,IAAAA,KAAK,EAAEmB,SAAS,CAACC,MAHU;AAI3BV,IAAAA,WAAW,EAAES,SAAS,CAACE,IAJI;AAK3BV,IAAAA,eAAe,EAAEQ,SAAS,CAACG,SAAV,CAAoB,CACjCH,SAAS,CAACI,MADuB,EAEjCJ,SAAS,CAACK,OAFuB,CAApB,CALU;AAS3BZ,IAAAA,WAAW,EAAEO,SAAS,CAACG,SAAV,CAAoB,CAC7BH,SAAS,CAACI,MADmB,EAE7BJ,SAAS,CAACK,OAFmB,CAApB,CATc;AAa3Bf,IAAAA,MAAM,EAAEU,SAAS,CAACE,IAAAA;AAbS,GAA/B,CAAA;AAeH,CAAA;AAED,2BAAeb,kBAAf;;;;"}
|
package/ImageGallery.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineProperty as _defineProperty, inherits as _inherits, createSuper as _createSuper,
|
|
1
|
+
import { createClass as _createClass, classCallCheck as _classCallCheck, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, inherits as _inherits, createSuper as _createSuper, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray, extends as _extends, toConsumableArray as _toConsumableArray } from './_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import ReactCreateElement from './ReactCreateElement.js';
|
|
4
4
|
import Animated from './Animated.js';
|
|
5
5
|
import Button from './Button.js';
|
|
6
6
|
import SpinningProgress from './SpinningProgress.js';
|
|
7
|
-
import {
|
|
7
|
+
import { UNDEFINED, setTimeout, addEventListener, removeEventListener, classNames, WINDOW, orNoop, preventDefault, isDifferent, DOCUMENT, stopPropagation, createRef, debounce } from './Tools.js';
|
|
8
8
|
import MaterialIcon from './MaterialIcon.js';
|
|
9
9
|
import { stateGSs, propsGetter, componentDidUpdate, componentDidMount, componentWillUnmount, render } from './ReactConstants.js';
|
|
10
10
|
|
|
@@ -105,9 +105,9 @@ var ACTION_IMAGE_GALLERY_CLOSE = ACTION_PREFIX + 'CLOSE';
|
|
|
105
105
|
var ACTION_IMAGE_GALLERY_RECALCULATE = ACTION_PREFIX + 'RECALCULATE';
|
|
106
106
|
var ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED = ACTION_PREFIX + 'FULL_IMAGE_LOADED';
|
|
107
107
|
var ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';
|
|
108
|
-
var Actions = function Actions() {
|
|
108
|
+
var Actions = _createClass(function Actions() {
|
|
109
109
|
_classCallCheck(this, Actions);
|
|
110
|
-
};
|
|
110
|
+
});
|
|
111
111
|
Actions.replaceImages = function (images) {
|
|
112
112
|
return function (dispatch, getState) {
|
|
113
113
|
var state = getState();
|
|
@@ -761,7 +761,7 @@ var ImageGallery = function (_React$Component) {
|
|
|
761
761
|
};
|
|
762
762
|
return _this;
|
|
763
763
|
}
|
|
764
|
-
return ImageGallery;
|
|
764
|
+
return _createClass(ImageGallery);
|
|
765
765
|
}(React.Component);
|
|
766
766
|
var IMAGE_GALLERY_REDUCER = function IMAGE_GALLERY_REDUCER(state, action) {
|
|
767
767
|
state = state || {};
|
|
@@ -835,7 +835,7 @@ var ImageGalleryContainer = function (_React$Component2) {
|
|
|
835
835
|
};
|
|
836
836
|
return _this2;
|
|
837
837
|
}
|
|
838
|
-
return ImageGalleryContainer;
|
|
838
|
+
return _createClass(ImageGalleryContainer);
|
|
839
839
|
}(React.Component);
|
|
840
840
|
|
|
841
841
|
export { Actions, IMAGE_GALLERY_REDUCER, ImageGalleryContainer, ImageGallery$1 as default };
|
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","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","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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"}
|