@micromag/screen-game-sort 0.3.716 → 0.3.718
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/assets/css/styles.css +1 -1
- package/es/index.js +180 -149
- package/package.json +2 -2
package/assets/css/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.micromag-screen-game-sort-layout{scrollbar-width:none}.micromag-screen-game-sort-layout::-webkit-scrollbar{display:none}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelOver .micromag-screen-game-sort-buttonLabel,.micromag-screen-game-sort-container .micromag-screen-game-sort-background{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-game-sort-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-game-sort-disabled.micromag-screen-game-sort-container{overflow:hidden;pointer-events:none}.micromag-screen-game-sort-hidden.micromag-screen-game-sort-container{display:none;visibility:hidden}.micromag-screen-game-sort-placeholder.micromag-screen-game-sort-container .micromag-screen-game-sort-content{padding:6px;position:relative}.micromag-screen-game-sort-emptyHeading,.micromag-screen-game-sort-emptyItems{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-game-sort-container .micromag-screen-game-sort-background{z-index:0}.micromag-screen-game-sort-container .micromag-screen-game-sort-content{z-index:1}.micromag-screen-game-sort-container .micromag-screen-game-sort-heading{font-size:1rem;font-weight:400;margin-bottom:.5em}.micromag-screen-game-sort-layout{overflow-x:hidden;overflow-y:auto;padding:10px}.micromag-screen-game-sort-emptyHeading,.micromag-screen-game-sort-emptyItems{margin:10px auto;padding:10px;width:100%}.micromag-screen-game-sort-emptyItems{padding:40px}.micromag-screen-game-sort-header{left:0;margin-top:0;position:absolute;top:0;width:100%;z-index:1}.micromag-screen-game-sort-footer{bottom:0;left:0;margin-top:0;position:absolute;width:100%}.micromag-screen-game-sort-items{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.micromag-screen-game-sort-item{border-radius:0;display:block;opacity:0
|
|
1
|
+
.micromag-screen-game-sort-layout{scrollbar-width:none}.micromag-screen-game-sort-layout::-webkit-scrollbar{display:none}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelOver .micromag-screen-game-sort-buttonLabel,.micromag-screen-game-sort-container .micromag-screen-game-sort-background{height:100%;left:0;position:absolute;top:0;width:100%}.micromag-screen-game-sort-container{height:100%;overflow:hidden;position:relative;width:100%}.micromag-screen-game-sort-disabled.micromag-screen-game-sort-container{overflow:hidden;pointer-events:none}.micromag-screen-game-sort-hidden.micromag-screen-game-sort-container{display:none;visibility:hidden}.micromag-screen-game-sort-placeholder.micromag-screen-game-sort-container .micromag-screen-game-sort-content{padding:6px;position:relative}.micromag-screen-game-sort-emptyHeading,.micromag-screen-game-sort-emptyItems{border:2px dashed #343434;color:#343434;margin:5px auto}.micromag-screen-game-sort-container .micromag-screen-game-sort-background{z-index:0}.micromag-screen-game-sort-container .micromag-screen-game-sort-content{z-index:1}.micromag-screen-game-sort-container .micromag-screen-game-sort-heading{font-size:1rem;font-weight:400;margin-bottom:.5em}.micromag-screen-game-sort-layout{overflow-x:hidden;overflow-y:auto;padding:10px}.micromag-screen-game-sort-emptyHeading,.micromag-screen-game-sort-emptyItems{margin:10px auto;padding:10px;width:100%}.micromag-screen-game-sort-emptyItems{padding:40px}.micromag-screen-game-sort-header{left:0;margin-top:0;position:absolute;top:0;width:100%;z-index:1}.micromag-screen-game-sort-footer{bottom:0;left:0;margin-top:0;position:absolute;width:100%}.micromag-screen-game-sort-items{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.micromag-screen-game-sort-item{border-radius:0;display:block;opacity:0;-ms-touch-action:none;touch-action:none;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;width:100%}.micromag-screen-game-sort-item .micromag-screen-game-sort-button{margin-bottom:.3em}.micromag-screen-game-sort-sorted .micromag-screen-game-sort-item{opacity:1}.micromag-screen-game-sort-button{background-clip:padding-box;background-color:hsla(0,0%,100%,.1);display:block;padding:.5em;position:relative;text-align:center;width:100%}.micromag-screen-game-sort-button .micromag-screen-game-sort-buttonLabel{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.micromag-screen-game-sort-button .micromag-screen-game-sort-results{-webkit-animation:micromag-screen-game-sort-fadeIn .2s ease-in-out;animation:micromag-screen-game-sort-fadeIn .2s ease-in-out;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;margin-left:auto;padding-left:2em}@-webkit-keyframes micromag-screen-game-sort-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes micromag-screen-game-sort-fadeIn{0%{opacity:0}to{opacity:1}}.micromag-screen-game-sort-button .micromag-screen-game-sort-label{-webkit-transition:text-align .2s ease-in-out;transition:text-align .2s ease-in-out}.micromag-screen-game-sort-isEmpty .micromag-screen-game-sort-button{min-height:2em}.micromag-screen-game-sort-valid .micromag-screen-game-sort-button{background:rgba(0,255,0,.4)}.micromag-screen-game-sort-invalid .micromag-screen-game-sort-button{background:rgba(255,0,0,.4)}.micromag-screen-game-sort-resultsVisible .micromag-screen-game-sort-button .micromag-screen-game-sort-label{text-align:left}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelTop{display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutNoLabel .micromag-screen-game-sort-buttonLabel{display:none}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelOver{min-height:2em}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelOver .micromag-screen-game-sort-buttonVisual{position:relative;z-index:1}.micromag-screen-game-sort-button.micromag-screen-game-sort-layoutLabelOver .micromag-screen-game-sort-buttonLabel{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(28,28,28,0)),to(rgba(28,28,28,.75)));background-image:linear-gradient(180deg,rgba(28,28,28,0),rgba(28,28,28,.75));bottom:0;height:auto;padding:.5em;top:auto;z-index:2}.micromag-screen-game-sort-submitButton{background:#fff;color:#000;margin-top:.3em;padding:.75em}.micromag-screen-game-sort-submitButton:disabled{opacity:.5}
|
package/es/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import { PropTypes as PropTypes$1 } from '@micromag/core';
|
|
|
14
14
|
import { ScreenElement } from '@micromag/core/components';
|
|
15
15
|
import { useScreenSize, useScreenRenderContext, useViewerContext, useViewerWebView, usePlaybackContext, usePlaybackMediaRef } from '@micromag/core/contexts';
|
|
16
16
|
import { useDimensionObserver, useTrackScreenEvent } from '@micromag/core/hooks';
|
|
17
|
-
import { isHeaderFilled, isFooterFilled, getFooterProps,
|
|
17
|
+
import { isHeaderFilled, isFooterFilled, getFooterProps, getStyleFromBox, getStyleFromText } from '@micromag/core/utils';
|
|
18
18
|
import Background from '@micromag/element-background';
|
|
19
19
|
import Button from '@micromag/element-button';
|
|
20
20
|
import Container from '@micromag/element-container';
|
|
@@ -25,7 +25,7 @@ import Layout, { Spacer } from '@micromag/element-layout';
|
|
|
25
25
|
import Text from '@micromag/element-text';
|
|
26
26
|
import Visual from '@micromag/element-visual';
|
|
27
27
|
|
|
28
|
-
var styles = {"layout":"micromag-screen-game-sort-layout","button":"micromag-screen-game-sort-button","layoutLabelOver":"micromag-screen-game-sort-layoutLabelOver","buttonLabel":"micromag-screen-game-sort-buttonLabel","container":"micromag-screen-game-sort-container","background":"micromag-screen-game-sort-background","content":"micromag-screen-game-sort-content","emptyHeading":"micromag-screen-game-sort-emptyHeading","emptyItems":"micromag-screen-game-sort-emptyItems","heading":"micromag-screen-game-sort-heading","header":"micromag-screen-game-sort-header","footer":"micromag-screen-game-sort-footer","items":"micromag-screen-game-sort-items","item":"micromag-screen-game-sort-item","sorted":"micromag-screen-game-sort-sorted","isEmpty":"micromag-screen-game-sort-isEmpty","valid":"micromag-screen-game-sort-valid","invalid":"micromag-screen-game-sort-invalid","layoutLabelTop":"micromag-screen-game-sort-layoutLabelTop","layoutNoLabel":"micromag-screen-game-sort-layoutNoLabel","buttonVisual":"micromag-screen-game-sort-buttonVisual","submitButton":"micromag-screen-game-sort-submitButton"};
|
|
28
|
+
var styles = {"layout":"micromag-screen-game-sort-layout","button":"micromag-screen-game-sort-button","layoutLabelOver":"micromag-screen-game-sort-layoutLabelOver","buttonLabel":"micromag-screen-game-sort-buttonLabel","container":"micromag-screen-game-sort-container","background":"micromag-screen-game-sort-background","content":"micromag-screen-game-sort-content","emptyHeading":"micromag-screen-game-sort-emptyHeading","emptyItems":"micromag-screen-game-sort-emptyItems","heading":"micromag-screen-game-sort-heading","header":"micromag-screen-game-sort-header","footer":"micromag-screen-game-sort-footer","items":"micromag-screen-game-sort-items","item":"micromag-screen-game-sort-item","sorted":"micromag-screen-game-sort-sorted","results":"micromag-screen-game-sort-results","label":"micromag-screen-game-sort-label","isEmpty":"micromag-screen-game-sort-isEmpty","valid":"micromag-screen-game-sort-valid","invalid":"micromag-screen-game-sort-invalid","resultsVisible":"micromag-screen-game-sort-resultsVisible","layoutLabelTop":"micromag-screen-game-sort-layoutLabelTop","layoutNoLabel":"micromag-screen-game-sort-layoutNoLabel","buttonVisual":"micromag-screen-game-sort-buttonVisual","submitButton":"micromag-screen-game-sort-submitButton"};
|
|
29
29
|
|
|
30
30
|
var propTypes = {
|
|
31
31
|
layout: PropTypes.oneOf(['top', 'middle', 'bottom']),
|
|
@@ -33,12 +33,19 @@ var propTypes = {
|
|
|
33
33
|
// eslint-disable-next-line react/forbid-prop-types
|
|
34
34
|
items: PropTypes.array,
|
|
35
35
|
spacing: PropTypes.number,
|
|
36
|
-
|
|
36
|
+
itemsLayout: PropTypes.oneOf(['label-bottom', 'label-top', 'no-label', 'label-over']),
|
|
37
|
+
itemsBoxStyle: PropTypes$1.boxStyle,
|
|
38
|
+
itemsTextStyle: PropTypes$1.textStyle,
|
|
39
|
+
resultsTextStyle: PropTypes$1.textStyle,
|
|
40
|
+
validBoxStyle: PropTypes$1.boxStyle,
|
|
41
|
+
invalidBoxStyle: PropTypes$1.boxStyle,
|
|
42
|
+
submitBoxStyle: PropTypes$1.boxStyle,
|
|
43
|
+
submitTextStyle: PropTypes$1.textStyle,
|
|
44
|
+
submitButtonLabel: PropTypes.string,
|
|
45
|
+
validatedButtonLabel: PropTypes.string,
|
|
37
46
|
background: PropTypes$1.backgroundElement,
|
|
38
47
|
header: PropTypes$1.header,
|
|
39
48
|
footer: PropTypes$1.footer,
|
|
40
|
-
id: PropTypes.string,
|
|
41
|
-
index: PropTypes.number,
|
|
42
49
|
current: PropTypes.bool,
|
|
43
50
|
active: PropTypes.bool,
|
|
44
51
|
className: PropTypes.string
|
|
@@ -47,13 +54,20 @@ var defaultProps = {
|
|
|
47
54
|
layout: 'top',
|
|
48
55
|
heading: null,
|
|
49
56
|
items: null,
|
|
50
|
-
buttonStyles: null,
|
|
51
57
|
spacing: 20,
|
|
58
|
+
itemsLayout: 'label-bottom',
|
|
59
|
+
itemsBoxStyle: null,
|
|
60
|
+
itemsTextStyle: null,
|
|
61
|
+
resultsTextStyle: null,
|
|
62
|
+
validBoxStyle: null,
|
|
63
|
+
invalidBoxStyle: null,
|
|
64
|
+
submitBoxStyle: null,
|
|
65
|
+
submitTextStyle: null,
|
|
66
|
+
submitButtonLabel: null,
|
|
67
|
+
validatedButtonLabel: null,
|
|
52
68
|
background: null,
|
|
53
69
|
header: null,
|
|
54
70
|
footer: null,
|
|
55
|
-
id: null,
|
|
56
|
-
index: null,
|
|
57
71
|
current: true,
|
|
58
72
|
active: true,
|
|
59
73
|
className: null
|
|
@@ -62,14 +76,21 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
62
76
|
var layout = _ref.layout,
|
|
63
77
|
heading = _ref.heading,
|
|
64
78
|
items = _ref.items,
|
|
65
|
-
buttonStyles = _ref.buttonStyles,
|
|
66
79
|
spacing = _ref.spacing,
|
|
80
|
+
itemsLayout = _ref.itemsLayout,
|
|
81
|
+
itemsBoxStyle = _ref.itemsBoxStyle,
|
|
82
|
+
itemsTextStyle = _ref.itemsTextStyle,
|
|
83
|
+
resultsTextStyle = _ref.resultsTextStyle,
|
|
84
|
+
validBoxStyle = _ref.validBoxStyle,
|
|
85
|
+
invalidBoxStyle = _ref.invalidBoxStyle,
|
|
86
|
+
submitBoxStyle = _ref.submitBoxStyle,
|
|
87
|
+
submitTextStyle = _ref.submitTextStyle,
|
|
88
|
+
submitButtonLabel = _ref.submitButtonLabel,
|
|
89
|
+
validatedButtonLabel = _ref.validatedButtonLabel,
|
|
67
90
|
background = _ref.background,
|
|
68
91
|
header = _ref.header,
|
|
69
|
-
footer = _ref.footer
|
|
70
|
-
_ref.
|
|
71
|
-
_ref.index;
|
|
72
|
-
var current = _ref.current,
|
|
92
|
+
footer = _ref.footer,
|
|
93
|
+
current = _ref.current,
|
|
73
94
|
active = _ref.active,
|
|
74
95
|
className = _ref.className;
|
|
75
96
|
var intl = useIntl();
|
|
@@ -101,23 +122,6 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
101
122
|
openWebView: openWebView,
|
|
102
123
|
isPreview: isPreview
|
|
103
124
|
});
|
|
104
|
-
var _ref2 = buttonStyles || {},
|
|
105
|
-
_ref2$layout = _ref2.layout,
|
|
106
|
-
buttonLayout = _ref2$layout === void 0 ? null : _ref2$layout,
|
|
107
|
-
_ref2$textStyle = _ref2.textStyle,
|
|
108
|
-
buttonTextStyle = _ref2$textStyle === void 0 ? null : _ref2$textStyle,
|
|
109
|
-
_ref2$boxStyle = _ref2.boxStyle,
|
|
110
|
-
buttonBoxStyle = _ref2$boxStyle === void 0 ? null : _ref2$boxStyle,
|
|
111
|
-
_ref2$validBoxStyle = _ref2.validBoxStyle,
|
|
112
|
-
validBoxStyle = _ref2$validBoxStyle === void 0 ? null : _ref2$validBoxStyle,
|
|
113
|
-
_ref2$invalidBoxStyle = _ref2.invalidBoxStyle,
|
|
114
|
-
invalidBoxStyle = _ref2$invalidBoxStyle === void 0 ? null : _ref2$invalidBoxStyle,
|
|
115
|
-
_ref2$submitBoxStyle = _ref2.submitBoxStyle,
|
|
116
|
-
submitBoxStyle = _ref2$submitBoxStyle === void 0 ? null : _ref2$submitBoxStyle,
|
|
117
|
-
_ref2$submitButtonLab = _ref2.submitButtonLabel,
|
|
118
|
-
submitButtonLabel = _ref2$submitButtonLab === void 0 ? null : _ref2$submitButtonLab,
|
|
119
|
-
_ref2$validatedButton = _ref2.validatedButtonLabel,
|
|
120
|
-
validatedButtonLabel = _ref2$validatedButton === void 0 ? null : _ref2$validatedButton;
|
|
121
125
|
var _useDimensionObserver = useDimensionObserver(),
|
|
122
126
|
headerRef = _useDimensionObserver.ref,
|
|
123
127
|
_useDimensionObserver2 = _useDimensionObserver.height,
|
|
@@ -133,6 +137,20 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
133
137
|
setSortedItems = _useState2[1];
|
|
134
138
|
var sortedItemsRef = useRef(sortedItems);
|
|
135
139
|
var currentItemsRef = useRef(items);
|
|
140
|
+
var elementsRef = useRef([]);
|
|
141
|
+
var _useState3 = useState(false),
|
|
142
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
143
|
+
initialSorted = _useState4[0],
|
|
144
|
+
setInitialSorted = _useState4[1];
|
|
145
|
+
var _useState5 = useState(null),
|
|
146
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
147
|
+
validated = _useState6[0],
|
|
148
|
+
setValidated = _useState6[1];
|
|
149
|
+
var initialSortedItemsRef = useRef(sortedItems);
|
|
150
|
+
var _useState7 = useState(false),
|
|
151
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
152
|
+
resultsVisible = _useState8[0],
|
|
153
|
+
setResultsVisible = _useState8[1];
|
|
136
154
|
useEffect(function () {
|
|
137
155
|
if (currentItemsRef.current !== items) {
|
|
138
156
|
var newSortedItems = isView ? shuffle(items || []) : items || [];
|
|
@@ -165,18 +183,13 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
165
183
|
_useSprings2 = _slicedToArray(_useSprings, 2),
|
|
166
184
|
springs = _useSprings2[0],
|
|
167
185
|
api = _useSprings2[1];
|
|
168
|
-
var itemsRef = useRef([]);
|
|
169
|
-
var _useState3 = useState(false),
|
|
170
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
171
|
-
initialSorted = _useState4[0],
|
|
172
|
-
setInitialSorted = _useState4[1];
|
|
173
186
|
var updateSpring = useCallback(function (currentItems) {
|
|
174
|
-
var
|
|
175
|
-
dragItem =
|
|
176
|
-
dragY =
|
|
177
|
-
|
|
178
|
-
initial =
|
|
179
|
-
var heights =
|
|
187
|
+
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
188
|
+
dragItem = _ref2.dragItem,
|
|
189
|
+
dragY = _ref2.dragY,
|
|
190
|
+
_ref2$initial = _ref2.initial,
|
|
191
|
+
initial = _ref2$initial === void 0 ? false : _ref2$initial;
|
|
192
|
+
var heights = elementsRef.current.map(function (item) {
|
|
180
193
|
var _item$getBoundingClie;
|
|
181
194
|
return (item === null || item === void 0 || (_item$getBoundingClie = item.getBoundingClientRect()) === null || _item$getBoundingClie === void 0 ? void 0 : _item$getBoundingClie.height) || 0;
|
|
182
195
|
});
|
|
@@ -221,7 +234,6 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
221
234
|
setInitialSorted(true);
|
|
222
235
|
}
|
|
223
236
|
}, [api]);
|
|
224
|
-
var initialSortedItemsRef = useRef(sortedItems);
|
|
225
237
|
useEffect(function () {
|
|
226
238
|
if (!isView) {
|
|
227
239
|
return;
|
|
@@ -230,17 +242,13 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
230
242
|
initial: initialSortedItemsRef.current === sortedItems
|
|
231
243
|
});
|
|
232
244
|
}, [sortedItems]);
|
|
233
|
-
var
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
dragActive = _ref4.active,
|
|
241
|
-
_ref4$movement = _slicedToArray(_ref4.movement, 2),
|
|
242
|
-
movementY = _ref4$movement[1],
|
|
243
|
-
tap = _ref4.tap;
|
|
245
|
+
var bind = useDrag(function (_ref3) {
|
|
246
|
+
var _ref3$args = _slicedToArray(_ref3.args, 1),
|
|
247
|
+
itemIndex = _ref3$args[0],
|
|
248
|
+
dragActive = _ref3.active,
|
|
249
|
+
_ref3$movement = _slicedToArray(_ref3.movement, 2),
|
|
250
|
+
movementY = _ref3$movement[1],
|
|
251
|
+
tap = _ref3.tap;
|
|
244
252
|
var item = items[itemIndex] || {};
|
|
245
253
|
if (tap) {
|
|
246
254
|
var currentIndex = sortedItems.findIndex(function (it) {
|
|
@@ -254,29 +262,29 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
254
262
|
return it === item;
|
|
255
263
|
});
|
|
256
264
|
var heights = sortedItems.map(function (sortedItem) {
|
|
257
|
-
var
|
|
258
|
-
var
|
|
265
|
+
var _elementsRef$current$;
|
|
266
|
+
var elementIndex = items.findIndex(function (it) {
|
|
259
267
|
return it === sortedItem;
|
|
260
268
|
});
|
|
261
|
-
return ((
|
|
269
|
+
return ((_elementsRef$current$ = elementsRef.current[elementIndex]) === null || _elementsRef$current$ === void 0 || (_elementsRef$current$ = _elementsRef$current$.getBoundingClientRect()) === null || _elementsRef$current$ === void 0 ? void 0 : _elementsRef$current$.height) || 0;
|
|
262
270
|
});
|
|
263
|
-
var ys = heights.map(function (itemHeight,
|
|
264
|
-
var endY = itemHeight + heights.slice(0,
|
|
271
|
+
var ys = heights.map(function (itemHeight, heightIndex) {
|
|
272
|
+
var endY = itemHeight + heights.slice(0, heightIndex).reduce(function (acc, h) {
|
|
265
273
|
return acc + h;
|
|
266
274
|
}, 0);
|
|
267
275
|
return {
|
|
268
|
-
isStart:
|
|
269
|
-
isEnd:
|
|
276
|
+
isStart: heightIndex === 0,
|
|
277
|
+
isEnd: heightIndex === heights.length - 1,
|
|
270
278
|
start: endY - itemHeight,
|
|
271
279
|
end: endY
|
|
272
280
|
};
|
|
273
281
|
});
|
|
274
282
|
var newY = ys[sortedIndex].end - heights[sortedIndex] / 2 + movementY;
|
|
275
|
-
var newIndex = ys.findIndex(function (
|
|
276
|
-
var isStart =
|
|
277
|
-
isEnd =
|
|
278
|
-
start =
|
|
279
|
-
end =
|
|
283
|
+
var newIndex = ys.findIndex(function (_ref4) {
|
|
284
|
+
var isStart = _ref4.isStart,
|
|
285
|
+
isEnd = _ref4.isEnd,
|
|
286
|
+
start = _ref4.start,
|
|
287
|
+
end = _ref4.end;
|
|
280
288
|
return (isStart || newY >= start) && (isEnd || newY < end);
|
|
281
289
|
});
|
|
282
290
|
if (dragActive) {
|
|
@@ -290,29 +298,18 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
290
298
|
setSortedItems(sortedItemsRef.current);
|
|
291
299
|
// updateIndex(item, newIndex !== -1 ? newIndex : sortedIndex);
|
|
292
300
|
}
|
|
293
|
-
// console.log({
|
|
294
|
-
// movementY,
|
|
295
|
-
// newY,
|
|
296
|
-
// itemIndex,
|
|
297
|
-
// sortedIndex,
|
|
298
|
-
// newIndex,
|
|
299
|
-
// ys,
|
|
300
|
-
// items: sortedItemsRef.current.map(({ label }) => label),
|
|
301
|
-
// });
|
|
302
301
|
}, {
|
|
303
302
|
axis: 'y',
|
|
304
303
|
preventDefault: true,
|
|
305
304
|
filterTaps: true,
|
|
306
305
|
enabled: isView && active && current && validated === null
|
|
307
|
-
// preventScroll: 250,
|
|
308
|
-
// preventScrollAxis: 'y',
|
|
309
306
|
});
|
|
310
307
|
var onClickSubmit = useCallback(function () {
|
|
311
|
-
setValidated(items.map(function (it,
|
|
308
|
+
setValidated(items.map(function (it, itemIndex) {
|
|
312
309
|
var sortedIndex = sortedItems.findIndex(function (sortedItem) {
|
|
313
310
|
return sortedItem === it;
|
|
314
311
|
});
|
|
315
|
-
return
|
|
312
|
+
return itemIndex === sortedIndex;
|
|
316
313
|
}));
|
|
317
314
|
}, [items, sortedItems]);
|
|
318
315
|
useEffect(function () {
|
|
@@ -321,13 +318,14 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
321
318
|
}
|
|
322
319
|
var timeout = setTimeout(function () {
|
|
323
320
|
setSortedItems(items);
|
|
324
|
-
|
|
321
|
+
setResultsVisible(true);
|
|
322
|
+
}, 1000);
|
|
325
323
|
return function () {
|
|
326
324
|
clearTimeout(timeout);
|
|
327
325
|
};
|
|
328
326
|
}, [validated]);
|
|
329
327
|
return /*#__PURE__*/React.createElement("div", {
|
|
330
|
-
className: classNames([styles.container, _defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles.sorted, initialSorted || !isView), styles.isPlaceholder, isPlaceholder)]),
|
|
328
|
+
className: classNames([styles.container, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, className, className !== null), styles.sorted, initialSorted || !isView), styles.resultsVisible, resultsVisible), styles.isPlaceholder, isPlaceholder)]),
|
|
331
329
|
"data-screen-ready": true
|
|
332
330
|
}, /*#__PURE__*/React.createElement(Container, {
|
|
333
331
|
width: width,
|
|
@@ -382,72 +380,79 @@ var ShareScreen = function ShareScreen(_ref) {
|
|
|
382
380
|
className: styles.items,
|
|
383
381
|
emptyClassName: styles.emptyItems,
|
|
384
382
|
isEmpty: (items || []).length === 0
|
|
385
|
-
}, springs.map(function (
|
|
383
|
+
}, springs.map(function (_ref6, itemIndex) {
|
|
384
|
+
var y = _ref6.y,
|
|
385
|
+
scale = _ref6.scale;
|
|
386
386
|
var item = items[itemIndex] || {};
|
|
387
387
|
var _ref7 = item || {},
|
|
388
388
|
_ref7$visual = _ref7.visual,
|
|
389
389
|
visual = _ref7$visual === void 0 ? null : _ref7$visual,
|
|
390
390
|
itemLabel = _ref7.label,
|
|
391
391
|
_ref7$boxStyle = _ref7.boxStyle,
|
|
392
|
-
boxStyle = _ref7$boxStyle === void 0 ? null : _ref7$boxStyle
|
|
392
|
+
boxStyle = _ref7$boxStyle === void 0 ? null : _ref7$boxStyle,
|
|
393
|
+
_ref7$results = _ref7.results,
|
|
394
|
+
results = _ref7$results === void 0 ? null : _ref7$results;
|
|
393
395
|
var finalLabel = isString(itemLabel) ? {
|
|
394
396
|
body: itemLabel
|
|
395
397
|
} : itemLabel || {};
|
|
396
398
|
var _ref8 = finalLabel || {},
|
|
397
399
|
_ref8$body = _ref8.body,
|
|
398
400
|
label = _ref8$body === void 0 ? null : _ref8$body,
|
|
399
|
-
|
|
400
|
-
textStyle = _ref8$textStyle === void 0 ? null : _ref8$textStyle;
|
|
401
|
+
labelTextStyle = _ref8.textStyle;
|
|
401
402
|
var isEmpty = label === null && visual === null;
|
|
402
403
|
var isValid = validated !== null && validated[itemIndex];
|
|
403
404
|
return /*#__PURE__*/React.createElement(animated.div, Object.assign({
|
|
404
405
|
key: "button-".concat(itemIndex),
|
|
405
406
|
className: classNames([styles.item, _defineProperty(_defineProperty(_defineProperty({}, styles.isEmpty, isEmpty), styles.valid, validated !== null && isValid), styles.invalid, validated !== null && !isValid)]),
|
|
406
407
|
ref: function ref(_ref1) {
|
|
407
|
-
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
408
|
+
elementsRef.current[itemIndex] = _ref1;
|
|
409
|
+
},
|
|
410
|
+
style: _objectSpread(_objectSpread({
|
|
411
|
+
transform: y.to(function (yValue) {
|
|
412
|
+
return "translateY(".concat(yValue, ")");
|
|
413
|
+
})
|
|
414
|
+
}, getStyleFromBox(itemsTextStyle)), getStyleFromText(labelTextStyle))
|
|
415
|
+
}, bind(itemIndex)), /*#__PURE__*/React.createElement(animated.div, {
|
|
416
|
+
className: classNames([styles.button, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles.layoutLabelBottom, itemsLayout === 'label-bottom'), styles.layoutLabelTop, itemsLayout === 'label-top'), styles.layoutNoLabel, itemsLayout === 'no-label'), styles.layoutLabelOver, itemsLayout === 'label-over')]),
|
|
417
|
+
style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
418
|
+
transform: scale.to(function (scaleValue) {
|
|
419
|
+
return "scale(".concat(scaleValue, ")");
|
|
420
|
+
})
|
|
421
|
+
}, getStyleFromBox(itemsBoxStyle)), getStyleFromBox(boxStyle)), getStyleFromBox(validated && isValid ? validBoxStyle : null)), getStyleFromBox(validated && !isValid ? invalidBoxStyle : null))
|
|
415
422
|
// onClick={(e) => onItemClick(e, item, itemIndex)}
|
|
416
423
|
}, visual !== null ? /*#__PURE__*/React.createElement(Visual, {
|
|
417
424
|
className: styles.buttonVisual,
|
|
418
425
|
imageClassName: styles.thumbnail,
|
|
419
426
|
media: visual,
|
|
420
427
|
width: "auto"
|
|
421
|
-
}) : null, label !== null ? /*#__PURE__*/React.createElement(
|
|
428
|
+
}) : null, label !== null || results !== null && resultsVisible ? /*#__PURE__*/React.createElement("div", {
|
|
422
429
|
className: styles.buttonLabel
|
|
423
|
-
}, finalLabel, {
|
|
424
|
-
|
|
425
|
-
|
|
430
|
+
}, label !== null ? /*#__PURE__*/React.createElement(Text, Object.assign({}, finalLabel, {
|
|
431
|
+
style: _objectSpread(_objectSpread({}, getStyleFromBox(itemsTextStyle)), getStyleFromText(labelTextStyle)),
|
|
432
|
+
className: styles.label
|
|
433
|
+
})) : null, results !== null && resultsVisible ? /*#__PURE__*/React.createElement(Text, Object.assign({}, results, {
|
|
434
|
+
className: styles.results,
|
|
435
|
+
style: _objectSpread(_objectSpread({}, getStyleFromText(resultsTextStyle)), getStyleFromText(results.textStyle || null))
|
|
436
|
+
})) : null) : null));
|
|
426
437
|
})), /*#__PURE__*/React.createElement(Button, {
|
|
427
438
|
className: styles.submitButton,
|
|
428
439
|
disabled: validated !== null,
|
|
429
440
|
type: "button",
|
|
430
441
|
onClick: onClickSubmit,
|
|
431
|
-
style: getStyleFromBox(submitBoxStyle)
|
|
432
|
-
}, validated !== null ?
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
defaultMessage: [{
|
|
446
|
-
"type": 0,
|
|
447
|
-
"value": "Submit"
|
|
448
|
-
}]
|
|
449
|
-
})
|
|
450
|
-
}, submitButtonLabel))), !isPlaceholder && hasFooter ? /*#__PURE__*/React.createElement("div", {
|
|
442
|
+
style: _objectSpread(_objectSpread({}, getStyleFromBox(submitBoxStyle)), getStyleFromText(submitTextStyle))
|
|
443
|
+
}, validated !== null ? validatedButtonLabel || intl.formatMessage({
|
|
444
|
+
id: "CTculh",
|
|
445
|
+
defaultMessage: [{
|
|
446
|
+
"type": 0,
|
|
447
|
+
"value": "Validated"
|
|
448
|
+
}]
|
|
449
|
+
}) : submitButtonLabel || intl.formatMessage({
|
|
450
|
+
id: "IbZVf0",
|
|
451
|
+
defaultMessage: [{
|
|
452
|
+
"type": 0,
|
|
453
|
+
"value": "Submit"
|
|
454
|
+
}]
|
|
455
|
+
})), !isPlaceholder && hasFooter ? /*#__PURE__*/React.createElement("div", {
|
|
451
456
|
className: styles.footer,
|
|
452
457
|
ref: footerRef,
|
|
453
458
|
style: {
|
|
@@ -520,24 +525,28 @@ var definition = {
|
|
|
520
525
|
})
|
|
521
526
|
}, {
|
|
522
527
|
name: 'items',
|
|
523
|
-
type: '
|
|
528
|
+
type: 'game-sort-items',
|
|
524
529
|
label: defineMessage({
|
|
525
|
-
id: "
|
|
530
|
+
id: "fbUW2U",
|
|
526
531
|
defaultMessage: [{
|
|
527
532
|
"type": 0,
|
|
528
|
-
"value": "
|
|
533
|
+
"value": "Items"
|
|
529
534
|
}]
|
|
530
535
|
}),
|
|
531
|
-
itemsProps: {
|
|
532
|
-
excludedFields: ['url', 'inWebView']
|
|
533
|
-
},
|
|
534
536
|
isSection: true
|
|
535
537
|
}, {
|
|
536
|
-
|
|
538
|
+
label: defineMessage({
|
|
539
|
+
id: "83959F",
|
|
540
|
+
defaultMessage: [{
|
|
541
|
+
"type": 0,
|
|
542
|
+
"value": "Items style"
|
|
543
|
+
}]
|
|
544
|
+
}),
|
|
537
545
|
type: 'fields',
|
|
538
546
|
isList: true,
|
|
547
|
+
isSection: true,
|
|
539
548
|
fields: [{
|
|
540
|
-
name: '
|
|
549
|
+
name: 'itemsLayout',
|
|
541
550
|
type: 'button-layout',
|
|
542
551
|
label: defineMessage({
|
|
543
552
|
id: "OPxJx/",
|
|
@@ -547,7 +556,7 @@ var definition = {
|
|
|
547
556
|
}]
|
|
548
557
|
})
|
|
549
558
|
}, {
|
|
550
|
-
name: '
|
|
559
|
+
name: 'itemsTextStyle',
|
|
551
560
|
type: 'text-style-form',
|
|
552
561
|
label: defineMessage({
|
|
553
562
|
id: "rzXCu2",
|
|
@@ -557,73 +566,95 @@ var definition = {
|
|
|
557
566
|
}]
|
|
558
567
|
})
|
|
559
568
|
}, {
|
|
560
|
-
name: '
|
|
569
|
+
name: 'resultsTextStyle',
|
|
570
|
+
type: 'text-style-form',
|
|
571
|
+
label: defineMessage({
|
|
572
|
+
id: "ex1Bgx",
|
|
573
|
+
defaultMessage: [{
|
|
574
|
+
"type": 0,
|
|
575
|
+
"value": "Results style"
|
|
576
|
+
}]
|
|
577
|
+
})
|
|
578
|
+
}, {
|
|
579
|
+
name: 'itemsBoxStyle',
|
|
561
580
|
type: 'box-style-form',
|
|
562
581
|
label: defineMessage({
|
|
563
|
-
id: "
|
|
582
|
+
id: "p1pghO",
|
|
564
583
|
defaultMessage: [{
|
|
565
584
|
"type": 0,
|
|
566
|
-
"value": "
|
|
585
|
+
"value": "Box style"
|
|
567
586
|
}]
|
|
568
587
|
})
|
|
569
588
|
}, {
|
|
570
589
|
name: 'validBoxStyle',
|
|
571
590
|
type: 'box-style-form',
|
|
572
591
|
label: defineMessage({
|
|
573
|
-
id: "
|
|
592
|
+
id: "ao5VYd",
|
|
574
593
|
defaultMessage: [{
|
|
575
594
|
"type": 0,
|
|
576
|
-
"value": "Valid
|
|
595
|
+
"value": "Valid box style"
|
|
577
596
|
}]
|
|
578
597
|
})
|
|
579
598
|
}, {
|
|
580
599
|
name: 'invalidBoxStyle',
|
|
581
600
|
type: 'box-style-form',
|
|
582
601
|
label: defineMessage({
|
|
583
|
-
id: "
|
|
602
|
+
id: "JLYWNN",
|
|
584
603
|
defaultMessage: [{
|
|
585
604
|
"type": 0,
|
|
586
|
-
"value": "Invalid
|
|
605
|
+
"value": "Invalid box style"
|
|
587
606
|
}]
|
|
588
607
|
})
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
|
|
608
|
+
}]
|
|
609
|
+
}, {
|
|
610
|
+
label: defineMessage({
|
|
611
|
+
id: "WjigmA",
|
|
612
|
+
defaultMessage: [{
|
|
613
|
+
"type": 0,
|
|
614
|
+
"value": "Submit button"
|
|
615
|
+
}]
|
|
616
|
+
}),
|
|
617
|
+
type: 'fields',
|
|
618
|
+
isList: true,
|
|
619
|
+
isSection: true,
|
|
620
|
+
fields: [{
|
|
621
|
+
name: 'submitButtonLabel',
|
|
622
|
+
type: 'text',
|
|
592
623
|
label: defineMessage({
|
|
593
|
-
id: "
|
|
624
|
+
id: "Cg3LGu",
|
|
594
625
|
defaultMessage: [{
|
|
595
626
|
"type": 0,
|
|
596
|
-
"value": "
|
|
627
|
+
"value": "Label"
|
|
597
628
|
}]
|
|
598
629
|
})
|
|
599
630
|
}, {
|
|
600
|
-
name: '
|
|
601
|
-
type: '
|
|
631
|
+
name: 'validatedButtonLabel',
|
|
632
|
+
type: 'text',
|
|
602
633
|
label: defineMessage({
|
|
603
|
-
id: "
|
|
634
|
+
id: "wROB6F",
|
|
604
635
|
defaultMessage: [{
|
|
605
636
|
"type": 0,
|
|
606
|
-
"value": "Validated
|
|
637
|
+
"value": "Validated label"
|
|
607
638
|
}]
|
|
608
639
|
})
|
|
609
640
|
}, {
|
|
610
|
-
name: '
|
|
611
|
-
type: '
|
|
641
|
+
name: 'submitBoxStyle',
|
|
642
|
+
type: 'box-style-form',
|
|
612
643
|
label: defineMessage({
|
|
613
|
-
id: "
|
|
644
|
+
id: "nno1Pq",
|
|
614
645
|
defaultMessage: [{
|
|
615
646
|
"type": 0,
|
|
616
|
-
"value": "
|
|
647
|
+
"value": "Button style"
|
|
617
648
|
}]
|
|
618
649
|
})
|
|
619
650
|
}, {
|
|
620
|
-
name: '
|
|
621
|
-
type: '
|
|
651
|
+
name: 'submitTextStyle',
|
|
652
|
+
type: 'box-style-form',
|
|
622
653
|
label: defineMessage({
|
|
623
|
-
id: "
|
|
654
|
+
id: "OEckOD",
|
|
624
655
|
defaultMessage: [{
|
|
625
656
|
"type": 0,
|
|
626
|
-
"value": "
|
|
657
|
+
"value": "Text style"
|
|
627
658
|
}]
|
|
628
659
|
})
|
|
629
660
|
}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/screen-game-sort",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.718",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"access": "public",
|
|
88
88
|
"registry": "https://registry.npmjs.org/"
|
|
89
89
|
},
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "5b6ec7e1a49f10cd456c1ace4f3d0e90e6730a13"
|
|
91
91
|
}
|