@micromag/editor 0.3.546 → 0.3.548
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/es/index.js +24 -41
- package/package.json +8 -9
- package/lib/index.js +0 -4103
package/lib/index.js
DELETED
|
@@ -1,4103 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
7
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
8
|
-
var core = require('@micromag/core');
|
|
9
|
-
var components = require('@micromag/core/components');
|
|
10
|
-
var contexts = require('@micromag/core/contexts');
|
|
11
|
-
var hooks = require('@micromag/core/hooks');
|
|
12
|
-
var utils = require('@micromag/core/utils');
|
|
13
|
-
var classNames = require('classnames');
|
|
14
|
-
var PropTypes = require('prop-types');
|
|
15
|
-
var React = require('react');
|
|
16
|
-
var reactIntl = require('react-intl');
|
|
17
|
-
var _toArray = require('@babel/runtime/helpers/toArray');
|
|
18
|
-
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
19
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
20
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
21
|
-
var regexparam = require('regexparam');
|
|
22
|
-
var index_js = require('use-sync-external-store/shim/index.js');
|
|
23
|
-
var pathToRegexp = require('path-to-regexp');
|
|
24
|
-
var mitt = require('mitt');
|
|
25
|
-
var reactTransitionGroup = require('react-transition-group');
|
|
26
|
-
var faCogs = require('@fortawesome/free-solid-svg-icons/faCogs');
|
|
27
|
-
var faEllipsisV = require('@fortawesome/free-solid-svg-icons/faEllipsisV');
|
|
28
|
-
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
29
|
-
var fields = require('@micromag/fields');
|
|
30
|
-
var uuid = require('uuid');
|
|
31
|
-
var size = require('@folklore/size');
|
|
32
|
-
var viewer = require('@micromag/viewer');
|
|
33
|
-
var faPlus = require('@fortawesome/free-solid-svg-icons/faPlus');
|
|
34
|
-
var faTimesCircle = require('@fortawesome/free-solid-svg-icons/faTimesCircle');
|
|
35
|
-
var isString = require('lodash/isString');
|
|
36
|
-
var isFunction = require('lodash/isFunction');
|
|
37
|
-
var reactSortablejs = require('react-sortablejs');
|
|
38
|
-
var core$1 = require('@dnd-kit/core');
|
|
39
|
-
var sortable = require('@dnd-kit/sortable');
|
|
40
|
-
var reactDom = require('react-dom');
|
|
41
|
-
var utilities = require('@dnd-kit/utilities');
|
|
42
|
-
var faAngleDown = require('@fortawesome/free-solid-svg-icons/faAngleDown');
|
|
43
|
-
var faGripLines = require('@fortawesome/free-solid-svg-icons/faGripLines');
|
|
44
|
-
var faTimes = require('@fortawesome/free-solid-svg-icons/faTimes');
|
|
45
|
-
var orderBy = require('lodash/orderBy');
|
|
46
|
-
var uppy = require('@panneau/uppy');
|
|
47
|
-
var screens = require('@micromag/screens');
|
|
48
|
-
|
|
49
|
-
function _interopNamespaceDefault(e) {
|
|
50
|
-
var n = Object.create(null);
|
|
51
|
-
if (e) {
|
|
52
|
-
Object.keys(e).forEach(function (k) {
|
|
53
|
-
if (k !== 'default') {
|
|
54
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
55
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
get: function () { return e[k]; }
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
n.default = e;
|
|
63
|
-
return Object.freeze(n);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
67
|
-
|
|
68
|
-
var useEffect = React__namespace.useEffect,
|
|
69
|
-
useLayoutEffect = React__namespace.useLayoutEffect,
|
|
70
|
-
useRef = React__namespace.useRef;
|
|
71
|
-
|
|
72
|
-
// React.useInsertionEffect is not available in React <18
|
|
73
|
-
// This hack fixes a transpilation issue on some apps
|
|
74
|
-
var useBuiltinInsertionEffect = React__namespace['useInsertion' + 'Effect'];
|
|
75
|
-
|
|
76
|
-
// Copied from:
|
|
77
|
-
// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js
|
|
78
|
-
var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
|
|
79
|
-
|
|
80
|
-
// Copied from:
|
|
81
|
-
// https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.ts
|
|
82
|
-
// "React currently throws a warning when using useLayoutEffect on the server.
|
|
83
|
-
// To get around it, we can conditionally useEffect on the server (no-op) and
|
|
84
|
-
// useLayoutEffect in the browser."
|
|
85
|
-
var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;
|
|
86
|
-
|
|
87
|
-
// useInsertionEffect is already a noop on the server.
|
|
88
|
-
// See: https://github.com/facebook/react/blob/main/packages/react-server/src/ReactFizzHooks.js
|
|
89
|
-
var useInsertionEffect = useBuiltinInsertionEffect || useIsomorphicLayoutEffect;
|
|
90
|
-
|
|
91
|
-
// Userland polyfill while we wait for the forthcoming
|
|
92
|
-
// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md
|
|
93
|
-
// Note: "A high-fidelity polyfill for useEvent is not possible because
|
|
94
|
-
// there is no lifecycle or Hook in React that we can use to switch
|
|
95
|
-
// .current at the right timing."
|
|
96
|
-
// So we will have to make do with this "close enough" approach for now.
|
|
97
|
-
var useEvent = function useEvent(fn) {
|
|
98
|
-
var ref = useRef([fn, function () {
|
|
99
|
-
return ref[0].apply(ref, arguments);
|
|
100
|
-
}]).current;
|
|
101
|
-
// Per Dan Abramov: useInsertionEffect executes marginally closer to the
|
|
102
|
-
// correct timing for ref synchronization than useLayoutEffect on React 18.
|
|
103
|
-
// See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360
|
|
104
|
-
useInsertionEffect(function () {
|
|
105
|
-
ref[0] = fn;
|
|
106
|
-
});
|
|
107
|
-
return ref[1];
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History
|
|
112
|
-
*/
|
|
113
|
-
var eventPopstate = "popstate";
|
|
114
|
-
var eventPushState = "pushState";
|
|
115
|
-
var eventReplaceState = "replaceState";
|
|
116
|
-
var eventHashchange = "hashchange";
|
|
117
|
-
var events = [eventPopstate, eventPushState, eventReplaceState, eventHashchange];
|
|
118
|
-
var subscribeToLocationUpdates = function subscribeToLocationUpdates(callback) {
|
|
119
|
-
for (var _i = 0, _events = events; _i < _events.length; _i++) {
|
|
120
|
-
var event = _events[_i];
|
|
121
|
-
addEventListener(event, callback);
|
|
122
|
-
}
|
|
123
|
-
return function () {
|
|
124
|
-
for (var _i2 = 0, _events2 = events; _i2 < _events2.length; _i2++) {
|
|
125
|
-
var _event = _events2[_i2];
|
|
126
|
-
removeEventListener(_event, callback);
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
};
|
|
130
|
-
var useLocationProperty = function useLocationProperty(fn, ssrFn) {
|
|
131
|
-
return index_js.useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);
|
|
132
|
-
};
|
|
133
|
-
var currentSearch = function currentSearch() {
|
|
134
|
-
return location.search;
|
|
135
|
-
};
|
|
136
|
-
var useSearch = function useSearch() {
|
|
137
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
138
|
-
_ref$ssrSearch = _ref.ssrSearch,
|
|
139
|
-
ssrSearch = _ref$ssrSearch === void 0 ? "" : _ref$ssrSearch;
|
|
140
|
-
return useLocationProperty(currentSearch, function () {
|
|
141
|
-
return ssrSearch;
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
var currentPathname = function currentPathname() {
|
|
145
|
-
return location.pathname;
|
|
146
|
-
};
|
|
147
|
-
var usePathname = function usePathname() {
|
|
148
|
-
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
149
|
-
ssrPath = _ref2.ssrPath;
|
|
150
|
-
return useLocationProperty(currentPathname, ssrPath ? function () {
|
|
151
|
-
return ssrPath;
|
|
152
|
-
} : currentPathname);
|
|
153
|
-
};
|
|
154
|
-
var navigate = function navigate(to) {
|
|
155
|
-
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
156
|
-
_ref3$replace = _ref3.replace,
|
|
157
|
-
replace = _ref3$replace === void 0 ? false : _ref3$replace,
|
|
158
|
-
_ref3$state = _ref3.state,
|
|
159
|
-
state = _ref3$state === void 0 ? null : _ref3$state;
|
|
160
|
-
return history[replace ? eventReplaceState : eventPushState](state, "", to);
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
// the 2nd argument of the `useBrowserLocation` return value is a function
|
|
164
|
-
// that allows to perform a navigation.
|
|
165
|
-
var useBrowserLocation = function useBrowserLocation() {
|
|
166
|
-
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
167
|
-
return [usePathname(opts), navigate];
|
|
168
|
-
};
|
|
169
|
-
var patchKey = Symbol["for"]("wouter_v3");
|
|
170
|
-
|
|
171
|
-
// While History API does have `popstate` event, the only
|
|
172
|
-
// proper way to listen to changes via `push/replaceState`
|
|
173
|
-
// is to monkey-patch these methods.
|
|
174
|
-
//
|
|
175
|
-
// See https://stackoverflow.com/a/4585031
|
|
176
|
-
if (typeof history !== "undefined" && typeof window[patchKey] === "undefined") {
|
|
177
|
-
var _loop = function _loop() {
|
|
178
|
-
var type = _arr[_i3];
|
|
179
|
-
var original = history[type];
|
|
180
|
-
// TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,
|
|
181
|
-
// however that will require an additional peer dependency on react-dom.
|
|
182
|
-
// See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149
|
|
183
|
-
history[type] = function () {
|
|
184
|
-
var result = original.apply(this, arguments);
|
|
185
|
-
var event = new Event(type);
|
|
186
|
-
event.arguments = arguments;
|
|
187
|
-
dispatchEvent(event);
|
|
188
|
-
return result;
|
|
189
|
-
};
|
|
190
|
-
};
|
|
191
|
-
for (var _i3 = 0, _arr = [eventPushState, eventReplaceState]; _i3 < _arr.length; _i3++) {
|
|
192
|
-
_loop();
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// patch history object only once
|
|
196
|
-
// See: https://github.com/molefrog/wouter/issues/167
|
|
197
|
-
Object.defineProperty(window, patchKey, {
|
|
198
|
-
value: true
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
var _excluded$d = ["children"],
|
|
203
|
-
_excluded2$1 = ["path", "nest", "match"],
|
|
204
|
-
_excluded3 = ["to", "href", "onClick", "asChild", "children", "className", "replace", "state"];
|
|
205
|
-
|
|
206
|
-
/*
|
|
207
|
-
* Transforms `path` into its relative `base` version
|
|
208
|
-
* If base isn't part of the path provided returns absolute path e.g. `~/app`
|
|
209
|
-
*/
|
|
210
|
-
var relativePath = function relativePath() {
|
|
211
|
-
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
212
|
-
var path = arguments.length > 1 ? arguments[1] : undefined;
|
|
213
|
-
return !path.toLowerCase().indexOf(base.toLowerCase()) ? path.slice(base.length) || "/" : "~" + path;
|
|
214
|
-
};
|
|
215
|
-
var absolutePath = function absolutePath(to) {
|
|
216
|
-
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
217
|
-
return to[0] === "~" ? to.slice(1) : base + to;
|
|
218
|
-
};
|
|
219
|
-
|
|
220
|
-
/*
|
|
221
|
-
* decodes escape sequences such as %20
|
|
222
|
-
*/
|
|
223
|
-
var unescape = function unescape(str) {
|
|
224
|
-
try {
|
|
225
|
-
return decodeURI(str);
|
|
226
|
-
} catch (_e) {
|
|
227
|
-
// fail-safe mode: if string can't be decoded do nothing
|
|
228
|
-
return str;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
/*
|
|
233
|
-
* Router and router context. Router is a lightweight object that represents the current
|
|
234
|
-
* routing options: how location is managed, base path etc.
|
|
235
|
-
*
|
|
236
|
-
* There is a default router present for most of the use cases, however it can be overridden
|
|
237
|
-
* via the <Router /> component.
|
|
238
|
-
*/
|
|
239
|
-
|
|
240
|
-
var defaultRouter = {
|
|
241
|
-
hook: useBrowserLocation,
|
|
242
|
-
searchHook: useSearch,
|
|
243
|
-
parser: regexparam.parse,
|
|
244
|
-
base: "",
|
|
245
|
-
// this option is used to override the current location during SSR
|
|
246
|
-
ssrPath: undefined,
|
|
247
|
-
ssrSearch: undefined,
|
|
248
|
-
// customizes how `href` props are transformed for <Link />
|
|
249
|
-
hrefs: function hrefs(x) {
|
|
250
|
-
return x;
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
var RouterCtx = React.createContext(defaultRouter);
|
|
254
|
-
|
|
255
|
-
// gets the closest parent router from the context
|
|
256
|
-
var useRouter = function useRouter() {
|
|
257
|
-
return React.useContext(RouterCtx);
|
|
258
|
-
};
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Parameters context. Used by `useParams()` to get the
|
|
262
|
-
* matched params from the innermost `Route` component.
|
|
263
|
-
*/
|
|
264
|
-
|
|
265
|
-
var ParamsCtx = React.createContext({});
|
|
266
|
-
|
|
267
|
-
/*
|
|
268
|
-
* Part 1, Hooks API: useRoute and useLocation
|
|
269
|
-
*/
|
|
270
|
-
|
|
271
|
-
// Internal version of useLocation to avoid redundant useRouter calls
|
|
272
|
-
|
|
273
|
-
var useLocationFromRouter = function useLocationFromRouter(router) {
|
|
274
|
-
var _router$hook = router.hook(router),
|
|
275
|
-
_router$hook2 = _slicedToArray(_router$hook, 2),
|
|
276
|
-
location = _router$hook2[0],
|
|
277
|
-
navigate = _router$hook2[1];
|
|
278
|
-
|
|
279
|
-
// the function reference should stay the same between re-renders, so that
|
|
280
|
-
// it can be passed down as an element prop without any performance concerns.
|
|
281
|
-
// (This is achieved via `useEvent`.)
|
|
282
|
-
return [unescape(relativePath(router.base, location)), useEvent(function (to, navOpts) {
|
|
283
|
-
return navigate(absolutePath(to, router.base), navOpts);
|
|
284
|
-
})];
|
|
285
|
-
};
|
|
286
|
-
var useLocation = function useLocation() {
|
|
287
|
-
return useLocationFromRouter(useRouter());
|
|
288
|
-
};
|
|
289
|
-
var matchRoute = function matchRoute(parser, route, path, loose) {
|
|
290
|
-
// when parser is in "loose" mode, `$base` is equal to the
|
|
291
|
-
// first part of the route that matches the pattern
|
|
292
|
-
// (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)
|
|
293
|
-
// we use this for route nesting
|
|
294
|
-
var _parser = parser(route || "*", loose),
|
|
295
|
-
pattern = _parser.pattern,
|
|
296
|
-
keys = _parser.keys;
|
|
297
|
-
var _ref = pattern.exec(path) || [],
|
|
298
|
-
_ref2 = _toArray(_ref),
|
|
299
|
-
$base = _ref2[0],
|
|
300
|
-
matches = _ref2.slice(1);
|
|
301
|
-
return $base !== undefined ? [true,
|
|
302
|
-
// an object with parameters matched, e.g. { foo: "bar" } for "/:foo"
|
|
303
|
-
// we "zip" two arrays here to construct the object
|
|
304
|
-
// ["foo"], ["bar"] → { foo: "bar" }
|
|
305
|
-
Object.fromEntries(keys.map(function (key, i) {
|
|
306
|
-
return [key, matches[i]];
|
|
307
|
-
}))].concat(_toConsumableArray(loose ? [$base] : [])) : [false, null];
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
/*
|
|
311
|
-
* Part 2, Low Carb Router API: Router, Route, Link, Switch
|
|
312
|
-
*/
|
|
313
|
-
|
|
314
|
-
var Router = function Router(_ref3) {
|
|
315
|
-
var _props$ssrPath$split, _props$ssrPath, _props$hrefs, _props$hook;
|
|
316
|
-
var children = _ref3.children,
|
|
317
|
-
props = _objectWithoutProperties(_ref3, _excluded$d);
|
|
318
|
-
// the router we will inherit from - it is the closest router in the tree,
|
|
319
|
-
// unless the custom `hook` is provided (in that case it's the default one)
|
|
320
|
-
var parent_ = useRouter();
|
|
321
|
-
var parent = props.hook ? defaultRouter : parent_;
|
|
322
|
-
|
|
323
|
-
// holds to the context value: the router object
|
|
324
|
-
var value = parent;
|
|
325
|
-
|
|
326
|
-
// when `ssrPath` contains a `?` character, we can extract the search from it
|
|
327
|
-
var _ref4 = (_props$ssrPath$split = (_props$ssrPath = props.ssrPath) === null || _props$ssrPath === void 0 ? void 0 : _props$ssrPath.split("?")) !== null && _props$ssrPath$split !== void 0 ? _props$ssrPath$split : [],
|
|
328
|
-
_ref5 = _slicedToArray(_ref4, 2),
|
|
329
|
-
path = _ref5[0],
|
|
330
|
-
search = _ref5[1];
|
|
331
|
-
if (search) props.ssrSearch = search, props.ssrPath = path;
|
|
332
|
-
|
|
333
|
-
// hooks can define their own `href` formatter (e.g. for hash location)
|
|
334
|
-
props.hrefs = (_props$hrefs = props.hrefs) !== null && _props$hrefs !== void 0 ? _props$hrefs : (_props$hook = props.hook) === null || _props$hook === void 0 ? void 0 : _props$hook.hrefs;
|
|
335
|
-
|
|
336
|
-
// what is happening below: to avoid unnecessary rerenders in child components,
|
|
337
|
-
// we ensure that the router object reference is stable, unless there are any
|
|
338
|
-
// changes that require reload (e.g. `base` prop changes -> all components that
|
|
339
|
-
// get the router from the context should rerender, even if the component is memoized).
|
|
340
|
-
// the expected behaviour is:
|
|
341
|
-
//
|
|
342
|
-
// 1) when the resulted router is no different from the parent, use parent
|
|
343
|
-
// 2) if the custom `hook` prop is provided, we always inherit from the
|
|
344
|
-
// default router instead. this resets all previously overridden options.
|
|
345
|
-
// 3) when the router is customized here, it should stay stable between renders
|
|
346
|
-
var ref = React.useRef({}),
|
|
347
|
-
prev = ref.current,
|
|
348
|
-
next = prev;
|
|
349
|
-
for (var k in parent) {
|
|
350
|
-
var option = k === "base" ? /* base is special case, it is appended to the parent's base */
|
|
351
|
-
parent[k] + (props[k] || "") : props[k] || parent[k];
|
|
352
|
-
if (prev === next && option !== next[k]) {
|
|
353
|
-
ref.current = next = _objectSpread({}, next);
|
|
354
|
-
}
|
|
355
|
-
next[k] = option;
|
|
356
|
-
|
|
357
|
-
// the new router is no different from the parent, use parent
|
|
358
|
-
if (option !== parent[k]) value = next;
|
|
359
|
-
}
|
|
360
|
-
return React.createElement(RouterCtx.Provider, {
|
|
361
|
-
value: value,
|
|
362
|
-
children: children
|
|
363
|
-
});
|
|
364
|
-
};
|
|
365
|
-
var h_route = function h_route(_ref6, params) {
|
|
366
|
-
var children = _ref6.children,
|
|
367
|
-
component = _ref6.component;
|
|
368
|
-
// React-Router style `component` prop
|
|
369
|
-
if (component) return React.createElement(component, {
|
|
370
|
-
params: params
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
// support render prop or plain children
|
|
374
|
-
return typeof children === "function" ? children(params) : children;
|
|
375
|
-
};
|
|
376
|
-
var Route = function Route(_ref7) {
|
|
377
|
-
var path = _ref7.path,
|
|
378
|
-
nest = _ref7.nest,
|
|
379
|
-
match = _ref7.match,
|
|
380
|
-
renderProps = _objectWithoutProperties(_ref7, _excluded2$1);
|
|
381
|
-
var router = useRouter();
|
|
382
|
-
var _useLocationFromRoute = useLocationFromRouter(router),
|
|
383
|
-
_useLocationFromRoute2 = _slicedToArray(_useLocationFromRoute, 1),
|
|
384
|
-
location = _useLocationFromRoute2[0];
|
|
385
|
-
var _ref8 = // `match` is a special prop to give up control to the parent,
|
|
386
|
-
// it is used by the `Switch` to avoid double matching
|
|
387
|
-
match !== null && match !== void 0 ? match : matchRoute(router.parser, path, location, nest),
|
|
388
|
-
_ref9 = _slicedToArray(_ref8, 3),
|
|
389
|
-
matches = _ref9[0],
|
|
390
|
-
params = _ref9[1],
|
|
391
|
-
base = _ref9[2];
|
|
392
|
-
if (!matches) return null;
|
|
393
|
-
var children = base ? React.createElement(Router, {
|
|
394
|
-
base: base
|
|
395
|
-
}, h_route(renderProps, params)) : h_route(renderProps, params);
|
|
396
|
-
return React.createElement(ParamsCtx.Provider, {
|
|
397
|
-
value: params,
|
|
398
|
-
children: children
|
|
399
|
-
});
|
|
400
|
-
};
|
|
401
|
-
React.forwardRef(function (props, ref) {
|
|
402
|
-
var router = useRouter();
|
|
403
|
-
var _useLocationFromRoute3 = useLocationFromRouter(router),
|
|
404
|
-
_useLocationFromRoute4 = _slicedToArray(_useLocationFromRoute3, 2),
|
|
405
|
-
path = _useLocationFromRoute4[0],
|
|
406
|
-
navigate = _useLocationFromRoute4[1];
|
|
407
|
-
var to = props.to,
|
|
408
|
-
_props$href = props.href,
|
|
409
|
-
_href = _props$href === void 0 ? to : _props$href,
|
|
410
|
-
_onClick = props.onClick,
|
|
411
|
-
asChild = props.asChild,
|
|
412
|
-
children = props.children,
|
|
413
|
-
cls = props.className;
|
|
414
|
-
props.replace;
|
|
415
|
-
props.state;
|
|
416
|
-
var restProps = _objectWithoutProperties(props, _excluded3);
|
|
417
|
-
var onClick = useEvent(function (event) {
|
|
418
|
-
// ignores the navigation when clicked using right mouse button or
|
|
419
|
-
// by holding a special modifier key: ctrl, command, win, alt, shift
|
|
420
|
-
if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey || event.button !== 0) return;
|
|
421
|
-
_onClick === null || _onClick === void 0 || _onClick(event);
|
|
422
|
-
if (!event.defaultPrevented) {
|
|
423
|
-
event.preventDefault();
|
|
424
|
-
navigate(_href, props);
|
|
425
|
-
}
|
|
426
|
-
});
|
|
427
|
-
|
|
428
|
-
// handle nested routers and absolute paths
|
|
429
|
-
var href = router.hrefs(_href[0] === "~" ? _href.slice(1) : router.base + _href, router // pass router as a second argument for convinience
|
|
430
|
-
);
|
|
431
|
-
return asChild && React.isValidElement(children) ? React.cloneElement(children, {
|
|
432
|
-
onClick: onClick,
|
|
433
|
-
href: href
|
|
434
|
-
}) : React.createElement("a", _objectSpread(_objectSpread({}, restProps), {}, {
|
|
435
|
-
onClick: onClick,
|
|
436
|
-
href: href,
|
|
437
|
-
// `className` can be a function to apply the class if this link is active
|
|
438
|
-
className: cls !== null && cls !== void 0 && cls.call ? cls(path === href) : cls,
|
|
439
|
-
children: children,
|
|
440
|
-
ref: ref
|
|
441
|
-
}));
|
|
442
|
-
});
|
|
443
|
-
var flattenChildren = function flattenChildren(children) {
|
|
444
|
-
return Array.isArray(children) ? children.flatMap(function (c) {
|
|
445
|
-
return flattenChildren(c && c.type === React.Fragment ? c.props.children : c);
|
|
446
|
-
}) : [children];
|
|
447
|
-
};
|
|
448
|
-
var Switch = function Switch(_ref10) {
|
|
449
|
-
var children = _ref10.children,
|
|
450
|
-
location = _ref10.location;
|
|
451
|
-
var router = useRouter();
|
|
452
|
-
var _useLocationFromRoute5 = useLocationFromRouter(router),
|
|
453
|
-
_useLocationFromRoute6 = _slicedToArray(_useLocationFromRoute5, 1),
|
|
454
|
-
originalLocation = _useLocationFromRoute6[0];
|
|
455
|
-
var _iterator = _createForOfIteratorHelper(flattenChildren(children)),
|
|
456
|
-
_step;
|
|
457
|
-
try {
|
|
458
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
459
|
-
var element = _step.value;
|
|
460
|
-
var match = 0;
|
|
461
|
-
if (React.isValidElement(element) &&
|
|
462
|
-
// we don't require an element to be of type Route,
|
|
463
|
-
// but we do require it to contain a truthy `path` prop.
|
|
464
|
-
// this allows to use different components that wrap Route
|
|
465
|
-
// inside of a switch, for example <AnimatedRoute />.
|
|
466
|
-
(match = matchRoute(router.parser, element.props.path, location || originalLocation, element.props.nest))[0]) return React.cloneElement(element, {
|
|
467
|
-
match: match
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
} catch (err) {
|
|
471
|
-
_iterator.e(err);
|
|
472
|
-
} finally {
|
|
473
|
-
_iterator.f();
|
|
474
|
-
}
|
|
475
|
-
return null;
|
|
476
|
-
};
|
|
477
|
-
|
|
478
|
-
({
|
|
479
|
-
children: PropTypes.node.isRequired,
|
|
480
|
-
routes: PropTypes.objectOf(PropTypes.string).isRequired,
|
|
481
|
-
basePath: PropTypes.string
|
|
482
|
-
});
|
|
483
|
-
function parseLocation(location) {
|
|
484
|
-
var search = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
485
|
-
var hash = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
486
|
-
var _split = (location || '').split('?', 2),
|
|
487
|
-
_split2 = _slicedToArray(_split, 2),
|
|
488
|
-
pathname = _split2[0],
|
|
489
|
-
_split2$ = _split2[1],
|
|
490
|
-
searchFromPath = _split2$ === void 0 ? null : _split2$;
|
|
491
|
-
var _split3 = (searchFromPath || '').split('#', 2),
|
|
492
|
-
_split4 = _slicedToArray(_split3, 2),
|
|
493
|
-
searchWithoutHash = _split4[0],
|
|
494
|
-
_split4$ = _split4[1],
|
|
495
|
-
hashFromPath = _split4$ === void 0 ? null : _split4$;
|
|
496
|
-
return {
|
|
497
|
-
pathname: pathname !== '' ? pathname : '/',
|
|
498
|
-
search: search || searchWithoutHash || null,
|
|
499
|
-
hash: hash || hashFromPath || null
|
|
500
|
-
};
|
|
501
|
-
}
|
|
502
|
-
function useMemoryRouter() {
|
|
503
|
-
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
504
|
-
_ref3$path = _ref3.path,
|
|
505
|
-
path = _ref3$path === void 0 ? '/' : _ref3$path,
|
|
506
|
-
_ref3$static = _ref3["static"],
|
|
507
|
-
staticLocation = _ref3$static === void 0 ? false : _ref3$static;
|
|
508
|
-
_ref3.record;
|
|
509
|
-
var currentPath = parseLocation(path);
|
|
510
|
-
var emitter = mitt();
|
|
511
|
-
var navigateImplementation = function navigateImplementation(newPath) {
|
|
512
|
-
var newParsedPath = parseLocation(newPath);
|
|
513
|
-
currentPath = newParsedPath;
|
|
514
|
-
emitter.emit('navigate', path);
|
|
515
|
-
};
|
|
516
|
-
var navigate = !staticLocation ? navigateImplementation : function () {
|
|
517
|
-
return null;
|
|
518
|
-
};
|
|
519
|
-
var subscribe = function subscribe(cb) {
|
|
520
|
-
emitter.on('navigate', cb);
|
|
521
|
-
return function () {
|
|
522
|
-
return emitter.off('navigate', cb);
|
|
523
|
-
};
|
|
524
|
-
};
|
|
525
|
-
function reset() {
|
|
526
|
-
navigateImplementation(path);
|
|
527
|
-
}
|
|
528
|
-
var locationHook = function locationHook() {
|
|
529
|
-
return [React.useSyncExternalStore(subscribe, function () {
|
|
530
|
-
return currentPath.pathname;
|
|
531
|
-
}), navigate];
|
|
532
|
-
};
|
|
533
|
-
var searchHook = function searchHook() {
|
|
534
|
-
return React.useSyncExternalStore(subscribe, function () {
|
|
535
|
-
return currentPath.search || '';
|
|
536
|
-
});
|
|
537
|
-
};
|
|
538
|
-
return {
|
|
539
|
-
hook: locationHook,
|
|
540
|
-
searchHook: searchHook,
|
|
541
|
-
reset: reset,
|
|
542
|
-
navigate: navigate
|
|
543
|
-
};
|
|
544
|
-
}
|
|
545
|
-
function useRouteMatcher() {
|
|
546
|
-
var router = useRouter();
|
|
547
|
-
var _useLocation3 = useLocation(),
|
|
548
|
-
_useLocation4 = _slicedToArray(_useLocation3, 1),
|
|
549
|
-
location = _useLocation4[0];
|
|
550
|
-
var matcher = React.useCallback(function (route) {
|
|
551
|
-
var specificLocation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
552
|
-
var path = specificLocation || location;
|
|
553
|
-
// when parser is in "loose" mode, `$base` is equal to the
|
|
554
|
-
// first part of the route that matches the pattern
|
|
555
|
-
// (e.g. for pattern `/a/:b` and path `/a/1/2/3` the `$base` is `a/1`)
|
|
556
|
-
// we use this for route nesting
|
|
557
|
-
var _router$parser = router.parser(route || '*'),
|
|
558
|
-
pattern = _router$parser.pattern,
|
|
559
|
-
keys = _router$parser.keys;
|
|
560
|
-
var _ref4 = pattern.exec(path) || [],
|
|
561
|
-
_ref5 = _toArray(_ref4),
|
|
562
|
-
$base = _ref5[0],
|
|
563
|
-
matches = _ref5.slice(1);
|
|
564
|
-
return $base !== undefined ? [true,
|
|
565
|
-
// an object with parameters matched, e.g. { foo: "bar" } for "/:foo"
|
|
566
|
-
// we "zip" two arrays here to construct the object
|
|
567
|
-
// ["foo"], ["bar"] → { foo: "bar" }
|
|
568
|
-
Object.fromEntries(keys.map(function (key, i) {
|
|
569
|
-
return [key, matches[i]];
|
|
570
|
-
}))] : [false];
|
|
571
|
-
}, [router, location]);
|
|
572
|
-
return matcher;
|
|
573
|
-
}
|
|
574
|
-
function createPathToRegexpParser(opts) {
|
|
575
|
-
return function (fullPath, loose) {
|
|
576
|
-
var path = fullPath.replace(/^(https?:\/\/[^/]+)\/?/, '/');
|
|
577
|
-
var keys = [];
|
|
578
|
-
var isWildcard = path.match(/(\/|^)\*$/) !== null;
|
|
579
|
-
var pattern = pathToRegexp.pathToRegexp(isWildcard ? path.replace(/(\/|^)\*$/, '$1(.*)') : path, keys, _objectSpread({
|
|
580
|
-
end: !loose && !isWildcard
|
|
581
|
-
}, opts));
|
|
582
|
-
return {
|
|
583
|
-
pattern: pattern,
|
|
584
|
-
// `pathToRegexp` returns some metadata about the keys,
|
|
585
|
-
// we want to strip it to just an array of keys
|
|
586
|
-
keys: keys.map(function (k) {
|
|
587
|
-
return k.name;
|
|
588
|
-
})
|
|
589
|
-
};
|
|
590
|
-
};
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
var useRouteParams = function useRouteParams() {
|
|
594
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
595
|
-
_ref$screenOnly = _ref.screenOnly,
|
|
596
|
-
screenOnly = _ref$screenOnly === void 0 ? false : _ref$screenOnly;
|
|
597
|
-
var routes = contexts.useRoutes();
|
|
598
|
-
var _useLocation = useLocation(),
|
|
599
|
-
_useLocation2 = _slicedToArray(_useLocation, 1),
|
|
600
|
-
location = _useLocation2[0];
|
|
601
|
-
var matcher = useRouteMatcher();
|
|
602
|
-
var _useMemo = React.useMemo(function () {
|
|
603
|
-
var paths = screenOnly ? [routes.screen, '/:screen/*', '*'] : [routes['screen.field.form'], routes['screen.field'], routes.screen, '*'];
|
|
604
|
-
return paths.reduce(function (currentParams, path) {
|
|
605
|
-
if (currentParams !== null) {
|
|
606
|
-
return currentParams;
|
|
607
|
-
}
|
|
608
|
-
var _matcher = matcher(path),
|
|
609
|
-
_matcher2 = _slicedToArray(_matcher, 2),
|
|
610
|
-
_matcher2$ = _matcher2[0],
|
|
611
|
-
match = _matcher2$ === void 0 ? false : _matcher2$,
|
|
612
|
-
params = _matcher2[1];
|
|
613
|
-
return match ? params : currentParams;
|
|
614
|
-
}, null) || {};
|
|
615
|
-
}, [routes, screenOnly, location, matcher]),
|
|
616
|
-
_useMemo$screen = _useMemo.screen,
|
|
617
|
-
screen = _useMemo$screen === void 0 ? null : _useMemo$screen,
|
|
618
|
-
_useMemo$field = _useMemo.field,
|
|
619
|
-
field = _useMemo$field === void 0 ? null : _useMemo$field,
|
|
620
|
-
_useMemo$form = _useMemo.form,
|
|
621
|
-
form = _useMemo$form === void 0 ? null : _useMemo$form;
|
|
622
|
-
var routeParams = React.useMemo(function () {
|
|
623
|
-
return screenOnly ? {
|
|
624
|
-
url: location,
|
|
625
|
-
screen: screen
|
|
626
|
-
} : {
|
|
627
|
-
url: location,
|
|
628
|
-
screen: screen,
|
|
629
|
-
field: field,
|
|
630
|
-
form: form
|
|
631
|
-
};
|
|
632
|
-
}, [screenOnly, location, screen, field, form]);
|
|
633
|
-
return routeParams;
|
|
634
|
-
};
|
|
635
|
-
|
|
636
|
-
var useFormTransition = function useFormTransition(url, screenIndex, styles) {
|
|
637
|
-
var lastPageRef = React.useRef({
|
|
638
|
-
url: url,
|
|
639
|
-
screenIndex: screenIndex
|
|
640
|
-
});
|
|
641
|
-
var direction = React.useMemo(function () {
|
|
642
|
-
var _lastPageRef$current = lastPageRef.current,
|
|
643
|
-
lastScreenIndex = _lastPageRef$current.screenIndex,
|
|
644
|
-
lastUrl = _lastPageRef$current.url;
|
|
645
|
-
lastPageRef.current.url = url;
|
|
646
|
-
lastPageRef.current.screenIndex = screenIndex;
|
|
647
|
-
if (screenIndex !== lastScreenIndex) {
|
|
648
|
-
// return screenIndex > lastScreenIndex ? 'bottom' : 'top';
|
|
649
|
-
return null;
|
|
650
|
-
}
|
|
651
|
-
var urlSplit = url.split('/');
|
|
652
|
-
var lastUrlSplit = lastUrl.split('/');
|
|
653
|
-
var currentPartsCount = urlSplit.length;
|
|
654
|
-
var previousPartsCount = lastUrlSplit.length;
|
|
655
|
-
var isSettings = urlSplit[currentPartsCount - 1] === 'settings';
|
|
656
|
-
var wasSettings = lastUrlSplit[previousPartsCount - 1] === 'settings';
|
|
657
|
-
currentPartsCount -= isSettings ? 1 : 0;
|
|
658
|
-
previousPartsCount -= wasSettings ? 1 : 0;
|
|
659
|
-
return currentPartsCount >= previousPartsCount ? 'right' : 'left';
|
|
660
|
-
}, [url, screenIndex]);
|
|
661
|
-
var transitionClassNames = React.useMemo(function () {
|
|
662
|
-
return {
|
|
663
|
-
enter: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles.enterRight, direction === 'right'), styles.enterLeft, direction === 'left'), styles.enterTop, direction === 'top'), styles.enterBottom, direction === 'bottom')) || 'none',
|
|
664
|
-
enterActive: classNames(_defineProperty(_defineProperty({}, styles.enterActiveHorizontal, direction === 'left' || direction === 'right'), styles.enterActiveVertical, direction === 'top' || direction === 'bottom')) || 'none',
|
|
665
|
-
exit: styles.exit || 'none',
|
|
666
|
-
exitActive: classNames(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles.exitActiveRight, direction === 'right'), styles.exitActiveLeft, direction === 'left'), styles.exitActiveTop, direction === 'top'), styles.exitActiveBottom, direction === 'bottom')) || 'none'
|
|
667
|
-
};
|
|
668
|
-
}, [direction, screenIndex]);
|
|
669
|
-
return {
|
|
670
|
-
direction: direction,
|
|
671
|
-
classNames: transitionClassNames,
|
|
672
|
-
timeout: direction === 'left' || direction === 'right' ? 300 : 10
|
|
673
|
-
};
|
|
674
|
-
};
|
|
675
|
-
|
|
676
|
-
var createScreen = function createScreen(definition) {
|
|
677
|
-
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
678
|
-
var finalDefinition = isString(definition) ? {
|
|
679
|
-
id: definition
|
|
680
|
-
} : definition;
|
|
681
|
-
var id = finalDefinition.id;
|
|
682
|
-
var screenFields = utils.getScreenFieldsWithStates(finalDefinition);
|
|
683
|
-
var defaultValueFields = screenFields.reduce(function (all, curr) {
|
|
684
|
-
var _ref = curr || {},
|
|
685
|
-
_ref$name = _ref.name,
|
|
686
|
-
name = _ref$name === void 0 ? null : _ref$name,
|
|
687
|
-
_ref$defaultValue = _ref.defaultValue,
|
|
688
|
-
defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue;
|
|
689
|
-
var newAll = _objectSpread({}, all);
|
|
690
|
-
if (name !== null && defaultValue !== null) {
|
|
691
|
-
newAll[name] = defaultValue;
|
|
692
|
-
}
|
|
693
|
-
return newAll;
|
|
694
|
-
}, {});
|
|
695
|
-
return _objectSpread(_objectSpread(_objectSpread({
|
|
696
|
-
type: id
|
|
697
|
-
}, defaultValueFields), data), {}, {
|
|
698
|
-
id: uuid.v1()
|
|
699
|
-
});
|
|
700
|
-
};
|
|
701
|
-
var createScreen$1 = createScreen;
|
|
702
|
-
|
|
703
|
-
var _excluded$c = ["components"];
|
|
704
|
-
var deleteScreen = function deleteScreen(story, screenId) {
|
|
705
|
-
var _ref = story || {},
|
|
706
|
-
_ref$components = _ref.components,
|
|
707
|
-
components = _ref$components === void 0 ? [] : _ref$components,
|
|
708
|
-
currentValue = _objectWithoutProperties(_ref, _excluded$c);
|
|
709
|
-
return _objectSpread(_objectSpread({}, currentValue), {}, {
|
|
710
|
-
components: components.filter(function (_ref2) {
|
|
711
|
-
var id = _ref2.id;
|
|
712
|
-
return id !== screenId;
|
|
713
|
-
})
|
|
714
|
-
});
|
|
715
|
-
};
|
|
716
|
-
|
|
717
|
-
var _excluded$b = ["components"];
|
|
718
|
-
var duplicateScreen = function duplicateScreen(story, screenId) {
|
|
719
|
-
var screenIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
720
|
-
var _ref = story || {},
|
|
721
|
-
_ref$components = _ref.components,
|
|
722
|
-
components = _ref$components === void 0 ? [] : _ref$components,
|
|
723
|
-
currentValue = _objectWithoutProperties(_ref, _excluded$b);
|
|
724
|
-
var screen = components.find(function (it) {
|
|
725
|
-
return it.id === screenId;
|
|
726
|
-
}) || null;
|
|
727
|
-
return _objectSpread(_objectSpread({}, currentValue), {}, {
|
|
728
|
-
components: screen !== null ? screenIndex !== null && screenIndex > -1 ? [].concat(_toConsumableArray(components.slice(0, screenIndex + 1)), [_objectSpread(_objectSpread({}, screen), {}, {
|
|
729
|
-
id: uuid.v1()
|
|
730
|
-
})], _toConsumableArray(components.slice(screenIndex + 1))) : [].concat(_toConsumableArray(components), [_objectSpread(_objectSpread({}, screen), {}, {
|
|
731
|
-
id: uuid.v1()
|
|
732
|
-
})]) : components
|
|
733
|
-
});
|
|
734
|
-
};
|
|
735
|
-
|
|
736
|
-
var _excluded$a = ["components"];
|
|
737
|
-
var updateScreen = function updateScreen(story, newScreenValue) {
|
|
738
|
-
var newScreenId = newScreenValue.id;
|
|
739
|
-
var _ref = story || {},
|
|
740
|
-
_ref$components = _ref.components,
|
|
741
|
-
components = _ref$components === void 0 ? [] : _ref$components,
|
|
742
|
-
currentValue = _objectWithoutProperties(_ref, _excluded$a);
|
|
743
|
-
var index = components.findIndex(function (it) {
|
|
744
|
-
return it.id === newScreenId;
|
|
745
|
-
});
|
|
746
|
-
return _objectSpread(_objectSpread({}, currentValue), {}, {
|
|
747
|
-
components: [].concat(_toConsumableArray(components.slice(0, index)), [_objectSpread(_objectSpread({}, components[index]), newScreenValue)], _toConsumableArray(components.slice(index + 1)))
|
|
748
|
-
});
|
|
749
|
-
};
|
|
750
|
-
|
|
751
|
-
var getFieldByName = function getFieldByName(fields, name) {
|
|
752
|
-
return fields.reduce(function (foundField, it) {
|
|
753
|
-
if (foundField !== null) {
|
|
754
|
-
return foundField;
|
|
755
|
-
}
|
|
756
|
-
var _it$name = it.name,
|
|
757
|
-
fieldName = _it$name === void 0 ? null : _it$name,
|
|
758
|
-
_it$fields = it.fields,
|
|
759
|
-
subFields = _it$fields === void 0 ? [] : _it$fields;
|
|
760
|
-
if (name !== null && fieldName === name) {
|
|
761
|
-
return it;
|
|
762
|
-
}
|
|
763
|
-
return getFieldByName(subFields, name);
|
|
764
|
-
}, null);
|
|
765
|
-
};
|
|
766
|
-
|
|
767
|
-
var _excluded$9 = ["className", "dots"];
|
|
768
|
-
var propTypes$o = {
|
|
769
|
-
dots: PropTypes.bool,
|
|
770
|
-
className: PropTypes.string
|
|
771
|
-
};
|
|
772
|
-
var defaultProps$o = {
|
|
773
|
-
dots: false,
|
|
774
|
-
className: null
|
|
775
|
-
};
|
|
776
|
-
var SettingsButton = function SettingsButton(_ref) {
|
|
777
|
-
var className = _ref.className,
|
|
778
|
-
dots = _ref.dots,
|
|
779
|
-
props = _objectWithoutProperties(_ref, _excluded$9);
|
|
780
|
-
return /*#__PURE__*/React.createElement(components.Button, Object.assign({
|
|
781
|
-
className: className,
|
|
782
|
-
theme: "secondary",
|
|
783
|
-
size: "sm",
|
|
784
|
-
icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
785
|
-
icon: dots ? faEllipsisV.faEllipsisV : faCogs.faCogs
|
|
786
|
-
})
|
|
787
|
-
}, props));
|
|
788
|
-
};
|
|
789
|
-
SettingsButton.propTypes = propTypes$o;
|
|
790
|
-
SettingsButton.defaultProps = defaultProps$o;
|
|
791
|
-
var SettingsButton$1 = SettingsButton;
|
|
792
|
-
|
|
793
|
-
var _excluded$8 = ["name", "form"];
|
|
794
|
-
var propTypes$n = {
|
|
795
|
-
name: PropTypes.string,
|
|
796
|
-
form: PropTypes.string,
|
|
797
|
-
children: PropTypes.node
|
|
798
|
-
};
|
|
799
|
-
var defaultProps$n = {
|
|
800
|
-
name: null,
|
|
801
|
-
form: null,
|
|
802
|
-
children: null
|
|
803
|
-
};
|
|
804
|
-
var FieldWithContexts = function FieldWithContexts(_ref) {
|
|
805
|
-
var name = _ref.name,
|
|
806
|
-
form = _ref.form,
|
|
807
|
-
props = _objectWithoutProperties(_ref, _excluded$8);
|
|
808
|
-
var definition = contexts.useScreenDefinition() || null;
|
|
809
|
-
var _definition$states = definition.states,
|
|
810
|
-
states = _definition$states === void 0 ? null : _definition$states;
|
|
811
|
-
var screenFields = utils.getScreenFieldsWithStates(definition);
|
|
812
|
-
var nameParts = name.split('.');
|
|
813
|
-
var _nameParts = _slicedToArray(nameParts, 1),
|
|
814
|
-
_nameParts$ = _nameParts[0],
|
|
815
|
-
stateId = _nameParts$ === void 0 ? null : _nameParts$;
|
|
816
|
-
var currentState = states !== null ? states.find(function (_ref2) {
|
|
817
|
-
var id = _ref2.id;
|
|
818
|
-
return id === stateId;
|
|
819
|
-
}) || null : null;
|
|
820
|
-
var finalNameParts = nameParts;
|
|
821
|
-
var _ref3 = currentState || {},
|
|
822
|
-
_ref3$repeatable = _ref3.repeatable,
|
|
823
|
-
repeatable = _ref3$repeatable === void 0 ? false : _ref3$repeatable,
|
|
824
|
-
_ref3$fieldName = _ref3.fieldName,
|
|
825
|
-
fieldName = _ref3$fieldName === void 0 ? null : _ref3$fieldName,
|
|
826
|
-
_ref3$fields = _ref3.fields,
|
|
827
|
-
stateFields = _ref3$fields === void 0 ? [] : _ref3$fields;
|
|
828
|
-
var finalScreenFields = fieldName !== null && stateId !== null ? screenFields.filter(function (_ref4) {
|
|
829
|
-
var itemName = _ref4.name,
|
|
830
|
-
fieldStateId = _ref4.stateId;
|
|
831
|
-
return fieldName !== itemName || stateId === fieldStateId || fieldStateId === null;
|
|
832
|
-
}) : screenFields;
|
|
833
|
-
if (currentState !== null) {
|
|
834
|
-
finalNameParts = (repeatable || fieldName !== null) && nameParts.length <= (repeatable ? 2 : 1) ? [fieldName || stateId].concat(_toConsumableArray(nameParts.slice(1))) : nameParts.slice(1);
|
|
835
|
-
}
|
|
836
|
-
var formComponents = contexts.useFormsComponents();
|
|
837
|
-
return definition !== null ? /*#__PURE__*/React.createElement("div", {
|
|
838
|
-
className: classNames({
|
|
839
|
-
'p-2': form === null
|
|
840
|
-
})
|
|
841
|
-
}, finalNameParts.length > 0 ? /*#__PURE__*/React.createElement(components.FieldForm, Object.assign({
|
|
842
|
-
fields: finalScreenFields,
|
|
843
|
-
formComponents: formComponents,
|
|
844
|
-
name: finalNameParts.join('.'),
|
|
845
|
-
form: form
|
|
846
|
-
}, props)) : /*#__PURE__*/React.createElement(fields.Fields, Object.assign({
|
|
847
|
-
fields: stateFields
|
|
848
|
-
}, props))) : null;
|
|
849
|
-
};
|
|
850
|
-
FieldWithContexts.propTypes = propTypes$n;
|
|
851
|
-
FieldWithContexts.defaultProps = defaultProps$n;
|
|
852
|
-
var FieldWithContexts$1 = FieldWithContexts;
|
|
853
|
-
|
|
854
|
-
var styles$i = {"container":"micromag-editor-forms-screen-container","inner":"micromag-editor-forms-screen-inner"};
|
|
855
|
-
|
|
856
|
-
var propTypes$m = {
|
|
857
|
-
value: core.PropTypes.component,
|
|
858
|
-
className: PropTypes.string,
|
|
859
|
-
gotoFieldForm: PropTypes.func.isRequired,
|
|
860
|
-
closeFieldForm: PropTypes.func.isRequired,
|
|
861
|
-
onChange: PropTypes.func
|
|
862
|
-
// onClickDelete: PropTypes.func,
|
|
863
|
-
};
|
|
864
|
-
var defaultProps$m = {
|
|
865
|
-
value: null,
|
|
866
|
-
className: null,
|
|
867
|
-
onChange: null
|
|
868
|
-
// onClickDelete: null,
|
|
869
|
-
};
|
|
870
|
-
var ScreenForm = function ScreenForm(_ref) {
|
|
871
|
-
var value = _ref.value,
|
|
872
|
-
className = _ref.className,
|
|
873
|
-
gotoFieldForm = _ref.gotoFieldForm,
|
|
874
|
-
closeFieldForm = _ref.closeFieldForm,
|
|
875
|
-
onChange = _ref.onChange;
|
|
876
|
-
var _useScreenDefinition = contexts.useScreenDefinition(),
|
|
877
|
-
_useScreenDefinition$ = _useScreenDefinition.fields,
|
|
878
|
-
fields$1 = _useScreenDefinition$ === void 0 ? [] : _useScreenDefinition$;
|
|
879
|
-
// const intl = useIntl();
|
|
880
|
-
// const finalOnClickDelete = useCallback(() => {
|
|
881
|
-
// if (
|
|
882
|
-
// onClickDelete !== null &&
|
|
883
|
-
// window.confirm(
|
|
884
|
-
// intl.formatMessage({
|
|
885
|
-
// defaultMessage: 'Are you sure you want to delete this screen?',
|
|
886
|
-
// description: 'Confirm message when deleting a screen',
|
|
887
|
-
// }),
|
|
888
|
-
// )
|
|
889
|
-
// ) {
|
|
890
|
-
// onClickDelete(value);
|
|
891
|
-
// }
|
|
892
|
-
// }, [intl, onClickDelete, value]);
|
|
893
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
894
|
-
className: classNames([styles$i.container, _defineProperty({}, className, className)])
|
|
895
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
896
|
-
className: styles$i.inner
|
|
897
|
-
}, fields$1 !== null ? /*#__PURE__*/React.createElement(fields.Fields, {
|
|
898
|
-
fields: fields$1,
|
|
899
|
-
value: value,
|
|
900
|
-
onChange: onChange,
|
|
901
|
-
gotoFieldForm: gotoFieldForm,
|
|
902
|
-
closeFieldForm: closeFieldForm
|
|
903
|
-
}) : null));
|
|
904
|
-
};
|
|
905
|
-
ScreenForm.propTypes = propTypes$m;
|
|
906
|
-
ScreenForm.defaultProps = defaultProps$m;
|
|
907
|
-
var ScreenForm$1 = ScreenForm;
|
|
908
|
-
|
|
909
|
-
var styles$h = {"container":"micromag-editor-menus-breadcrumb-container"};
|
|
910
|
-
|
|
911
|
-
var propTypes$l = {
|
|
912
|
-
story: core.PropTypes.story,
|
|
913
|
-
screenId: PropTypes.string,
|
|
914
|
-
field: PropTypes.string,
|
|
915
|
-
form: PropTypes.string,
|
|
916
|
-
url: PropTypes.string.isRequired,
|
|
917
|
-
className: PropTypes.string
|
|
918
|
-
};
|
|
919
|
-
var defaultProps$l = {
|
|
920
|
-
story: null,
|
|
921
|
-
screenId: null,
|
|
922
|
-
field: null,
|
|
923
|
-
form: null,
|
|
924
|
-
className: null
|
|
925
|
-
};
|
|
926
|
-
var Breadcrumb = function Breadcrumb(_ref) {
|
|
927
|
-
var story = _ref.story,
|
|
928
|
-
screenId = _ref.screenId,
|
|
929
|
-
field = _ref.field,
|
|
930
|
-
form = _ref.form,
|
|
931
|
-
url = _ref.url,
|
|
932
|
-
className = _ref.className;
|
|
933
|
-
var intl = reactIntl.useIntl();
|
|
934
|
-
var _ref2 = story || {},
|
|
935
|
-
_ref2$components = _ref2.components,
|
|
936
|
-
screens = _ref2$components === void 0 ? [] : _ref2$components;
|
|
937
|
-
var _useLocation = useLocation(),
|
|
938
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
|
939
|
-
setLocation = _useLocation2[1];
|
|
940
|
-
var screensManager = contexts.useScreensManager();
|
|
941
|
-
var fieldsManager = contexts.useFieldsManager();
|
|
942
|
-
var fieldsComponentManager = contexts.useFieldsComponentsManager();
|
|
943
|
-
var route = contexts.useUrlGenerator();
|
|
944
|
-
var _useMemo = React.useMemo(function () {
|
|
945
|
-
var screenIndex = screens.findIndex(function (it) {
|
|
946
|
-
return it.id === screenId;
|
|
947
|
-
});
|
|
948
|
-
if (!screens[screenIndex]) {
|
|
949
|
-
return {};
|
|
950
|
-
}
|
|
951
|
-
var _screens$screenIndex = screens[screenIndex],
|
|
952
|
-
type = _screens$screenIndex.type,
|
|
953
|
-
_screens$screenIndex$ = _screens$screenIndex.parameters,
|
|
954
|
-
parameters = _screens$screenIndex$ === void 0 ? null : _screens$screenIndex$;
|
|
955
|
-
var definition = screensManager.getDefinition(type);
|
|
956
|
-
var _ref3 = definition || {},
|
|
957
|
-
_ref3$states = _ref3.states,
|
|
958
|
-
states = _ref3$states === void 0 ? null : _ref3$states,
|
|
959
|
-
_ref3$title = _ref3.title,
|
|
960
|
-
definitionTitle = _ref3$title === void 0 ? null : _ref3$title;
|
|
961
|
-
return {
|
|
962
|
-
title: definitionTitle,
|
|
963
|
-
fields: definition !== null ? [].concat(_toConsumableArray(utils.getScreenFieldsWithStates(definition)), [utils.getScreenExtraField(intl)]) : null,
|
|
964
|
-
states: states,
|
|
965
|
-
parameters: parameters
|
|
966
|
-
};
|
|
967
|
-
}, [screens, screenId, screensManager, intl]),
|
|
968
|
-
_useMemo$title = _useMemo.title,
|
|
969
|
-
screenTitle = _useMemo$title === void 0 ? null : _useMemo$title,
|
|
970
|
-
_useMemo$fields = _useMemo.fields,
|
|
971
|
-
screenFields = _useMemo$fields === void 0 ? [] : _useMemo$fields,
|
|
972
|
-
_useMemo$states = _useMemo.states,
|
|
973
|
-
screenStates = _useMemo$states === void 0 ? null : _useMemo$states,
|
|
974
|
-
_useMemo$parameters = _useMemo.parameters,
|
|
975
|
-
screenParameters = _useMemo$parameters === void 0 ? null : _useMemo$parameters;
|
|
976
|
-
var items = React.useMemo(function () {
|
|
977
|
-
var fieldItems = [];
|
|
978
|
-
var currentState = null;
|
|
979
|
-
if (field !== null) {
|
|
980
|
-
var fieldPath = field.split('/');
|
|
981
|
-
|
|
982
|
-
// Get state and remove it from path. Replace it with field name if necessary (repeatable or fieldName present)
|
|
983
|
-
var _fieldPath = _slicedToArray(fieldPath, 1),
|
|
984
|
-
_fieldPath$ = _fieldPath[0],
|
|
985
|
-
stateId = _fieldPath$ === void 0 ? null : _fieldPath$;
|
|
986
|
-
currentState = screenStates !== null ? screenStates.find(function (_ref4) {
|
|
987
|
-
var id = _ref4.id;
|
|
988
|
-
return id === stateId;
|
|
989
|
-
}) || null : null;
|
|
990
|
-
var finalFieldPath = fieldPath;
|
|
991
|
-
if (currentState !== null) {
|
|
992
|
-
var _ref5 = currentState || {},
|
|
993
|
-
_ref5$repeatable = _ref5.repeatable,
|
|
994
|
-
repeatable = _ref5$repeatable === void 0 ? false : _ref5$repeatable,
|
|
995
|
-
_ref5$fieldName = _ref5.fieldName,
|
|
996
|
-
fieldName = _ref5$fieldName === void 0 ? null : _ref5$fieldName;
|
|
997
|
-
finalFieldPath = (repeatable || fieldName !== null) && fieldPath.length <= (repeatable ? 2 : 1) ? [fieldName || stateId].concat(_toConsumableArray(fieldPath.slice(1))) : fieldPath.slice(1);
|
|
998
|
-
}
|
|
999
|
-
var lastKeyIndex = finalFieldPath.length - 1;
|
|
1000
|
-
var parentItem = null;
|
|
1001
|
-
finalFieldPath.reduce(function (currentFields, key, keyIndex) {
|
|
1002
|
-
var _ref6 = currentFields || {},
|
|
1003
|
-
_ref6$type = _ref6.type,
|
|
1004
|
-
fieldType = _ref6$type === void 0 ? null : _ref6$type,
|
|
1005
|
-
_ref6$fields = _ref6.fields,
|
|
1006
|
-
currentSubFields = _ref6$fields === void 0 ? null : _ref6$fields,
|
|
1007
|
-
_ref6$itemsField = _ref6.itemsField,
|
|
1008
|
-
currentItemsField = _ref6$itemsField === void 0 ? null : _ref6$itemsField;
|
|
1009
|
-
var fieldsDef = fieldType !== null ? fieldsManager.getDefinition(fieldType) : currentFields;
|
|
1010
|
-
var _ref7 = fieldsDef || {},
|
|
1011
|
-
_ref7$fields = _ref7.fields,
|
|
1012
|
-
defSubFields = _ref7$fields === void 0 ? null : _ref7$fields,
|
|
1013
|
-
_ref7$settings = _ref7.settings,
|
|
1014
|
-
settings = _ref7$settings === void 0 ? null : _ref7$settings,
|
|
1015
|
-
_ref7$itemsField = _ref7.itemsField,
|
|
1016
|
-
defItemsField = _ref7$itemsField === void 0 ? null : _ref7$itemsField,
|
|
1017
|
-
_ref7$component = _ref7.component,
|
|
1018
|
-
defComponent = _ref7$component === void 0 ? null : _ref7$component;
|
|
1019
|
-
var _ref8 = fieldsComponentManager.getComponent(defComponent) || {},
|
|
1020
|
-
_ref8$withForm = _ref8.withForm,
|
|
1021
|
-
withForm = _ref8$withForm === void 0 ? false : _ref8$withForm;
|
|
1022
|
-
var itemsField = currentItemsField || defItemsField;
|
|
1023
|
-
var subFields = currentSubFields || defSubFields;
|
|
1024
|
-
var finalSubField = subFields !== null ? getFieldByName(subFields, key) : null;
|
|
1025
|
-
var finalSettingsField = settings !== null ? getFieldByName(settings, key) : null;
|
|
1026
|
-
var isCurrentSubField = finalSubField !== null;
|
|
1027
|
-
var isCurrentSettingsField = finalSettingsField !== null;
|
|
1028
|
-
var isListItems = itemsField !== null && !!key.match(/^[0-9]+$/);
|
|
1029
|
-
var isLastIndex = keyIndex === lastKeyIndex;
|
|
1030
|
-
var pathPrefix = route('screen.field', {
|
|
1031
|
-
screen: screenId,
|
|
1032
|
-
field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex + 1))).filter(function (it) {
|
|
1033
|
-
return it !== null;
|
|
1034
|
-
})
|
|
1035
|
-
});
|
|
1036
|
-
var pathSuffix = isLastIndex && form !== null ? "/".concat(form) : '';
|
|
1037
|
-
var addNewItem = isLastIndex || isListItems;
|
|
1038
|
-
var itemPath = "".concat(pathPrefix).concat(pathSuffix);
|
|
1039
|
-
if (parentItem !== null && (withForm || isCurrentSettingsField)) {
|
|
1040
|
-
fieldItems.push(_objectSpread(_objectSpread({}, parentItem), {}, {
|
|
1041
|
-
url: isCurrentSettingsField ? route('screen.field.form', {
|
|
1042
|
-
screen: screenId,
|
|
1043
|
-
field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex))).filter(function (it) {
|
|
1044
|
-
return it !== null;
|
|
1045
|
-
}),
|
|
1046
|
-
form: 'settings'
|
|
1047
|
-
}) : route('screen.field', {
|
|
1048
|
-
screen: screenId,
|
|
1049
|
-
field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex))).filter(function (it) {
|
|
1050
|
-
return it !== null;
|
|
1051
|
-
})
|
|
1052
|
-
})
|
|
1053
|
-
}));
|
|
1054
|
-
}
|
|
1055
|
-
var nextField = null;
|
|
1056
|
-
if (isCurrentSubField) {
|
|
1057
|
-
nextField = finalSubField;
|
|
1058
|
-
} else if (isCurrentSettingsField) {
|
|
1059
|
-
nextField = finalSettingsField;
|
|
1060
|
-
} else if (isListItems) {
|
|
1061
|
-
nextField = itemsField;
|
|
1062
|
-
}
|
|
1063
|
-
var fieldLabel = nextField ? nextField.breadcrumbLabel || nextField.label : null;
|
|
1064
|
-
var itemLabel = utils.isMessage(fieldLabel) ? intl.formatMessage(fieldLabel) : fieldLabel;
|
|
1065
|
-
var _ref9 = parentItem || {},
|
|
1066
|
-
_ref9$label = _ref9.label,
|
|
1067
|
-
parentItemLabel = _ref9$label === void 0 ? null : _ref9$label;
|
|
1068
|
-
var finalItemLabel = isListItems ? "".concat(itemLabel, " #").concat(parseInt(key, 10) + 1) : itemLabel || parentItemLabel;
|
|
1069
|
-
var item = {
|
|
1070
|
-
url: itemPath,
|
|
1071
|
-
label: finalItemLabel || '',
|
|
1072
|
-
active: false
|
|
1073
|
-
};
|
|
1074
|
-
if (addNewItem) {
|
|
1075
|
-
fieldItems.push(item);
|
|
1076
|
-
}
|
|
1077
|
-
parentItem = !addNewItem ? item : null;
|
|
1078
|
-
return nextField;
|
|
1079
|
-
}, {
|
|
1080
|
-
fields: stateId === null ? screenFields : screenFields.filter(function (_ref10) {
|
|
1081
|
-
var _ref10$stateId = _ref10.stateId,
|
|
1082
|
-
fieldStateId = _ref10$stateId === void 0 ? null : _ref10$stateId;
|
|
1083
|
-
return fieldStateId === null || fieldStateId === stateId;
|
|
1084
|
-
})
|
|
1085
|
-
});
|
|
1086
|
-
}
|
|
1087
|
-
var _ref11 = screenParameters || {},
|
|
1088
|
-
_ref11$metadata = _ref11.metadata,
|
|
1089
|
-
metadata = _ref11$metadata === void 0 ? null : _ref11$metadata;
|
|
1090
|
-
var _ref12 = metadata || {},
|
|
1091
|
-
_ref12$title = _ref12.title,
|
|
1092
|
-
title = _ref12$title === void 0 ? null : _ref12$title;
|
|
1093
|
-
var typeTitle = screenTitle !== null ? /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, screenTitle) : null;
|
|
1094
|
-
var parametersMessage = intl.formatMessage({
|
|
1095
|
-
id: "AHvHaY",
|
|
1096
|
-
defaultMessage: [{
|
|
1097
|
-
"type": 0,
|
|
1098
|
-
"value": "Parameters"
|
|
1099
|
-
}]
|
|
1100
|
-
});
|
|
1101
|
-
var defaultLabel = (fieldItems || []).length === 0 ? title || typeTitle || parametersMessage : parametersMessage;
|
|
1102
|
-
var finalItems = [currentState === null || (currentState.repeatable || false) === false ? {
|
|
1103
|
-
label: currentState !== null ? currentState.label : defaultLabel,
|
|
1104
|
-
url: currentState !== null ? route('screen.field', {
|
|
1105
|
-
screen: screenId,
|
|
1106
|
-
field: currentState.id
|
|
1107
|
-
}) : route('screen', {
|
|
1108
|
-
screen: screenId
|
|
1109
|
-
}),
|
|
1110
|
-
active: false
|
|
1111
|
-
} : null].concat(fieldItems).filter(function (it) {
|
|
1112
|
-
return it !== null;
|
|
1113
|
-
});
|
|
1114
|
-
var lastItemsIndex = finalItems.length - 1;
|
|
1115
|
-
return finalItems.map(function (it, index) {
|
|
1116
|
-
return index === lastItemsIndex ? _objectSpread(_objectSpread({}, it), {}, {
|
|
1117
|
-
url: url,
|
|
1118
|
-
active: true
|
|
1119
|
-
}) : it;
|
|
1120
|
-
});
|
|
1121
|
-
}, [intl, route, screenId, field, form, url, screenFields, screenStates, screenTitle, fieldsManager]);
|
|
1122
|
-
var itemsLength = items.length;
|
|
1123
|
-
var onClickBack = React.useCallback(function () {
|
|
1124
|
-
setLocation(items[itemsLength - 2].url);
|
|
1125
|
-
}, [items, setLocation, itemsLength]);
|
|
1126
|
-
var withBack = itemsLength > 1;
|
|
1127
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, withBack ? /*#__PURE__*/React.createElement(components.BackButton, {
|
|
1128
|
-
onClick: onClickBack,
|
|
1129
|
-
className: "me-2 py-0"
|
|
1130
|
-
}) : null, /*#__PURE__*/React.createElement(components.Breadcrumb, {
|
|
1131
|
-
items: items,
|
|
1132
|
-
theme: "secondary",
|
|
1133
|
-
withoutBar: true,
|
|
1134
|
-
noWrap: true,
|
|
1135
|
-
className: classNames([styles$h.container, 'text-truncate', _defineProperty({}, className, className !== null)])
|
|
1136
|
-
}));
|
|
1137
|
-
};
|
|
1138
|
-
Breadcrumb.propTypes = propTypes$l;
|
|
1139
|
-
Breadcrumb.defaultProps = defaultProps$l;
|
|
1140
|
-
var Breadcrumb$1 = Breadcrumb;
|
|
1141
|
-
|
|
1142
|
-
var styles$g = {"container":"micromag-editor-modals-delete-screen-container","description":"micromag-editor-modals-delete-screen-description","actions":"micromag-editor-modals-delete-screen-actions"};
|
|
1143
|
-
|
|
1144
|
-
var propTypes$k = {
|
|
1145
|
-
className: PropTypes.string,
|
|
1146
|
-
onConfirm: PropTypes.func,
|
|
1147
|
-
onCancel: PropTypes.func
|
|
1148
|
-
};
|
|
1149
|
-
var defaultProps$k = {
|
|
1150
|
-
className: null,
|
|
1151
|
-
onConfirm: null,
|
|
1152
|
-
onCancel: null
|
|
1153
|
-
};
|
|
1154
|
-
var DeleteScreenModal = function DeleteScreenModal(_ref) {
|
|
1155
|
-
var className = _ref.className,
|
|
1156
|
-
onConfirm = _ref.onConfirm,
|
|
1157
|
-
onCancel = _ref.onCancel;
|
|
1158
|
-
return /*#__PURE__*/React.createElement(components.Modal, null, /*#__PURE__*/React.createElement(components.ModalDialog, {
|
|
1159
|
-
title: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1160
|
-
id: "p6q/+/",
|
|
1161
|
-
defaultMessage: [{
|
|
1162
|
-
"type": 0,
|
|
1163
|
-
"value": "Delete screen"
|
|
1164
|
-
}]
|
|
1165
|
-
}),
|
|
1166
|
-
className: classNames([styles$g.container, _defineProperty({}, className, className)]),
|
|
1167
|
-
onClose: onCancel
|
|
1168
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1169
|
-
className: styles$g.description
|
|
1170
|
-
}, /*#__PURE__*/React.createElement(components.Label, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1171
|
-
id: "q/tLk0",
|
|
1172
|
-
defaultMessage: [{
|
|
1173
|
-
"type": 0,
|
|
1174
|
-
"value": "Are you sure you want to delete this screen?"
|
|
1175
|
-
}]
|
|
1176
|
-
}))), /*#__PURE__*/React.createElement("div", {
|
|
1177
|
-
className: styles$g.actions
|
|
1178
|
-
}, /*#__PURE__*/React.createElement(components.Button, {
|
|
1179
|
-
onClick: onCancel,
|
|
1180
|
-
className: "btn-outline-secondary me-2"
|
|
1181
|
-
}, /*#__PURE__*/React.createElement(components.Label, null, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1182
|
-
id: "0GT0SI",
|
|
1183
|
-
defaultMessage: [{
|
|
1184
|
-
"type": 0,
|
|
1185
|
-
"value": "Cancel"
|
|
1186
|
-
}]
|
|
1187
|
-
}))), /*#__PURE__*/React.createElement(components.Button, {
|
|
1188
|
-
onClick: onConfirm,
|
|
1189
|
-
theme: "danger",
|
|
1190
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1191
|
-
id: "gRxcTc",
|
|
1192
|
-
defaultMessage: [{
|
|
1193
|
-
"type": 0,
|
|
1194
|
-
"value": "Delete screen"
|
|
1195
|
-
}]
|
|
1196
|
-
})
|
|
1197
|
-
}))));
|
|
1198
|
-
};
|
|
1199
|
-
DeleteScreenModal.propTypes = propTypes$k;
|
|
1200
|
-
DeleteScreenModal.defaultProps = defaultProps$k;
|
|
1201
|
-
var DeleteScreenModal$1 = DeleteScreenModal;
|
|
1202
|
-
|
|
1203
|
-
var styles$f = {"panel":"micromag-editor-form-panel","exit":"micromag-editor-form-exit","content":"micromag-editor-form-content","navbar":"micromag-editor-form-navbar","enterRight":"micromag-editor-form-enterRight","enterLeft":"micromag-editor-form-enterLeft","enterTop":"micromag-editor-form-enterTop","enterBottom":"micromag-editor-form-enterBottom","enterActiveHorizontal":"micromag-editor-form-enterActiveHorizontal","enterActiveVertical":"micromag-editor-form-enterActiveVertical","exitActiveRight":"micromag-editor-form-exitActiveRight","exitActiveLeft":"micromag-editor-form-exitActiveLeft","exitActiveTop":"micromag-editor-form-exitActiveTop","exitActiveBottom":"micromag-editor-form-exitActiveBottom"};
|
|
1204
|
-
|
|
1205
|
-
var propTypes$j = {
|
|
1206
|
-
value: PropTypes.oneOfType([core.PropTypes.story, core.PropTypes.theme]),
|
|
1207
|
-
isTheme: PropTypes.bool,
|
|
1208
|
-
className: PropTypes.string,
|
|
1209
|
-
onChange: PropTypes.func
|
|
1210
|
-
};
|
|
1211
|
-
var defaultProps$j = {
|
|
1212
|
-
value: null,
|
|
1213
|
-
isTheme: false,
|
|
1214
|
-
className: null,
|
|
1215
|
-
onChange: null
|
|
1216
|
-
};
|
|
1217
|
-
var EditForm = function EditForm(_ref) {
|
|
1218
|
-
var value = _ref.value,
|
|
1219
|
-
isTheme = _ref.isTheme,
|
|
1220
|
-
className = _ref.className,
|
|
1221
|
-
onChange = _ref.onChange;
|
|
1222
|
-
// Match routes
|
|
1223
|
-
var _useLocation = useLocation(),
|
|
1224
|
-
_useLocation2 = _slicedToArray(_useLocation, 2),
|
|
1225
|
-
setLocation = _useLocation2[1];
|
|
1226
|
-
var routePush = contexts.useRoutePush();
|
|
1227
|
-
var _useRouteParams = useRouteParams(),
|
|
1228
|
-
url = _useRouteParams.url,
|
|
1229
|
-
_useRouteParams$scree = _useRouteParams.screen,
|
|
1230
|
-
screenId = _useRouteParams$scree === void 0 ? null : _useRouteParams$scree,
|
|
1231
|
-
_useRouteParams$field = _useRouteParams.field,
|
|
1232
|
-
fieldParams = _useRouteParams$field === void 0 ? null : _useRouteParams$field,
|
|
1233
|
-
_useRouteParams$form = _useRouteParams.form,
|
|
1234
|
-
formParams = _useRouteParams$form === void 0 ? null : _useRouteParams$form;
|
|
1235
|
-
|
|
1236
|
-
// Get screen
|
|
1237
|
-
var _ref2 = value || {},
|
|
1238
|
-
_ref2$components = _ref2.components,
|
|
1239
|
-
screens = _ref2$components === void 0 ? [] : _ref2$components;
|
|
1240
|
-
var screenIndex = screens.findIndex(function (it) {
|
|
1241
|
-
return it.id === screenId;
|
|
1242
|
-
});
|
|
1243
|
-
var screen = screenIndex !== -1 ? screens[screenIndex] : null;
|
|
1244
|
-
var screensManager = contexts.useScreensManager();
|
|
1245
|
-
var screenFields = React.useMemo(function () {
|
|
1246
|
-
var _ref3 = screen || {},
|
|
1247
|
-
type = _ref3.type;
|
|
1248
|
-
var definition = type !== null ? screensManager.getDefinition(type) : null;
|
|
1249
|
-
return definition != null ? utils.getScreenFieldsWithStates(definition) : [];
|
|
1250
|
-
}, [screensManager, screen]);
|
|
1251
|
-
|
|
1252
|
-
// Get transition value
|
|
1253
|
-
var _useFormTransition = useFormTransition(url, screenIndex, styles$f),
|
|
1254
|
-
transitionClassNames = _useFormTransition.classNames,
|
|
1255
|
-
transitionTimeout = _useFormTransition.timeout;
|
|
1256
|
-
var _useState = React.useState(false),
|
|
1257
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1258
|
-
screenSettingsOpened = _useState2[0],
|
|
1259
|
-
setScreenSettingsOpened = _useState2[1];
|
|
1260
|
-
var _useState3 = React.useState(false),
|
|
1261
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
1262
|
-
deleteScreenModalOpened = _useState4[0],
|
|
1263
|
-
setDeleteScreenModalOpened = _useState4[1];
|
|
1264
|
-
var _useState5 = React.useState({}),
|
|
1265
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
1266
|
-
fieldForms = _useState6[0],
|
|
1267
|
-
setFieldForms = _useState6[1];
|
|
1268
|
-
var _useState7 = React.useState(null),
|
|
1269
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
1270
|
-
fieldContext = _useState8[0],
|
|
1271
|
-
setFieldContext = _useState8[1];
|
|
1272
|
-
|
|
1273
|
-
// Callbacks
|
|
1274
|
-
var gotoFieldForm = React.useCallback(function () {
|
|
1275
|
-
var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1276
|
-
var formName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1277
|
-
var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1278
|
-
var hasField = field !== null;
|
|
1279
|
-
var fieldRoute = formName !== null ? 'screen.field.form' : 'screen.field';
|
|
1280
|
-
var _ref4 = field !== null ? field.split('.') : [],
|
|
1281
|
-
_ref5 = _slicedToArray(_ref4, 1),
|
|
1282
|
-
_ref5$ = _ref5[0],
|
|
1283
|
-
rootFieldName = _ref5$ === void 0 ? null : _ref5$;
|
|
1284
|
-
var _ref6 = fieldParams !== null ? fieldParams.split('/') : [],
|
|
1285
|
-
_ref7 = _slicedToArray(_ref6, 1),
|
|
1286
|
-
_ref7$ = _ref7[0],
|
|
1287
|
-
currentStateId = _ref7$ === void 0 ? null : _ref7$;
|
|
1288
|
-
var _ref8 = (rootFieldName !== null ? screenFields.find(function (_ref9) {
|
|
1289
|
-
var name = _ref9.name,
|
|
1290
|
-
fieldStateId = _ref9.stateId;
|
|
1291
|
-
return name === rootFieldName && currentStateId === fieldStateId;
|
|
1292
|
-
}) || null : null) || {},
|
|
1293
|
-
_ref8$stateId = _ref8.stateId,
|
|
1294
|
-
stateId = _ref8$stateId === void 0 ? null : _ref8$stateId;
|
|
1295
|
-
routePush(hasField ? fieldRoute : 'screen', {
|
|
1296
|
-
screen: screenId,
|
|
1297
|
-
field: field !== null ? [stateId].concat(_toConsumableArray(field.split('.'))).filter(function (it) {
|
|
1298
|
-
return it !== null;
|
|
1299
|
-
}) : null,
|
|
1300
|
-
form: formName !== null ? utils.slug(formName) : null
|
|
1301
|
-
});
|
|
1302
|
-
var nextFieldForms = _objectSpread(_objectSpread({}, fieldForms), {}, _defineProperty({}, "".concat(field).concat(formName !== null ? ":".concat(formName) : ''), url));
|
|
1303
|
-
setFieldForms(nextFieldForms);
|
|
1304
|
-
setFieldContext(context);
|
|
1305
|
-
}, [routePush, screenId, screenFields, fieldParams, url, fieldForms, setFieldForms, fieldContext, setFieldContext]);
|
|
1306
|
-
var closeFieldForm = React.useCallback(function (field) {
|
|
1307
|
-
var formName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1308
|
-
var fieldKey = "".concat(field).concat(formName !== null ? ":".concat(formName) : '');
|
|
1309
|
-
var pastUrl = fieldForms[fieldKey] || null;
|
|
1310
|
-
if (pastUrl !== null) {
|
|
1311
|
-
setLocation(pastUrl);
|
|
1312
|
-
}
|
|
1313
|
-
setFieldForms(Object.keys(fieldForms).reduce(function (map, key) {
|
|
1314
|
-
return key !== fieldKey ? _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, key, fieldForms[key])) : map;
|
|
1315
|
-
}, {}));
|
|
1316
|
-
}, [setLocation, screenId, fieldForms, setFieldForms]);
|
|
1317
|
-
var triggerOnChange = React.useCallback(function (newValue) {
|
|
1318
|
-
if (onChange !== null) {
|
|
1319
|
-
onChange(newValue);
|
|
1320
|
-
}
|
|
1321
|
-
}, [onChange]);
|
|
1322
|
-
var onScreenFormChange = React.useCallback(function (newScreenValue) {
|
|
1323
|
-
triggerOnChange(updateScreen(value, newScreenValue));
|
|
1324
|
-
}, [value, triggerOnChange]);
|
|
1325
|
-
var onClickDuplicate = React.useCallback(function () {
|
|
1326
|
-
triggerOnChange(duplicateScreen(value, screenId, screenIndex));
|
|
1327
|
-
setScreenSettingsOpened(false);
|
|
1328
|
-
}, [value, screenId, screenIndex, triggerOnChange, setScreenSettingsOpened]);
|
|
1329
|
-
var onClickDelete = React.useCallback(function () {
|
|
1330
|
-
setDeleteScreenModalOpened(true);
|
|
1331
|
-
setScreenSettingsOpened(false);
|
|
1332
|
-
}, [setScreenSettingsOpened, setDeleteScreenModalOpened]);
|
|
1333
|
-
var onSettingsClick = React.useCallback(function () {
|
|
1334
|
-
setScreenSettingsOpened(!screenSettingsOpened);
|
|
1335
|
-
}, [screenSettingsOpened, setScreenSettingsOpened]);
|
|
1336
|
-
var onDropdownClickOutside = React.useCallback(function () {
|
|
1337
|
-
setScreenSettingsOpened(false);
|
|
1338
|
-
}, [setScreenSettingsOpened]);
|
|
1339
|
-
var onDeleteScreenConfirm = React.useCallback(function () {
|
|
1340
|
-
var current = screens.findIndex(function (_ref10) {
|
|
1341
|
-
var _ref10$id = _ref10.id,
|
|
1342
|
-
scrId = _ref10$id === void 0 ? null : _ref10$id;
|
|
1343
|
-
return scrId === screenId;
|
|
1344
|
-
}) || 0;
|
|
1345
|
-
var previous = screens.find(function (_ref11, i) {
|
|
1346
|
-
var _ref11$id = _ref11.id,
|
|
1347
|
-
scrId = _ref11$id === void 0 ? null : _ref11$id;
|
|
1348
|
-
return scrId !== screenId && (i === current - 1 || current === 0);
|
|
1349
|
-
}) || null;
|
|
1350
|
-
if (previous !== null) {
|
|
1351
|
-
var _ref12 = previous || {},
|
|
1352
|
-
_ref12$id = _ref12.id,
|
|
1353
|
-
firstScreenId = _ref12$id === void 0 ? null : _ref12$id;
|
|
1354
|
-
routePush('screen', {
|
|
1355
|
-
screen: firstScreenId
|
|
1356
|
-
});
|
|
1357
|
-
}
|
|
1358
|
-
triggerOnChange(deleteScreen(value, screenId));
|
|
1359
|
-
setDeleteScreenModalOpened(false);
|
|
1360
|
-
}, [value, triggerOnChange, screenId, setScreenSettingsOpened, routePush, screens]);
|
|
1361
|
-
var onDeleteScreenCancel = React.useCallback(function () {
|
|
1362
|
-
setDeleteScreenModalOpened(false);
|
|
1363
|
-
}, [setDeleteScreenModalOpened]);
|
|
1364
|
-
var dropdownItems = [!isTheme ? {
|
|
1365
|
-
id: 'duplicate',
|
|
1366
|
-
type: 'button',
|
|
1367
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1368
|
-
id: "IBjY5r",
|
|
1369
|
-
defaultMessage: [{
|
|
1370
|
-
"type": 0,
|
|
1371
|
-
"value": "Duplicate screen"
|
|
1372
|
-
}]
|
|
1373
|
-
}),
|
|
1374
|
-
onClick: onClickDuplicate
|
|
1375
|
-
} : null, {
|
|
1376
|
-
id: 'delete',
|
|
1377
|
-
type: 'button',
|
|
1378
|
-
label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1379
|
-
id: "hpiKce",
|
|
1380
|
-
defaultMessage: [{
|
|
1381
|
-
"type": 0,
|
|
1382
|
-
"value": "Delete screen"
|
|
1383
|
-
}]
|
|
1384
|
-
}),
|
|
1385
|
-
onClick: onClickDelete
|
|
1386
|
-
}].filter(function (it) {
|
|
1387
|
-
return it !== null;
|
|
1388
|
-
});
|
|
1389
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1390
|
-
className: classNames(['d-flex', 'flex-column', className])
|
|
1391
|
-
}, screenId !== null ? /*#__PURE__*/React.createElement(components.Navbar, {
|
|
1392
|
-
compact: true,
|
|
1393
|
-
noWrap: true,
|
|
1394
|
-
withoutCollapse: true,
|
|
1395
|
-
className: classNames(['sticky-top', 'border-bottom', 'border-dark', styles$f.navbar])
|
|
1396
|
-
}, /*#__PURE__*/React.createElement(Breadcrumb$1, {
|
|
1397
|
-
story: value,
|
|
1398
|
-
url: url,
|
|
1399
|
-
screenId: screenId,
|
|
1400
|
-
field: fieldParams,
|
|
1401
|
-
form: formParams,
|
|
1402
|
-
className: "me-auto"
|
|
1403
|
-
}), fieldParams === null ? /*#__PURE__*/React.createElement("div", {
|
|
1404
|
-
className: "dropdown"
|
|
1405
|
-
}, /*#__PURE__*/React.createElement(SettingsButton$1, {
|
|
1406
|
-
onClick: onSettingsClick,
|
|
1407
|
-
dots: true,
|
|
1408
|
-
className: "py-0",
|
|
1409
|
-
theme: "default"
|
|
1410
|
-
}), /*#__PURE__*/React.createElement(components.DropdownMenu, {
|
|
1411
|
-
align: "end",
|
|
1412
|
-
items: dropdownItems,
|
|
1413
|
-
visible: screenSettingsOpened,
|
|
1414
|
-
onClickOutside: onDropdownClickOutside
|
|
1415
|
-
})) : null) : null, /*#__PURE__*/React.createElement("div", {
|
|
1416
|
-
className: classNames(['flex-grow-1', 'd-flex', 'w-100', styles$f.content])
|
|
1417
|
-
}, screen !== null ? /*#__PURE__*/React.createElement(reactTransitionGroup.TransitionGroup, {
|
|
1418
|
-
className: "w-100 flex-grow-1",
|
|
1419
|
-
childFactory: function childFactory(child) {
|
|
1420
|
-
return /*#__PURE__*/React.cloneElement(child, {
|
|
1421
|
-
classNames: transitionClassNames
|
|
1422
|
-
});
|
|
1423
|
-
}
|
|
1424
|
-
}, fieldParams !== null ? /*#__PURE__*/React.createElement(reactTransitionGroup.CSSTransition, {
|
|
1425
|
-
timeout: transitionTimeout,
|
|
1426
|
-
key: "field-".concat(fieldParams, "-").concat(formParams)
|
|
1427
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1428
|
-
className: classNames(['w-100', styles$f.panel])
|
|
1429
|
-
}, /*#__PURE__*/React.createElement(contexts.ScreenProvider, {
|
|
1430
|
-
data: screen
|
|
1431
|
-
}, /*#__PURE__*/React.createElement(FieldWithContexts$1, {
|
|
1432
|
-
name: fieldParams.replace(/\//g, '.'),
|
|
1433
|
-
value: screen,
|
|
1434
|
-
form: formParams,
|
|
1435
|
-
className: styles$f.form,
|
|
1436
|
-
gotoFieldForm: gotoFieldForm,
|
|
1437
|
-
closeFieldForm: closeFieldForm,
|
|
1438
|
-
fieldContext: fieldContext,
|
|
1439
|
-
onChange: onScreenFormChange
|
|
1440
|
-
})))) : /*#__PURE__*/React.createElement(reactTransitionGroup.CSSTransition, {
|
|
1441
|
-
classNames: transitionClassNames,
|
|
1442
|
-
timeout: transitionTimeout,
|
|
1443
|
-
key: "screen-".concat(screen.id)
|
|
1444
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1445
|
-
className: classNames(['w-100', styles$f.panel]),
|
|
1446
|
-
key: "screen-".concat(screen.id)
|
|
1447
|
-
}, /*#__PURE__*/React.createElement(contexts.ScreenProvider, {
|
|
1448
|
-
data: screen
|
|
1449
|
-
}, /*#__PURE__*/React.createElement(ScreenForm$1, {
|
|
1450
|
-
value: screen,
|
|
1451
|
-
className: styles$f.form,
|
|
1452
|
-
onChange: onScreenFormChange,
|
|
1453
|
-
gotoFieldForm: gotoFieldForm,
|
|
1454
|
-
closeFieldForm: closeFieldForm
|
|
1455
|
-
}))))) : /*#__PURE__*/React.createElement(components.Empty, {
|
|
1456
|
-
className: "w-100 m-2"
|
|
1457
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
1458
|
-
id: "QfpTKK",
|
|
1459
|
-
defaultMessage: [{
|
|
1460
|
-
"type": 0,
|
|
1461
|
-
"value": "Select a screen..."
|
|
1462
|
-
}],
|
|
1463
|
-
decription: "Indication to select a screen to view the form"
|
|
1464
|
-
}))), deleteScreenModalOpened ? /*#__PURE__*/React.createElement(DeleteScreenModal$1, {
|
|
1465
|
-
onConfirm: onDeleteScreenConfirm,
|
|
1466
|
-
onCancel: onDeleteScreenCancel
|
|
1467
|
-
}) : null);
|
|
1468
|
-
};
|
|
1469
|
-
EditForm.propTypes = propTypes$j;
|
|
1470
|
-
EditForm.defaultProps = defaultProps$j;
|
|
1471
|
-
var EditorForm = EditForm;
|
|
1472
|
-
|
|
1473
|
-
function useScreenStates(screen) {
|
|
1474
|
-
var _ref = screen || {},
|
|
1475
|
-
type = _ref.type;
|
|
1476
|
-
var screensManager = contexts.useScreensManager();
|
|
1477
|
-
var states = React.useMemo(function () {
|
|
1478
|
-
var definition = screensManager.getDefinition(type) || null;
|
|
1479
|
-
var _ref2 = definition || {},
|
|
1480
|
-
_ref2$states = _ref2.states,
|
|
1481
|
-
screenStates = _ref2$states === void 0 ? null : _ref2$states;
|
|
1482
|
-
return screenStates;
|
|
1483
|
-
}, [screensManager, type]);
|
|
1484
|
-
return states;
|
|
1485
|
-
}
|
|
1486
|
-
|
|
1487
|
-
var _excluded$7 = ["components"];
|
|
1488
|
-
var useThemeValue = function useThemeValue(value) {
|
|
1489
|
-
var isTheme = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1490
|
-
var valueWithTheme = React.useMemo(function () {
|
|
1491
|
-
if (!isTheme) {
|
|
1492
|
-
return value;
|
|
1493
|
-
}
|
|
1494
|
-
var _ref = value || {};
|
|
1495
|
-
_ref.components;
|
|
1496
|
-
var themeValue = _objectWithoutProperties(_ref, _excluded$7);
|
|
1497
|
-
return value !== null ? _objectSpread({
|
|
1498
|
-
theme: themeValue
|
|
1499
|
-
}, value) : value;
|
|
1500
|
-
}, [value, isTheme]);
|
|
1501
|
-
return valueWithTheme;
|
|
1502
|
-
};
|
|
1503
|
-
|
|
1504
|
-
var styles$e = {"container":"micromag-editor-menus-devices-container","button":"micromag-editor-menus-devices-button"};
|
|
1505
|
-
|
|
1506
|
-
/* eslint-disable react/button-has-type, react/jsx-props-no-spreading */
|
|
1507
|
-
var propTypes$i = {
|
|
1508
|
-
color: PropTypes.string,
|
|
1509
|
-
className: PropTypes.string
|
|
1510
|
-
};
|
|
1511
|
-
var defaultProps$i = {
|
|
1512
|
-
color: 'currentColor',
|
|
1513
|
-
className: null
|
|
1514
|
-
};
|
|
1515
|
-
var DesktopIcon = function DesktopIcon(_ref) {
|
|
1516
|
-
var color = _ref.color,
|
|
1517
|
-
className = _ref.className;
|
|
1518
|
-
return /*#__PURE__*/React.createElement("svg", {
|
|
1519
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1520
|
-
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
1521
|
-
version: "1.1",
|
|
1522
|
-
x: "0px",
|
|
1523
|
-
y: "0px",
|
|
1524
|
-
width: "100px",
|
|
1525
|
-
height: "100px",
|
|
1526
|
-
viewBox: "0 0 100 100",
|
|
1527
|
-
xmlSpace: "preserve",
|
|
1528
|
-
className: className
|
|
1529
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
1530
|
-
fill: color,
|
|
1531
|
-
d: "M84 17H16c-3.3 0-6 2.7-6 6v42c0 3.3 2.7 6 6 6h22v4.2c-.1.4-.9 1.5-1.3 2-1.1 1.4-2.2 2.8-1.4 4.4.3.7 1.1 1.4 2.7 1.4h23c1 0 3.3 0 4.1-1.8.8-1.8-.6-3.2-1.8-4.5-.4-.5-1.1-1.2-1.3-1.6V71h22c3.3 0 6-2.7 6-6V23c0-3.3-2.7-6-6-6zM40.3 79c.9-1.1 1.7-2.4 1.7-3.8V71h16v4.2c0 1.4 1 2.7 2 3.8H40.3zM86 65c0 1.1-.9 2-2 2H16c-1.1 0-2-.9-2-2v-6h72v6zm0-10H14V23c0-1.1.9-2 2-2h68c1.1 0 2 .9 2 2v32z"
|
|
1532
|
-
}));
|
|
1533
|
-
};
|
|
1534
|
-
DesktopIcon.propTypes = propTypes$i;
|
|
1535
|
-
DesktopIcon.defaultProps = defaultProps$i;
|
|
1536
|
-
var DesktopIcon$1 = DesktopIcon;
|
|
1537
|
-
|
|
1538
|
-
/* eslint-disable react/button-has-type, react/jsx-props-no-spreading */
|
|
1539
|
-
var propTypes$h = {
|
|
1540
|
-
color: PropTypes.string,
|
|
1541
|
-
className: PropTypes.string
|
|
1542
|
-
};
|
|
1543
|
-
var defaultProps$h = {
|
|
1544
|
-
color: 'currentColor',
|
|
1545
|
-
className: null
|
|
1546
|
-
};
|
|
1547
|
-
var MobileIcon = function MobileIcon(_ref) {
|
|
1548
|
-
var color = _ref.color,
|
|
1549
|
-
className = _ref.className;
|
|
1550
|
-
return /*#__PURE__*/React.createElement("svg", {
|
|
1551
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1552
|
-
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
1553
|
-
version: "1.1",
|
|
1554
|
-
x: "0px",
|
|
1555
|
-
y: "0px",
|
|
1556
|
-
width: "100px",
|
|
1557
|
-
height: "100px",
|
|
1558
|
-
viewBox: "0 0 100 100",
|
|
1559
|
-
xmlSpace: "preserve",
|
|
1560
|
-
className: className
|
|
1561
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
1562
|
-
fill: color,
|
|
1563
|
-
d: "M66 11H34c-3.3 0-6 2.7-6 6v66c0 3.3 2.7 6 6 6h32c3.3 0 6-2.7 6-6V17c0-3.3-2.7-6-6-6zm2 72c0 1.1-.9 2-2 2H34c-1.1 0-2-.9-2-2v-4h36v4zm0-8H32V25h36v50zm0-54H32v-4c0-1.1.9-2 2-2h32c1.1 0 2 .9 2 2v4z"
|
|
1564
|
-
}));
|
|
1565
|
-
};
|
|
1566
|
-
MobileIcon.propTypes = propTypes$h;
|
|
1567
|
-
MobileIcon.defaultProps = defaultProps$h;
|
|
1568
|
-
var MobileIcon$1 = MobileIcon;
|
|
1569
|
-
|
|
1570
|
-
var DeviceIcons = /*#__PURE__*/Object.freeze({
|
|
1571
|
-
__proto__: null,
|
|
1572
|
-
Desktop: DesktopIcon$1,
|
|
1573
|
-
Mobile: MobileIcon$1
|
|
1574
|
-
});
|
|
1575
|
-
|
|
1576
|
-
var styles$d = {"container":"micromag-editor-buttons-device-container","icon":"micromag-editor-buttons-device-icon"};
|
|
1577
|
-
|
|
1578
|
-
var _excluded$6 = ["device", "className", "iconComponents"];
|
|
1579
|
-
var propTypes$g = {
|
|
1580
|
-
device: PropTypes.string.isRequired,
|
|
1581
|
-
iconComponents: core.PropTypes.components,
|
|
1582
|
-
className: PropTypes.string
|
|
1583
|
-
};
|
|
1584
|
-
var defaultProps$g = {
|
|
1585
|
-
iconComponents: DeviceIcons,
|
|
1586
|
-
className: null
|
|
1587
|
-
};
|
|
1588
|
-
var DeviceButton = function DeviceButton(_ref) {
|
|
1589
|
-
var device = _ref.device,
|
|
1590
|
-
className = _ref.className,
|
|
1591
|
-
iconComponents = _ref.iconComponents,
|
|
1592
|
-
props = _objectWithoutProperties(_ref, _excluded$6);
|
|
1593
|
-
var DeviceIcon = utils.getComponentFromName(device, iconComponents, DesktopIcon$1);
|
|
1594
|
-
return /*#__PURE__*/React.createElement(components.Button, Object.assign({
|
|
1595
|
-
className: classNames([styles$d.container, _defineProperty({}, className, className !== null)])
|
|
1596
|
-
}, props), /*#__PURE__*/React.createElement(DeviceIcon, {
|
|
1597
|
-
className: styles$d.icon
|
|
1598
|
-
}));
|
|
1599
|
-
};
|
|
1600
|
-
DeviceButton.propTypes = propTypes$g;
|
|
1601
|
-
DeviceButton.defaultProps = defaultProps$g;
|
|
1602
|
-
var DeviceButton$1 = DeviceButton;
|
|
1603
|
-
|
|
1604
|
-
var _excluded$5 = ["id"];
|
|
1605
|
-
var propTypes$f = {
|
|
1606
|
-
items: core.PropTypes.menuItems,
|
|
1607
|
-
className: PropTypes.string,
|
|
1608
|
-
onClickItem: PropTypes.func
|
|
1609
|
-
};
|
|
1610
|
-
var defaultProps$f = {
|
|
1611
|
-
items: [],
|
|
1612
|
-
className: null,
|
|
1613
|
-
onClickItem: null
|
|
1614
|
-
};
|
|
1615
|
-
var DevicesMenu = function DevicesMenu(_ref) {
|
|
1616
|
-
var items = _ref.items,
|
|
1617
|
-
className = _ref.className,
|
|
1618
|
-
onClickItem = _ref.onClickItem;
|
|
1619
|
-
return /*#__PURE__*/React.createElement(components.Tabs, {
|
|
1620
|
-
items: items,
|
|
1621
|
-
theme: "outline-secondary",
|
|
1622
|
-
className: classNames([styles$e.container, _defineProperty({}, className, className !== null)]),
|
|
1623
|
-
renderItemButton: function renderItemButton(item, index, props) {
|
|
1624
|
-
var id = item.id,
|
|
1625
|
-
itemProps = _objectWithoutProperties(item, _excluded$5);
|
|
1626
|
-
return /*#__PURE__*/React.createElement(DeviceButton$1, Object.assign({
|
|
1627
|
-
device: id
|
|
1628
|
-
}, props, itemProps, {
|
|
1629
|
-
className: styles$e.button,
|
|
1630
|
-
onClick: function onClick(e) {
|
|
1631
|
-
return onClickItem !== null ? onClickItem(e, item, index) : null;
|
|
1632
|
-
}
|
|
1633
|
-
}));
|
|
1634
|
-
}
|
|
1635
|
-
});
|
|
1636
|
-
};
|
|
1637
|
-
DevicesMenu.propTypes = propTypes$f;
|
|
1638
|
-
DevicesMenu.defaultProps = defaultProps$f;
|
|
1639
|
-
var DevicesMenu$1 = DevicesMenu;
|
|
1640
|
-
|
|
1641
|
-
var styles$c = {"container":"micromag-editor-buttons-screen-container","button":"micromag-editor-buttons-screen-button","screen":"micromag-editor-buttons-screen-screen","inner":"micromag-editor-buttons-screen-inner","border":"micromag-editor-buttons-screen-border","icon":"micromag-editor-buttons-screen-icon","label":"micromag-editor-buttons-screen-label","active":"micromag-editor-buttons-screen-active"};
|
|
1642
|
-
|
|
1643
|
-
var propTypes$e = {
|
|
1644
|
-
active: PropTypes.bool,
|
|
1645
|
-
id: PropTypes.string,
|
|
1646
|
-
href: PropTypes.string,
|
|
1647
|
-
label: core.PropTypes.label,
|
|
1648
|
-
icon: PropTypes.node,
|
|
1649
|
-
title: PropTypes.string,
|
|
1650
|
-
onClick: PropTypes.func,
|
|
1651
|
-
children: PropTypes.node,
|
|
1652
|
-
refButton: PropTypes.shape({
|
|
1653
|
-
current: PropTypes.any // eslint-disable-line
|
|
1654
|
-
}),
|
|
1655
|
-
className: PropTypes.string
|
|
1656
|
-
};
|
|
1657
|
-
var defaultProps$e = {
|
|
1658
|
-
active: false,
|
|
1659
|
-
id: null,
|
|
1660
|
-
href: null,
|
|
1661
|
-
label: null,
|
|
1662
|
-
icon: null,
|
|
1663
|
-
title: null,
|
|
1664
|
-
onClick: null,
|
|
1665
|
-
children: null,
|
|
1666
|
-
refButton: null,
|
|
1667
|
-
className: null
|
|
1668
|
-
};
|
|
1669
|
-
var ScreenButton = function ScreenButton(_ref) {
|
|
1670
|
-
var active = _ref.active,
|
|
1671
|
-
id = _ref.id,
|
|
1672
|
-
href = _ref.href,
|
|
1673
|
-
className = _ref.className,
|
|
1674
|
-
label = _ref.label,
|
|
1675
|
-
icon = _ref.icon,
|
|
1676
|
-
children = _ref.children,
|
|
1677
|
-
title = _ref.title,
|
|
1678
|
-
onClick = _ref.onClick,
|
|
1679
|
-
refButton = _ref.refButton;
|
|
1680
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1681
|
-
className: classNames([styles$c.container, 'rounded', _defineProperty(_defineProperty({}, styles$c.active, active), className, className !== null)])
|
|
1682
|
-
}, children !== null ? children : /*#__PURE__*/React.createElement("div", {
|
|
1683
|
-
className: styles$c.screen
|
|
1684
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1685
|
-
className: styles$c.inner
|
|
1686
|
-
}, icon !== null ? /*#__PURE__*/React.createElement("div", {
|
|
1687
|
-
className: styles$c.icon
|
|
1688
|
-
}, icon) : null, label !== null ? /*#__PURE__*/React.createElement("div", {
|
|
1689
|
-
className: styles$c.label
|
|
1690
|
-
}, label) : null)), /*#__PURE__*/React.createElement(components.Button, {
|
|
1691
|
-
className: styles$c.button,
|
|
1692
|
-
withoutStyle: true,
|
|
1693
|
-
id: id,
|
|
1694
|
-
href: href,
|
|
1695
|
-
title: title,
|
|
1696
|
-
onClick: onClick,
|
|
1697
|
-
refButton: refButton
|
|
1698
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
1699
|
-
className: classNames([styles$c.border, 'rounded'])
|
|
1700
|
-
})));
|
|
1701
|
-
};
|
|
1702
|
-
ScreenButton.propTypes = propTypes$e;
|
|
1703
|
-
ScreenButton.defaultProps = defaultProps$e;
|
|
1704
|
-
var ScreenButton$1 = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
1705
|
-
return /*#__PURE__*/React.createElement(ScreenButton, Object.assign({}, props, {
|
|
1706
|
-
refButton: ref
|
|
1707
|
-
}));
|
|
1708
|
-
});
|
|
1709
|
-
|
|
1710
|
-
var styles$b = {"button":"micromag-editor-buttons-screen-with-preview-button","name":"micromag-editor-buttons-screen-with-preview-name","index":"micromag-editor-buttons-screen-with-preview-index","deleteButton":"micromag-editor-buttons-screen-with-preview-deleteButton","withIndex":"micromag-editor-buttons-screen-with-preview-withIndex"};
|
|
1711
|
-
|
|
1712
|
-
var propTypes$d = {
|
|
1713
|
-
screen: core.PropTypes.screenComponent,
|
|
1714
|
-
screenState: PropTypes.string,
|
|
1715
|
-
index: PropTypes.number.isRequired,
|
|
1716
|
-
href: PropTypes.string,
|
|
1717
|
-
title: PropTypes.string,
|
|
1718
|
-
active: PropTypes.bool,
|
|
1719
|
-
withPlaceholder: PropTypes.bool,
|
|
1720
|
-
withIndexIndicator: PropTypes.bool,
|
|
1721
|
-
withName: PropTypes.bool,
|
|
1722
|
-
withDeleteButtonOnRepeatables: PropTypes.bool,
|
|
1723
|
-
onClick: PropTypes.func,
|
|
1724
|
-
onClickItem: PropTypes.func,
|
|
1725
|
-
onDeleteButtonClick: PropTypes.func,
|
|
1726
|
-
className: PropTypes.string
|
|
1727
|
-
};
|
|
1728
|
-
var defaultProps$d = {
|
|
1729
|
-
screen: null,
|
|
1730
|
-
screenState: null,
|
|
1731
|
-
title: null,
|
|
1732
|
-
href: null,
|
|
1733
|
-
active: false,
|
|
1734
|
-
withPlaceholder: false,
|
|
1735
|
-
withIndexIndicator: false,
|
|
1736
|
-
withName: false,
|
|
1737
|
-
withDeleteButtonOnRepeatables: false,
|
|
1738
|
-
onClick: null,
|
|
1739
|
-
onClickItem: null,
|
|
1740
|
-
onDeleteButtonClick: null,
|
|
1741
|
-
className: null
|
|
1742
|
-
};
|
|
1743
|
-
var ScreenWithPreview = function ScreenWithPreview(_ref) {
|
|
1744
|
-
var screen = _ref.screen,
|
|
1745
|
-
screenState = _ref.screenState,
|
|
1746
|
-
index = _ref.index,
|
|
1747
|
-
title = _ref.title,
|
|
1748
|
-
href = _ref.href,
|
|
1749
|
-
active = _ref.active,
|
|
1750
|
-
className = _ref.className,
|
|
1751
|
-
_onClick = _ref.onClick,
|
|
1752
|
-
onClickItem = _ref.onClickItem,
|
|
1753
|
-
withName = _ref.withName,
|
|
1754
|
-
withPlaceholder = _ref.withPlaceholder,
|
|
1755
|
-
withIndexIndicator = _ref.withIndexIndicator,
|
|
1756
|
-
withDeleteButtonOnRepeatables = _ref.withDeleteButtonOnRepeatables,
|
|
1757
|
-
onDeleteButtonClick = _ref.onDeleteButtonClick;
|
|
1758
|
-
var intl = reactIntl.useIntl();
|
|
1759
|
-
var _useIsVisible = hooks.useIsVisible({
|
|
1760
|
-
threshold: 0.1
|
|
1761
|
-
}),
|
|
1762
|
-
ref = _useIsVisible.ref,
|
|
1763
|
-
visible = _useIsVisible.visible;
|
|
1764
|
-
var ScreenComponent = withPlaceholder ? components.ScreenPlaceholder : components.ScreenPreview;
|
|
1765
|
-
var finalTitle = utils.isMessage(title) ? intl.formatMessage(title) : title || null;
|
|
1766
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1767
|
-
ref: ref
|
|
1768
|
-
}, /*#__PURE__*/React.createElement(ScreenButton$1, {
|
|
1769
|
-
href: href,
|
|
1770
|
-
active: active,
|
|
1771
|
-
className: classNames([styles$b.button, _defineProperty(_defineProperty({}, className, className !== null), styles$b.withIndex, withIndexIndicator || withName)]),
|
|
1772
|
-
title: finalTitle,
|
|
1773
|
-
onClick: function onClick() {
|
|
1774
|
-
if (_onClick !== null) {
|
|
1775
|
-
_onClick(screen, index);
|
|
1776
|
-
}
|
|
1777
|
-
if (onClickItem !== null) {
|
|
1778
|
-
onClickItem(screen, index);
|
|
1779
|
-
}
|
|
1780
|
-
}
|
|
1781
|
-
}, /*#__PURE__*/React.createElement(ScreenComponent, {
|
|
1782
|
-
screen: screen,
|
|
1783
|
-
screenState: screenState,
|
|
1784
|
-
className: styles$b.screen,
|
|
1785
|
-
hidden: !visible,
|
|
1786
|
-
withSize: true
|
|
1787
|
-
}), index !== null && withIndexIndicator ? /*#__PURE__*/React.createElement("div", {
|
|
1788
|
-
className: styles$b.index
|
|
1789
|
-
}, index + 1) : null, withName && !withIndexIndicator ? /*#__PURE__*/React.createElement("div", {
|
|
1790
|
-
className: styles$b.name
|
|
1791
|
-
}, finalTitle || null) : null, withDeleteButtonOnRepeatables ? /*#__PURE__*/React.createElement("div", {
|
|
1792
|
-
className: styles$b.deleteButton,
|
|
1793
|
-
onClick: onDeleteButtonClick
|
|
1794
|
-
}, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
1795
|
-
icon: faTimesCircle.faTimesCircle
|
|
1796
|
-
})) : null));
|
|
1797
|
-
};
|
|
1798
|
-
ScreenWithPreview.propTypes = propTypes$d;
|
|
1799
|
-
ScreenWithPreview.defaultProps = defaultProps$d;
|
|
1800
|
-
var ScreenWithPreview$1 = ScreenWithPreview;
|
|
1801
|
-
|
|
1802
|
-
var styles$a = {"container":"micromag-editor-partials-screen-states-container","button":"micromag-editor-partials-screen-states-button","addButton":"micromag-editor-partials-screen-states-addButton","title":"micromag-editor-partials-screen-states-title"};
|
|
1803
|
-
|
|
1804
|
-
var propTypes$c = {
|
|
1805
|
-
screen: core.PropTypes.screen.isRequired,
|
|
1806
|
-
screenState: PropTypes.string,
|
|
1807
|
-
value: core.PropTypes.story.isRequired,
|
|
1808
|
-
className: PropTypes.string,
|
|
1809
|
-
onChange: PropTypes.func
|
|
1810
|
-
};
|
|
1811
|
-
var defaultProps$c = {
|
|
1812
|
-
screenState: null,
|
|
1813
|
-
className: null,
|
|
1814
|
-
onChange: null
|
|
1815
|
-
};
|
|
1816
|
-
function ScreenStates(_ref) {
|
|
1817
|
-
var screen = _ref.screen,
|
|
1818
|
-
value = _ref.value,
|
|
1819
|
-
className = _ref.className,
|
|
1820
|
-
onChange = _ref.onChange;
|
|
1821
|
-
var url = contexts.useUrlGenerator();
|
|
1822
|
-
var push = contexts.useRoutePush();
|
|
1823
|
-
var _useRouteParams = useRouteParams(),
|
|
1824
|
-
_useRouteParams$scree = _useRouteParams.screen,
|
|
1825
|
-
screenParam = _useRouteParams$scree === void 0 ? null : _useRouteParams$scree,
|
|
1826
|
-
_useRouteParams$field = _useRouteParams.field,
|
|
1827
|
-
field = _useRouteParams$field === void 0 ? null : _useRouteParams$field;
|
|
1828
|
-
var states = useScreenStates(screen);
|
|
1829
|
-
var _ref2 = field !== null ? field.split('/') : [],
|
|
1830
|
-
_ref3 = _toArray(_ref2),
|
|
1831
|
-
_ref3$ = _ref3[0],
|
|
1832
|
-
stateParam = _ref3$ === void 0 ? null : _ref3$,
|
|
1833
|
-
stateIndexes = _ref3.slice(1);
|
|
1834
|
-
var stateIndex = stateIndexes.find(function (it) {
|
|
1835
|
-
return it.match(/^[0-9]+$/) !== null;
|
|
1836
|
-
}) || null;
|
|
1837
|
-
var currentState = stateParam !== null && states.findIndex(function (_ref4) {
|
|
1838
|
-
var id = _ref4.id;
|
|
1839
|
-
return id === stateParam;
|
|
1840
|
-
}) !== -1 ? stateParam : null;
|
|
1841
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1842
|
-
className: classNames([styles$a.container, _defineProperty({}, className, className !== null)])
|
|
1843
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1844
|
-
className: "d-flex align-items-end m-n1"
|
|
1845
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1846
|
-
className: "p-1 align-self-stretch d-flex flex-column"
|
|
1847
|
-
}, /*#__PURE__*/React.createElement("h6", {
|
|
1848
|
-
className: classNames(['fw-normal', 'invisible', styles$a.title])
|
|
1849
|
-
}, "Settings"), /*#__PURE__*/React.createElement(components.Button, {
|
|
1850
|
-
className: classNames([styles$a.button, 'p-0', 'flex-grow-1', 'justify-content-center']),
|
|
1851
|
-
theme: screenParam !== null && field === null ? 'primary' : 'secondary',
|
|
1852
|
-
outline: screenParam === null || field !== null,
|
|
1853
|
-
size: "lg",
|
|
1854
|
-
icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
1855
|
-
icon: faCogs.faCogs
|
|
1856
|
-
}),
|
|
1857
|
-
href: url('screen', {
|
|
1858
|
-
screen: screen.id
|
|
1859
|
-
})
|
|
1860
|
-
})), states.map(function (state) {
|
|
1861
|
-
var id = state.id,
|
|
1862
|
-
_state$label = state.label,
|
|
1863
|
-
label = _state$label === void 0 ? null : _state$label,
|
|
1864
|
-
_state$repeatable = state.repeatable,
|
|
1865
|
-
repeatable = _state$repeatable === void 0 ? false : _state$repeatable,
|
|
1866
|
-
_state$withoutCreate = state.withoutCreate,
|
|
1867
|
-
withoutCreate = _state$withoutCreate === void 0 ? false : _state$withoutCreate,
|
|
1868
|
-
_state$fieldName = state.fieldName,
|
|
1869
|
-
fieldName = _state$fieldName === void 0 ? null : _state$fieldName;
|
|
1870
|
-
var repeatableItems = repeatable ? screen[fieldName || id] || [] : null;
|
|
1871
|
-
var onClickAdd = function onClickAdd() {
|
|
1872
|
-
var _ref6 = value || {},
|
|
1873
|
-
_ref6$components = _ref6.components,
|
|
1874
|
-
currentComponentsValue = _ref6$components === void 0 ? [] : _ref6$components;
|
|
1875
|
-
var currentScreenIndex = currentComponentsValue.findIndex(function (_ref7) {
|
|
1876
|
-
var screenId = _ref7.id;
|
|
1877
|
-
return screen.id === screenId;
|
|
1878
|
-
});
|
|
1879
|
-
var currentScreenValue = currentComponentsValue[currentScreenIndex] || {};
|
|
1880
|
-
var currentFieldValue = currentScreenValue[fieldName || id] || [];
|
|
1881
|
-
var newValue = _objectSpread(_objectSpread({}, value), {}, {
|
|
1882
|
-
components: [].concat(_toConsumableArray(currentComponentsValue.slice(0, currentScreenIndex)), [_objectSpread(_objectSpread({}, currentScreenValue), {}, _defineProperty({}, fieldName || id, [].concat(_toConsumableArray(currentFieldValue), [{}])))], _toConsumableArray(currentComponentsValue.slice(currentScreenIndex + 1)))
|
|
1883
|
-
});
|
|
1884
|
-
if (onChange !== null) {
|
|
1885
|
-
onChange(newValue);
|
|
1886
|
-
}
|
|
1887
|
-
push('screen.field', {
|
|
1888
|
-
screen: screen.id,
|
|
1889
|
-
field: [id, currentFieldValue.length]
|
|
1890
|
-
});
|
|
1891
|
-
};
|
|
1892
|
-
var onClickDelete = function onClickDelete(indexToDelete) {
|
|
1893
|
-
var _ref8 = value || {},
|
|
1894
|
-
_ref8$components = _ref8.components,
|
|
1895
|
-
currentComponentsValue = _ref8$components === void 0 ? [] : _ref8$components;
|
|
1896
|
-
var currentScreenIndex = currentComponentsValue.findIndex(function (_ref9) {
|
|
1897
|
-
var screenId = _ref9.id;
|
|
1898
|
-
return screen.id === screenId;
|
|
1899
|
-
});
|
|
1900
|
-
var currentScreenValue = currentComponentsValue[currentScreenIndex] || {};
|
|
1901
|
-
currentScreenValue[fieldName || id] || [];
|
|
1902
|
-
var newValue = _objectSpread(_objectSpread({}, value), {}, {
|
|
1903
|
-
components: [].concat(_toConsumableArray(currentComponentsValue.slice(0, currentScreenIndex)), [_objectSpread(_objectSpread({}, currentScreenValue), {}, _defineProperty({}, fieldName || id, (currentScreenValue[fieldName || id] || []).filter(function (_, index) {
|
|
1904
|
-
return index !== indexToDelete;
|
|
1905
|
-
})))], _toConsumableArray(currentComponentsValue.slice(currentScreenIndex + 1)))
|
|
1906
|
-
});
|
|
1907
|
-
if (onChange !== null) {
|
|
1908
|
-
onChange(newValue);
|
|
1909
|
-
}
|
|
1910
|
-
push('screen', {
|
|
1911
|
-
screen: screen.id
|
|
1912
|
-
});
|
|
1913
|
-
};
|
|
1914
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1915
|
-
className: "p-1 align-self-stretch d-flex flex-column"
|
|
1916
|
-
}, /*#__PURE__*/React.createElement("h6", {
|
|
1917
|
-
className: classNames(['fw-normal', 'text-body-secondary', styles$a.title])
|
|
1918
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, label)), repeatable ? /*#__PURE__*/React.createElement("ul", {
|
|
1919
|
-
className: "d-flex list-unstyled m-n1 flex-grow-1"
|
|
1920
|
-
}, repeatableItems.map(function (item, index) {
|
|
1921
|
-
return /*#__PURE__*/React.createElement("li", {
|
|
1922
|
-
className: "p-1"
|
|
1923
|
-
}, /*#__PURE__*/React.createElement(ScreenWithPreview$1, {
|
|
1924
|
-
index: index,
|
|
1925
|
-
withIndexIndicator: true,
|
|
1926
|
-
withDeleteButtonOnRepeatables: true,
|
|
1927
|
-
screen: screen,
|
|
1928
|
-
screenState: "".concat(id, ".").concat(index),
|
|
1929
|
-
className: styles$a.button,
|
|
1930
|
-
active: currentState !== null && id === currentState.split('.')[0] && stateIndex !== null && parseInt(stateIndex, 10) === index,
|
|
1931
|
-
href: url('screen.field', {
|
|
1932
|
-
screen: screen.id,
|
|
1933
|
-
field: [id, index]
|
|
1934
|
-
}),
|
|
1935
|
-
onDeleteButtonClick: function onDeleteButtonClick() {
|
|
1936
|
-
return onClickDelete(index);
|
|
1937
|
-
}
|
|
1938
|
-
}));
|
|
1939
|
-
}), !withoutCreate ? /*#__PURE__*/React.createElement("li", {
|
|
1940
|
-
className: "p-1"
|
|
1941
|
-
}, /*#__PURE__*/React.createElement(components.Button, {
|
|
1942
|
-
className: classNames([styles$a.button, styles$a.addButton, 'h-100', 'p-0', 'justify-content-center']),
|
|
1943
|
-
theme: "secondary",
|
|
1944
|
-
outline: true,
|
|
1945
|
-
size: "lg",
|
|
1946
|
-
icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
1947
|
-
icon: faPlus.faPlus
|
|
1948
|
-
}),
|
|
1949
|
-
onClick: onClickAdd
|
|
1950
|
-
})) : null) : /*#__PURE__*/React.createElement(ScreenWithPreview$1, {
|
|
1951
|
-
screen: screen,
|
|
1952
|
-
screenState: id,
|
|
1953
|
-
className: styles$a.button,
|
|
1954
|
-
active: id === currentState,
|
|
1955
|
-
href: url('screen.field', {
|
|
1956
|
-
screen: screen.id,
|
|
1957
|
-
field: id
|
|
1958
|
-
})
|
|
1959
|
-
// onClick={() => {
|
|
1960
|
-
// if (onStateChange !== null) {
|
|
1961
|
-
// onStateChange(id);
|
|
1962
|
-
// }
|
|
1963
|
-
// }}
|
|
1964
|
-
}));
|
|
1965
|
-
})));
|
|
1966
|
-
}
|
|
1967
|
-
ScreenStates.propTypes = propTypes$c;
|
|
1968
|
-
ScreenStates.defaultProps = defaultProps$c;
|
|
1969
|
-
|
|
1970
|
-
var styles$9 = {"container":"micromag-editor-preview-container","story":"micromag-editor-preview-story","noStory":"micromag-editor-preview-noStory","inner":"micromag-editor-preview-inner","top":"micromag-editor-preview-top","bottom":"micromag-editor-preview-bottom","preview":"micromag-editor-preview-preview","viewerContainer":"micromag-editor-preview-viewerContainer","devices":"micromag-editor-preview-devices"};
|
|
1971
|
-
|
|
1972
|
-
var propTypes$b = {
|
|
1973
|
-
value: PropTypes.oneOfType([core.PropTypes.story, core.PropTypes.theme]),
|
|
1974
|
-
devices: core.PropTypes.devices,
|
|
1975
|
-
device: PropTypes.string,
|
|
1976
|
-
viewerTheme: core.PropTypes.viewerTheme,
|
|
1977
|
-
isTheme: PropTypes.bool,
|
|
1978
|
-
className: PropTypes.string,
|
|
1979
|
-
onScreenChange: PropTypes.func,
|
|
1980
|
-
onChange: PropTypes.func,
|
|
1981
|
-
withoutDevicesSizes: PropTypes.bool
|
|
1982
|
-
};
|
|
1983
|
-
var defaultProps$b = {
|
|
1984
|
-
value: null,
|
|
1985
|
-
devices: [{
|
|
1986
|
-
id: 'mobile',
|
|
1987
|
-
width: 320,
|
|
1988
|
-
height: 480
|
|
1989
|
-
}, {
|
|
1990
|
-
id: 'desktop',
|
|
1991
|
-
width: 1200,
|
|
1992
|
-
height: 900
|
|
1993
|
-
}],
|
|
1994
|
-
device: 'mobile',
|
|
1995
|
-
viewerTheme: null,
|
|
1996
|
-
isTheme: false,
|
|
1997
|
-
className: null,
|
|
1998
|
-
onScreenChange: null,
|
|
1999
|
-
onChange: null,
|
|
2000
|
-
withoutDevicesSizes: true
|
|
2001
|
-
};
|
|
2002
|
-
var EditorPreview = function EditorPreview(_ref) {
|
|
2003
|
-
var value = _ref.value,
|
|
2004
|
-
viewerTheme = _ref.viewerTheme,
|
|
2005
|
-
isTheme = _ref.isTheme,
|
|
2006
|
-
devices = _ref.devices,
|
|
2007
|
-
initialDevice = _ref.device,
|
|
2008
|
-
className = _ref.className,
|
|
2009
|
-
onScreenChange = _ref.onScreenChange,
|
|
2010
|
-
onChange = _ref.onChange,
|
|
2011
|
-
withoutDevicesSizes = _ref.withoutDevicesSizes;
|
|
2012
|
-
var _useRouteParams = useRouteParams(),
|
|
2013
|
-
_useRouteParams$scree = _useRouteParams.screen,
|
|
2014
|
-
screenId = _useRouteParams$scree === void 0 ? null : _useRouteParams$scree,
|
|
2015
|
-
_useRouteParams$field = _useRouteParams.field,
|
|
2016
|
-
fieldParam = _useRouteParams$field === void 0 ? null : _useRouteParams$field;
|
|
2017
|
-
var _useScreenSize = contexts.useScreenSize(),
|
|
2018
|
-
_useScreenSize$screen = _useScreenSize.screen,
|
|
2019
|
-
screen = _useScreenSize$screen === void 0 ? null : _useScreenSize$screen,
|
|
2020
|
-
_useScreenSize$screen2 = _useScreenSize.screens,
|
|
2021
|
-
screens = _useScreenSize$screen2 === void 0 ? [] : _useScreenSize$screen2;
|
|
2022
|
-
var valueWithTheme = useThemeValue(value, isTheme);
|
|
2023
|
-
// const valueParsed = valueWithTheme;
|
|
2024
|
-
var valueParsed = hooks.useParsedStory(valueWithTheme, {
|
|
2025
|
-
withTheme: isTheme,
|
|
2026
|
-
withMedias: false
|
|
2027
|
-
});
|
|
2028
|
-
|
|
2029
|
-
// Get device
|
|
2030
|
-
var _useState = React.useState(initialDevice || devices[0].id),
|
|
2031
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2032
|
-
deviceId = _useState2[0],
|
|
2033
|
-
setDeviceId = _useState2[1];
|
|
2034
|
-
var onClickDeviceItem = React.useCallback(function (e, it) {
|
|
2035
|
-
return setDeviceId(it.id);
|
|
2036
|
-
}, [setDeviceId]);
|
|
2037
|
-
var device = React.useMemo(function () {
|
|
2038
|
-
return devices.find(function (it) {
|
|
2039
|
-
return it.id === deviceId;
|
|
2040
|
-
});
|
|
2041
|
-
}, [devices, deviceId]);
|
|
2042
|
-
|
|
2043
|
-
// Calculate preview style
|
|
2044
|
-
var _useDimensionObserver = hooks.useDimensionObserver(),
|
|
2045
|
-
bottomRef = _useDimensionObserver.ref,
|
|
2046
|
-
_useDimensionObserver2 = _useDimensionObserver.width,
|
|
2047
|
-
bottomWidth = _useDimensionObserver2 === void 0 ? 0 : _useDimensionObserver2,
|
|
2048
|
-
_useDimensionObserver3 = _useDimensionObserver.height,
|
|
2049
|
-
bottomHeight = _useDimensionObserver3 === void 0 ? 0 : _useDimensionObserver3;
|
|
2050
|
-
var previewStyle = React.useMemo(function () {
|
|
2051
|
-
if (withoutDevicesSizes && initialDevice === null) {
|
|
2052
|
-
return {};
|
|
2053
|
-
}
|
|
2054
|
-
var deviceWidth = device.width,
|
|
2055
|
-
deviceHeight = device.height;
|
|
2056
|
-
var maxWidth = screen === 'mobile' ? bottomWidth : deviceWidth;
|
|
2057
|
-
var maxHeight = screen === 'mobile' ? bottomHeight : deviceHeight;
|
|
2058
|
-
var _getSizeWithinBounds = size.getSizeWithinBounds(maxWidth, maxHeight, bottomWidth, bottomHeight),
|
|
2059
|
-
previewScale = _getSizeWithinBounds.scale;
|
|
2060
|
-
return {
|
|
2061
|
-
width: maxWidth * previewScale,
|
|
2062
|
-
height: maxHeight * previewScale
|
|
2063
|
-
// transform: `scale(${previewScale}, ${previewScale})`,
|
|
2064
|
-
};
|
|
2065
|
-
}, [device, bottomWidth, bottomHeight, screen, withoutDevicesSizes, initialDevice]);
|
|
2066
|
-
var currentScreen = React.useMemo(function () {
|
|
2067
|
-
var _ref2 = valueParsed || {},
|
|
2068
|
-
_ref2$components = _ref2.components,
|
|
2069
|
-
components = _ref2$components === void 0 ? [] : _ref2$components;
|
|
2070
|
-
return (screenId !== null ? components.find(function (_ref3) {
|
|
2071
|
-
var id = _ref3.id;
|
|
2072
|
-
return id === screenId;
|
|
2073
|
-
}) : components[0]) || null;
|
|
2074
|
-
}, [valueParsed, screenId]);
|
|
2075
|
-
var currentScreenStates = useScreenStates(currentScreen);
|
|
2076
|
-
var _ref4 = fieldParam !== null && currentScreenStates !== null ? fieldParam.split('/') : [],
|
|
2077
|
-
_ref5 = _slicedToArray(_ref4, 1),
|
|
2078
|
-
_ref5$ = _ref5[0],
|
|
2079
|
-
screenStateParam = _ref5$ === void 0 ? null : _ref5$;
|
|
2080
|
-
var currentScreenState = screenStateParam !== null ? currentScreenStates.find(function (_ref6) {
|
|
2081
|
-
var id = _ref6.id;
|
|
2082
|
-
return id === screenStateParam;
|
|
2083
|
-
}) || null : null;
|
|
2084
|
-
var _ref7 = currentScreenState || {},
|
|
2085
|
-
_ref7$id = _ref7.id,
|
|
2086
|
-
screenStateId = _ref7$id === void 0 ? null : _ref7$id,
|
|
2087
|
-
_ref7$repeatable = _ref7.repeatable,
|
|
2088
|
-
repeatable = _ref7$repeatable === void 0 ? false : _ref7$repeatable;
|
|
2089
|
-
var currentScreenStateId = currentScreenState !== null && repeatable ? "".concat(screenStateId, ".").concat(fieldParam.split('/').find(function (it) {
|
|
2090
|
-
return it.match(/^[0-9]+$/) !== null;
|
|
2091
|
-
}) || 0) : screenStateId;
|
|
2092
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2093
|
-
className: classNames([styles$9.container, screens.map(function (screenName) {
|
|
2094
|
-
return styles$9["screen-".concat(screenName)];
|
|
2095
|
-
}), _defineProperty(_defineProperty({}, className, className), styles$9.withoutDevicesSizes, withoutDevicesSizes)])
|
|
2096
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2097
|
-
className: styles$9.inner
|
|
2098
|
-
}, currentScreenStates !== null && currentScreen !== null ? /*#__PURE__*/React.createElement("div", {
|
|
2099
|
-
className: classNames([styles$9.top, 'px-1'])
|
|
2100
|
-
}, /*#__PURE__*/React.createElement(ScreenStates, {
|
|
2101
|
-
screen: currentScreen,
|
|
2102
|
-
screenState: currentScreenStateId,
|
|
2103
|
-
value: value,
|
|
2104
|
-
onChange: onChange
|
|
2105
|
-
})) : null, /*#__PURE__*/React.createElement("div", {
|
|
2106
|
-
className: styles$9.bottom
|
|
2107
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2108
|
-
className: styles$9.inner,
|
|
2109
|
-
ref: bottomRef
|
|
2110
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2111
|
-
className: styles$9.preview,
|
|
2112
|
-
style: previewStyle
|
|
2113
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2114
|
-
className: styles$9.viewerContainer
|
|
2115
|
-
}, /*#__PURE__*/React.createElement(contexts.PlaybackProvider, null, /*#__PURE__*/React.createElement(viewer.Viewer, {
|
|
2116
|
-
story: valueParsed,
|
|
2117
|
-
storyIsParsed: true,
|
|
2118
|
-
screen: screenId,
|
|
2119
|
-
screenState: currentScreenStateId,
|
|
2120
|
-
className: styles$9.story,
|
|
2121
|
-
theme: viewerTheme,
|
|
2122
|
-
interactions: null,
|
|
2123
|
-
renderContext: "edit",
|
|
2124
|
-
onScreenChange: onScreenChange,
|
|
2125
|
-
withoutNavigationArrow: true,
|
|
2126
|
-
withoutTransitions: true,
|
|
2127
|
-
withoutGestures: true,
|
|
2128
|
-
withoutMenu: true
|
|
2129
|
-
})))))), !withoutDevicesSizes ? /*#__PURE__*/React.createElement("div", {
|
|
2130
|
-
className: styles$9.deviceMenu
|
|
2131
|
-
}, /*#__PURE__*/React.createElement(DevicesMenu$1, {
|
|
2132
|
-
items: devices.map(function (it) {
|
|
2133
|
-
return _objectSpread(_objectSpread({}, it), {}, {
|
|
2134
|
-
active: it.id === deviceId
|
|
2135
|
-
});
|
|
2136
|
-
}),
|
|
2137
|
-
onClickItem: onClickDeviceItem,
|
|
2138
|
-
className: styles$9.devices
|
|
2139
|
-
})) : null));
|
|
2140
|
-
};
|
|
2141
|
-
EditorPreview.propTypes = propTypes$b;
|
|
2142
|
-
EditorPreview.defaultProps = defaultProps$b;
|
|
2143
|
-
var EditorPreview$1 = EditorPreview;
|
|
2144
|
-
|
|
2145
|
-
var iOS = /iPad|iPhone|iPod/.test(navigator.platform);
|
|
2146
|
-
function getDragDepth(offset, indentationWidth) {
|
|
2147
|
-
return Math.round(offset / indentationWidth);
|
|
2148
|
-
}
|
|
2149
|
-
function getMaxDepth(_ref) {
|
|
2150
|
-
var previousItem = _ref.previousItem;
|
|
2151
|
-
if (previousItem) {
|
|
2152
|
-
// return previousItem.depth + 1;
|
|
2153
|
-
return 1;
|
|
2154
|
-
}
|
|
2155
|
-
return 0;
|
|
2156
|
-
}
|
|
2157
|
-
function getMinDepth(_ref2) {
|
|
2158
|
-
var nextItem = _ref2.nextItem;
|
|
2159
|
-
if (nextItem) {
|
|
2160
|
-
// return nextItem.depth;
|
|
2161
|
-
return 0;
|
|
2162
|
-
}
|
|
2163
|
-
return 0;
|
|
2164
|
-
}
|
|
2165
|
-
function getProjection(items, activeId, overId, dragOffset, indentationWidth) {
|
|
2166
|
-
var overItemIndex = items.findIndex(function (_ref3) {
|
|
2167
|
-
var id = _ref3.id;
|
|
2168
|
-
return id === overId;
|
|
2169
|
-
});
|
|
2170
|
-
var activeItemIndex = items.findIndex(function (_ref4) {
|
|
2171
|
-
var id = _ref4.id;
|
|
2172
|
-
return id === activeId;
|
|
2173
|
-
});
|
|
2174
|
-
var activeItem = items[activeItemIndex];
|
|
2175
|
-
var newItems = sortable.arrayMove(items, activeItemIndex, overItemIndex);
|
|
2176
|
-
var previousItem = newItems[overItemIndex - 1];
|
|
2177
|
-
var nextItem = newItems[overItemIndex + 1];
|
|
2178
|
-
var dragDepth = getDragDepth(dragOffset, indentationWidth);
|
|
2179
|
-
var projectedDepth = activeItem.depth + dragDepth;
|
|
2180
|
-
var maxDepth = getMaxDepth({
|
|
2181
|
-
previousItem: previousItem
|
|
2182
|
-
});
|
|
2183
|
-
var minDepth = getMinDepth({
|
|
2184
|
-
nextItem: nextItem
|
|
2185
|
-
});
|
|
2186
|
-
var depth = projectedDepth;
|
|
2187
|
-
if (projectedDepth >= maxDepth) {
|
|
2188
|
-
depth = maxDepth;
|
|
2189
|
-
} else if (projectedDepth < minDepth) {
|
|
2190
|
-
depth = minDepth;
|
|
2191
|
-
}
|
|
2192
|
-
function getParentId() {
|
|
2193
|
-
var _newItems$slice$rever;
|
|
2194
|
-
if (depth === 0 || !previousItem) {
|
|
2195
|
-
return null;
|
|
2196
|
-
}
|
|
2197
|
-
if (depth === previousItem.depth) {
|
|
2198
|
-
return previousItem.parentId;
|
|
2199
|
-
}
|
|
2200
|
-
if (depth > previousItem.depth) {
|
|
2201
|
-
return previousItem.id;
|
|
2202
|
-
}
|
|
2203
|
-
var newParent = (_newItems$slice$rever = newItems.slice(0, overItemIndex).reverse().find(function (item) {
|
|
2204
|
-
return item.depth === depth;
|
|
2205
|
-
})) === null || _newItems$slice$rever === void 0 ? void 0 : _newItems$slice$rever.parentId;
|
|
2206
|
-
return newParent !== null && newParent !== void 0 ? newParent : null;
|
|
2207
|
-
}
|
|
2208
|
-
return {
|
|
2209
|
-
depth: depth,
|
|
2210
|
-
maxDepth: maxDepth,
|
|
2211
|
-
minDepth: minDepth,
|
|
2212
|
-
parentId: getParentId()
|
|
2213
|
-
};
|
|
2214
|
-
}
|
|
2215
|
-
function flatten(items) {
|
|
2216
|
-
var parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
2217
|
-
var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
2218
|
-
return items.reduce(function (acc, item, index) {
|
|
2219
|
-
return [].concat(_toConsumableArray(acc), [_objectSpread(_objectSpread({}, item), {}, {
|
|
2220
|
-
parentId: item.parentId || parentId,
|
|
2221
|
-
depth: item.parentId ? 1 : 0,
|
|
2222
|
-
index: index // For some reason this aint enough
|
|
2223
|
-
})], _toConsumableArray(flatten(item.children || [], item.id, depth + 1)));
|
|
2224
|
-
}, []);
|
|
2225
|
-
}
|
|
2226
|
-
function flattenTree(items) {
|
|
2227
|
-
return flatten(items);
|
|
2228
|
-
}
|
|
2229
|
-
function findItem(items, itemId) {
|
|
2230
|
-
return items.find(function (_ref5) {
|
|
2231
|
-
var id = _ref5.id;
|
|
2232
|
-
return id === itemId;
|
|
2233
|
-
});
|
|
2234
|
-
}
|
|
2235
|
-
function buildTree(flattenedItems) {
|
|
2236
|
-
var root = {
|
|
2237
|
-
id: 'root',
|
|
2238
|
-
children: []
|
|
2239
|
-
};
|
|
2240
|
-
var nodes = _defineProperty({}, root.id, root);
|
|
2241
|
-
var items = flattenedItems.map(function (item) {
|
|
2242
|
-
return _objectSpread(_objectSpread({}, item), {}, {
|
|
2243
|
-
children: []
|
|
2244
|
-
});
|
|
2245
|
-
});
|
|
2246
|
-
// console.log('BUILD');
|
|
2247
|
-
var indexes = {};
|
|
2248
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
2249
|
-
var _iterator = _createForOfIteratorHelper(items),
|
|
2250
|
-
_step;
|
|
2251
|
-
try {
|
|
2252
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
2253
|
-
var _item$parentId, _nodes$parentId;
|
|
2254
|
-
var item = _step.value;
|
|
2255
|
-
var id = item.id,
|
|
2256
|
-
children = item.children;
|
|
2257
|
-
var parentId = (_item$parentId = item.parentId) !== null && _item$parentId !== void 0 ? _item$parentId : root.id;
|
|
2258
|
-
var parent = (_nodes$parentId = nodes[parentId]) !== null && _nodes$parentId !== void 0 ? _nodes$parentId : findItem(items, parentId);
|
|
2259
|
-
if (typeof indexes[parentId] !== 'undefined') {
|
|
2260
|
-
indexes[parentId] += 1;
|
|
2261
|
-
} else {
|
|
2262
|
-
indexes[parentId] = 0;
|
|
2263
|
-
}
|
|
2264
|
-
nodes[id] = {
|
|
2265
|
-
id: id,
|
|
2266
|
-
children: children,
|
|
2267
|
-
index: indexes[parentId]
|
|
2268
|
-
};
|
|
2269
|
-
parent.children.push(_objectSpread(_objectSpread({}, item), {}, {
|
|
2270
|
-
index: indexes[parentId]
|
|
2271
|
-
}));
|
|
2272
|
-
}
|
|
2273
|
-
} catch (err) {
|
|
2274
|
-
_iterator.e(err);
|
|
2275
|
-
} finally {
|
|
2276
|
-
_iterator.f();
|
|
2277
|
-
}
|
|
2278
|
-
return root.children;
|
|
2279
|
-
}
|
|
2280
|
-
function findItemDeep(items, itemId) {
|
|
2281
|
-
for (var i = 0; i < items.length; i += 1) {
|
|
2282
|
-
var item = items[i] || {};
|
|
2283
|
-
var id = item.id,
|
|
2284
|
-
_item$children = item.children,
|
|
2285
|
-
children = _item$children === void 0 ? [] : _item$children;
|
|
2286
|
-
if (id === itemId) {
|
|
2287
|
-
return item;
|
|
2288
|
-
}
|
|
2289
|
-
if (children.length > 0) {
|
|
2290
|
-
var child = findItemDeep(children, itemId);
|
|
2291
|
-
if (child) {
|
|
2292
|
-
return child;
|
|
2293
|
-
}
|
|
2294
|
-
}
|
|
2295
|
-
}
|
|
2296
|
-
return undefined;
|
|
2297
|
-
}
|
|
2298
|
-
function removeItem(items, id) {
|
|
2299
|
-
var newItems = [];
|
|
2300
|
-
|
|
2301
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
2302
|
-
var _iterator2 = _createForOfIteratorHelper(items),
|
|
2303
|
-
_step2;
|
|
2304
|
-
try {
|
|
2305
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
2306
|
-
var item = _step2.value;
|
|
2307
|
-
if (item.id === id) {
|
|
2308
|
-
// eslint-disable-next-line no-continue
|
|
2309
|
-
continue;
|
|
2310
|
-
}
|
|
2311
|
-
if (item.children.length) {
|
|
2312
|
-
item.children = removeItem(item.children, id);
|
|
2313
|
-
}
|
|
2314
|
-
newItems.push(item);
|
|
2315
|
-
}
|
|
2316
|
-
} catch (err) {
|
|
2317
|
-
_iterator2.e(err);
|
|
2318
|
-
} finally {
|
|
2319
|
-
_iterator2.f();
|
|
2320
|
-
}
|
|
2321
|
-
return newItems;
|
|
2322
|
-
}
|
|
2323
|
-
function setProperty(items, id, property, setter) {
|
|
2324
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
2325
|
-
var _iterator3 = _createForOfIteratorHelper(items),
|
|
2326
|
-
_step3;
|
|
2327
|
-
try {
|
|
2328
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
2329
|
-
var item = _step3.value;
|
|
2330
|
-
if (item.id === id) {
|
|
2331
|
-
item[property] = setter(item[property]);
|
|
2332
|
-
// eslint-disable-next-line no-continue
|
|
2333
|
-
continue;
|
|
2334
|
-
}
|
|
2335
|
-
if (item.children.length) {
|
|
2336
|
-
item.children = setProperty(item.children, id, property, setter);
|
|
2337
|
-
}
|
|
2338
|
-
}
|
|
2339
|
-
} catch (err) {
|
|
2340
|
-
_iterator3.e(err);
|
|
2341
|
-
} finally {
|
|
2342
|
-
_iterator3.f();
|
|
2343
|
-
}
|
|
2344
|
-
return _toConsumableArray(items);
|
|
2345
|
-
}
|
|
2346
|
-
function countChildren(items) {
|
|
2347
|
-
var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
2348
|
-
return items.reduce(function (acc, _ref6) {
|
|
2349
|
-
var _ref6$children = _ref6.children,
|
|
2350
|
-
children = _ref6$children === void 0 ? [] : _ref6$children;
|
|
2351
|
-
if (children.length) {
|
|
2352
|
-
return countChildren(children, acc + 1);
|
|
2353
|
-
}
|
|
2354
|
-
return acc + 1;
|
|
2355
|
-
}, count);
|
|
2356
|
-
}
|
|
2357
|
-
function getChildCount(items, id) {
|
|
2358
|
-
if (!id) {
|
|
2359
|
-
return 0;
|
|
2360
|
-
}
|
|
2361
|
-
var item = findItemDeep(items, id);
|
|
2362
|
-
return item ? countChildren(item.children || []) : 0;
|
|
2363
|
-
}
|
|
2364
|
-
function removeChildrenOf(items, ids) {
|
|
2365
|
-
var excludeParentIds = _toConsumableArray(ids);
|
|
2366
|
-
return items.filter(function (item) {
|
|
2367
|
-
if (item.parentId && excludeParentIds.includes(item.parentId)) {
|
|
2368
|
-
var _item$children2 = item.children,
|
|
2369
|
-
children = _item$children2 === void 0 ? [] : _item$children2;
|
|
2370
|
-
if (children.length) {
|
|
2371
|
-
excludeParentIds.push(item.id);
|
|
2372
|
-
}
|
|
2373
|
-
return false;
|
|
2374
|
-
}
|
|
2375
|
-
return true;
|
|
2376
|
-
});
|
|
2377
|
-
}
|
|
2378
|
-
|
|
2379
|
-
var directions = [core$1.KeyboardCode.Down, core$1.KeyboardCode.Right, core$1.KeyboardCode.Up, core$1.KeyboardCode.Left];
|
|
2380
|
-
var horizontal = [core$1.KeyboardCode.Left, core$1.KeyboardCode.Right];
|
|
2381
|
-
var sortableTreeKeyboardCoordinates = function sortableTreeKeyboardCoordinates(context, indentationWidth) {
|
|
2382
|
-
return function (event, _ref) {
|
|
2383
|
-
var currentCoordinates = _ref.currentCoordinates,
|
|
2384
|
-
_ref$context = _ref.context,
|
|
2385
|
-
active = _ref$context.active,
|
|
2386
|
-
over = _ref$context.over,
|
|
2387
|
-
collisionRect = _ref$context.collisionRect,
|
|
2388
|
-
droppableContainers = _ref$context.droppableContainers;
|
|
2389
|
-
if (directions.includes(event.code)) {
|
|
2390
|
-
var _droppableContainers$;
|
|
2391
|
-
if (!active || !collisionRect) {
|
|
2392
|
-
return;
|
|
2393
|
-
}
|
|
2394
|
-
event.preventDefault();
|
|
2395
|
-
var _context$current = context.current,
|
|
2396
|
-
items = _context$current.items,
|
|
2397
|
-
offset = _context$current.offset;
|
|
2398
|
-
if (horizontal.includes(event.code) && over !== null && over !== void 0 && over.id) {
|
|
2399
|
-
var _getProjection = getProjection(items, active.id, over.id, offset, indentationWidth),
|
|
2400
|
-
depth = _getProjection.depth,
|
|
2401
|
-
maxDepth = _getProjection.maxDepth,
|
|
2402
|
-
minDepth = _getProjection.minDepth;
|
|
2403
|
-
switch (event.code) {
|
|
2404
|
-
case core$1.KeyboardCode.Left:
|
|
2405
|
-
if (depth > minDepth) {
|
|
2406
|
-
return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
|
|
2407
|
-
x: currentCoordinates.x - indentationWidth
|
|
2408
|
-
});
|
|
2409
|
-
}
|
|
2410
|
-
break;
|
|
2411
|
-
case core$1.KeyboardCode.Right:
|
|
2412
|
-
if (depth < maxDepth) {
|
|
2413
|
-
return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
|
|
2414
|
-
x: currentCoordinates.x + indentationWidth
|
|
2415
|
-
});
|
|
2416
|
-
}
|
|
2417
|
-
break;
|
|
2418
|
-
default:
|
|
2419
|
-
return undefined;
|
|
2420
|
-
}
|
|
2421
|
-
return undefined;
|
|
2422
|
-
}
|
|
2423
|
-
var containers = [];
|
|
2424
|
-
var overRect = over !== null && over !== void 0 && over.id ? (_droppableContainers$ = droppableContainers.get(over.id)) === null || _droppableContainers$ === void 0 ? void 0 : _droppableContainers$.rect.current : undefined;
|
|
2425
|
-
if (overRect) {
|
|
2426
|
-
droppableContainers.forEach(function (container) {
|
|
2427
|
-
if (container !== null && container !== void 0 && container.disabled) {
|
|
2428
|
-
return;
|
|
2429
|
-
}
|
|
2430
|
-
var rect = container === null || container === void 0 ? void 0 : container.rect.current;
|
|
2431
|
-
if (!rect) {
|
|
2432
|
-
return;
|
|
2433
|
-
}
|
|
2434
|
-
switch (event.code) {
|
|
2435
|
-
case core$1.KeyboardCode.Down:
|
|
2436
|
-
if (overRect.top < rect.top) {
|
|
2437
|
-
containers.push(container);
|
|
2438
|
-
}
|
|
2439
|
-
break;
|
|
2440
|
-
case core$1.KeyboardCode.Up:
|
|
2441
|
-
if (overRect.top > rect.top) {
|
|
2442
|
-
containers.push(container);
|
|
2443
|
-
}
|
|
2444
|
-
break;
|
|
2445
|
-
//
|
|
2446
|
-
}
|
|
2447
|
-
});
|
|
2448
|
-
}
|
|
2449
|
-
var collisions = core$1.closestCorners({
|
|
2450
|
-
active: active,
|
|
2451
|
-
collisionRect: collisionRect,
|
|
2452
|
-
pointerCoordinates: null,
|
|
2453
|
-
droppableContainers: containers
|
|
2454
|
-
});
|
|
2455
|
-
var closestId = core$1.getFirstCollision(collisions, 'id');
|
|
2456
|
-
if (closestId && over !== null && over !== void 0 && over.id) {
|
|
2457
|
-
var _droppableContainers$2, _droppableContainers$3;
|
|
2458
|
-
var newNode = (_droppableContainers$2 = droppableContainers.get(closestId)) === null || _droppableContainers$2 === void 0 ? void 0 : _droppableContainers$2.node.current;
|
|
2459
|
-
var activeNodeRect = (_droppableContainers$3 = droppableContainers.get(active.id)) === null || _droppableContainers$3 === void 0 ? void 0 : _droppableContainers$3.rect.current;
|
|
2460
|
-
if (newNode && activeNodeRect) {
|
|
2461
|
-
var newRect = core$1.getClientRect(newNode, {
|
|
2462
|
-
ignoreTransform: true
|
|
2463
|
-
});
|
|
2464
|
-
var newItem = items.find(function (_ref2) {
|
|
2465
|
-
var id = _ref2.id;
|
|
2466
|
-
return id === closestId;
|
|
2467
|
-
});
|
|
2468
|
-
var activeItem = items.find(function (_ref3) {
|
|
2469
|
-
var id = _ref3.id;
|
|
2470
|
-
return id === active.id;
|
|
2471
|
-
});
|
|
2472
|
-
if (newItem && activeItem) {
|
|
2473
|
-
var _getProjection2 = getProjection(items, active.id, closestId, (newItem.depth - activeItem.depth) * indentationWidth, indentationWidth),
|
|
2474
|
-
_depth = _getProjection2.depth;
|
|
2475
|
-
var topOffset = newRect.top > activeNodeRect.top ? Math.abs(activeNodeRect.height - newRect.height) : 0;
|
|
2476
|
-
var newCoordinates = {
|
|
2477
|
-
x: newRect.left + _depth * indentationWidth,
|
|
2478
|
-
y: newRect.top + topOffset
|
|
2479
|
-
};
|
|
2480
|
-
return newCoordinates;
|
|
2481
|
-
}
|
|
2482
|
-
}
|
|
2483
|
-
}
|
|
2484
|
-
}
|
|
2485
|
-
return undefined;
|
|
2486
|
-
};
|
|
2487
|
-
};
|
|
2488
|
-
|
|
2489
|
-
var styles$8 = {"wrapper":"micromag-editor-sortable-sortable-tree-item-actions-wrapper","inner":"micromag-editor-sortable-sortable-tree-item-actions-inner","button":"micromag-editor-sortable-sortable-tree-item-actions-button","handle":"micromag-editor-sortable-sortable-tree-item-actions-handle","icon":"micromag-editor-sortable-sortable-tree-item-actions-icon","text":"micromag-editor-sortable-sortable-tree-item-actions-text","count":"micromag-editor-sortable-sortable-tree-item-actions-count","collapsedCount":"micromag-editor-sortable-sortable-tree-item-actions-collapsedCount","disableInteraction":"micromag-editor-sortable-sortable-tree-item-actions-disableInteraction","disableSelection":"micromag-editor-sortable-sortable-tree-item-actions-disableSelection","clone":"micromag-editor-sortable-sortable-tree-item-actions-clone","collapse":"micromag-editor-sortable-sortable-tree-item-actions-collapse","collapsed":"micromag-editor-sortable-sortable-tree-item-actions-collapsed","children":"micromag-editor-sortable-sortable-tree-item-actions-children","withChildren":"micromag-editor-sortable-sortable-tree-item-actions-withChildren","ghost":"micromag-editor-sortable-sortable-tree-item-actions-ghost","indicator":"micromag-editor-sortable-sortable-tree-item-actions-indicator"};
|
|
2490
|
-
|
|
2491
|
-
var _excluded$4 = ["childCount", "clone", "depth", "disableSelection", "disableInteraction", "ghost", "handleProps", "indentationWidth", "indicator", "collapsed", "onCollapse", "onRemove", "onClick", "style", "value", "wrapperRef", "showId", "showCount", "showCollapsedCount", "children"];
|
|
2492
|
-
var propTypes$a = {
|
|
2493
|
-
childCount: PropTypes.number,
|
|
2494
|
-
clone: PropTypes.bool,
|
|
2495
|
-
collapsed: PropTypes.bool,
|
|
2496
|
-
depth: PropTypes.number.isRequired,
|
|
2497
|
-
disableInteraction: PropTypes.bool,
|
|
2498
|
-
disableSelection: PropTypes.bool,
|
|
2499
|
-
ghost: PropTypes.bool,
|
|
2500
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
2501
|
-
handleProps: PropTypes.any,
|
|
2502
|
-
indicator: PropTypes.bool,
|
|
2503
|
-
indentationWidth: PropTypes.number.isRequired,
|
|
2504
|
-
value: PropTypes.string,
|
|
2505
|
-
onCollapse: PropTypes.func,
|
|
2506
|
-
onRemove: PropTypes.func,
|
|
2507
|
-
onClick: PropTypes.func,
|
|
2508
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
2509
|
-
wrapperRef: PropTypes.any,
|
|
2510
|
-
style: PropTypes.shape({
|
|
2511
|
-
width: PropTypes.number.isRequired,
|
|
2512
|
-
height: PropTypes.number.isRequired,
|
|
2513
|
-
transform: PropTypes.string.isRequired
|
|
2514
|
-
}),
|
|
2515
|
-
showId: PropTypes.bool,
|
|
2516
|
-
showCount: PropTypes.bool,
|
|
2517
|
-
showCollapsedCount: PropTypes.bool,
|
|
2518
|
-
children: PropTypes.node
|
|
2519
|
-
};
|
|
2520
|
-
var defaultProps$a = {
|
|
2521
|
-
childCount: null,
|
|
2522
|
-
clone: false,
|
|
2523
|
-
collapsed: false,
|
|
2524
|
-
disableInteraction: false,
|
|
2525
|
-
disableSelection: false,
|
|
2526
|
-
ghost: false,
|
|
2527
|
-
handleProps: null,
|
|
2528
|
-
indicator: false,
|
|
2529
|
-
value: null,
|
|
2530
|
-
onCollapse: null,
|
|
2531
|
-
onRemove: null,
|
|
2532
|
-
onClick: null,
|
|
2533
|
-
wrapperRef: null,
|
|
2534
|
-
style: null,
|
|
2535
|
-
showId: false,
|
|
2536
|
-
showCount: false,
|
|
2537
|
-
showCollapsedCount: false,
|
|
2538
|
-
children: null
|
|
2539
|
-
};
|
|
2540
|
-
var SortableTreeItemActions = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
2541
|
-
var childCount = _ref.childCount,
|
|
2542
|
-
clone = _ref.clone,
|
|
2543
|
-
depth = _ref.depth,
|
|
2544
|
-
disableSelection = _ref.disableSelection,
|
|
2545
|
-
disableInteraction = _ref.disableInteraction,
|
|
2546
|
-
ghost = _ref.ghost,
|
|
2547
|
-
handleProps = _ref.handleProps,
|
|
2548
|
-
indentationWidth = _ref.indentationWidth,
|
|
2549
|
-
indicator = _ref.indicator,
|
|
2550
|
-
collapsed = _ref.collapsed,
|
|
2551
|
-
onCollapse = _ref.onCollapse,
|
|
2552
|
-
onRemove = _ref.onRemove;
|
|
2553
|
-
_ref.onClick;
|
|
2554
|
-
var style = _ref.style;
|
|
2555
|
-
_ref.value;
|
|
2556
|
-
var wrapperRef = _ref.wrapperRef;
|
|
2557
|
-
_ref.showId;
|
|
2558
|
-
var showCount = _ref.showCount,
|
|
2559
|
-
showCollapsedCount = _ref.showCollapsedCount,
|
|
2560
|
-
children = _ref.children,
|
|
2561
|
-
props = _objectWithoutProperties(_ref, _excluded$4);
|
|
2562
|
-
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
2563
|
-
className: classNames([styles$8.wrapper, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles$8.clone, clone), styles$8.ghost, ghost), styles$8.indicator, indicator), styles$8.disableSelection, disableSelection), styles$8.disableInteraction, disableInteraction), styles$8.withChildren, onCollapse !== null)]),
|
|
2564
|
-
ref: wrapperRef,
|
|
2565
|
-
style: {
|
|
2566
|
-
marginLeft: "".concat(indentationWidth * depth, "px"),
|
|
2567
|
-
marginRight: "".concat(5 * depth, "px")
|
|
2568
|
-
}
|
|
2569
|
-
}, props), /*#__PURE__*/React.createElement("div", {
|
|
2570
|
-
className: styles$8.inner,
|
|
2571
|
-
ref: ref,
|
|
2572
|
-
style: style
|
|
2573
|
-
}, /*#__PURE__*/React.createElement("button", Object.assign({
|
|
2574
|
-
className: classNames([styles$8.button, styles$8.handle]),
|
|
2575
|
-
type: "button"
|
|
2576
|
-
}, handleProps), /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
2577
|
-
className: styles$8.icon,
|
|
2578
|
-
icon: faGripLines.faGripLines
|
|
2579
|
-
})), !clone && onRemove ? /*#__PURE__*/React.createElement("button", {
|
|
2580
|
-
type: "button",
|
|
2581
|
-
onClick: onRemove
|
|
2582
|
-
}, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
2583
|
-
icon: faTimes.faTimes
|
|
2584
|
-
})) : null, clone && showCount && childCount && childCount > 1 ? /*#__PURE__*/React.createElement("span", {
|
|
2585
|
-
className: styles$8.count
|
|
2586
|
-
}, childCount) : null, showCollapsedCount && onCollapse && collapsed && childCount !== null && childCount > 0 ? /*#__PURE__*/React.createElement("span", {
|
|
2587
|
-
className: styles$8.collapsedCount
|
|
2588
|
-
}, childCount) : null, onCollapse && depth === 0 ? /*#__PURE__*/React.createElement("button", {
|
|
2589
|
-
type: "button",
|
|
2590
|
-
onClick: onCollapse,
|
|
2591
|
-
className: classNames(styles$8.button, styles$8.collapse, collapsed && styles$8.collapsed)
|
|
2592
|
-
}, /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
2593
|
-
icon: faAngleDown.faAngleDown
|
|
2594
|
-
})) : null, /*#__PURE__*/React.createElement("div", {
|
|
2595
|
-
className: styles$8.children
|
|
2596
|
-
}, children)));
|
|
2597
|
-
});
|
|
2598
|
-
SortableTreeItemActions.propTypes = propTypes$a;
|
|
2599
|
-
SortableTreeItemActions.defaultProps = defaultProps$a;
|
|
2600
|
-
var SortableTreeItemActions$1 = SortableTreeItemActions;
|
|
2601
|
-
|
|
2602
|
-
var styles$7 = {"container":"micromag-editor-sortable-sortable-tree-item-container","parent":"micromag-editor-sortable-sortable-tree-item-parent","child":"micromag-editor-sortable-sortable-tree-item-child"};
|
|
2603
|
-
|
|
2604
|
-
var _excluded$3 = ["id", "index", "depth", "component", "value", "style", "smallScale", "collapsed", "onCollapse", "onClickItem", "childValue", "isLastChild"];
|
|
2605
|
-
var propTypes$9 = {
|
|
2606
|
-
id: PropTypes.string.isRequired,
|
|
2607
|
-
index: PropTypes.number.isRequired,
|
|
2608
|
-
depth: PropTypes.number.isRequired,
|
|
2609
|
-
component: PropTypes.func,
|
|
2610
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
2611
|
-
value: PropTypes.object,
|
|
2612
|
-
style: PropTypes.shape({
|
|
2613
|
-
width: PropTypes.number.isRequired,
|
|
2614
|
-
height: PropTypes.number.isRequired,
|
|
2615
|
-
scaledWidth: PropTypes.number.isRequired,
|
|
2616
|
-
scaledHeight: PropTypes.number.isRequired,
|
|
2617
|
-
transform: PropTypes.string.isRequired,
|
|
2618
|
-
scale: PropTypes.number.isRequired
|
|
2619
|
-
}),
|
|
2620
|
-
smallScale: PropTypes.number,
|
|
2621
|
-
collapsed: PropTypes.bool,
|
|
2622
|
-
onCollapse: PropTypes.func,
|
|
2623
|
-
onClickItem: PropTypes.func,
|
|
2624
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
2625
|
-
childValue: PropTypes.object,
|
|
2626
|
-
isLastChild: PropTypes.bool
|
|
2627
|
-
};
|
|
2628
|
-
var defaultProps$9 = {
|
|
2629
|
-
component: null,
|
|
2630
|
-
value: null,
|
|
2631
|
-
style: null,
|
|
2632
|
-
smallScale: 0.75,
|
|
2633
|
-
collapsed: false,
|
|
2634
|
-
onCollapse: null,
|
|
2635
|
-
onClickItem: null,
|
|
2636
|
-
childValue: null,
|
|
2637
|
-
isLastChild: false
|
|
2638
|
-
};
|
|
2639
|
-
var animateLayoutChanges = function animateLayoutChanges(_ref) {
|
|
2640
|
-
var isSorting = _ref.isSorting,
|
|
2641
|
-
wasDragging = _ref.wasDragging;
|
|
2642
|
-
return !(isSorting || wasDragging);
|
|
2643
|
-
};
|
|
2644
|
-
var SortableTreeItem = function SortableTreeItem(_ref2) {
|
|
2645
|
-
var id = _ref2.id,
|
|
2646
|
-
index = _ref2.index,
|
|
2647
|
-
depth = _ref2.depth,
|
|
2648
|
-
Component = _ref2.component,
|
|
2649
|
-
value = _ref2.value;
|
|
2650
|
-
_ref2.style;
|
|
2651
|
-
_ref2.smallScale;
|
|
2652
|
-
var collapsed = _ref2.collapsed,
|
|
2653
|
-
onCollapse = _ref2.onCollapse,
|
|
2654
|
-
onClickItem = _ref2.onClickItem,
|
|
2655
|
-
childValue = _ref2.childValue;
|
|
2656
|
-
_ref2.isLastChild;
|
|
2657
|
-
var props = _objectWithoutProperties(_ref2, _excluded$3);
|
|
2658
|
-
var _useSortable = sortable.useSortable({
|
|
2659
|
-
id: id,
|
|
2660
|
-
animateLayoutChanges: animateLayoutChanges
|
|
2661
|
-
}),
|
|
2662
|
-
attributes = _useSortable.attributes,
|
|
2663
|
-
isDragging = _useSortable.isDragging,
|
|
2664
|
-
isSorting = _useSortable.isSorting,
|
|
2665
|
-
listeners = _useSortable.listeners,
|
|
2666
|
-
setDraggableNodeRef = _useSortable.setDraggableNodeRef,
|
|
2667
|
-
setDroppableNodeRef = _useSortable.setDroppableNodeRef,
|
|
2668
|
-
transform = _useSortable.transform,
|
|
2669
|
-
transition = _useSortable.transition;
|
|
2670
|
-
var timeout = React.useRef(null);
|
|
2671
|
-
var actionsStyle = {
|
|
2672
|
-
transform: utilities.CSS.Translate.toString(transform),
|
|
2673
|
-
transition: transition
|
|
2674
|
-
};
|
|
2675
|
-
var _ref3 = listeners || {},
|
|
2676
|
-
_ref3$onPointerDown = _ref3.onPointerDown,
|
|
2677
|
-
onPointerDown = _ref3$onPointerDown === void 0 ? null : _ref3$onPointerDown,
|
|
2678
|
-
_ref3$onPointerUp = _ref3.onPointerUp,
|
|
2679
|
-
onPointerUp = _ref3$onPointerUp === void 0 ? null : _ref3$onPointerUp;
|
|
2680
|
-
var onClickAction = React.useCallback(function (e) {
|
|
2681
|
-
if (onClickItem !== null) {
|
|
2682
|
-
onClickItem(value, index);
|
|
2683
|
-
}
|
|
2684
|
-
if (onPointerDown !== null) {
|
|
2685
|
-
e.persist();
|
|
2686
|
-
timeout.current = setTimeout(function () {
|
|
2687
|
-
if (onPointerDown !== null) {
|
|
2688
|
-
onPointerDown(e);
|
|
2689
|
-
}
|
|
2690
|
-
timeout.current = null;
|
|
2691
|
-
}, 200);
|
|
2692
|
-
}
|
|
2693
|
-
}, [value, index, onClickItem, onPointerDown]);
|
|
2694
|
-
var cancellingPointerUp = React.useCallback(function (e) {
|
|
2695
|
-
if (timeout.current !== null) {
|
|
2696
|
-
clearTimeout(timeout.current);
|
|
2697
|
-
}
|
|
2698
|
-
if (onPointerUp !== null) {
|
|
2699
|
-
onPointerUp(e);
|
|
2700
|
-
}
|
|
2701
|
-
}, [onPointerUp]);
|
|
2702
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2703
|
-
className: classNames([styles$7.container])
|
|
2704
|
-
}, /*#__PURE__*/React.createElement(SortableTreeItemActions$1, Object.assign({
|
|
2705
|
-
ref: setDraggableNodeRef,
|
|
2706
|
-
wrapperRef: setDroppableNodeRef,
|
|
2707
|
-
style: actionsStyle,
|
|
2708
|
-
depth: depth,
|
|
2709
|
-
ghost: isDragging,
|
|
2710
|
-
disableSelection: iOS,
|
|
2711
|
-
disableInteraction: isSorting,
|
|
2712
|
-
handleProps: _objectSpread(_objectSpread(_objectSpread({}, attributes), listeners), {}, {
|
|
2713
|
-
onPointerDown: onClickAction,
|
|
2714
|
-
onPointerUp: cancellingPointerUp
|
|
2715
|
-
}),
|
|
2716
|
-
collapsed: collapsed,
|
|
2717
|
-
onCollapse: onCollapse
|
|
2718
|
-
}, props), Component !== null ? /*#__PURE__*/React.createElement("div", {
|
|
2719
|
-
className: styles$7.parent
|
|
2720
|
-
}, /*#__PURE__*/React.createElement(Component, value)) : null, childValue !== null ? /*#__PURE__*/React.createElement("div", {
|
|
2721
|
-
className: styles$7.child
|
|
2722
|
-
}, /*#__PURE__*/React.createElement(Component, childValue)) : null));
|
|
2723
|
-
};
|
|
2724
|
-
SortableTreeItem.propTypes = propTypes$9;
|
|
2725
|
-
SortableTreeItem.defaultProps = defaultProps$9;
|
|
2726
|
-
var SortableTreeItem$1 = SortableTreeItem;
|
|
2727
|
-
|
|
2728
|
-
var styles$6 = {"item":"micromag-editor-sortable-sortable-tree-item","parent":"micromag-editor-sortable-sortable-tree-parent","group":"micromag-editor-sortable-sortable-tree-group","isLastChild":"micromag-editor-sortable-sortable-tree-isLastChild"};
|
|
2729
|
-
|
|
2730
|
-
var initialItems = [{
|
|
2731
|
-
id: 'Home',
|
|
2732
|
-
children: []
|
|
2733
|
-
}, {
|
|
2734
|
-
id: 'Collections',
|
|
2735
|
-
children: [{
|
|
2736
|
-
id: 'Spring',
|
|
2737
|
-
children: []
|
|
2738
|
-
}, {
|
|
2739
|
-
id: 'Summer',
|
|
2740
|
-
children: []
|
|
2741
|
-
}, {
|
|
2742
|
-
id: 'Fall',
|
|
2743
|
-
children: []
|
|
2744
|
-
}, {
|
|
2745
|
-
id: 'Winter',
|
|
2746
|
-
children: []
|
|
2747
|
-
}]
|
|
2748
|
-
}];
|
|
2749
|
-
var measuring = {
|
|
2750
|
-
droppable: {
|
|
2751
|
-
strategy: core$1.MeasuringStrategy.Always
|
|
2752
|
-
}
|
|
2753
|
-
};
|
|
2754
|
-
var dropAnimation = _objectSpread(_objectSpread({}, core$1.defaultDropAnimation), {}, {
|
|
2755
|
-
dragSourceOpacity: 0.5
|
|
2756
|
-
});
|
|
2757
|
-
var adjustTranslate = function adjustTranslate(_ref) {
|
|
2758
|
-
var transform = _ref.transform;
|
|
2759
|
-
return _objectSpread(_objectSpread({}, transform), {}, {
|
|
2760
|
-
y: transform.y - 25
|
|
2761
|
-
});
|
|
2762
|
-
};
|
|
2763
|
-
var propTypes$8 = {
|
|
2764
|
-
collapsible: PropTypes.bool,
|
|
2765
|
-
// eslint-disable-next-line react/forbid-prop-types
|
|
2766
|
-
items: PropTypes.array,
|
|
2767
|
-
indentationWidth: PropTypes.number,
|
|
2768
|
-
indicator: PropTypes.bool,
|
|
2769
|
-
removable: PropTypes.bool,
|
|
2770
|
-
component: PropTypes.func,
|
|
2771
|
-
onClickItem: PropTypes.func,
|
|
2772
|
-
onChange: PropTypes.func
|
|
2773
|
-
};
|
|
2774
|
-
var defaultProps$8 = {
|
|
2775
|
-
collapsible: true,
|
|
2776
|
-
items: initialItems,
|
|
2777
|
-
indentationWidth: 30,
|
|
2778
|
-
indicator: false,
|
|
2779
|
-
removable: false,
|
|
2780
|
-
component: null,
|
|
2781
|
-
onClickItem: null,
|
|
2782
|
-
onChange: null
|
|
2783
|
-
};
|
|
2784
|
-
var SortableTree = function SortableTree(_ref2) {
|
|
2785
|
-
var collapsible = _ref2.collapsible,
|
|
2786
|
-
defaultItems = _ref2.items,
|
|
2787
|
-
indicator = _ref2.indicator,
|
|
2788
|
-
indentationWidth = _ref2.indentationWidth,
|
|
2789
|
-
removable = _ref2.removable,
|
|
2790
|
-
component = _ref2.component,
|
|
2791
|
-
onClickItem = _ref2.onClickItem,
|
|
2792
|
-
onChange = _ref2.onChange;
|
|
2793
|
-
var _useState = React.useState(function () {
|
|
2794
|
-
return buildTree(defaultItems);
|
|
2795
|
-
}),
|
|
2796
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2797
|
-
items = _useState2[0],
|
|
2798
|
-
setItems = _useState2[1];
|
|
2799
|
-
var _useState3 = React.useState(null),
|
|
2800
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
2801
|
-
activeId = _useState4[0],
|
|
2802
|
-
setActiveId = _useState4[1];
|
|
2803
|
-
var _useState5 = React.useState(null),
|
|
2804
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
2805
|
-
overId = _useState6[0],
|
|
2806
|
-
setOverId = _useState6[1];
|
|
2807
|
-
var _useState7 = React.useState(0),
|
|
2808
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
2809
|
-
offsetLeft = _useState8[0],
|
|
2810
|
-
setOffsetLeft = _useState8[1];
|
|
2811
|
-
var _useState9 = React.useState(null),
|
|
2812
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
2813
|
-
currentPosition = _useState10[0],
|
|
2814
|
-
setCurrentPosition = _useState10[1];
|
|
2815
|
-
|
|
2816
|
-
// Tree setup from list
|
|
2817
|
-
React.useEffect(function () {
|
|
2818
|
-
var flat = flattenTree(items);
|
|
2819
|
-
var merged = defaultItems.map(function (t1) {
|
|
2820
|
-
return _objectSpread(_objectSpread({}, flat.find(function (t2) {
|
|
2821
|
-
return t2.id === t1.id;
|
|
2822
|
-
})), t1);
|
|
2823
|
-
});
|
|
2824
|
-
setItems(buildTree(merged));
|
|
2825
|
-
}, [defaultItems.length]);
|
|
2826
|
-
var flattenedItems = React.useMemo(function () {
|
|
2827
|
-
var flattenedTree = flattenTree(items);
|
|
2828
|
-
var collapsedItems = flattenedTree.reduce(function (acc, _ref3) {
|
|
2829
|
-
var _ref3$children = _ref3.children,
|
|
2830
|
-
children = _ref3$children === void 0 ? [] : _ref3$children,
|
|
2831
|
-
collapsed = _ref3.collapsed,
|
|
2832
|
-
id = _ref3.id;
|
|
2833
|
-
return collapsed && children.length ? [].concat(_toConsumableArray(acc), [id]) : acc;
|
|
2834
|
-
}, []) || null;
|
|
2835
|
-
return removeChildrenOf(flattenedTree, activeId ? [activeId].concat(_toConsumableArray(collapsedItems)) : collapsedItems);
|
|
2836
|
-
}, [activeId, items, items.length]);
|
|
2837
|
-
var projected = activeId && overId ? getProjection(flattenedItems, activeId, overId, offsetLeft, indentationWidth) : null;
|
|
2838
|
-
var sensorContext = React.useRef({
|
|
2839
|
-
items: flattenedItems,
|
|
2840
|
-
offset: offsetLeft
|
|
2841
|
-
});
|
|
2842
|
-
var _useState11 = React.useState(function () {
|
|
2843
|
-
return sortableTreeKeyboardCoordinates(sensorContext, indentationWidth);
|
|
2844
|
-
}),
|
|
2845
|
-
_useState12 = _slicedToArray(_useState11, 1),
|
|
2846
|
-
coordinateGetter = _useState12[0];
|
|
2847
|
-
var sensors = core$1.useSensors(core$1.useSensor(core$1.PointerSensor), core$1.useSensor(core$1.KeyboardSensor, {
|
|
2848
|
-
coordinateGetter: coordinateGetter
|
|
2849
|
-
}));
|
|
2850
|
-
var sortedIds = React.useMemo(function () {
|
|
2851
|
-
return flattenedItems.map(function (_ref4) {
|
|
2852
|
-
var id = _ref4.id;
|
|
2853
|
-
return id;
|
|
2854
|
-
});
|
|
2855
|
-
}, [flattenedItems]);
|
|
2856
|
-
var activeItem = activeId ? flattenedItems.find(function (_ref5) {
|
|
2857
|
-
var id = _ref5.id;
|
|
2858
|
-
return id === activeId;
|
|
2859
|
-
}) : null;
|
|
2860
|
-
React.useEffect(function () {
|
|
2861
|
-
sensorContext.current = {
|
|
2862
|
-
items: flattenedItems,
|
|
2863
|
-
offset: offsetLeft
|
|
2864
|
-
};
|
|
2865
|
-
}, [flattenedItems, offsetLeft]);
|
|
2866
|
-
function getMovementAnnouncement(eventName, currentActiveId, currentOverId) {
|
|
2867
|
-
if (currentOverId && projected) {
|
|
2868
|
-
if (eventName !== 'onDragEnd') {
|
|
2869
|
-
if (currentPosition && projected.parentId === currentPosition.parentId && currentOverId === currentPosition.overId) {
|
|
2870
|
-
return;
|
|
2871
|
-
}
|
|
2872
|
-
setCurrentPosition({
|
|
2873
|
-
parentId: projected.parentId,
|
|
2874
|
-
overId: currentOverId
|
|
2875
|
-
});
|
|
2876
|
-
}
|
|
2877
|
-
var clonedItems = JSON.parse(JSON.stringify(flattenTree(items)));
|
|
2878
|
-
var overIndex = clonedItems.findIndex(function (_ref6) {
|
|
2879
|
-
var id = _ref6.id;
|
|
2880
|
-
return id === currentOverId;
|
|
2881
|
-
});
|
|
2882
|
-
var activeIndex = clonedItems.findIndex(function (_ref7) {
|
|
2883
|
-
var id = _ref7.id;
|
|
2884
|
-
return id === currentActiveId;
|
|
2885
|
-
});
|
|
2886
|
-
var sortedItems = sortable.arrayMove(clonedItems, activeIndex, overIndex);
|
|
2887
|
-
var previousItem = sortedItems[overIndex - 1];
|
|
2888
|
-
var newAnnouncement;
|
|
2889
|
-
var movedVerb = eventName === 'onDragEnd' ? 'dropped' : 'moved';
|
|
2890
|
-
var nestedVerb = eventName === 'onDragEnd' ? 'dropped' : 'nested';
|
|
2891
|
-
if (!previousItem) {
|
|
2892
|
-
var nextItem = typeof sortedItems[overIndex + 1] !== 'undefined' ? sortedItems[overIndex + 1] : null;
|
|
2893
|
-
if (nextItem !== null) {
|
|
2894
|
-
newAnnouncement = "".concat(currentActiveId, " was ").concat(movedVerb, " before ").concat(nextItem.id, ".");
|
|
2895
|
-
}
|
|
2896
|
-
} else if (projected.depth > previousItem.depth) {
|
|
2897
|
-
newAnnouncement = "".concat(currentActiveId, " was ").concat(nestedVerb, " under ").concat(previousItem.id, ".");
|
|
2898
|
-
} else {
|
|
2899
|
-
var previousSibling = previousItem;
|
|
2900
|
-
var _loop = function _loop() {
|
|
2901
|
-
var _previousSibling = previousSibling,
|
|
2902
|
-
parentId = _previousSibling.parentId;
|
|
2903
|
-
previousSibling = sortedItems.find(function (_ref8) {
|
|
2904
|
-
var id = _ref8.id;
|
|
2905
|
-
return id === parentId;
|
|
2906
|
-
});
|
|
2907
|
-
};
|
|
2908
|
-
while (previousSibling && projected.depth < previousSibling.depth) {
|
|
2909
|
-
_loop();
|
|
2910
|
-
}
|
|
2911
|
-
if (previousSibling) {
|
|
2912
|
-
newAnnouncement = "".concat(currentActiveId, " was ").concat(movedVerb, " after ").concat(previousSibling.id, ".");
|
|
2913
|
-
}
|
|
2914
|
-
}
|
|
2915
|
-
|
|
2916
|
-
// eslint-disable-next-line consistent-return
|
|
2917
|
-
return newAnnouncement;
|
|
2918
|
-
}
|
|
2919
|
-
}
|
|
2920
|
-
var announcements = React.useMemo(function () {
|
|
2921
|
-
return {
|
|
2922
|
-
onDragStart: function onDragStart(id) {
|
|
2923
|
-
return "Picked up ".concat(id, ".");
|
|
2924
|
-
},
|
|
2925
|
-
onDragMove: function onDragMove(id, currentOverId) {
|
|
2926
|
-
return getMovementAnnouncement('onDragMove', id, currentOverId);
|
|
2927
|
-
},
|
|
2928
|
-
onDragOver: function onDragOver(id, currentOverId) {
|
|
2929
|
-
return getMovementAnnouncement('onDragOver', id, currentOverId);
|
|
2930
|
-
},
|
|
2931
|
-
onDragEnd: function onDragEnd(id, currentOverId) {
|
|
2932
|
-
return getMovementAnnouncement('onDragEnd', id, currentOverId);
|
|
2933
|
-
},
|
|
2934
|
-
onDragCancel: function onDragCancel(id) {
|
|
2935
|
-
return "Moving was cancelled. ".concat(id, " was dropped in its original position.");
|
|
2936
|
-
}
|
|
2937
|
-
};
|
|
2938
|
-
}, [getMovementAnnouncement]);
|
|
2939
|
-
var activeValue = defaultItems.find(function (_ref9) {
|
|
2940
|
-
var _ref9$id = _ref9.id,
|
|
2941
|
-
defaultId = _ref9$id === void 0 ? null : _ref9$id;
|
|
2942
|
-
return defaultId === activeId;
|
|
2943
|
-
});
|
|
2944
|
-
var handleDragStart = React.useCallback(function (_ref10) {
|
|
2945
|
-
var newActiveId = _ref10.active.id;
|
|
2946
|
-
setActiveId(newActiveId);
|
|
2947
|
-
setOverId(newActiveId);
|
|
2948
|
-
var newActiveItem = flattenedItems.find(function (_ref11) {
|
|
2949
|
-
var id = _ref11.id;
|
|
2950
|
-
return id === newActiveId;
|
|
2951
|
-
});
|
|
2952
|
-
if (newActiveItem) {
|
|
2953
|
-
setCurrentPosition({
|
|
2954
|
-
parentId: newActiveItem.parentId,
|
|
2955
|
-
overId: activeId
|
|
2956
|
-
});
|
|
2957
|
-
}
|
|
2958
|
-
document.body.style.setProperty('cursor', 'grabbing');
|
|
2959
|
-
}, [flattenedItems, setActiveId, setOverId, setCurrentPosition]);
|
|
2960
|
-
var handleDragMove = React.useCallback(function (_ref12) {
|
|
2961
|
-
var delta = _ref12.delta;
|
|
2962
|
-
setOffsetLeft(delta.x);
|
|
2963
|
-
}, [setOffsetLeft]);
|
|
2964
|
-
var handleDragOver = React.useCallback(function (_ref13) {
|
|
2965
|
-
var _over$id;
|
|
2966
|
-
var over = _ref13.over;
|
|
2967
|
-
setOverId((_over$id = over === null || over === void 0 ? void 0 : over.id) !== null && _over$id !== void 0 ? _over$id : null);
|
|
2968
|
-
}, [setOverId]);
|
|
2969
|
-
var resetState = React.useCallback(function () {
|
|
2970
|
-
setOverId(null);
|
|
2971
|
-
setActiveId(null);
|
|
2972
|
-
setOffsetLeft(0);
|
|
2973
|
-
setCurrentPosition(null);
|
|
2974
|
-
document.body.style.setProperty('cursor', '');
|
|
2975
|
-
}, [setOverId, setActiveId, setOffsetLeft, setCurrentPosition]);
|
|
2976
|
-
var handleDragEnd = React.useCallback(function (_ref14) {
|
|
2977
|
-
var active = _ref14.active,
|
|
2978
|
-
over = _ref14.over;
|
|
2979
|
-
resetState();
|
|
2980
|
-
if (projected && over) {
|
|
2981
|
-
var depth = projected.depth,
|
|
2982
|
-
parentId = projected.parentId;
|
|
2983
|
-
var clonedItems = JSON.parse(JSON.stringify(flattenTree(items)));
|
|
2984
|
-
var overIndex = clonedItems.findIndex(function (_ref15) {
|
|
2985
|
-
var id = _ref15.id;
|
|
2986
|
-
return id === over.id;
|
|
2987
|
-
});
|
|
2988
|
-
var activeIndex = clonedItems.findIndex(function (_ref16) {
|
|
2989
|
-
var id = _ref16.id;
|
|
2990
|
-
return id === active.id;
|
|
2991
|
-
});
|
|
2992
|
-
var activeTreeItem = clonedItems[activeIndex];
|
|
2993
|
-
var maxDepth = getMaxDepth(activeTreeItem);
|
|
2994
|
-
// Un-merge and flatten
|
|
2995
|
-
if (depth > 0 && depth >= maxDepth && (activeTreeItem === null || activeTreeItem === void 0 ? void 0 : activeTreeItem.children) !== null && activeTreeItem.children.length > 0) {
|
|
2996
|
-
var _loop2 = function _loop2() {
|
|
2997
|
-
var childId = activeTreeItem.children[i].id;
|
|
2998
|
-
var childIndex = clonedItems.findIndex(function (_ref17) {
|
|
2999
|
-
var id = _ref17.id;
|
|
3000
|
-
return id === childId;
|
|
3001
|
-
});
|
|
3002
|
-
clonedItems[childIndex].parentId = parentId;
|
|
3003
|
-
clonedItems[childIndex].depth = depth;
|
|
3004
|
-
};
|
|
3005
|
-
for (var i = 0; i < activeTreeItem.children.length; i += 1) {
|
|
3006
|
-
_loop2();
|
|
3007
|
-
}
|
|
3008
|
-
activeTreeItem.children = [];
|
|
3009
|
-
}
|
|
3010
|
-
clonedItems[activeIndex] = _objectSpread(_objectSpread({}, activeTreeItem), {}, {
|
|
3011
|
-
depth: depth,
|
|
3012
|
-
parentId: parentId
|
|
3013
|
-
});
|
|
3014
|
-
var sortedItems = sortable.arrayMove(clonedItems, activeIndex, overIndex);
|
|
3015
|
-
var newItems = buildTree(sortedItems);
|
|
3016
|
-
setItems(newItems);
|
|
3017
|
-
if (onChange !== null) {
|
|
3018
|
-
// console.log('hell is flat', sortedItems);
|
|
3019
|
-
// console.log('hell is tree', newItems);
|
|
3020
|
-
onChange((sortedItems || []).map(function (_ref18) {
|
|
3021
|
-
var itemId = _ref18.id,
|
|
3022
|
-
_ref18$children = _ref18.children,
|
|
3023
|
-
children = _ref18$children === void 0 ? [] : _ref18$children,
|
|
3024
|
-
_ref18$parentId = _ref18.parentId,
|
|
3025
|
-
itParentId = _ref18$parentId === void 0 ? null : _ref18$parentId,
|
|
3026
|
-
_ref18$collapsed = _ref18.collapsed,
|
|
3027
|
-
collapsed = _ref18$collapsed === void 0 ? false : _ref18$collapsed;
|
|
3028
|
-
return {
|
|
3029
|
-
id: itemId,
|
|
3030
|
-
props: _objectSpread(_objectSpread({}, (children || []).length > 0 ? {
|
|
3031
|
-
group: {
|
|
3032
|
-
collapsed: collapsed,
|
|
3033
|
-
mergeNavItems: true
|
|
3034
|
-
}
|
|
3035
|
-
} : {
|
|
3036
|
-
group: null
|
|
3037
|
-
}), itParentId !== null ? {
|
|
3038
|
-
parentId: itParentId
|
|
3039
|
-
} : {
|
|
3040
|
-
parentId: null
|
|
3041
|
-
})
|
|
3042
|
-
};
|
|
3043
|
-
}));
|
|
3044
|
-
}
|
|
3045
|
-
}
|
|
3046
|
-
}, [projected, items, resetState, sortable.arrayMove, buildTree, setItems]);
|
|
3047
|
-
var handleDragCancel = React.useCallback(function () {
|
|
3048
|
-
resetState();
|
|
3049
|
-
}, [resetState]);
|
|
3050
|
-
var handleRemove = React.useCallback(function (id) {
|
|
3051
|
-
setItems(function (newItems) {
|
|
3052
|
-
return removeItem(newItems, id);
|
|
3053
|
-
});
|
|
3054
|
-
}, [setItems, removeItem]);
|
|
3055
|
-
var handleCollapse = React.useCallback(function (id) {
|
|
3056
|
-
setItems(function (newItems) {
|
|
3057
|
-
return setProperty(newItems, id, 'collapsed', function (value) {
|
|
3058
|
-
return !value;
|
|
3059
|
-
});
|
|
3060
|
-
});
|
|
3061
|
-
}, [setItems, setProperty]);
|
|
3062
|
-
return /*#__PURE__*/React.createElement(core$1.DndContext, {
|
|
3063
|
-
accessibility: {
|
|
3064
|
-
announcements: announcements
|
|
3065
|
-
}
|
|
3066
|
-
// announcements={announcements}
|
|
3067
|
-
,
|
|
3068
|
-
sensors: sensors,
|
|
3069
|
-
collisionDetection: core$1.closestCenter,
|
|
3070
|
-
measuring: measuring,
|
|
3071
|
-
onDragStart: handleDragStart,
|
|
3072
|
-
onDragMove: handleDragMove,
|
|
3073
|
-
onDragOver: handleDragOver,
|
|
3074
|
-
onDragEnd: handleDragEnd,
|
|
3075
|
-
onDragCancel: handleDragCancel
|
|
3076
|
-
}, /*#__PURE__*/React.createElement(sortable.SortableContext, {
|
|
3077
|
-
items: sortedIds,
|
|
3078
|
-
strategy: sortable.verticalListSortingStrategy
|
|
3079
|
-
}, flattenedItems.map(function (_ref19, idx) {
|
|
3080
|
-
var _flattenedItems;
|
|
3081
|
-
var id = _ref19.id,
|
|
3082
|
-
_ref19$children = _ref19.children,
|
|
3083
|
-
children = _ref19$children === void 0 ? [] : _ref19$children,
|
|
3084
|
-
collapsed = _ref19.collapsed,
|
|
3085
|
-
depth = _ref19.depth;
|
|
3086
|
-
var screenValue = defaultItems.find(function (_ref20) {
|
|
3087
|
-
var _ref20$id = _ref20.id,
|
|
3088
|
-
defaultId = _ref20$id === void 0 ? null : _ref20$id;
|
|
3089
|
-
return defaultId === id;
|
|
3090
|
-
});
|
|
3091
|
-
var next = ((_flattenedItems = flattenedItems[idx + 1]) === null || _flattenedItems === void 0 ? void 0 : _flattenedItems.parentId) || null;
|
|
3092
|
-
var isCollapsed = collapsed && children.length > 0;
|
|
3093
|
-
var onCollapse = collapsible && children.length ? function () {
|
|
3094
|
-
return handleCollapse(id);
|
|
3095
|
-
} : null;
|
|
3096
|
-
var currentDepth = id === activeId && projected ? projected.depth : depth;
|
|
3097
|
-
var childCount = getChildCount(items, id);
|
|
3098
|
-
var childValue = childCount > 0 && collapsed ? defaultItems.slice().reverse().find(function (_ref21) {
|
|
3099
|
-
var _ref21$parentId = _ref21.parentId,
|
|
3100
|
-
parentId = _ref21$parentId === void 0 ? null : _ref21$parentId;
|
|
3101
|
-
return parentId === id;
|
|
3102
|
-
}) : null;
|
|
3103
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3104
|
-
className: classNames([styles$6.item, _defineProperty(_defineProperty(_defineProperty({}, styles$6.parent, onCollapse !== null && !collapsed), styles$6.group, depth === 1), styles$6.isLastChild, next === null)]),
|
|
3105
|
-
key: id
|
|
3106
|
-
}, /*#__PURE__*/React.createElement(SortableTreeItem$1, {
|
|
3107
|
-
key: id,
|
|
3108
|
-
id: id,
|
|
3109
|
-
depth: currentDepth,
|
|
3110
|
-
indentationWidth: indentationWidth,
|
|
3111
|
-
indicator: indicator,
|
|
3112
|
-
collapsed: isCollapsed,
|
|
3113
|
-
onCollapse: onCollapse,
|
|
3114
|
-
onRemove: removable ? function () {
|
|
3115
|
-
return handleRemove(id);
|
|
3116
|
-
} : undefined,
|
|
3117
|
-
childCount: childCount,
|
|
3118
|
-
component: component,
|
|
3119
|
-
value: (screenValue === null || screenValue === void 0 ? void 0 : screenValue.value) || null,
|
|
3120
|
-
onClickItem: onClickItem,
|
|
3121
|
-
index: idx,
|
|
3122
|
-
childValue: (childValue === null || childValue === void 0 ? void 0 : childValue.value) || null
|
|
3123
|
-
}));
|
|
3124
|
-
}), /*#__PURE__*/reactDom.createPortal( /*#__PURE__*/React.createElement(core$1.DragOverlay, {
|
|
3125
|
-
dropAnimation: dropAnimation,
|
|
3126
|
-
modifiers: indicator ? [adjustTranslate] : undefined
|
|
3127
|
-
}, activeId && activeItem ? /*#__PURE__*/React.createElement("div", {
|
|
3128
|
-
className: styles$6.item,
|
|
3129
|
-
key: activeId
|
|
3130
|
-
}, /*#__PURE__*/React.createElement(SortableTreeItem$1, {
|
|
3131
|
-
id: activeId,
|
|
3132
|
-
depth: activeItem.depth,
|
|
3133
|
-
clone: true,
|
|
3134
|
-
childCount: getChildCount(items, activeId) + 1,
|
|
3135
|
-
indentationWidth: indentationWidth,
|
|
3136
|
-
component: component,
|
|
3137
|
-
value: activeValue === null || activeValue === void 0 ? void 0 : activeValue.value,
|
|
3138
|
-
onClickItem: onClickItem,
|
|
3139
|
-
index: flattenedItems.findIndex(function (_ref23) {
|
|
3140
|
-
var id = _ref23.id;
|
|
3141
|
-
return activeId === id;
|
|
3142
|
-
})
|
|
3143
|
-
})) : null), document.body)));
|
|
3144
|
-
};
|
|
3145
|
-
SortableTree.propTypes = propTypes$8;
|
|
3146
|
-
SortableTree.defaultProps = defaultProps$8;
|
|
3147
|
-
var SortableTree$1 = SortableTree;
|
|
3148
|
-
|
|
3149
|
-
var styles$5 = {"container":"micromag-editor-menus-screens-container","screen":"micromag-editor-menus-screens-screen","preview":"micromag-editor-menus-screens-preview","placeholder":"micromag-editor-menus-screens-placeholder","items":"micromag-editor-menus-screens-items","item":"micromag-editor-menus-screens-item","button":"micromag-editor-menus-screens-button","settings":"micromag-editor-menus-screens-settings","noWrap":"micromag-editor-menus-screens-noWrap","isVertical":"micromag-editor-menus-screens-isVertical","withPlaceholder":"micromag-editor-menus-screens-withPlaceholder"};
|
|
3150
|
-
|
|
3151
|
-
var _excluded$2 = ["className", "screen", "type", "title", "onClick", "active", "href"],
|
|
3152
|
-
_excluded2 = ["id", "screen", "href"];
|
|
3153
|
-
var propTypes$7 = {
|
|
3154
|
-
items: core.PropTypes.menuItems,
|
|
3155
|
-
withPreview: PropTypes.bool,
|
|
3156
|
-
withPlaceholder: PropTypes.bool,
|
|
3157
|
-
withName: PropTypes.bool,
|
|
3158
|
-
settings: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
|
|
3159
|
-
sortable: PropTypes.bool,
|
|
3160
|
-
isTree: PropTypes.bool,
|
|
3161
|
-
isVertical: PropTypes.bool,
|
|
3162
|
-
noWrap: PropTypes.bool,
|
|
3163
|
-
className: PropTypes.string,
|
|
3164
|
-
itemClassName: PropTypes.string,
|
|
3165
|
-
buttonClassName: PropTypes.string,
|
|
3166
|
-
settingsClassName: PropTypes.string,
|
|
3167
|
-
onClickItem: PropTypes.func,
|
|
3168
|
-
onOrderChange: PropTypes.func
|
|
3169
|
-
};
|
|
3170
|
-
var defaultProps$7 = {
|
|
3171
|
-
items: [],
|
|
3172
|
-
withPreview: false,
|
|
3173
|
-
withPlaceholder: false,
|
|
3174
|
-
withName: false,
|
|
3175
|
-
settings: null,
|
|
3176
|
-
sortable: false,
|
|
3177
|
-
isTree: false,
|
|
3178
|
-
isVertical: false,
|
|
3179
|
-
noWrap: false,
|
|
3180
|
-
className: null,
|
|
3181
|
-
itemClassName: null,
|
|
3182
|
-
buttonClassName: null,
|
|
3183
|
-
settingsClassName: null,
|
|
3184
|
-
onClickItem: null,
|
|
3185
|
-
onOrderChange: null
|
|
3186
|
-
};
|
|
3187
|
-
var ScreensMenu = function ScreensMenu(_ref) {
|
|
3188
|
-
var items = _ref.items,
|
|
3189
|
-
withPreview = _ref.withPreview,
|
|
3190
|
-
withPlaceholder = _ref.withPlaceholder,
|
|
3191
|
-
withName = _ref.withName,
|
|
3192
|
-
settings = _ref.settings,
|
|
3193
|
-
isVertical = _ref.isVertical,
|
|
3194
|
-
noWrap = _ref.noWrap,
|
|
3195
|
-
className = _ref.className,
|
|
3196
|
-
itemClassName = _ref.itemClassName,
|
|
3197
|
-
buttonClassName = _ref.buttonClassName,
|
|
3198
|
-
settingsClassName = _ref.settingsClassName,
|
|
3199
|
-
sortable = _ref.sortable,
|
|
3200
|
-
isTree = _ref.isTree,
|
|
3201
|
-
onClickItem = _ref.onClickItem,
|
|
3202
|
-
onOrderChange = _ref.onOrderChange;
|
|
3203
|
-
var itemsElements = !isTree ? items.map(function (_ref2, index) {
|
|
3204
|
-
var _ref2$className = _ref2.className,
|
|
3205
|
-
itemCustomClassName = _ref2$className === void 0 ? null : _ref2$className,
|
|
3206
|
-
screen = _ref2.screen,
|
|
3207
|
-
type = _ref2.type,
|
|
3208
|
-
title = _ref2.title,
|
|
3209
|
-
_ref2$onClick = _ref2.onClick,
|
|
3210
|
-
onClick = _ref2$onClick === void 0 ? null : _ref2$onClick,
|
|
3211
|
-
active = _ref2.active,
|
|
3212
|
-
href = _ref2.href,
|
|
3213
|
-
item = _objectWithoutProperties(_ref2, _excluded$2);
|
|
3214
|
-
return /*#__PURE__*/React.createElement("li", {
|
|
3215
|
-
key: item.id,
|
|
3216
|
-
className: classNames([styles$5.item, _defineProperty(_defineProperty({}, itemClassName, itemClassName !== null), itemCustomClassName, itemCustomClassName !== null)]),
|
|
3217
|
-
"data-screen-id": item.id
|
|
3218
|
-
}, /*#__PURE__*/React.createElement(ScreenWithPreview$1, {
|
|
3219
|
-
index: index,
|
|
3220
|
-
screen: withPlaceholder ? _objectSpread(_objectSpread({}, screen), {}, {
|
|
3221
|
-
type: type
|
|
3222
|
-
}) : screen,
|
|
3223
|
-
href: href,
|
|
3224
|
-
className: buttonClassName,
|
|
3225
|
-
title: title,
|
|
3226
|
-
active: active,
|
|
3227
|
-
withPreview: withPreview,
|
|
3228
|
-
withPlaceholder: withPlaceholder,
|
|
3229
|
-
withName: withName,
|
|
3230
|
-
onClick: onClick,
|
|
3231
|
-
onClickItem: onClickItem
|
|
3232
|
-
}), settings !== null ? /*#__PURE__*/React.createElement("div", {
|
|
3233
|
-
className: classNames([_defineProperty({}, settingsClassName, settingsClassName !== null), styles$5.settings, 'p-2'])
|
|
3234
|
-
}, isFunction(settings) ? settings(index) : settings) : null);
|
|
3235
|
-
}) : [];
|
|
3236
|
-
var sortableItems = React.useMemo(function () {
|
|
3237
|
-
return isTree ? items.map(function (_ref5) {
|
|
3238
|
-
var id = _ref5.id,
|
|
3239
|
-
_ref5$screen = _ref5.screen,
|
|
3240
|
-
screen = _ref5$screen === void 0 ? {} : _ref5$screen,
|
|
3241
|
-
href = _ref5.href,
|
|
3242
|
-
props = _objectWithoutProperties(_ref5, _excluded2);
|
|
3243
|
-
var _screen$parentId = screen.parentId,
|
|
3244
|
-
parentId = _screen$parentId === void 0 ? null : _screen$parentId,
|
|
3245
|
-
_screen$group = screen.group,
|
|
3246
|
-
group = _screen$group === void 0 ? {} : _screen$group;
|
|
3247
|
-
var _ref6 = group || {},
|
|
3248
|
-
_ref6$collapsed = _ref6.collapsed,
|
|
3249
|
-
collapsed = _ref6$collapsed === void 0 ? true : _ref6$collapsed;
|
|
3250
|
-
return {
|
|
3251
|
-
id: id,
|
|
3252
|
-
parentId: parentId,
|
|
3253
|
-
collapsed: collapsed,
|
|
3254
|
-
value: _objectSpread({
|
|
3255
|
-
id: id,
|
|
3256
|
-
screen: screen,
|
|
3257
|
-
href: href
|
|
3258
|
-
}, props)
|
|
3259
|
-
};
|
|
3260
|
-
}, []) : items.map(function (_ref7) {
|
|
3261
|
-
var id = _ref7.id;
|
|
3262
|
-
return {
|
|
3263
|
-
id: id
|
|
3264
|
-
};
|
|
3265
|
-
});
|
|
3266
|
-
}, [items, isTree, items.length]);
|
|
3267
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3268
|
-
className: classNames([styles$5.container, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, styles$5.noWrap, noWrap), styles$5.isVertical, isVertical), styles$5.isTree, isTree), styles$5.withPlaceholder, withPlaceholder), className, className)])
|
|
3269
|
-
}, isTree && !sortable ? /*#__PURE__*/React.createElement(SortableTree$1, {
|
|
3270
|
-
items: sortableItems,
|
|
3271
|
-
component: ScreenWithPreview$1,
|
|
3272
|
-
onClickItem: onClickItem,
|
|
3273
|
-
onChange: onOrderChange
|
|
3274
|
-
}) : null, !isTree && sortable && items.length > 1 ? /*#__PURE__*/React.createElement(reactSortablejs.ReactSortable, {
|
|
3275
|
-
list: sortableItems,
|
|
3276
|
-
setList: onOrderChange,
|
|
3277
|
-
animation: 200,
|
|
3278
|
-
delayOnTouchStart: true,
|
|
3279
|
-
delay: 2,
|
|
3280
|
-
tag: "ul",
|
|
3281
|
-
className: styles$5.items
|
|
3282
|
-
}, itemsElements) : null, !isTree && (!sortable || items.length < 1) ? /*#__PURE__*/React.createElement("ul", {
|
|
3283
|
-
className: styles$5.items
|
|
3284
|
-
}, itemsElements) : null);
|
|
3285
|
-
};
|
|
3286
|
-
ScreensMenu.propTypes = propTypes$7;
|
|
3287
|
-
ScreensMenu.defaultProps = defaultProps$7;
|
|
3288
|
-
var ScreensMenu$1 = ScreensMenu;
|
|
3289
|
-
|
|
3290
|
-
var styles$4 = {"container":"micromag-editor-menus-screen-types-container","row":"micromag-editor-menus-screen-types-row","title":"micromag-editor-menus-screen-types-title","screen":"micromag-editor-menus-screen-types-screen","button":"micromag-editor-menus-screen-types-button"};
|
|
3291
|
-
|
|
3292
|
-
var propTypes$6 = {
|
|
3293
|
-
screens: core.PropTypes.screenDefinitions,
|
|
3294
|
-
selectedTypes: PropTypes.arrayOf(PropTypes.string),
|
|
3295
|
-
className: PropTypes.string,
|
|
3296
|
-
onClickItem: PropTypes.func
|
|
3297
|
-
};
|
|
3298
|
-
var defaultProps$6 = {
|
|
3299
|
-
screens: null,
|
|
3300
|
-
selectedTypes: null,
|
|
3301
|
-
className: null,
|
|
3302
|
-
onClickItem: null
|
|
3303
|
-
};
|
|
3304
|
-
var ScreenTypes = function ScreenTypes(_ref) {
|
|
3305
|
-
var screens = _ref.screens,
|
|
3306
|
-
selectedTypes = _ref.selectedTypes,
|
|
3307
|
-
className = _ref.className,
|
|
3308
|
-
onClickItem = _ref.onClickItem;
|
|
3309
|
-
var intl = reactIntl.useIntl();
|
|
3310
|
-
var screensManager = contexts.useScreensManager();
|
|
3311
|
-
var screenDefinitions = screens || screensManager.getDefinitions();
|
|
3312
|
-
var finalDefinitions = (screenDefinitions || []).filter(function (s) {
|
|
3313
|
-
return s !== null;
|
|
3314
|
-
});
|
|
3315
|
-
var groups = React.useMemo(function () {
|
|
3316
|
-
var groupItems = finalDefinitions.reduce(function (allGroups, definition) {
|
|
3317
|
-
var id = definition.id,
|
|
3318
|
-
title = definition.title,
|
|
3319
|
-
_definition$group = definition.group,
|
|
3320
|
-
group = _definition$group === void 0 ? {} : _definition$group;
|
|
3321
|
-
var _ref2 = group || {},
|
|
3322
|
-
_ref2$order = _ref2.order,
|
|
3323
|
-
order = _ref2$order === void 0 ? 0 : _ref2$order,
|
|
3324
|
-
_ref2$label = _ref2.label,
|
|
3325
|
-
label = _ref2$label === void 0 ? {} : _ref2$label,
|
|
3326
|
-
_ref2$hidden = _ref2.hidden,
|
|
3327
|
-
hidden = _ref2$hidden === void 0 ? false : _ref2$hidden;
|
|
3328
|
-
var _ref3 = label || {},
|
|
3329
|
-
_ref3$id = _ref3.id,
|
|
3330
|
-
messageId = _ref3$id === void 0 ? null : _ref3$id;
|
|
3331
|
-
if (hidden) {
|
|
3332
|
-
return allGroups;
|
|
3333
|
-
}
|
|
3334
|
-
var _ref4 = utils.isMessage(label) ? {
|
|
3335
|
-
id: messageId || id,
|
|
3336
|
-
name: group
|
|
3337
|
-
} : {
|
|
3338
|
-
id: messageId || id,
|
|
3339
|
-
name: title
|
|
3340
|
-
},
|
|
3341
|
-
groupId = _ref4.id,
|
|
3342
|
-
groupName = _ref4.name;
|
|
3343
|
-
var groupIndex = allGroups.findIndex(function (it) {
|
|
3344
|
-
return it.id === groupId;
|
|
3345
|
-
});
|
|
3346
|
-
var selected = selectedTypes !== null && selectedTypes.indexOf(id) !== -1;
|
|
3347
|
-
var item = {
|
|
3348
|
-
id: id,
|
|
3349
|
-
type: id,
|
|
3350
|
-
screen: definition,
|
|
3351
|
-
title: title,
|
|
3352
|
-
className: classNames(_defineProperty({
|
|
3353
|
-
'bg-secondary': !selected,
|
|
3354
|
-
'bg-primary': selected
|
|
3355
|
-
}, styles$4.selected, selected))
|
|
3356
|
-
};
|
|
3357
|
-
return groupIndex !== -1 ? [].concat(_toConsumableArray(allGroups.slice(0, groupIndex)), [_objectSpread(_objectSpread({}, allGroups[groupIndex]), {}, {
|
|
3358
|
-
items: [].concat(_toConsumableArray(allGroups[groupIndex].items), [item])
|
|
3359
|
-
})], _toConsumableArray(allGroups.slice(groupIndex + 1))) : [].concat(_toConsumableArray(allGroups), [{
|
|
3360
|
-
id: groupId,
|
|
3361
|
-
name: utils.isMessage(label) ? intl.formatMessage(label) : groupName,
|
|
3362
|
-
order: order,
|
|
3363
|
-
items: [item]
|
|
3364
|
-
}]);
|
|
3365
|
-
}, []);
|
|
3366
|
-
return orderBy(groupItems, ['order', 'name'], ['asc', 'asc']);
|
|
3367
|
-
}, [finalDefinitions, selectedTypes]);
|
|
3368
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3369
|
-
className: classNames([styles$4.container, _defineProperty({}, className, className)])
|
|
3370
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3371
|
-
className: styles$4.rows
|
|
3372
|
-
}, groups.map(function (_ref6) {
|
|
3373
|
-
var id = _ref6.id,
|
|
3374
|
-
name = _ref6.name,
|
|
3375
|
-
items = _ref6.items;
|
|
3376
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3377
|
-
key: "group-".concat(id),
|
|
3378
|
-
className: styles$4.row
|
|
3379
|
-
}, /*#__PURE__*/React.createElement(components.Label, null, name), /*#__PURE__*/React.createElement("div", {
|
|
3380
|
-
className: styles$4.layouts
|
|
3381
|
-
}, /*#__PURE__*/React.createElement(ScreensMenu$1, {
|
|
3382
|
-
items: items,
|
|
3383
|
-
withPlaceholder: true,
|
|
3384
|
-
withName: true,
|
|
3385
|
-
itemClassName: classNames([styles$4.screen, 'border', 'rounded', {
|
|
3386
|
-
'border-secondary': selectedTypes === null,
|
|
3387
|
-
'border-dark': selectedTypes !== null,
|
|
3388
|
-
'bg-secondary': selectedTypes === null,
|
|
3389
|
-
'text-secondary': selectedTypes !== null
|
|
3390
|
-
}]),
|
|
3391
|
-
buttonClassName: styles$4.button,
|
|
3392
|
-
onClickItem: onClickItem
|
|
3393
|
-
})));
|
|
3394
|
-
})));
|
|
3395
|
-
};
|
|
3396
|
-
ScreenTypes.propTypes = propTypes$6;
|
|
3397
|
-
ScreenTypes.defaultProps = defaultProps$6;
|
|
3398
|
-
var ScreenTypesMenu = ScreenTypes;
|
|
3399
|
-
|
|
3400
|
-
var styles$3 = {"container":"micromag-editor-modals-screen-types-container","selected":"micromag-editor-modals-screen-types-selected"};
|
|
3401
|
-
|
|
3402
|
-
var propTypes$5 = {
|
|
3403
|
-
selectedTypes: PropTypes.arrayOf(PropTypes.string),
|
|
3404
|
-
className: PropTypes.string,
|
|
3405
|
-
onRequestClose: PropTypes.func,
|
|
3406
|
-
onClickScreenType: PropTypes.func
|
|
3407
|
-
};
|
|
3408
|
-
var defaultProps$5 = {
|
|
3409
|
-
selectedTypes: null,
|
|
3410
|
-
className: null,
|
|
3411
|
-
onRequestClose: null,
|
|
3412
|
-
onClickScreenType: null
|
|
3413
|
-
};
|
|
3414
|
-
var ScreenTypesModal = function ScreenTypesModal(_ref) {
|
|
3415
|
-
var selectedTypes = _ref.selectedTypes,
|
|
3416
|
-
className = _ref.className,
|
|
3417
|
-
onRequestClose = _ref.onRequestClose,
|
|
3418
|
-
onClickScreenType = _ref.onClickScreenType;
|
|
3419
|
-
return /*#__PURE__*/React.createElement(components.Modal, null, /*#__PURE__*/React.createElement(components.ModalDialog, {
|
|
3420
|
-
title: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3421
|
-
id: "QBaiO0",
|
|
3422
|
-
defaultMessage: [{
|
|
3423
|
-
"type": 0,
|
|
3424
|
-
"value": "Add a screen"
|
|
3425
|
-
}]
|
|
3426
|
-
}),
|
|
3427
|
-
className: classNames([styles$3.container, _defineProperty({}, className, className)]),
|
|
3428
|
-
onClose: onRequestClose
|
|
3429
|
-
}, /*#__PURE__*/React.createElement(ScreenTypesMenu, {
|
|
3430
|
-
selectedTypes: selectedTypes,
|
|
3431
|
-
className: styles$3.menu,
|
|
3432
|
-
onClickItem: onClickScreenType
|
|
3433
|
-
})));
|
|
3434
|
-
};
|
|
3435
|
-
ScreenTypesModal.propTypes = propTypes$5;
|
|
3436
|
-
ScreenTypesModal.defaultProps = defaultProps$5;
|
|
3437
|
-
var ScreenTypesModal$1 = ScreenTypesModal;
|
|
3438
|
-
|
|
3439
|
-
var styles$2 = {"container":"micromag-editor-screens-container","navbar":"micromag-editor-screens-navbar"};
|
|
3440
|
-
|
|
3441
|
-
var _excluded$1 = ["id"];
|
|
3442
|
-
var propTypes$4 = {
|
|
3443
|
-
value: PropTypes.oneOfType([core.PropTypes.story, core.PropTypes.theme]),
|
|
3444
|
-
isTheme: PropTypes.bool,
|
|
3445
|
-
isVertical: PropTypes.bool,
|
|
3446
|
-
isCreateOpened: PropTypes.bool,
|
|
3447
|
-
isParsed: PropTypes.bool,
|
|
3448
|
-
isTree: PropTypes.bool,
|
|
3449
|
-
onClickScreen: PropTypes.func,
|
|
3450
|
-
onChange: PropTypes.func,
|
|
3451
|
-
className: PropTypes.string
|
|
3452
|
-
};
|
|
3453
|
-
var defaultProps$4 = {
|
|
3454
|
-
value: null,
|
|
3455
|
-
isTheme: false,
|
|
3456
|
-
isVertical: false,
|
|
3457
|
-
isCreateOpened: false,
|
|
3458
|
-
isParsed: false,
|
|
3459
|
-
isTree: false,
|
|
3460
|
-
onClickScreen: null,
|
|
3461
|
-
onChange: null,
|
|
3462
|
-
className: null
|
|
3463
|
-
};
|
|
3464
|
-
var EditorScreens = function EditorScreens(_ref) {
|
|
3465
|
-
var unparsedValue = _ref.value,
|
|
3466
|
-
isTheme = _ref.isTheme,
|
|
3467
|
-
isVertical = _ref.isVertical,
|
|
3468
|
-
isCreateOpened = _ref.isCreateOpened,
|
|
3469
|
-
isParsed = _ref.isParsed,
|
|
3470
|
-
isTree = _ref.isTree,
|
|
3471
|
-
onClickScreen = _ref.onClickScreen,
|
|
3472
|
-
onChange = _ref.onChange,
|
|
3473
|
-
className = _ref.className;
|
|
3474
|
-
var valueWithTheme = useThemeValue(unparsedValue, isTheme);
|
|
3475
|
-
var value = isParsed ? unparsedValue : hooks.useParsedStory(valueWithTheme, {
|
|
3476
|
-
withMedias: false
|
|
3477
|
-
});
|
|
3478
|
-
var _ref2 = value || {},
|
|
3479
|
-
_ref2$components = _ref2.components,
|
|
3480
|
-
screens = _ref2$components === void 0 ? [] : _ref2$components;
|
|
3481
|
-
var _useState = React.useState(isCreateOpened),
|
|
3482
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
3483
|
-
createModalOpened = _useState2[0],
|
|
3484
|
-
setCreateModalOpened = _useState2[1];
|
|
3485
|
-
var routes = contexts.useRoutes();
|
|
3486
|
-
var push = contexts.useRoutePush();
|
|
3487
|
-
var url = contexts.useUrlGenerator();
|
|
3488
|
-
var _useRouteParams = useRouteParams({
|
|
3489
|
-
screenOnly: true
|
|
3490
|
-
}),
|
|
3491
|
-
_useRouteParams$scree = _useRouteParams.screen,
|
|
3492
|
-
currentScreenId = _useRouteParams$scree === void 0 ? null : _useRouteParams$scree;
|
|
3493
|
-
var createScreenFromDefinition = React.useCallback(function (definition) {
|
|
3494
|
-
var _ref3 = value || {},
|
|
3495
|
-
_ref3$components = _ref3.components,
|
|
3496
|
-
currentScreens = _ref3$components === void 0 ? [] : _ref3$components,
|
|
3497
|
-
_ref3$theme = _ref3.theme,
|
|
3498
|
-
theme = _ref3$theme === void 0 ? {} : _ref3$theme;
|
|
3499
|
-
var _ref4 = isString(definition) ? {
|
|
3500
|
-
id: definition
|
|
3501
|
-
} : definition,
|
|
3502
|
-
newScreenType = _ref4.id;
|
|
3503
|
-
var _ref5 = theme || {},
|
|
3504
|
-
_ref5$components = _ref5.components,
|
|
3505
|
-
themeComponents = _ref5$components === void 0 ? null : _ref5$components;
|
|
3506
|
-
var themeScreen = themeComponents !== null ? themeComponents.find(function (it) {
|
|
3507
|
-
return it.type === newScreenType;
|
|
3508
|
-
}) || null : null;
|
|
3509
|
-
var newScreen = createScreen$1(definition, themeScreen);
|
|
3510
|
-
var foundIndex = screens.findIndex(function (_ref6) {
|
|
3511
|
-
var id = _ref6.id;
|
|
3512
|
-
return id === currentScreenId;
|
|
3513
|
-
});
|
|
3514
|
-
var currentScreenIndex = !isTheme && foundIndex >= 0 ? foundIndex + 1 : null;
|
|
3515
|
-
var newValue = _objectSpread(_objectSpread({}, value), {}, {
|
|
3516
|
-
components: [].concat(_toConsumableArray(currentScreens.slice(0, currentScreenIndex)), [newScreen], _toConsumableArray(currentScreens.slice(currentScreenIndex)))
|
|
3517
|
-
});
|
|
3518
|
-
if (onChange !== null) {
|
|
3519
|
-
onChange(newValue);
|
|
3520
|
-
}
|
|
3521
|
-
return newScreen;
|
|
3522
|
-
}, [value, onChange, isTheme, screens, currentScreenId, setCreateModalOpened]);
|
|
3523
|
-
var onOrderChange = React.useCallback(function (listItems) {
|
|
3524
|
-
var ids = listItems.map(function (_ref7) {
|
|
3525
|
-
var id = _ref7.id;
|
|
3526
|
-
return id;
|
|
3527
|
-
});
|
|
3528
|
-
var screenProps = listItems.map(function (_ref8) {
|
|
3529
|
-
var id = _ref8.id,
|
|
3530
|
-
_ref8$props = _ref8.props,
|
|
3531
|
-
props = _ref8$props === void 0 ? null : _ref8$props;
|
|
3532
|
-
return {
|
|
3533
|
-
id: id,
|
|
3534
|
-
props: props
|
|
3535
|
-
};
|
|
3536
|
-
});
|
|
3537
|
-
var hasScreenProps = (screenProps.filter(function (_ref9) {
|
|
3538
|
-
var props = _ref9.props;
|
|
3539
|
-
return props !== null;
|
|
3540
|
-
}) || []).length > 0;
|
|
3541
|
-
var _ref10 = value || {},
|
|
3542
|
-
_ref10$components = _ref10.components,
|
|
3543
|
-
currentScreens = _ref10$components === void 0 ? [] : _ref10$components;
|
|
3544
|
-
var currentIds = currentScreens.map(function (_ref11) {
|
|
3545
|
-
var id = _ref11.id;
|
|
3546
|
-
return id;
|
|
3547
|
-
});
|
|
3548
|
-
var sameOrder = listItems.reduce(function (same, _ref12, index) {
|
|
3549
|
-
var id = _ref12.id;
|
|
3550
|
-
return same && id === currentIds[index];
|
|
3551
|
-
}, true);
|
|
3552
|
-
if (!sameOrder || hasScreenProps) {
|
|
3553
|
-
var newValue = _objectSpread(_objectSpread({}, value), {}, {
|
|
3554
|
-
components: _toConsumableArray(currentScreens).sort(function (_ref13, _ref14) {
|
|
3555
|
-
var idA = _ref13.id;
|
|
3556
|
-
var idB = _ref14.id;
|
|
3557
|
-
var indexA = ids.indexOf(idA);
|
|
3558
|
-
var indexB = ids.indexOf(idB);
|
|
3559
|
-
if (indexA === indexB) {
|
|
3560
|
-
return 0;
|
|
3561
|
-
}
|
|
3562
|
-
return indexA > indexB ? 1 : -1;
|
|
3563
|
-
}).map(function (_ref15) {
|
|
3564
|
-
var _screenProps$find;
|
|
3565
|
-
var id = _ref15.id,
|
|
3566
|
-
props = _objectWithoutProperties(_ref15, _excluded$1);
|
|
3567
|
-
return _objectSpread(_objectSpread({
|
|
3568
|
-
id: id
|
|
3569
|
-
}, props), (_screenProps$find = screenProps.find(function (_ref16) {
|
|
3570
|
-
var propsId = _ref16.id;
|
|
3571
|
-
return propsId === id;
|
|
3572
|
-
})) === null || _screenProps$find === void 0 ? void 0 : _screenProps$find.props);
|
|
3573
|
-
})
|
|
3574
|
-
});
|
|
3575
|
-
if (onChange !== null) {
|
|
3576
|
-
// console.log('og!', listItems, newValue);
|
|
3577
|
-
onChange(newValue);
|
|
3578
|
-
}
|
|
3579
|
-
}
|
|
3580
|
-
}, [value, onChange]);
|
|
3581
|
-
var onClickScreenType = React.useCallback(function (definition) {
|
|
3582
|
-
setCreateModalOpened(false);
|
|
3583
|
-
var currentScreen = isTheme ? screens.find(function (_ref17) {
|
|
3584
|
-
var type = _ref17.type;
|
|
3585
|
-
return type === definition.id;
|
|
3586
|
-
}) || null : null;
|
|
3587
|
-
if (!isTheme || currentScreen === null) {
|
|
3588
|
-
currentScreen = createScreenFromDefinition(definition);
|
|
3589
|
-
}
|
|
3590
|
-
push('screen', {
|
|
3591
|
-
screen: currentScreen.id
|
|
3592
|
-
});
|
|
3593
|
-
onClickScreen(currentScreen);
|
|
3594
|
-
}, [screens, isTheme, createScreenFromDefinition, push, onClickScreen]);
|
|
3595
|
-
var onClickAdd = React.useCallback(function () {
|
|
3596
|
-
return setCreateModalOpened(true);
|
|
3597
|
-
}, [setCreateModalOpened]);
|
|
3598
|
-
var onCreateModalRequestClose = React.useCallback(function () {
|
|
3599
|
-
return setCreateModalOpened(false);
|
|
3600
|
-
}, [setCreateModalOpened]);
|
|
3601
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3602
|
-
className: classNames(['d-flex', 'flex-column', styles$2.container, className])
|
|
3603
|
-
}, /*#__PURE__*/React.createElement(components.Navbar, {
|
|
3604
|
-
compact: true,
|
|
3605
|
-
noWrap: true,
|
|
3606
|
-
withoutCollapse: true,
|
|
3607
|
-
className: classNames(['sticky-top', styles$2.navbar])
|
|
3608
|
-
}, /*#__PURE__*/React.createElement("strong", {
|
|
3609
|
-
className: "mb-0 me-auto"
|
|
3610
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3611
|
-
id: "jf+4Hq",
|
|
3612
|
-
defaultMessage: [{
|
|
3613
|
-
"type": 0,
|
|
3614
|
-
"value": "Screens"
|
|
3615
|
-
}]
|
|
3616
|
-
})), /*#__PURE__*/React.createElement(components.Button, {
|
|
3617
|
-
theme: "primary",
|
|
3618
|
-
size: "sm",
|
|
3619
|
-
onClick: onClickAdd,
|
|
3620
|
-
icon: /*#__PURE__*/React.createElement(reactFontawesome.FontAwesomeIcon, {
|
|
3621
|
-
icon: faPlus.faPlus
|
|
3622
|
-
})
|
|
3623
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3624
|
-
className: "flex-grow-1 d-flex w-100 p-2"
|
|
3625
|
-
}, /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {
|
|
3626
|
-
path: "".concat(routes.screen, "/(.*)?")
|
|
3627
|
-
}, function (_ref18) {
|
|
3628
|
-
var _ref18$screen = _ref18.screen,
|
|
3629
|
-
screenId = _ref18$screen === void 0 ? null : _ref18$screen;
|
|
3630
|
-
return screens.length > 0 ? /*#__PURE__*/React.createElement(ScreensMenu$1, {
|
|
3631
|
-
items: screens.map(function (it) {
|
|
3632
|
-
return {
|
|
3633
|
-
id: it.id,
|
|
3634
|
-
screen: it,
|
|
3635
|
-
href: url('screen', {
|
|
3636
|
-
screen: it.id
|
|
3637
|
-
}),
|
|
3638
|
-
active: it.id === screenId
|
|
3639
|
-
};
|
|
3640
|
-
}),
|
|
3641
|
-
isVertical: isVertical,
|
|
3642
|
-
withPreview: true,
|
|
3643
|
-
sortable: !isTree,
|
|
3644
|
-
className: "w-100",
|
|
3645
|
-
onClickItem: onClickScreen,
|
|
3646
|
-
onOrderChange: onOrderChange,
|
|
3647
|
-
isTree: isTree
|
|
3648
|
-
}) : /*#__PURE__*/React.createElement(components.Empty, {
|
|
3649
|
-
className: "flex-grow-1 p-2"
|
|
3650
|
-
}, /*#__PURE__*/React.createElement(components.Button, {
|
|
3651
|
-
theme: "primary",
|
|
3652
|
-
onClick: onClickAdd
|
|
3653
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3654
|
-
id: "JoWKee",
|
|
3655
|
-
defaultMessage: [{
|
|
3656
|
-
"type": 0,
|
|
3657
|
-
"value": "Create your first screen"
|
|
3658
|
-
}]
|
|
3659
|
-
})));
|
|
3660
|
-
}), /*#__PURE__*/React.createElement(Route, null, screens.length > 0 ? /*#__PURE__*/React.createElement(ScreensMenu$1, {
|
|
3661
|
-
items: screens.map(function (it) {
|
|
3662
|
-
return {
|
|
3663
|
-
id: it.id,
|
|
3664
|
-
screen: it,
|
|
3665
|
-
href: url('screen', {
|
|
3666
|
-
screen: it.id
|
|
3667
|
-
}),
|
|
3668
|
-
active: false
|
|
3669
|
-
};
|
|
3670
|
-
}),
|
|
3671
|
-
isVertical: isVertical,
|
|
3672
|
-
withPreview: true,
|
|
3673
|
-
sortable: !isTree,
|
|
3674
|
-
className: "w-100",
|
|
3675
|
-
onClickItem: onClickScreen,
|
|
3676
|
-
onOrderChange: onOrderChange,
|
|
3677
|
-
isTree: isTree
|
|
3678
|
-
}) : /*#__PURE__*/React.createElement(components.Empty, {
|
|
3679
|
-
className: "flex-grow-1 p-2"
|
|
3680
|
-
}, /*#__PURE__*/React.createElement(components.Button, {
|
|
3681
|
-
theme: "primary",
|
|
3682
|
-
onClick: onClickAdd
|
|
3683
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3684
|
-
id: "JoWKee",
|
|
3685
|
-
defaultMessage: [{
|
|
3686
|
-
"type": 0,
|
|
3687
|
-
"value": "Create your first screen"
|
|
3688
|
-
}]
|
|
3689
|
-
})))))), createModalOpened ? /*#__PURE__*/React.createElement(ScreenTypesModal$1, {
|
|
3690
|
-
selectedTypes: isTheme ? screens.map(function (_ref19) {
|
|
3691
|
-
var type = _ref19.type;
|
|
3692
|
-
return type;
|
|
3693
|
-
}) : [],
|
|
3694
|
-
onClickScreenType: onClickScreenType,
|
|
3695
|
-
onRequestClose: onCreateModalRequestClose
|
|
3696
|
-
}) : null);
|
|
3697
|
-
};
|
|
3698
|
-
EditorScreens.propTypes = propTypes$4;
|
|
3699
|
-
EditorScreens.defaultProps = defaultProps$4;
|
|
3700
|
-
var Screens = EditorScreens;
|
|
3701
|
-
|
|
3702
|
-
var styles$1 = {"container":"micromag-editor-container","left":"micromag-editor-left","right":"micromag-editor-right","fullscreen":"micromag-editor-fullscreen","preview":"micromag-editor-preview","center":"micromag-editor-center","inner":"micromag-editor-inner","visible":"micromag-editor-visible","top":"micromag-editor-top"};
|
|
3703
|
-
|
|
3704
|
-
var propTypes$3 = {
|
|
3705
|
-
value: PropTypes.oneOfType([core.PropTypes.story, core.PropTypes.theme]),
|
|
3706
|
-
deviceScreens: core.PropTypes.deviceScreens,
|
|
3707
|
-
viewerTheme: core.PropTypes.viewerTheme,
|
|
3708
|
-
mobileView: PropTypes.oneOf(['screens', 'preview', 'form']),
|
|
3709
|
-
fullscreen: PropTypes.bool,
|
|
3710
|
-
isTheme: PropTypes.bool,
|
|
3711
|
-
isCreateOpened: PropTypes.bool,
|
|
3712
|
-
onChange: PropTypes.func,
|
|
3713
|
-
className: PropTypes.string
|
|
3714
|
-
};
|
|
3715
|
-
var defaultProps$3 = {
|
|
3716
|
-
value: null,
|
|
3717
|
-
deviceScreens: utils.getDeviceScreens(),
|
|
3718
|
-
viewerTheme: null,
|
|
3719
|
-
mobileView: 'preview',
|
|
3720
|
-
fullscreen: false,
|
|
3721
|
-
isTheme: false,
|
|
3722
|
-
isCreateOpened: false,
|
|
3723
|
-
onChange: null,
|
|
3724
|
-
className: null
|
|
3725
|
-
};
|
|
3726
|
-
var Editor = function Editor(_ref) {
|
|
3727
|
-
var value = _ref.value,
|
|
3728
|
-
viewerTheme = _ref.viewerTheme,
|
|
3729
|
-
isTheme = _ref.isTheme,
|
|
3730
|
-
isCreateOpened = _ref.isCreateOpened,
|
|
3731
|
-
deviceScreens = _ref.deviceScreens,
|
|
3732
|
-
initialMobileView = _ref.mobileView,
|
|
3733
|
-
onChange = _ref.onChange,
|
|
3734
|
-
fullscreen = _ref.fullscreen,
|
|
3735
|
-
className = _ref.className;
|
|
3736
|
-
var push = contexts.useRoutePush();
|
|
3737
|
-
var refScreensContainer = React.useRef(null);
|
|
3738
|
-
var _useRouteParams = useRouteParams({
|
|
3739
|
-
screenOnly: true
|
|
3740
|
-
}),
|
|
3741
|
-
screenId = _useRouteParams.screen;
|
|
3742
|
-
|
|
3743
|
-
// Screen size
|
|
3744
|
-
var _useScreenSizeFromEle = hooks.useScreenSizeFromElement({
|
|
3745
|
-
screens: deviceScreens,
|
|
3746
|
-
withoutMaxSize: true,
|
|
3747
|
-
withoutScale: true
|
|
3748
|
-
}),
|
|
3749
|
-
refContainer = _useScreenSizeFromEle.ref,
|
|
3750
|
-
screenSize = _useScreenSizeFromEle.screenSize;
|
|
3751
|
-
var isMobile = screenSize !== null && screenSize.screens.indexOf('medium') === -1;
|
|
3752
|
-
|
|
3753
|
-
// Mobile view
|
|
3754
|
-
var _useState = React.useState(initialMobileView),
|
|
3755
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
3756
|
-
mobileView = _useState2[0],
|
|
3757
|
-
setMobileView = _useState2[1];
|
|
3758
|
-
var onClickScreens = React.useCallback(function () {
|
|
3759
|
-
return setMobileView('screens');
|
|
3760
|
-
}, [mobileView, setMobileView]);
|
|
3761
|
-
var onClickEdit = React.useCallback(function () {
|
|
3762
|
-
return setMobileView('form');
|
|
3763
|
-
}, [setMobileView]);
|
|
3764
|
-
var onClickViewScreen = React.useCallback(function () {
|
|
3765
|
-
return setMobileView('preview');
|
|
3766
|
-
}, [setMobileView]);
|
|
3767
|
-
|
|
3768
|
-
// console.log('mobileView', screenSize, isMobile, mobileView);
|
|
3769
|
-
|
|
3770
|
-
// Apply base theme values to it's own components
|
|
3771
|
-
var _ref2 = value || {},
|
|
3772
|
-
_ref2$background = _ref2.background,
|
|
3773
|
-
background = _ref2$background === void 0 ? null : _ref2$background,
|
|
3774
|
-
_ref2$colors = _ref2.colors,
|
|
3775
|
-
colors = _ref2$colors === void 0 ? null : _ref2$colors,
|
|
3776
|
-
_ref2$textStyles = _ref2.textStyles,
|
|
3777
|
-
textStyles = _ref2$textStyles === void 0 ? null : _ref2$textStyles,
|
|
3778
|
-
_ref2$boxStyles = _ref2.boxStyles,
|
|
3779
|
-
boxStyles = _ref2$boxStyles === void 0 ? null : _ref2$boxStyles;
|
|
3780
|
-
var baseValue = isTheme ? _objectSpread(_objectSpread({}, value), {}, {
|
|
3781
|
-
theme: {
|
|
3782
|
-
background: background,
|
|
3783
|
-
colors: colors,
|
|
3784
|
-
textStyles: textStyles,
|
|
3785
|
-
boxStyles: boxStyles
|
|
3786
|
-
}
|
|
3787
|
-
}) : value;
|
|
3788
|
-
var story = hooks.useParsedStory(baseValue);
|
|
3789
|
-
var _useMediasParser = hooks.useMediasParser(),
|
|
3790
|
-
parseMediasToPath = _useMediasParser.toPath;
|
|
3791
|
-
var onStoryChange = React.useCallback(function (newStory) {
|
|
3792
|
-
var storyWithMedias = parseMediasToPath(newStory);
|
|
3793
|
-
if (onChange !== null) {
|
|
3794
|
-
onChange(storyWithMedias);
|
|
3795
|
-
}
|
|
3796
|
-
}, [onChange, parseMediasToPath]);
|
|
3797
|
-
var clickedScreenId = React.useRef(null);
|
|
3798
|
-
var onClickScreen = React.useCallback(function (_ref3) {
|
|
3799
|
-
var id = _ref3.id;
|
|
3800
|
-
clickedScreenId.current = id;
|
|
3801
|
-
if (screenSize.screen) {
|
|
3802
|
-
setMobileView('preview');
|
|
3803
|
-
}
|
|
3804
|
-
push('screen', {
|
|
3805
|
-
screen: clickedScreenId.current
|
|
3806
|
-
});
|
|
3807
|
-
}, [screenSize.screen, push]);
|
|
3808
|
-
var onPreviewScreenChange = React.useCallback(function (_ref4) {
|
|
3809
|
-
var newScreenId = _ref4.id;
|
|
3810
|
-
push('screen', {
|
|
3811
|
-
screen: newScreenId
|
|
3812
|
-
});
|
|
3813
|
-
}, [push]);
|
|
3814
|
-
|
|
3815
|
-
// Auto-scroll to current screen except when manually clicking one
|
|
3816
|
-
React.useEffect(function () {
|
|
3817
|
-
if (screenId === null || clickedScreenId.current === screenId) {
|
|
3818
|
-
return;
|
|
3819
|
-
}
|
|
3820
|
-
clickedScreenId.current = null;
|
|
3821
|
-
var screens = refScreensContainer.current;
|
|
3822
|
-
var items = screens.querySelectorAll("[data-screen-id=\"".concat(screenId, "\"]"));
|
|
3823
|
-
if (items !== null && items.length > 0) {
|
|
3824
|
-
var item = items[0];
|
|
3825
|
-
var cnt = item.parentNode.parentNode.parentNode;
|
|
3826
|
-
screens.scrollTop = cnt.offsetTop + item.offsetTop + item.offsetHeight / 2 - screens.clientHeight / 2;
|
|
3827
|
-
}
|
|
3828
|
-
}, [screenId]);
|
|
3829
|
-
|
|
3830
|
-
// console.log('screenId', screenId);
|
|
3831
|
-
|
|
3832
|
-
return /*#__PURE__*/React.createElement(contexts.ModalsProvider, null, /*#__PURE__*/React.createElement(contexts.PanelsProvider, null, /*#__PURE__*/React.createElement(contexts.ScreenSizeProvider, {
|
|
3833
|
-
size: screenSize
|
|
3834
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3835
|
-
className: classNames([styles$1.container, screenSize !== null ? screenSize.screens.map(function (screenName) {
|
|
3836
|
-
return styles$1["screen-".concat(screenName)];
|
|
3837
|
-
}) : null, _defineProperty(_defineProperty({}, styles$1.fullscreen, fullscreen), className, className)]),
|
|
3838
|
-
ref: refContainer
|
|
3839
|
-
}, /*#__PURE__*/React.createElement(components.Navbar, {
|
|
3840
|
-
theme: "light",
|
|
3841
|
-
compact: true,
|
|
3842
|
-
noWrap: true,
|
|
3843
|
-
withoutCollapse: true,
|
|
3844
|
-
className: styles$1.top
|
|
3845
|
-
}, mobileView !== 'screens' ? /*#__PURE__*/React.createElement(components.Button, {
|
|
3846
|
-
size: "sm",
|
|
3847
|
-
theme: "secondary",
|
|
3848
|
-
onClick: onClickScreens,
|
|
3849
|
-
className: "me-auto"
|
|
3850
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3851
|
-
id: "wkysUu",
|
|
3852
|
-
defaultMessage: [{
|
|
3853
|
-
"type": 0,
|
|
3854
|
-
"value": "Screens"
|
|
3855
|
-
}]
|
|
3856
|
-
})) : /*#__PURE__*/React.createElement("span", null), mobileView !== 'form' ? /*#__PURE__*/React.createElement(components.Button, {
|
|
3857
|
-
size: "sm",
|
|
3858
|
-
theme: "primary",
|
|
3859
|
-
onClick: onClickEdit
|
|
3860
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3861
|
-
id: "HseFdk",
|
|
3862
|
-
defaultMessage: [{
|
|
3863
|
-
"type": 0,
|
|
3864
|
-
"value": "Edit"
|
|
3865
|
-
}]
|
|
3866
|
-
})) : null, mobileView === 'form' ? /*#__PURE__*/React.createElement(components.Button, {
|
|
3867
|
-
size: "sm",
|
|
3868
|
-
theme: "primary",
|
|
3869
|
-
onClick: onClickViewScreen
|
|
3870
|
-
}, /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
|
|
3871
|
-
id: "4POR3B",
|
|
3872
|
-
defaultMessage: [{
|
|
3873
|
-
"type": 0,
|
|
3874
|
-
"value": "View screen"
|
|
3875
|
-
}]
|
|
3876
|
-
})) : null), /*#__PURE__*/React.createElement("div", {
|
|
3877
|
-
className: styles$1.inner
|
|
3878
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3879
|
-
className: classNames([styles$1.left, _defineProperty({}, styles$1.visible, !isMobile || mobileView === 'screens')]),
|
|
3880
|
-
ref: refScreensContainer
|
|
3881
|
-
}, /*#__PURE__*/React.createElement(Screens, {
|
|
3882
|
-
value: story,
|
|
3883
|
-
isTheme: isTheme,
|
|
3884
|
-
isCreateOpened: isCreateOpened,
|
|
3885
|
-
isParsed: true,
|
|
3886
|
-
onChange: onStoryChange,
|
|
3887
|
-
onClickScreen: onClickScreen,
|
|
3888
|
-
isVertical: !isMobile,
|
|
3889
|
-
className: styles$1.inner,
|
|
3890
|
-
isTree: true
|
|
3891
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3892
|
-
className: classNames([styles$1.center, _defineProperty({}, styles$1.visible, !isMobile || mobileView === 'preview')])
|
|
3893
|
-
}, /*#__PURE__*/React.createElement(EditorPreview$1, {
|
|
3894
|
-
value: story,
|
|
3895
|
-
isTheme: isTheme,
|
|
3896
|
-
viewerTheme: viewerTheme,
|
|
3897
|
-
className: styles$1.preview,
|
|
3898
|
-
onScreenChange: onPreviewScreenChange,
|
|
3899
|
-
onChange: onStoryChange
|
|
3900
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3901
|
-
className: classNames([styles$1.right, _defineProperty({}, styles$1.visible, !isMobile || mobileView === 'form')])
|
|
3902
|
-
}, /*#__PURE__*/React.createElement(EditorForm, {
|
|
3903
|
-
key: screenId,
|
|
3904
|
-
value: story,
|
|
3905
|
-
isTheme: isTheme,
|
|
3906
|
-
onChange: onStoryChange,
|
|
3907
|
-
className: styles$1.inner
|
|
3908
|
-
}))), /*#__PURE__*/React.createElement(components.Modals, null)))));
|
|
3909
|
-
};
|
|
3910
|
-
Editor.propTypes = propTypes$3;
|
|
3911
|
-
Editor.defaultProps = defaultProps$3;
|
|
3912
|
-
var Editor$1 = Editor;
|
|
3913
|
-
|
|
3914
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
3915
|
-
var routes = PropTypes.shape({
|
|
3916
|
-
home: PropTypes.string.isRequired,
|
|
3917
|
-
screen: PropTypes.string.isRequired,
|
|
3918
|
-
'screen.field': PropTypes.string.isRequired,
|
|
3919
|
-
'screen.field.form': PropTypes.string.isRequired
|
|
3920
|
-
});
|
|
3921
|
-
|
|
3922
|
-
var styles = {"container":"micromag-editor-forms-settings-container","inner":"micromag-editor-forms-settings-inner"};
|
|
3923
|
-
|
|
3924
|
-
var propTypes$2 = {
|
|
3925
|
-
name: PropTypes.string,
|
|
3926
|
-
field: core.PropTypes.formField,
|
|
3927
|
-
value: core.PropTypes.component,
|
|
3928
|
-
className: PropTypes.string,
|
|
3929
|
-
gotoFieldForm: PropTypes.func.isRequired,
|
|
3930
|
-
closeFieldForm: PropTypes.func.isRequired,
|
|
3931
|
-
onChange: PropTypes.func
|
|
3932
|
-
};
|
|
3933
|
-
var defaultProps$2 = {
|
|
3934
|
-
name: null,
|
|
3935
|
-
field: null,
|
|
3936
|
-
value: null,
|
|
3937
|
-
className: null,
|
|
3938
|
-
onChange: null
|
|
3939
|
-
};
|
|
3940
|
-
var SettingsForm = function SettingsForm(_ref) {
|
|
3941
|
-
var name = _ref.name,
|
|
3942
|
-
field = _ref.field,
|
|
3943
|
-
value = _ref.value,
|
|
3944
|
-
className = _ref.className,
|
|
3945
|
-
gotoFieldForm = _ref.gotoFieldForm,
|
|
3946
|
-
closeFieldForm = _ref.closeFieldForm,
|
|
3947
|
-
onChange = _ref.onChange;
|
|
3948
|
-
if (field === null) return false;
|
|
3949
|
-
var _ref2 = field || {},
|
|
3950
|
-
_ref2$type = _ref2.type,
|
|
3951
|
-
type = _ref2$type === void 0 ? null : _ref2$type,
|
|
3952
|
-
_ref2$fieldsProps = _ref2.fieldsProps,
|
|
3953
|
-
fieldsProps = _ref2$fieldsProps === void 0 ? null : _ref2$fieldsProps;
|
|
3954
|
-
var fieldsManager = contexts.useFieldsManager();
|
|
3955
|
-
var _ref3 = type !== null ? fieldsManager.getDefinition(type) : field,
|
|
3956
|
-
_ref3$component = _ref3.component,
|
|
3957
|
-
fieldComponent = _ref3$component === void 0 ? null : _ref3$component,
|
|
3958
|
-
settings = _ref3.settings;
|
|
3959
|
-
var FieldComponent = contexts.useFieldComponent(fieldComponent);
|
|
3960
|
-
var FieldsComponent = contexts.useFieldComponent('fields');
|
|
3961
|
-
var SettingsComponent = FieldComponent !== null ? FieldComponent.settingsComponent || FieldsComponent : FieldsComponent;
|
|
3962
|
-
var onSettingsChange = React.useCallback(function (newSettingsValue) {
|
|
3963
|
-
var newValue = _objectSpread(_objectSpread({}, value), newSettingsValue);
|
|
3964
|
-
if (onChange !== null) {
|
|
3965
|
-
onChange(newValue);
|
|
3966
|
-
}
|
|
3967
|
-
}, [value, onChange]);
|
|
3968
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3969
|
-
className: classNames([styles.container, _defineProperty({}, className, className)])
|
|
3970
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3971
|
-
className: styles.inner
|
|
3972
|
-
}, /*#__PURE__*/React.createElement(SettingsComponent, {
|
|
3973
|
-
name: name,
|
|
3974
|
-
field: field,
|
|
3975
|
-
fields: settings,
|
|
3976
|
-
value: value,
|
|
3977
|
-
onChange: onSettingsChange,
|
|
3978
|
-
gotoFieldForm: gotoFieldForm,
|
|
3979
|
-
closeFieldForm: closeFieldForm,
|
|
3980
|
-
fieldsProps: fieldsProps
|
|
3981
|
-
})));
|
|
3982
|
-
};
|
|
3983
|
-
SettingsForm.propTypes = propTypes$2;
|
|
3984
|
-
SettingsForm.defaultProps = defaultProps$2;
|
|
3985
|
-
var SettingsForm$1 = SettingsForm;
|
|
3986
|
-
|
|
3987
|
-
// eslint-disable-next-line import/prefer-default-export
|
|
3988
|
-
|
|
3989
|
-
var FormsComponents = /*#__PURE__*/Object.freeze({
|
|
3990
|
-
__proto__: null,
|
|
3991
|
-
Settings: SettingsForm$1
|
|
3992
|
-
});
|
|
3993
|
-
|
|
3994
|
-
/* eslint-disable react/jsx-props-no-spreading */
|
|
3995
|
-
var propTypes$1 = {
|
|
3996
|
-
children: PropTypes.node
|
|
3997
|
-
};
|
|
3998
|
-
var defaultProps$1 = {
|
|
3999
|
-
children: null
|
|
4000
|
-
};
|
|
4001
|
-
var FormsProvider = function FormsProvider(props) {
|
|
4002
|
-
return /*#__PURE__*/React.createElement(contexts.ComponentsProvider, Object.assign({
|
|
4003
|
-
namespace: contexts.FORMS_NAMESPACE,
|
|
4004
|
-
components: FormsComponents
|
|
4005
|
-
}, props));
|
|
4006
|
-
};
|
|
4007
|
-
FormsProvider.propTypes = propTypes$1;
|
|
4008
|
-
FormsProvider.defaultProps = defaultProps$1;
|
|
4009
|
-
var FormsProvider$1 = FormsProvider;
|
|
4010
|
-
|
|
4011
|
-
var home = "/";
|
|
4012
|
-
var screen_wildcard = "/:screen/(.*)?";
|
|
4013
|
-
var screen = "/:screen";
|
|
4014
|
-
var defaultRoutes = {
|
|
4015
|
-
home: home,
|
|
4016
|
-
screen_wildcard: screen_wildcard,
|
|
4017
|
-
screen: screen,
|
|
4018
|
-
"screen.field": "/:screen/:field+",
|
|
4019
|
-
"screen.field.form": "/:screen/:field+/:form"
|
|
4020
|
-
};
|
|
4021
|
-
|
|
4022
|
-
var _excluded = ["value", "memoryRouter", "routes", "basePath", "uppy", "googleApiKey", "googleMapsLibraries", "screenNamespaces"];
|
|
4023
|
-
var pathToRegexpParser = createPathToRegexpParser();
|
|
4024
|
-
var propTypes = {
|
|
4025
|
-
value: PropTypes.oneOfType([core.PropTypes.story, core.PropTypes.theme]),
|
|
4026
|
-
routes: routes,
|
|
4027
|
-
memoryRouter: PropTypes.bool,
|
|
4028
|
-
basePath: PropTypes.string,
|
|
4029
|
-
uppy: PropTypes.shape({
|
|
4030
|
-
transport: PropTypes.string
|
|
4031
|
-
}),
|
|
4032
|
-
googleApiKey: PropTypes.string,
|
|
4033
|
-
googleMapsLibraries: PropTypes.arrayOf(PropTypes.string),
|
|
4034
|
-
screenNamespaces: PropTypes.arrayOf(PropTypes.string)
|
|
4035
|
-
};
|
|
4036
|
-
var defaultProps = {
|
|
4037
|
-
value: null,
|
|
4038
|
-
routes: defaultRoutes,
|
|
4039
|
-
memoryRouter: false,
|
|
4040
|
-
basePath: null,
|
|
4041
|
-
uppy: null,
|
|
4042
|
-
googleApiKey: null,
|
|
4043
|
-
googleMapsLibraries: ['places'],
|
|
4044
|
-
screenNamespaces: null
|
|
4045
|
-
};
|
|
4046
|
-
var EditorContainer = function EditorContainer(_ref) {
|
|
4047
|
-
var value = _ref.value,
|
|
4048
|
-
memoryRouter = _ref.memoryRouter,
|
|
4049
|
-
routes = _ref.routes,
|
|
4050
|
-
basePath = _ref.basePath,
|
|
4051
|
-
uppy$1 = _ref.uppy,
|
|
4052
|
-
googleApiKey = _ref.googleApiKey,
|
|
4053
|
-
googleMapsLibraries = _ref.googleMapsLibraries,
|
|
4054
|
-
screenNamespaces = _ref.screenNamespaces,
|
|
4055
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
4056
|
-
var _useIntl = reactIntl.useIntl(),
|
|
4057
|
-
locale = _useIntl.locale;
|
|
4058
|
-
var _useMemoryRouter = useMemoryRouter(),
|
|
4059
|
-
memoryLocationHook = _useMemoryRouter.hook,
|
|
4060
|
-
memorySearchHook = _useMemoryRouter.searchHook;
|
|
4061
|
-
var routerProps = React.useMemo(function () {
|
|
4062
|
-
return {
|
|
4063
|
-
hook: memoryRouter ? memoryLocationHook : null,
|
|
4064
|
-
searchHook: memoryRouter ? memorySearchHook : null,
|
|
4065
|
-
parser: pathToRegexpParser,
|
|
4066
|
-
base: !memoryRouter ? basePath : null
|
|
4067
|
-
};
|
|
4068
|
-
}, [basePath, memoryRouter]);
|
|
4069
|
-
return /*#__PURE__*/React.createElement(Router, routerProps, /*#__PURE__*/React.createElement(uppy.UppyProvider, uppy$1, /*#__PURE__*/React.createElement(contexts.StoryProvider, {
|
|
4070
|
-
story: value
|
|
4071
|
-
}, /*#__PURE__*/React.createElement(screens.ScreensProvider, {
|
|
4072
|
-
filterNamespaces: true,
|
|
4073
|
-
namespaces: screenNamespaces
|
|
4074
|
-
}, /*#__PURE__*/React.createElement(contexts.GoogleKeysProvider, {
|
|
4075
|
-
apiKey: googleApiKey
|
|
4076
|
-
}, /*#__PURE__*/React.createElement(contexts.GoogleMapsClientProvider, {
|
|
4077
|
-
locale: locale,
|
|
4078
|
-
libraries: googleMapsLibraries
|
|
4079
|
-
}, /*#__PURE__*/React.createElement(contexts.FontsProvider, null, /*#__PURE__*/React.createElement(fields.FieldsProvider, null, /*#__PURE__*/React.createElement(FormsProvider$1, null, /*#__PURE__*/React.createElement(contexts.EditorProvider, null, /*#__PURE__*/React.createElement(contexts.VisitorProvider, {
|
|
4080
|
-
visitor: "editor"
|
|
4081
|
-
}, /*#__PURE__*/React.createElement(contexts.ComponentsContext.Consumer, null, function (manager) {
|
|
4082
|
-
var formComponents = manager.getComponents(contexts.FORMS_NAMESPACE);
|
|
4083
|
-
var formRegEx = formComponents !== null ? Object.keys(formComponents).map(function (name) {
|
|
4084
|
-
return utils.slug(name);
|
|
4085
|
-
}).join('|') : null;
|
|
4086
|
-
return /*#__PURE__*/React.createElement(contexts.RoutesProvider, {
|
|
4087
|
-
routes: _objectSpread(_objectSpread({}, routes), {}, {
|
|
4088
|
-
'screen.field.form': routes['screen.field.form'].replace(/:form$/, ":form(".concat(formRegEx, ")"))
|
|
4089
|
-
})
|
|
4090
|
-
}, /*#__PURE__*/React.createElement(Editor$1, Object.assign({
|
|
4091
|
-
value: value
|
|
4092
|
-
}, props)));
|
|
4093
|
-
}))))))))))));
|
|
4094
|
-
};
|
|
4095
|
-
EditorContainer.propTypes = propTypes;
|
|
4096
|
-
EditorContainer.defaultProps = defaultProps;
|
|
4097
|
-
var EditorContainer$1 = EditorContainer;
|
|
4098
|
-
|
|
4099
|
-
exports.Editor = Editor$1;
|
|
4100
|
-
exports.ScreenTypes = ScreenTypesMenu;
|
|
4101
|
-
exports.Screens = ScreensMenu$1;
|
|
4102
|
-
exports.createScreen = createScreen$1;
|
|
4103
|
-
exports.default = EditorContainer$1;
|