react-ui-basics 0.0.209 → 0.0.211
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.map +1 -1
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js.map +1 -1
- package/Checkbox.d.ts +16 -0
- package/Checkbox.js +14 -52
- package/Checkbox.js.map +1 -1
- package/CircleProgress.d.ts +12 -0
- package/CircleProgress.js +8 -31
- package/CircleProgress.js.map +1 -1
- package/CommonFields.d.ts +18 -0
- package/CommonFields.js +18 -20
- package/CommonFields.js.map +1 -1
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js.map +1 -1
- package/Dialog.js.map +1 -1
- package/DropFileInput.d.ts +20 -0
- package/DropFileInput.js +6 -37
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js.map +1 -1
- package/Dropzone.js.map +1 -1
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.d.ts +19 -0
- package/FloatingActionButton.js +7 -28
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js +7 -6
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.d.ts +11 -0
- package/MaterialIcon.js +3 -18
- package/MaterialIcon.js.map +1 -1
- package/Modal.js.map +1 -1
- package/ModalMenu.d.ts +15 -0
- package/ModalMenu.js +23 -62
- package/ModalMenu.js.map +1 -1
- package/ReadyListener.js.map +1 -1
- package/Scrollable.css +3 -0
- package/Scrollable.js +20 -16
- package/Scrollable.js.map +1 -1
- package/Size.d.ts +8 -0
- package/Size.js +36 -35
- package/Size.js.map +1 -1
- package/Snackbar.d.ts +12 -0
- package/Snackbar.js +40 -62
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.d.ts +4 -0
- package/SpinningProgress.js +3 -18
- package/SpinningProgress.js.map +1 -1
- package/Switch.d.ts +17 -0
- package/Switch.js +13 -60
- package/Switch.js.map +1 -1
- package/Table.js +1 -1
- package/Table.js.map +1 -1
- package/TextField.js.map +1 -1
- package/Tools.d.ts +1 -1
- package/Tools.js.map +1 -1
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/bundle.css +808 -804
- package/package.json +22 -22
- 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.map +1 -1
- package/src/Checkbox.tsx +37 -0
- package/src/CircleProgress.tsx +29 -0
- package/src/{CommonFields.js → CommonFields.ts} +1 -1
- package/src/DropFileInput.tsx +32 -0
- package/src/FloatingActionButton.tsx +28 -0
- package/src/MaterialIcon.tsx +1830 -0
- package/src/{ModalMenu.js → ModalMenu.tsx} +18 -9
- package/src/Scrollable.css +3 -0
- package/src/Scrollable.js +23 -19
- package/src/Scrollable.scss +4 -0
- package/src/{Size.js → Size.tsx} +24 -22
- package/src/{Snackbar.js → Snackbar.tsx} +22 -16
- package/src/SpinningProgress.tsx +13 -0
- package/src/Switch.tsx +42 -0
- package/src/Table.tsx +1 -1
- package/src/Tools.ts +1 -1
- package/store/ProxyTools.js.map +1 -1
- package/src/Checkbox.js +0 -46
- package/src/CircleProgress.js +0 -32
- package/src/DropFileInput.js +0 -39
- package/src/FloatingActionButton.js +0 -29
- package/src/MaterialIcon.js +0 -1832
- package/src/SpinningProgress.js +0 -13
- package/src/Switch.js +0 -48
package/FloatingActionButton.js
CHANGED
|
@@ -1,37 +1,16 @@
|
|
|
1
|
-
import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './FloatingActionButton.css'; import 'react';
|
|
2
|
-
import ReactCreateElement from './ReactCreateElement.js';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
1
|
+
import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './FloatingActionButton.css'; import { jsx as jsxRuntime_2 } from 'react/jsx-runtime';
|
|
4
2
|
import Button from './Button.js';
|
|
5
3
|
import { classNames } from './Tools.js';
|
|
6
4
|
import MaterialIcon from './MaterialIcon.js';
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
onClick = _ref[ReactConstants[6]],
|
|
11
|
-
mini = _ref.mini,
|
|
12
|
-
className = _ref[ReactConstants[5]],
|
|
13
|
-
hidden = _ref.hidden;
|
|
14
|
-
return ReactCreateElement(Button, {
|
|
15
|
-
[ReactConstants[6]]: onClick,
|
|
16
|
-
round: true,
|
|
17
|
-
[ReactConstants[5]]: classNames("FloatingActionButton", className, mini && 'mini', hidden && 'hidden')
|
|
18
|
-
}, ReactCreateElement(MaterialIcon, {
|
|
19
|
-
icon: icon
|
|
20
|
-
}));
|
|
6
|
+
const FloatingActionButton = ({ icon, onClick, mini, className, hidden }) => {
|
|
7
|
+
return jsxRuntime_2(Button, __extends({ [ReactConstants[6]]: onClick, round: true, [ReactConstants[5]]: classNames("FloatingActionButton", className, mini && 'mini', hidden && 'hidden') }, { [ReactConstants[4]]: jsxRuntime_2(MaterialIcon, { icon: icon }) }));
|
|
21
8
|
};
|
|
22
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
23
|
-
FloatingActionButton.propTypes = {
|
|
24
|
-
icon: MaterialIcon.propTypes.icon,
|
|
25
|
-
mini: PropTypes.bool,
|
|
26
|
-
hidden: PropTypes.bool
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
9
|
FloatingActionButton.defaultProps = {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
10
|
+
icon: 'add',
|
|
11
|
+
mini: false,
|
|
12
|
+
hidden: false,
|
|
33
13
|
};
|
|
34
|
-
var FloatingActionButton$1 = FloatingActionButton;
|
|
35
14
|
|
|
36
|
-
export { FloatingActionButton
|
|
15
|
+
export { FloatingActionButton as default };
|
|
37
16
|
//# sourceMappingURL=FloatingActionButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingActionButton.js","sources":["./src/FloatingActionButton.
|
|
1
|
+
{"version":3,"file":"FloatingActionButton.js","sources":["./src/FloatingActionButton.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;AAeA,MAAM,oBAAoB,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAA4B,KAAI;AACjG,IAAA,OAAOA,aAAC,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,sBAAsB,EAAE,SAAS,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,EAAA,EAAA,EAAA,QAAA,EACtIA,YAAC,CAAA,YAAY,IAAC,IAAI,EAAE,IAAI,EAAA,CAAG,IACtB,CAAC;AACd,EAAE;AAEF,oBAAoB,CAAC,YAAY,GAAG;AAChC,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,KAAK;CAChB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormUploadProgress.js","sources":["./src/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,
|
|
1
|
+
{"version":3,"file":"FormUploadProgress.js","sources":["./src/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","ReactCreateElement","React","Fragment","formatNumberWithMaxLength","FormUploadProgress","_ref","cancel","formatValue","processingLabel","cancelLabel","Animated","className","SpinningProgress","CircleProgress","Button","disabled","onClick","e","preventDefault","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number","func","oneOfType","string","element"],"mappings":"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"}
|
package/ImageGallery.js
CHANGED
|
@@ -8,7 +8,7 @@ import { UNDEFINED, DOCUMENT, WINDOW, setTimeout, addEventListener, removeEventL
|
|
|
8
8
|
import MaterialIcon from './MaterialIcon.js';
|
|
9
9
|
import { stateGSs, componentDidUpdate, componentDidMount, componentWillUnmount, render, propsGetter } from './ReactConstants.js';
|
|
10
10
|
|
|
11
|
-
var _reducers;
|
|
11
|
+
var _class, _reducers;
|
|
12
12
|
var min = Math.min;
|
|
13
13
|
var abs = Math.abs;
|
|
14
14
|
var toPx = function toPx(value) {
|
|
@@ -108,6 +108,7 @@ var ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';
|
|
|
108
108
|
var Actions = _createClass(function Actions() {
|
|
109
109
|
_classCallCheck(this, Actions);
|
|
110
110
|
});
|
|
111
|
+
_class = Actions;
|
|
111
112
|
Actions.replaceImages = function (images) {
|
|
112
113
|
return function (dispatch, getState) {
|
|
113
114
|
var state = getState();
|
|
@@ -133,7 +134,7 @@ Actions.replaceImages = function (images) {
|
|
|
133
134
|
it.toLeft = 100;
|
|
134
135
|
it.toTop = 100;
|
|
135
136
|
}
|
|
136
|
-
if (!it.toWidth || !it.toHeight || !el)
|
|
137
|
+
if (!it.toWidth || !it.toHeight || !el) _class.loadPreview(it)(dispatch);
|
|
137
138
|
return it;
|
|
138
139
|
});
|
|
139
140
|
nextState.previews.width = min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding;
|
|
@@ -184,7 +185,7 @@ Actions.show = function (gallery) {
|
|
|
184
185
|
it.toLeft = 100;
|
|
185
186
|
it.toTop = 100;
|
|
186
187
|
}
|
|
187
|
-
if (!it.toWidth || !it.toHeight || !el)
|
|
188
|
+
if (!it.toWidth || !it.toHeight || !el) _class.loadPreview(it)(dispatch);
|
|
188
189
|
return it;
|
|
189
190
|
}),
|
|
190
191
|
previews: {
|
|
@@ -218,7 +219,7 @@ Actions.show = function (gallery) {
|
|
|
218
219
|
type: ACTION_IMAGE_GALLERY_SHOW,
|
|
219
220
|
data: data
|
|
220
221
|
});
|
|
221
|
-
|
|
222
|
+
_class.load(data.images[index])(dispatch);
|
|
222
223
|
};
|
|
223
224
|
};
|
|
224
225
|
Actions.close = function () {
|
|
@@ -256,14 +257,14 @@ Actions.loadedPreview = function (item, image) {
|
|
|
256
257
|
Actions.load = function (item) {
|
|
257
258
|
return function (dispatch) {
|
|
258
259
|
loadImage(item.url, function (image) {
|
|
259
|
-
|
|
260
|
+
_class.loaded(item, image)(dispatch);
|
|
260
261
|
});
|
|
261
262
|
};
|
|
262
263
|
};
|
|
263
264
|
Actions.loadPreview = function (item) {
|
|
264
265
|
return function (dispatch) {
|
|
265
266
|
loadImage(item.previewUrl, function (image) {
|
|
266
|
-
|
|
267
|
+
_class.loadedPreview(item, image)(dispatch);
|
|
267
268
|
});
|
|
268
269
|
};
|
|
269
270
|
};
|
package/ImageGallery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageGallery.js","sources":["./src/ImageGallery.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './ImageGallery.css'\nimport Animated from \"./Animated\";\nimport Button from \"./Button\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {\n UNDEFINED,\n preventDefault,\n stopPropagation,\n classNames,\n DOCUMENT,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n orNoop,\n createRef,\n debounce,\n isDifferent\n} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {componentDidUpdate, componentWillUnmount, componentDidMount, render, propsGetter, stateGSs} from \"./ReactConstants\";\n\nconst min = Math.min;\nconst abs = Math.abs;\n\nconst toPx = (value) => value + 'px';\n\nconst previewRatio = 4 / 3;\nconst previewHeight = 80;\nconst previewWidth = previewRatio * previewHeight;\nconst previewPadding = 8;\nconst previewsHeight = previewHeight + 15;\n\nconst calculatePosition = (it, ratio, width, height, previewsHeight, embedded, container) => {\n const windowWidth = embedded ? container.clientWidth : min(DOCUMENT.body.clientWidth, WINDOW.innerWidth);\n const windowHeight = embedded ? container.clientHeight : min(DOCUMENT.body.clientHeight, WINDOW.innerHeight);\n\n let offset = it.offset;\n if (offset == null)\n offset = (embedded ? 0 : windowHeight * 0.03);\n\n let offsetTop = it.offsetTop\n offsetTop = offsetTop == null ? offset : offsetTop\n let offsetBottom = it.offsetBottom\n offsetBottom = offsetBottom == null ? offset : offsetBottom\n let offsetLeft = it.offsetLeft\n offsetLeft = offsetLeft == null ? offset : offsetLeft\n let offsetRight = it.offsetRight\n offsetRight = offsetRight == null ? offset : offsetRight\n\n if (Number.isNaN(ratio))\n ratio = 0;\n if (embedded) {\n if (ratio > 1) {\n it.toHeight = windowHeight - previewsHeight - -offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n } else {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n } else if (ratio > 1) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n if (it.toHeight > windowHeight - previewsHeight - offsetTop - offsetBottom) {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n }\n } else {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n if (it.toWidth > windowWidth - offsetLeft - offsetRight) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n }\n\n // if (width && it.toWidth > width) {\n // it.toWidth = width;\n // it.toHeight = height;\n // }\n\n it.toTop = offsetTop + (windowHeight - previewsHeight - offsetTop - offsetBottom - it.toHeight) / 2;\n it.toLeft = (windowWidth - it.toWidth) / 2;\n\n it.toWidthPx = toPx(it.toWidth);\n // it.toHeightPx = toPx(it.toHeight);\n it.toTopPx = toPx(it.toTop);\n it.toLeftPx = toPx(it.toLeft);\n};\n\nconst calculatePreviewsScroll = (index, length, width) => {\n if (length <= 5)\n return 0;\n\n if (index < 3)\n return 0;\n\n if (index > length - 3)\n return -(length - 5) * (previewWidth + previewPadding);\n\n return -(index * (previewWidth + previewPadding) + (previewWidth) / 2 - width / 2);\n};\n\nfunction calculatePreview(width, height, url) {\n let top = 0;\n let left = 0;\n\n let ratio = width / height;\n\n if (width !== previewWidth || height !== previewHeight) {\n if (ratio < previewRatio) {\n width = previewWidth;\n height = width / ratio;\n top = -(height - previewHeight) / 2;\n } else {\n height = previewHeight;\n width = height * ratio;\n left = -(width - previewWidth) / 2;\n }\n }\n\n return {\n url,\n position: 'absolute',\n width: toPx(width),\n height: toPx(height),\n top: toPx(top),\n left: toPx(left),\n };\n}\n\nconst loadImage = (src, cb) => {\n const image = new Image();\n image.onload = () => {\n cb(image)\n };\n image.src = src;\n}\n\nconst ACTION_PREFIX = 'IMAGE_GALLERY_';\nconst ACTION_IMAGE_GALLERY_SHOW = ACTION_PREFIX + 'SHOW';\nconst ACTION_IMAGE_GALLERY_CLOSE = ACTION_PREFIX + 'CLOSE';\nconst ACTION_IMAGE_GALLERY_RECALCULATE = ACTION_PREFIX + 'RECALCULATE';\nconst ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED = ACTION_PREFIX + 'FULL_IMAGE_LOADED';\nconst ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';\n\nexport class Actions {\n static replaceImages = images => (dispatch, getState) => {\n const state = getState();\n const length = images.length;\n const nextState = {...state}\n nextState.images = images.map(item => {\n const image = state.images.find(it => it.url === item.url)\n if (image)\n return image\n\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n })\n nextState.previews.width = min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding;\n nextState.previews.totalWidth = toPx(length * previewWidth + (length - 1) * previewPadding);\n nextState.previews.images = nextState.images.map(item => {\n const preview = state.previews.images.find(it => it.url === item.previewUrl)\n if (preview)\n return preview\n\n const el = item.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n });\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data: nextState});\n };\n\n static show = (gallery) => (dispatch) => {\n const images = gallery.images;\n const length = images.length;\n const withPreviews = length > 1 && (gallery.withPreviews === UNDEFINED || !!gallery.withPreviews);\n const container = gallery.container;\n const embedded = gallery.embedded;\n const index = gallery.index;\n const data = {\n index,\n container,\n embedded,\n withPreviews,\n images: images.map(item => {\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n }),\n previews: {\n show: withPreviews,\n width: min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding,\n totalWidth: toPx(length * previewWidth + (length - 1) * previewPadding),\n scroll: UNDEFINED,\n images: images.map(it => {\n const el = it.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n })\n },\n };\n\n data.images.forEach(it => {\n if (!it.fromLeftPx) {\n const imageWithFromData = data.images.find(it => !!it.fromLeftPx);\n if (imageWithFromData) {\n it.fromLeftPx = imageWithFromData.fromLeftPx;\n it.fromTopPx = imageWithFromData.fromTopPx;\n it.fromWidthPx = imageWithFromData.fromWidthPx;\n }\n }\n });\n data.previews.scroll = calculatePreviewsScroll(index, length, data.previews.width);\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data});\n Actions.load(data.images[index])(dispatch)\n };\n static close = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_CLOSE});\n };\n static recalculate = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_RECALCULATE});\n };\n static loaded = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED, item, image});\n };\n static loadedPreview = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_PREVIEW_LOADED, item, image});\n };\n static load = (item) => (dispatch) => {\n loadImage(item.url, (image) => {\n Actions.loaded(item, image)(dispatch);\n })\n };\n\n static loadPreview = (item) => (dispatch) => {\n loadImage(item.previewUrl, (image) => {\n Actions.loadedPreview(item, image)(dispatch);\n })\n };\n}\n\nconst reducers = {\n [ACTION_IMAGE_GALLERY_SHOW]: (state, action) => ({...action.data, open: true}),\n [ACTION_IMAGE_GALLERY_CLOSE]: (state, action) => ({...state, open: false}),\n [ACTION_IMAGE_GALLERY_RECALCULATE]: (state, action) => {\n const images = [...state.images];\n const result = {...state, images};\n for (let i = 0; i < images.length; i++) {\n if (!images[i].width && !images[i].fromWidthPx)\n continue\n\n const it = {...images[i]};\n const width = it.width || Number.parseInt(it.fromWidthPx);\n const height = it.height || Number.parseInt(it.fromHeightPx);\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[i] = it;\n }\n\n return result;\n },\n [ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n\n const width = image.width\n const height = image.height\n const it = {...images[index], loaded: true, width, height};\n // debugger\n // if (it.toWidth > image.width)\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n return result;\n },\n [ACTION_IMAGE_GALLERY_PREVIEW_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n const it = {...images[index]};\n\n if (!it.toWidth || !it.toHeight)\n calculatePosition(it, image.width / image.height, image.width, image.height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n\n const previewImages = [...state.previews.images];\n result.previews.images = previewImages;\n const preview = calculatePreview(image.width, image.height, image.src);\n previewImages[index] = preview;\n\n return result;\n },\n};\n\nconst small = (it, index, i, length) => {\n if (index !== i)\n return big(it, index, i, 0, length);\n\n return {\n position: 'absolute',\n top: it.fromTopPx,\n left: it.fromLeftPx,\n width: it.fromWidthPx,\n // height: it.fromHeightPx,\n opacity: 0,\n };\n};\n\nconst big = (it, index, i, shift, length, previous) => {\n const styles = {\n position: 'absolute',\n top: it.toTopPx,\n left: toPx(it.toLeft + shift),\n width: it.toWidthPx,\n // height: it.toHeightPx,\n };\n\n\n // if (previous !== UNDEFINED && abs(index - previous) > 1) {\n // styles.transitionDelay = 100 * abs(previous - i) + 'ms';\n // }\n\n if (index !== i) {\n const width = WINDOW.innerWidth;\n const additionalOffset = it.toLeft < 0 ? -it.toLeft : 0;\n\n if (i < index)\n styles.left = toPx(it.toLeft - width - additionalOffset + (i + 1 === index ? shift : 0));\n else\n styles.left = toPx(it.toLeft + width + additionalOffset + (i - 1 === index ? shift : 0));\n }\n return styles;\n};\n\nclass ImageGallery extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n shift,\n index,\n previous,\n zoomed,\n previewScroll,\n ] = stateGSs(that, 5);\n\n\n const props = propsGetter(that);\n\n that[componentDidUpdate] = (prevProps, prevState, snapshot) => {\n if (props().open !== prevProps.open && !props().open) {\n setTimeout(() => {\n shift(0)\n index(UNDEFINED)\n previous(UNDEFINED)\n }, 250 + 100); // 250ms transition + 100ms to be sure it ended\n }\n\n const images = props().images;\n if (!images)\n return\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const image = images[indexValue];\n if (!image) {\n const i = images.length - 1\n if (i === -1) {\n if (prevProps.images !== images) {\n onClose()\n }\n } else {\n scrollTo(i, UNDEFINED)\n }\n } else if (!image.loaded) {\n props().load(image)\n }\n }\n\n const resizeListener = debounce(() => {\n props().open && props().recalculate()\n }, 100)\n that[componentDidMount] = () => {\n addEventListener(WINDOW, 'resize', resizeListener)\n }\n that[componentWillUnmount] = () => {\n removeEventListener(WINDOW, 'resize', resizeListener)\n }\n const onClose = () => {\n resetZoom()\n moveListenerAdded = false;\n this.props.close();\n }\n\n const onKeyDown = e => {\n const keyCode = e.keyCode;\n if (keyCode === 37/*left*/) {\n left();\n preventDefault(e);\n }\n if (keyCode === 39/*right*/) {\n right();\n preventDefault(e);\n }\n if (keyCode === 27/*escape*/ && !props().embedded) {\n onClose();\n preventDefault(e);\n }\n };\n\n let touchesStart;\n let zoomValue = 1;\n let zoomValueStarted;\n let zoomedImage;\n let oldLeft;\n let oldTop;\n\n let defaultWidth;\n let defaultLeft;\n let defaultTop;\n let touchpadStarted = null;\n\n const onKeyUp = e => {\n const keyCode = e.keyCode;\n if (touchpadStarted && keyCode === 17/*ctrl*/ && zoomed() && zoomValue < 1) {\n resetZoom()\n }\n };\n\n const resetZoom = () => {\n if (!zoomed()) return\n zoomed(false)\n zoomedImage.style.width = defaultWidth;\n zoomedImage.style.left = defaultLeft;\n zoomedImage.style.top = defaultTop;\n zoomedImage.style.transition = null\n touchpadStarted = null\n }\n const initZoom = () => {\n zoomed(true)\n defaultWidth = zoomedImage.style.width;\n defaultLeft = zoomedImage.style.left;\n defaultTop = zoomedImage.style.top;\n }\n\n const initTouchpadDragging = () => {\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n zoomedImage.style.transition = 'none'\n touchpadStarted = true;\n }\n\n const onWheel = (e) => {\n if (!zoomed()) return;\n\n preventDefault(e)\n if (!touchpadStarted) {\n initTouchpadDragging()\n }\n\n if (e.ctrlKey) {\n let diff = e.deltaY * 0.005;\n\n let newZoom = Math.min(Math.max(zoomValue + diff, 0.5), 10)\n let zoomX = e.pageX;\n oldLeft = zoomX - (zoomX - oldLeft) * newZoom / zoomValue;\n\n let zoomY = e.pageY;\n oldTop = zoomY - (zoomY - oldTop) * newZoom / zoomValue;\n zoomValue = newZoom\n\n zoomedImage.style.width = (zoomValue * 100) + '%';\n } else {\n oldLeft += e.deltaX * 0.5;\n oldTop += e.deltaY * 0.5;\n }\n zoomedImage.style.left = oldLeft + 'px'\n zoomedImage.style.top = oldTop + 'px'\n }\n\n let moveListenerAdded\n\n const onTouchStart = e => {\n e.swipeProcessed = false;\n if (e.button === 2) return;\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchStart', e.touches, e.target);\n\n zoomedImage = e.target;\n zoomedImage = zoomedImage.tagName.toLowerCase() === 'img' ? zoomedImage.parentElement : zoomedImage;\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n if (zoomed()) {\n zoomedImage.style.transition = 'none'\n }\n if (!moveListenerAdded) {\n //need to add it like this to be able to call preventDefault\n addEventListener(this.gallery, 'touchmove', onTouchMove, false)\n moveListenerAdded = true;\n }\n\n if (touches.length === 2) {\n if (zoomed())\n zoomValueStarted = zoomValue;\n else if (!props().embedded) {\n initZoom()\n zoomedImage.style.transition = 'none'\n zoomValueStarted = zoomValue = Number.parseFloat(zoomedImage.style.width) / WINDOW.innerWidth;\n }\n }\n touchesStart = (touches)\n };\n\n const power2 = x => x * x;\n\n const distance = touches => {\n const a = touches[0]\n const b = touches[1]\n return Math.sqrt(power2(a.pageX - b.pageX) + power2(a.pageY - b.pageY))\n }\n const center = touches => {\n const a = touches[0]\n const b = touches[1]\n return {x: (a.pageX + b.pageX) / 2, y: (a.pageY + b.pageY) / 2}\n }\n\n const onTouchMove = e => {\n if (!touchesStart)\n return;\n\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchMove', touches, e)\n\n if (zoomed()) {\n preventDefault(e)\n if (touches.length === 2) {\n const diff = distance(touches) / distance(touchesStart);\n\n zoomValue = Math.min(Math.max(zoomValueStarted * diff, 0.5), 10)\n\n let zoomedAt = center(touchesStart)\n let zoomX = zoomedAt.x;\n let newLeft = zoomX - (zoomX - oldLeft) * zoomValue / zoomValueStarted;\n\n let zoomY = zoomedAt.y;\n let newTop = zoomY - (zoomY - oldTop) * zoomValue / zoomValueStarted;\n\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n zoomedImage.style.width = (zoomValue * 100) + '%';\n\n return;\n } else {\n let touch = touches[0];\n let touchStart = touchesStart[0];\n let newLeft = oldLeft + touch.pageX - touchStart.pageX\n let newTop = oldTop + touch.pageY - touchStart.pageY\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n return;\n }\n }\n\n if (touches.length > 1 || zoomed())\n return;\n\n let touch = touches[0];\n let touchStart = touchesStart[0];\n shift(touch.pageX - touchStart.pageX)\n };\n\n const onTouchEnd = e => {\n if (!touchesStart)\n return;\n\n if (zoomed()) {\n touchesStart = (UNDEFINED)\n if (zoomValue < 1) {\n resetZoom()\n }\n return;\n }\n\n const touches = e.changedTouches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchEnd', touches, e)\n\n let touchEnd = touches[0];\n let touchStart = touchesStart[0];\n let distX = touchEnd.pageX - touchStart.pageX;\n let distY = touchEnd.pageY - touchStart.pageY;\n\n touchesStart = (UNDEFINED)\n shift(0)\n const minDistance = 20;\n\n if (abs(distX / distY) > 2 && abs(distX) > minDistance) {\n distX < 0 ? right() : left();\n e.swipeProcessed = true\n } else if (abs(distY / distX) > 2 && abs(distY) > minDistance) {\n !props().embedded && onClose();\n e.swipeProcessed = true\n }\n };\n\n const scrollTo = (i, prev) => {\n const {previews} = props();\n index(i)\n previous(prev)\n previewScroll(calculatePreviewsScroll(i, previews.images.length, previews.width))\n };\n\n const left = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue > 0)\n scrollTo(indexValue - 1, indexValue)\n else if (props().loop)\n scrollTo(props().images.length - 1, indexValue)\n };\n\n const right = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const {images} = props();\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue < images.length - 1)\n scrollTo(indexValue + 1, indexValue)\n else if (props().loop)\n scrollTo(0, indexValue)\n };\n\n that.scrollTo = scrollTo;\n that.left = left;\n that.right = right;\n\n const animatedRoundButton = (show, className, onClick, icon) => (\n <Animated value={show}>\n <Button className={className} onClick={onClick} round={true}>\n <MaterialIcon icon={icon}/>\n </Button>\n </Animated>);\n\n that[render] = () => {\n const {open} = props();\n const {images = [], previews = {}, indicator, embedded, loop, onClick, children} = props();\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const length = images.length;\n const isZoomed = zoomed();\n const shiftValue = shift() || 0;\n const previousValue = previous();\n return (\n <Animated value={open}>\n <div className={classNames('ImageGallery', embedded && 'embedded', isZoomed && 'zoomed')}\n tabIndex={0}\n ref={it => (that.gallery = it) && !embedded && it.focus()}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n // onClick={e => e.target === that.gallery && !e.swipeProcessed && !embedded && onClose()}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onMouseDown={onTouchStart}\n onMouseUp={onTouchEnd}\n onMouseMove={onTouchMove}\n onMouseLeave={onTouchEnd}\n onWheel={onWheel}\n >\n {images.map((it, i) => {\n const isZoomedCurrent = isZoomed && i === indexValue;\n const loaded = it.loaded;\n return <Animated key={it.id} value={open} styles={{\n default: small(it, indexValue, i, length),\n mounting: big(it, indexValue, i, shiftValue, length, previousValue),\n mountend: big(it, indexValue, i, shiftValue, length, previousValue),\n unmounting: small(it, indexValue, i, length),\n }}>\n <div\n draggable={false}\n onDoubleClick={e => {\n const img = e.target;\n if (img.naturalWidth === img.clientWidth && img.naturalHeight === img.clientHeight)\n return;\n\n if (!isZoomed) {\n zoomedImage = img.tagName.toLowerCase() === 'img' ? img.parentElement : img;\n initZoom()\n zoomValue = 2;\n let newWidth = WINDOW.innerWidth * 2;\n let oldWidth = Number.parseFloat(zoomedImage.style.width);\n let oldLeft = Number.parseFloat(zoomedImage.style.left);\n let zoomX = e.pageX;\n let diff = newWidth / oldWidth;\n let newLeft = zoomX - (zoomX - oldLeft) * diff;\n\n let oldTop = Number.parseFloat(zoomedImage.style.top);\n let zoomY = e.pageY;\n let newTop = zoomY - (zoomY - oldTop) * diff;\n\n zoomedImage.style.width = '200%'\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n } else {\n resetZoom()\n }\n }}\n onClick={(e) => {\n !e.swipeProcessed && orNoop(onClick)(e, it, i)\n }}\n key={i} className={classNames('image', touchesStart && 'dragging', isZoomedCurrent && 'zoomed', i === indexValue && 'current')}\n >\n <img draggable={false} src={loaded ? it.url : it.previewUrl} onDragStart={preventDefault}/>\n\n <Animated value={!loaded && Math.abs(indexValue - i) <= 1}>\n <div className={'spinner'}><SpinningProgress/></div>\n </Animated>\n\n {!embedded && animatedRoundButton(open && !isZoomedCurrent,\n 'close',\n onClose,\n 'close'\n )}\n\n\n <Animated value={loaded && !isZoomedCurrent}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {!isZoomedCurrent && loaded && it.overlay}\n </div>\n </Animated>;\n })}\n\n {animatedRoundButton(open && length > 1 && (indexValue > 0 || loop) && !isZoomed,\n 'arrow left',\n left,\n 'chevron_left'\n )}\n\n {animatedRoundButton(open && length > 1 && (indexValue !== length - 1 || loop) && !isZoomed,\n 'arrow right',\n right,\n 'chevron_right'\n )}\n\n <Animated value={open && length > 1 && !isZoomed}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {indicator && <Animated value={open && length > 1 && !isZoomed}>\n {indicator(indexValue, length)}\n </Animated>}\n\n <Animated value={open && previews.show && !isZoomed}>\n <div className=\"previews\" style={{width: previews.width}}>\n <div className=\"viewport\">\n <div className=\"container\" style={{width: previews.totalWidth, left: toPx(previewScroll() || previews.scroll)}}>\n {(previews.images || []).map((it, i) =>\n <div key={i}\n className={classNames('preview', indexValue === i && 'selected')}\n onClick={() => scrollTo(i, indexValue)}\n >\n <img src={it.url} style={it}/>\n\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n </div>)}\n </div>\n </div>\n\n {animatedRoundButton(indexValue > 0 || loop,\n 'arrow left',\n left,\n 'keyboard_arrow_left'\n )}\n {animatedRoundButton(indexValue !== length - 1 || loop,\n 'arrow right',\n right,\n 'keyboard_arrow_right'\n )}\n </div>\n </Animated>\n\n {children}\n </div>\n </Animated>\n )\n }\n\n }\n}\n\nexport const IMAGE_GALLERY_REDUCER_NAME = 'gallery';\nexport const IMAGE_GALLERY_REDUCER = (state, action) => {\n state = state || {};\n const reducer = reducers[action.type];\n return reducer ? reducer(state, action) : state;\n};\n\nexport const mapStateToProps = (state, ownProps) => state[IMAGE_GALLERY_REDUCER_NAME];\n\nexport default ImageGallery;\n\nexport class ImageGalleryContainer extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n\n that.state = IMAGE_GALLERY_REDUCER(null, {})\n const getState = () => that.state;\n\n const dispatch = (action) => setTimeout(() => {\n that.setState(state => {\n // console.log('before action', action, state)\n state = IMAGE_GALLERY_REDUCER(state, action);\n // console.log('after action', action, state)\n return state;\n })\n }, 0)\n\n const props = propsGetter(that)\n\n const embedded = 'embedded'\n const galleryRef = createRef()\n\n const show = that.show = (gallery) => {\n if (!!props()[embedded]) {\n if (props().containerRef()) {\n Actions.show({\n ...gallery,\n [embedded]: !!props()[embedded],\n container: props().containerRef(),\n })(dispatch)\n } else {\n setTimeout(show, 1, gallery)\n }\n } else {\n Actions.show(gallery)(dispatch)\n }\n };\n const close = that.close = () => {\n Actions.close()(dispatch)\n };\n const load = that.load = (item) => {\n Actions.load(item)(dispatch)\n };\n const recalculate = that.recalculate = () => {\n Actions.recalculate()(dispatch)\n };\n that.replaceImages = (images) => {\n Actions.replaceImages(images)(dispatch, getState)\n };\n\n that[render] = () => <ImageGallery ref={galleryRef} {...that.props} {...that.state} show={show} load={load} close={close} recalculate={recalculate}>\n {that.props.children}\n </ImageGallery>\n\n that[componentDidMount] = () => {\n props()[embedded] && show(props()[embedded])\n that.scrollTo = galleryRef().scrollTo;\n that.left = galleryRef().left;\n that.right = galleryRef().right;\n }\n that[componentDidUpdate] = (prevProps, prevState) => {\n isDifferent(prevProps[embedded], props()[embedded]) && props()[embedded] && show(props()[embedded])\n }\n }\n}\n"],"names":["min","Math","abs","toPx","value","previewRatio","previewHeight","previewWidth","previewPadding","previewsHeight","calculatePosition","it","ratio","width","height","embedded","container","windowWidth","clientWidth","DOCUMENT","body","WINDOW","innerWidth","windowHeight","clientHeight","innerHeight","offset","offsetTop","offsetBottom","offsetLeft","offsetRight","Number","isNaN","toHeight","toWidth","toTop","toLeft","toWidthPx","toTopPx","toLeftPx","calculatePreviewsScroll","index","length","calculatePreview","url","top","left","position","loadImage","src","cb","image","Image","onload","ACTION_PREFIX","ACTION_IMAGE_GALLERY_SHOW","ACTION_IMAGE_GALLERY_CLOSE","ACTION_IMAGE_GALLERY_RECALCULATE","ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED","ACTION_IMAGE_GALLERY_PREVIEW_LOADED","Actions","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/ImageGallery.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './ImageGallery.css'\nimport Animated from \"./Animated\";\nimport Button from \"./Button\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {\n UNDEFINED,\n preventDefault,\n stopPropagation,\n classNames,\n DOCUMENT,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n orNoop,\n createRef,\n debounce,\n isDifferent\n} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {componentDidUpdate, componentWillUnmount, componentDidMount, render, propsGetter, stateGSs} from \"./ReactConstants\";\n\nconst min = Math.min;\nconst abs = Math.abs;\n\nconst toPx = (value) => value + 'px';\n\nconst previewRatio = 4 / 3;\nconst previewHeight = 80;\nconst previewWidth = previewRatio * previewHeight;\nconst previewPadding = 8;\nconst previewsHeight = previewHeight + 15;\n\nconst calculatePosition = (it, ratio, width, height, previewsHeight, embedded, container) => {\n const windowWidth = embedded ? container.clientWidth : min(DOCUMENT.body.clientWidth, WINDOW.innerWidth);\n const windowHeight = embedded ? container.clientHeight : min(DOCUMENT.body.clientHeight, WINDOW.innerHeight);\n\n let offset = it.offset;\n if (offset == null)\n offset = (embedded ? 0 : windowHeight * 0.03);\n\n let offsetTop = it.offsetTop\n offsetTop = offsetTop == null ? offset : offsetTop\n let offsetBottom = it.offsetBottom\n offsetBottom = offsetBottom == null ? offset : offsetBottom\n let offsetLeft = it.offsetLeft\n offsetLeft = offsetLeft == null ? offset : offsetLeft\n let offsetRight = it.offsetRight\n offsetRight = offsetRight == null ? offset : offsetRight\n\n if (Number.isNaN(ratio))\n ratio = 0;\n if (embedded) {\n if (ratio > 1) {\n it.toHeight = windowHeight - previewsHeight - -offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n } else {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n } else if (ratio > 1) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n if (it.toHeight > windowHeight - previewsHeight - offsetTop - offsetBottom) {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n }\n } else {\n it.toHeight = windowHeight - previewsHeight - offsetTop - offsetBottom;\n it.toWidth = it.toHeight * ratio;\n if (it.toWidth > windowWidth - offsetLeft - offsetRight) {\n it.toWidth = windowWidth - offsetLeft - offsetRight;\n it.toHeight = it.toWidth / ratio;\n }\n }\n\n // if (width && it.toWidth > width) {\n // it.toWidth = width;\n // it.toHeight = height;\n // }\n\n it.toTop = offsetTop + (windowHeight - previewsHeight - offsetTop - offsetBottom - it.toHeight) / 2;\n it.toLeft = (windowWidth - it.toWidth) / 2;\n\n it.toWidthPx = toPx(it.toWidth);\n // it.toHeightPx = toPx(it.toHeight);\n it.toTopPx = toPx(it.toTop);\n it.toLeftPx = toPx(it.toLeft);\n};\n\nconst calculatePreviewsScroll = (index, length, width) => {\n if (length <= 5)\n return 0;\n\n if (index < 3)\n return 0;\n\n if (index > length - 3)\n return -(length - 5) * (previewWidth + previewPadding);\n\n return -(index * (previewWidth + previewPadding) + (previewWidth) / 2 - width / 2);\n};\n\nfunction calculatePreview(width, height, url) {\n let top = 0;\n let left = 0;\n\n let ratio = width / height;\n\n if (width !== previewWidth || height !== previewHeight) {\n if (ratio < previewRatio) {\n width = previewWidth;\n height = width / ratio;\n top = -(height - previewHeight) / 2;\n } else {\n height = previewHeight;\n width = height * ratio;\n left = -(width - previewWidth) / 2;\n }\n }\n\n return {\n url,\n position: 'absolute',\n width: toPx(width),\n height: toPx(height),\n top: toPx(top),\n left: toPx(left),\n };\n}\n\nconst loadImage = (src, cb) => {\n const image = new Image();\n image.onload = () => {\n cb(image)\n };\n image.src = src;\n}\n\nconst ACTION_PREFIX = 'IMAGE_GALLERY_';\nconst ACTION_IMAGE_GALLERY_SHOW = ACTION_PREFIX + 'SHOW';\nconst ACTION_IMAGE_GALLERY_CLOSE = ACTION_PREFIX + 'CLOSE';\nconst ACTION_IMAGE_GALLERY_RECALCULATE = ACTION_PREFIX + 'RECALCULATE';\nconst ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED = ACTION_PREFIX + 'FULL_IMAGE_LOADED';\nconst ACTION_IMAGE_GALLERY_PREVIEW_LOADED = ACTION_PREFIX + 'PREVIEW_LOADED';\n\nexport class Actions {\n static replaceImages = images => (dispatch, getState) => {\n const state = getState();\n const length = images.length;\n const nextState = {...state}\n nextState.images = images.map(item => {\n const image = state.images.find(it => it.url === item.url)\n if (image)\n return image\n\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n })\n nextState.previews.width = min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding;\n nextState.previews.totalWidth = toPx(length * previewWidth + (length - 1) * previewPadding);\n nextState.previews.images = nextState.images.map(item => {\n const preview = state.previews.images.find(it => it.url === item.previewUrl)\n if (preview)\n return preview\n\n const el = item.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n });\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data: nextState});\n };\n\n static show = (gallery) => (dispatch) => {\n const images = gallery.images;\n const length = images.length;\n const withPreviews = length > 1 && (gallery.withPreviews === UNDEFINED || !!gallery.withPreviews);\n const container = gallery.container;\n const embedded = gallery.embedded;\n const index = gallery.index;\n const data = {\n index,\n container,\n embedded,\n withPreviews,\n images: images.map(item => {\n const it = {...item}\n const el = it.el;\n if (el) {\n const rect = el.getBoundingClientRect();\n const fromWidth = el.clientWidth;\n const fromHeight = el.clientHeight;\n\n it.fromLeftPx = toPx(rect.left);\n it.fromTopPx = toPx(rect.top);\n it.fromWidthPx = toPx(fromWidth);\n\n let ratio = fromWidth / fromHeight;\n calculatePosition(it, ratio, el.naturalWidth || el.width, el.naturalHeight || el.height, withPreviews ? previewsHeight : 0, embedded, container);\n } else {\n it.toLeft = 100;\n it.toTop = 100;\n }\n if (!it.toWidth || !it.toHeight || !el)\n Actions.loadPreview(it)(dispatch);\n return it;\n }),\n previews: {\n show: withPreviews,\n width: min(length, 5) * previewWidth + min(length - 1, 4) * previewPadding,\n totalWidth: toPx(length * previewWidth + (length - 1) * previewPadding),\n scroll: UNDEFINED,\n images: images.map(it => {\n const el = it.el;\n if (!el)\n return {};\n\n let width = el.clientWidth;\n let height = el.clientHeight;\n return calculatePreview(width, height, el.src);\n })\n },\n };\n\n data.images.forEach(it => {\n if (!it.fromLeftPx) {\n const imageWithFromData = data.images.find(it => !!it.fromLeftPx);\n if (imageWithFromData) {\n it.fromLeftPx = imageWithFromData.fromLeftPx;\n it.fromTopPx = imageWithFromData.fromTopPx;\n it.fromWidthPx = imageWithFromData.fromWidthPx;\n }\n }\n });\n data.previews.scroll = calculatePreviewsScroll(index, length, data.previews.width);\n\n dispatch({type: ACTION_IMAGE_GALLERY_SHOW, data});\n Actions.load(data.images[index])(dispatch)\n };\n static close = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_CLOSE});\n };\n static recalculate = () => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_RECALCULATE});\n };\n static loaded = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED, item, image});\n };\n static loadedPreview = (item, image) => (dispatch) => {\n dispatch({type: ACTION_IMAGE_GALLERY_PREVIEW_LOADED, item, image});\n };\n static load = (item) => (dispatch) => {\n loadImage(item.url, (image) => {\n Actions.loaded(item, image)(dispatch);\n })\n };\n\n static loadPreview = (item) => (dispatch) => {\n loadImage(item.previewUrl, (image) => {\n Actions.loadedPreview(item, image)(dispatch);\n })\n };\n}\n\nconst reducers = {\n [ACTION_IMAGE_GALLERY_SHOW]: (state, action) => ({...action.data, open: true}),\n [ACTION_IMAGE_GALLERY_CLOSE]: (state, action) => ({...state, open: false}),\n [ACTION_IMAGE_GALLERY_RECALCULATE]: (state, action) => {\n const images = [...state.images];\n const result = {...state, images};\n for (let i = 0; i < images.length; i++) {\n if (!images[i].width && !images[i].fromWidthPx)\n continue\n\n const it = {...images[i]};\n const width = it.width || Number.parseInt(it.fromWidthPx);\n const height = it.height || Number.parseInt(it.fromHeightPx);\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[i] = it;\n }\n\n return result;\n },\n [ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n\n const width = image.width\n const height = image.height\n const it = {...images[index], loaded: true, width, height};\n // debugger\n // if (it.toWidth > image.width)\n calculatePosition(it, width / height, width, height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n return result;\n },\n [ACTION_IMAGE_GALLERY_PREVIEW_LOADED]: (state, action) => {\n const item = action.item;\n const image = action.image;\n const images = [...state.images];\n const result = {...state, images};\n const index = images.findIndex(it => it.id === item.id);\n const it = {...images[index]};\n\n if (!it.toWidth || !it.toHeight)\n calculatePosition(it, image.width / image.height, image.width, image.height, result.previews.show ? previewsHeight : 0, state.embedded, state.container);\n images[index] = it;\n\n const previewImages = [...state.previews.images];\n result.previews.images = previewImages;\n const preview = calculatePreview(image.width, image.height, image.src);\n previewImages[index] = preview;\n\n return result;\n },\n};\n\nconst small = (it, index, i, length) => {\n if (index !== i)\n return big(it, index, i, 0, length);\n\n return {\n position: 'absolute',\n top: it.fromTopPx,\n left: it.fromLeftPx,\n width: it.fromWidthPx,\n // height: it.fromHeightPx,\n opacity: 0,\n };\n};\n\nconst big = (it, index, i, shift, length, previous) => {\n const styles = {\n position: 'absolute',\n top: it.toTopPx,\n left: toPx(it.toLeft + shift),\n width: it.toWidthPx,\n // height: it.toHeightPx,\n };\n\n\n // if (previous !== UNDEFINED && abs(index - previous) > 1) {\n // styles.transitionDelay = 100 * abs(previous - i) + 'ms';\n // }\n\n if (index !== i) {\n const width = WINDOW.innerWidth;\n const additionalOffset = it.toLeft < 0 ? -it.toLeft : 0;\n\n if (i < index)\n styles.left = toPx(it.toLeft - width - additionalOffset + (i + 1 === index ? shift : 0));\n else\n styles.left = toPx(it.toLeft + width + additionalOffset + (i - 1 === index ? shift : 0));\n }\n return styles;\n};\n\nclass ImageGallery extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const [\n shift,\n index,\n previous,\n zoomed,\n previewScroll,\n ] = stateGSs(that, 5);\n\n\n const props = propsGetter(that);\n\n that[componentDidUpdate] = (prevProps, prevState, snapshot) => {\n if (props().open !== prevProps.open && !props().open) {\n setTimeout(() => {\n shift(0)\n index(UNDEFINED)\n previous(UNDEFINED)\n }, 250 + 100); // 250ms transition + 100ms to be sure it ended\n }\n\n const images = props().images;\n if (!images)\n return\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const image = images[indexValue];\n if (!image) {\n const i = images.length - 1\n if (i === -1) {\n if (prevProps.images !== images) {\n onClose()\n }\n } else {\n scrollTo(i, UNDEFINED)\n }\n } else if (!image.loaded) {\n props().load(image)\n }\n }\n\n const resizeListener = debounce(() => {\n props().open && props().recalculate()\n }, 100)\n that[componentDidMount] = () => {\n addEventListener(WINDOW, 'resize', resizeListener)\n }\n that[componentWillUnmount] = () => {\n removeEventListener(WINDOW, 'resize', resizeListener)\n }\n const onClose = () => {\n resetZoom()\n moveListenerAdded = false;\n this.props.close();\n }\n\n const onKeyDown = e => {\n const keyCode = e.keyCode;\n if (keyCode === 37/*left*/) {\n left();\n preventDefault(e);\n }\n if (keyCode === 39/*right*/) {\n right();\n preventDefault(e);\n }\n if (keyCode === 27/*escape*/ && !props().embedded) {\n onClose();\n preventDefault(e);\n }\n };\n\n let touchesStart;\n let zoomValue = 1;\n let zoomValueStarted;\n let zoomedImage;\n let oldLeft;\n let oldTop;\n\n let defaultWidth;\n let defaultLeft;\n let defaultTop;\n let touchpadStarted = null;\n\n const onKeyUp = e => {\n const keyCode = e.keyCode;\n if (touchpadStarted && keyCode === 17/*ctrl*/ && zoomed() && zoomValue < 1) {\n resetZoom()\n }\n };\n\n const resetZoom = () => {\n if (!zoomed()) return\n zoomed(false)\n zoomedImage.style.width = defaultWidth;\n zoomedImage.style.left = defaultLeft;\n zoomedImage.style.top = defaultTop;\n zoomedImage.style.transition = null\n touchpadStarted = null\n }\n const initZoom = () => {\n zoomed(true)\n defaultWidth = zoomedImage.style.width;\n defaultLeft = zoomedImage.style.left;\n defaultTop = zoomedImage.style.top;\n }\n\n const initTouchpadDragging = () => {\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n zoomedImage.style.transition = 'none'\n touchpadStarted = true;\n }\n\n const onWheel = (e) => {\n if (!zoomed()) return;\n\n preventDefault(e)\n if (!touchpadStarted) {\n initTouchpadDragging()\n }\n\n if (e.ctrlKey) {\n let diff = e.deltaY * 0.005;\n\n let newZoom = Math.min(Math.max(zoomValue + diff, 0.5), 10)\n let zoomX = e.pageX;\n oldLeft = zoomX - (zoomX - oldLeft) * newZoom / zoomValue;\n\n let zoomY = e.pageY;\n oldTop = zoomY - (zoomY - oldTop) * newZoom / zoomValue;\n zoomValue = newZoom\n\n zoomedImage.style.width = (zoomValue * 100) + '%';\n } else {\n oldLeft += e.deltaX * 0.5;\n oldTop += e.deltaY * 0.5;\n }\n zoomedImage.style.left = oldLeft + 'px'\n zoomedImage.style.top = oldTop + 'px'\n }\n\n let moveListenerAdded\n\n const onTouchStart = e => {\n e.swipeProcessed = false;\n if (e.button === 2) return;\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchStart', e.touches, e.target);\n\n zoomedImage = e.target;\n zoomedImage = zoomedImage.tagName.toLowerCase() === 'img' ? zoomedImage.parentElement : zoomedImage;\n oldLeft = Number.parseFloat(zoomedImage.style.left);\n oldTop = Number.parseFloat(zoomedImage.style.top);\n if (zoomed()) {\n zoomedImage.style.transition = 'none'\n }\n if (!moveListenerAdded) {\n //need to add it like this to be able to call preventDefault\n addEventListener(this.gallery, 'touchmove', onTouchMove, false)\n moveListenerAdded = true;\n }\n\n if (touches.length === 2) {\n if (zoomed())\n zoomValueStarted = zoomValue;\n else if (!props().embedded) {\n initZoom()\n zoomedImage.style.transition = 'none'\n zoomValueStarted = zoomValue = Number.parseFloat(zoomedImage.style.width) / WINDOW.innerWidth;\n }\n }\n touchesStart = (touches)\n };\n\n const power2 = x => x * x;\n\n const distance = touches => {\n const a = touches[0]\n const b = touches[1]\n return Math.sqrt(power2(a.pageX - b.pageX) + power2(a.pageY - b.pageY))\n }\n const center = touches => {\n const a = touches[0]\n const b = touches[1]\n return {x: (a.pageX + b.pageX) / 2, y: (a.pageY + b.pageY) / 2}\n }\n\n const onTouchMove = e => {\n if (!touchesStart)\n return;\n\n const touches = e.touches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchMove', touches, e)\n\n if (zoomed()) {\n preventDefault(e)\n if (touches.length === 2) {\n const diff = distance(touches) / distance(touchesStart);\n\n zoomValue = Math.min(Math.max(zoomValueStarted * diff, 0.5), 10)\n\n let zoomedAt = center(touchesStart)\n let zoomX = zoomedAt.x;\n let newLeft = zoomX - (zoomX - oldLeft) * zoomValue / zoomValueStarted;\n\n let zoomY = zoomedAt.y;\n let newTop = zoomY - (zoomY - oldTop) * zoomValue / zoomValueStarted;\n\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n zoomedImage.style.width = (zoomValue * 100) + '%';\n\n return;\n } else {\n let touch = touches[0];\n let touchStart = touchesStart[0];\n let newLeft = oldLeft + touch.pageX - touchStart.pageX\n let newTop = oldTop + touch.pageY - touchStart.pageY\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n return;\n }\n }\n\n if (touches.length > 1 || zoomed())\n return;\n\n let touch = touches[0];\n let touchStart = touchesStart[0];\n shift(touch.pageX - touchStart.pageX)\n };\n\n const onTouchEnd = e => {\n if (!touchesStart)\n return;\n\n if (zoomed()) {\n touchesStart = (UNDEFINED)\n if (zoomValue < 1) {\n resetZoom()\n }\n return;\n }\n\n const touches = e.changedTouches || [{pageX: e.pageX, pageY: e.pageY}];\n // console.log('onTouchEnd', touches, e)\n\n let touchEnd = touches[0];\n let touchStart = touchesStart[0];\n let distX = touchEnd.pageX - touchStart.pageX;\n let distY = touchEnd.pageY - touchStart.pageY;\n\n touchesStart = (UNDEFINED)\n shift(0)\n const minDistance = 20;\n\n if (abs(distX / distY) > 2 && abs(distX) > minDistance) {\n distX < 0 ? right() : left();\n e.swipeProcessed = true\n } else if (abs(distY / distX) > 2 && abs(distY) > minDistance) {\n !props().embedded && onClose();\n e.swipeProcessed = true\n }\n };\n\n const scrollTo = (i, prev) => {\n const {previews} = props();\n index(i)\n previous(prev)\n previewScroll(calculatePreviewsScroll(i, previews.images.length, previews.width))\n };\n\n const left = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue > 0)\n scrollTo(indexValue - 1, indexValue)\n else if (props().loop)\n scrollTo(props().images.length - 1, indexValue)\n };\n\n const right = (e) => {\n if (zoomed())\n return;\n preventDefault(e);\n stopPropagation(e);\n const {images} = props();\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n if (indexValue < images.length - 1)\n scrollTo(indexValue + 1, indexValue)\n else if (props().loop)\n scrollTo(0, indexValue)\n };\n\n that.scrollTo = scrollTo;\n that.left = left;\n that.right = right;\n\n const animatedRoundButton = (show, className, onClick, icon) => (\n <Animated value={show}>\n <Button className={className} onClick={onClick} round={true}>\n <MaterialIcon icon={icon}/>\n </Button>\n </Animated>);\n\n that[render] = () => {\n const {open} = props();\n const {images = [], previews = {}, indicator, embedded, loop, onClick, children} = props();\n\n const indexValue = index() !== UNDEFINED ? index() : props().index;\n const length = images.length;\n const isZoomed = zoomed();\n const shiftValue = shift() || 0;\n const previousValue = previous();\n return (\n <Animated value={open}>\n <div className={classNames('ImageGallery', embedded && 'embedded', isZoomed && 'zoomed')}\n tabIndex={0}\n ref={it => (that.gallery = it) && !embedded && it.focus()}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n // onClick={e => e.target === that.gallery && !e.swipeProcessed && !embedded && onClose()}\n onTouchStart={onTouchStart}\n onTouchEnd={onTouchEnd}\n onMouseDown={onTouchStart}\n onMouseUp={onTouchEnd}\n onMouseMove={onTouchMove}\n onMouseLeave={onTouchEnd}\n onWheel={onWheel}\n >\n {images.map((it, i) => {\n const isZoomedCurrent = isZoomed && i === indexValue;\n const loaded = it.loaded;\n return <Animated key={it.id} value={open} styles={{\n default: small(it, indexValue, i, length),\n mounting: big(it, indexValue, i, shiftValue, length, previousValue),\n mountend: big(it, indexValue, i, shiftValue, length, previousValue),\n unmounting: small(it, indexValue, i, length),\n }}>\n <div\n draggable={false}\n onDoubleClick={e => {\n const img = e.target;\n if (img.naturalWidth === img.clientWidth && img.naturalHeight === img.clientHeight)\n return;\n\n if (!isZoomed) {\n zoomedImage = img.tagName.toLowerCase() === 'img' ? img.parentElement : img;\n initZoom()\n zoomValue = 2;\n let newWidth = WINDOW.innerWidth * 2;\n let oldWidth = Number.parseFloat(zoomedImage.style.width);\n let oldLeft = Number.parseFloat(zoomedImage.style.left);\n let zoomX = e.pageX;\n let diff = newWidth / oldWidth;\n let newLeft = zoomX - (zoomX - oldLeft) * diff;\n\n let oldTop = Number.parseFloat(zoomedImage.style.top);\n let zoomY = e.pageY;\n let newTop = zoomY - (zoomY - oldTop) * diff;\n\n zoomedImage.style.width = '200%'\n zoomedImage.style.left = newLeft + 'px'\n zoomedImage.style.top = newTop + 'px'\n } else {\n resetZoom()\n }\n }}\n onClick={(e) => {\n !e.swipeProcessed && orNoop(onClick)(e, it, i)\n }}\n key={i} className={classNames('image', touchesStart && 'dragging', isZoomedCurrent && 'zoomed', i === indexValue && 'current')}\n >\n <img draggable={false} src={loaded ? it.url : it.previewUrl} onDragStart={preventDefault}/>\n\n <Animated value={!loaded && Math.abs(indexValue - i) <= 1}>\n <div className={'spinner'}><SpinningProgress/></div>\n </Animated>\n\n {!embedded && animatedRoundButton(open && !isZoomedCurrent,\n 'close',\n onClose,\n 'close'\n )}\n\n\n <Animated value={loaded && !isZoomedCurrent}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {!isZoomedCurrent && loaded && it.overlay}\n </div>\n </Animated>;\n })}\n\n {animatedRoundButton(open && length > 1 && (indexValue > 0 || loop) && !isZoomed,\n 'arrow left',\n left,\n 'chevron_left'\n )}\n\n {animatedRoundButton(open && length > 1 && (indexValue !== length - 1 || loop) && !isZoomed,\n 'arrow right',\n right,\n 'chevron_right'\n )}\n\n <Animated value={open && length > 1 && !isZoomed}>\n <div className=\"counter\">\n {indexValue + 1} / {length}\n </div>\n </Animated>\n\n {indicator && <Animated value={open && length > 1 && !isZoomed}>\n {indicator(indexValue, length)}\n </Animated>}\n\n <Animated value={open && previews.show && !isZoomed}>\n <div className=\"previews\" style={{width: previews.width}}>\n <div className=\"viewport\">\n <div className=\"container\" style={{width: previews.totalWidth, left: toPx(previewScroll() || previews.scroll)}}>\n {(previews.images || []).map((it, i) =>\n <div key={i}\n className={classNames('preview', indexValue === i && 'selected')}\n onClick={() => scrollTo(i, indexValue)}\n >\n <img src={it.url} style={it}/>\n\n <div className=\"border\">\n <div className=\"line\"/>\n </div>\n </div>)}\n </div>\n </div>\n\n {animatedRoundButton(indexValue > 0 || loop,\n 'arrow left',\n left,\n 'keyboard_arrow_left'\n )}\n {animatedRoundButton(indexValue !== length - 1 || loop,\n 'arrow right',\n right,\n 'keyboard_arrow_right'\n )}\n </div>\n </Animated>\n\n {children}\n </div>\n </Animated>\n )\n }\n\n }\n}\n\nexport const IMAGE_GALLERY_REDUCER_NAME = 'gallery';\nexport const IMAGE_GALLERY_REDUCER = (state, action) => {\n state = state || {};\n const reducer = reducers[action.type];\n return reducer ? reducer(state, action) : state;\n};\n\nexport const mapStateToProps = (state, ownProps) => state[IMAGE_GALLERY_REDUCER_NAME];\n\nexport default ImageGallery;\n\nexport class ImageGalleryContainer extends React.Component {\n constructor(properties) {\n super(properties);\n const that = this;\n\n that.state = IMAGE_GALLERY_REDUCER(null, {})\n const getState = () => that.state;\n\n const dispatch = (action) => setTimeout(() => {\n that.setState(state => {\n // console.log('before action', action, state)\n state = IMAGE_GALLERY_REDUCER(state, action);\n // console.log('after action', action, state)\n return state;\n })\n }, 0)\n\n const props = propsGetter(that)\n\n const embedded = 'embedded'\n const galleryRef = createRef()\n\n const show = that.show = (gallery) => {\n if (!!props()[embedded]) {\n if (props().containerRef()) {\n Actions.show({\n ...gallery,\n [embedded]: !!props()[embedded],\n container: props().containerRef(),\n })(dispatch)\n } else {\n setTimeout(show, 1, gallery)\n }\n } else {\n Actions.show(gallery)(dispatch)\n }\n };\n const close = that.close = () => {\n Actions.close()(dispatch)\n };\n const load = that.load = (item) => {\n Actions.load(item)(dispatch)\n };\n const recalculate = that.recalculate = () => {\n Actions.recalculate()(dispatch)\n };\n that.replaceImages = (images) => {\n Actions.replaceImages(images)(dispatch, getState)\n };\n\n that[render] = () => <ImageGallery ref={galleryRef} {...that.props} {...that.state} show={show} load={load} close={close} recalculate={recalculate}>\n {that.props.children}\n </ImageGallery>\n\n that[componentDidMount] = () => {\n props()[embedded] && show(props()[embedded])\n that.scrollTo = galleryRef().scrollTo;\n that.left = galleryRef().left;\n that.right = galleryRef().right;\n }\n that[componentDidUpdate] = (prevProps, prevState) => {\n isDifferent(prevProps[embedded], props()[embedded]) && props()[embedded] && show(props()[embedded])\n }\n }\n}\n"],"names":["min","Math","abs","toPx","value","previewRatio","previewHeight","previewWidth","previewPadding","previewsHeight","calculatePosition","it","ratio","width","height","embedded","container","windowWidth","clientWidth","DOCUMENT","body","WINDOW","innerWidth","windowHeight","clientHeight","innerHeight","offset","offsetTop","offsetBottom","offsetLeft","offsetRight","Number","isNaN","toHeight","toWidth","toTop","toLeft","toWidthPx","toTopPx","toLeftPx","calculatePreviewsScroll","index","length","calculatePreview","url","top","left","position","loadImage","src","cb","image","Image","onload","ACTION_PREFIX","ACTION_IMAGE_GALLERY_SHOW","ACTION_IMAGE_GALLERY_CLOSE","ACTION_IMAGE_GALLERY_RECALCULATE","ACTION_IMAGE_GALLERY_FULL_IMAGE_LOADED","ACTION_IMAGE_GALLERY_PREVIEW_LOADED","Actions","_createClass","_classCallCheck","_class","replaceImages","images","dispatch","getState","state","nextState","_objectSpread","map","item","find","el","rect","getBoundingClientRect","fromWidth","fromHeight","fromLeftPx","fromTopPx","fromWidthPx","naturalWidth","naturalHeight","withPreviews","loadPreview","previews","totalWidth","preview","previewUrl","type","data","show","gallery","UNDEFINED","scroll","forEach","imageWithFromData","load","close","recalculate","loaded","loadedPreview","reducers","_reducers","_defineProperty","action","open","_toConsumableArray","result","i","parseInt","fromHeightPx","findIndex","id","previewImages","small","big","opacity","shift","previous","styles","additionalOffset","ImageGallery","_React$Component","_inherits","_super","_createSuper","properties","_this","call","that","_assertThisInitialized","_stateGSs","stateGSs","_stateGSs2","_slicedToArray","zoomed","previewScroll","props","propsGetter","componentDidUpdate","prevProps","prevState","snapshot","setTimeout","indexValue","onClose","scrollTo","resizeListener","debounce","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","resetZoom","moveListenerAdded","onKeyDown","e","keyCode","preventDefault","right","touchesStart","zoomValue","zoomValueStarted","zoomedImage","oldLeft","oldTop","defaultWidth","defaultLeft","defaultTop","touchpadStarted","onKeyUp","style","transition","initZoom","initTouchpadDragging","parseFloat","onWheel","ctrlKey","diff","deltaY","newZoom","max","zoomX","pageX","zoomY","pageY","deltaX","onTouchStart","swipeProcessed","button","touches","target","tagName","toLowerCase","parentElement","onTouchMove","power2","x","distance","a","b","sqrt","center","y","zoomedAt","newLeft","newTop","touch","touchStart","onTouchEnd","changedTouches","touchEnd","distX","distY","minDistance","prev","_props","stopPropagation","loop","_props2","animatedRoundButton","className","onClick","icon","ReactCreateElement","Animated","Button","round","MaterialIcon","render","_props3","_props4","_props4$images","_props4$previews","indicator","children","isZoomed","shiftValue","classNames","tabIndex","ref","focus","onMouseDown","onMouseUp","onMouseMove","onMouseLeave","isZoomedCurrent","key","mounting","mountend","unmounting","draggable","onDoubleClick","img","newWidth","oldWidth","orNoop","onDragStart","SpinningProgress","overlay","React","Component","IMAGE_GALLERY_REDUCER","reducer","ImageGalleryContainer","_React$Component2","_super2","_this2","setState","galleryRef","createRef","containerRef","_objectSpread2","_extends","isDifferent"],"mappings":"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"}
|