@micromag/core 0.3.480 → 0.3.485
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/components.js +186 -115
- package/es/contexts.js +81 -125
- package/es/hooks.js +27 -11
- package/es/index.js +25 -104
- package/es/utils.js +66 -124
- package/lib/components.js +518 -179
- package/lib/contexts.js +353 -63
- package/lib/hooks.js +40 -24
- package/lib/index.js +34 -29
- package/lib/utils.js +109 -62
- package/package.json +10 -7
package/lib/contexts.js
CHANGED
|
@@ -13,13 +13,35 @@ var fetch = require('@folklore/fetch');
|
|
|
13
13
|
var isObject = require('lodash/isObject');
|
|
14
14
|
var services = require('@folklore/services');
|
|
15
15
|
var utils = require('@micromag/core/utils');
|
|
16
|
-
var
|
|
16
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
17
|
+
var pathToRegexp = require('path-to-regexp');
|
|
18
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
19
|
+
var regexparam = require('regexparam');
|
|
20
|
+
var index_js = require('use-sync-external-store/shim/index.js');
|
|
17
21
|
var reactIntl = require('react-intl');
|
|
18
22
|
var tracking = require('@folklore/tracking');
|
|
19
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
20
23
|
var uuid = require('uuid');
|
|
21
24
|
var EventEmitter = require('wolfy87-eventemitter');
|
|
22
25
|
|
|
26
|
+
function _interopNamespaceDefault(e) {
|
|
27
|
+
var n = Object.create(null);
|
|
28
|
+
if (e) {
|
|
29
|
+
Object.keys(e).forEach(function (k) {
|
|
30
|
+
if (k !== 'default') {
|
|
31
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
32
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return e[k]; }
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
n.default = e;
|
|
40
|
+
return Object.freeze(n);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
44
|
+
|
|
23
45
|
var MODALS_NAMESPACE = 'modals';
|
|
24
46
|
var FIELDS_NAMESPACE = 'fields';
|
|
25
47
|
var FORMS_NAMESPACE = 'forms';
|
|
@@ -984,84 +1006,352 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
984
1006
|
PlaybackProvider.propTypes = propTypes$7;
|
|
985
1007
|
PlaybackProvider.defaultProps = defaultProps$7;
|
|
986
1008
|
|
|
987
|
-
|
|
988
|
-
var
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1009
|
+
// React.useInsertionEffect is not available in React <18
|
|
1010
|
+
var useEffect = React__namespace.useEffect,
|
|
1011
|
+
useLayoutEffect = React__namespace.useLayoutEffect,
|
|
1012
|
+
useRef = React__namespace.useRef,
|
|
1013
|
+
useBuiltinInsertionEffect = React__namespace.useInsertionEffect;
|
|
1014
|
+
|
|
1015
|
+
// Copied from:
|
|
1016
|
+
// https://github.com/facebook/react/blob/main/packages/shared/ExecutionEnvironment.js
|
|
1017
|
+
var canUseDOM = !!(typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined");
|
|
1018
|
+
|
|
1019
|
+
// Copied from:
|
|
1020
|
+
// https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.ts
|
|
1021
|
+
// "React currently throws a warning when using useLayoutEffect on the server.
|
|
1022
|
+
// To get around it, we can conditionally useEffect on the server (no-op) and
|
|
1023
|
+
// useLayoutEffect in the browser."
|
|
1024
|
+
var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;
|
|
1025
|
+
|
|
1026
|
+
// useInsertionEffect is already a noop on the server.
|
|
1027
|
+
// See: https://github.com/facebook/react/blob/main/packages/react-server/src/ReactFizzHooks.js
|
|
1028
|
+
var useInsertionEffect = useBuiltinInsertionEffect || useIsomorphicLayoutEffect;
|
|
1029
|
+
|
|
1030
|
+
// Userland polyfill while we wait for the forthcoming
|
|
1031
|
+
// https://github.com/reactjs/rfcs/blob/useevent/text/0000-useevent.md
|
|
1032
|
+
// Note: "A high-fidelity polyfill for useEvent is not possible because
|
|
1033
|
+
// there is no lifecycle or Hook in React that we can use to switch
|
|
1034
|
+
// .current at the right timing."
|
|
1035
|
+
// So we will have to make do with this "close enough" approach for now.
|
|
1036
|
+
var useEvent = function useEvent(fn) {
|
|
1037
|
+
var ref = useRef([fn, function () {
|
|
1038
|
+
return ref[0].apply(ref, arguments);
|
|
1039
|
+
}]).current;
|
|
1040
|
+
// Per Dan Abramov: useInsertionEffect executes marginally closer to the
|
|
1041
|
+
// correct timing for ref synchronization than useLayoutEffect on React 18.
|
|
1042
|
+
// See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360
|
|
1043
|
+
useInsertionEffect(function () {
|
|
1044
|
+
ref[0] = fn;
|
|
1045
|
+
});
|
|
1046
|
+
return ref[1];
|
|
1003
1047
|
};
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
search: search
|
|
1023
|
-
}].concat(args));
|
|
1024
|
-
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* History API docs @see https://developer.mozilla.org/en-US/docs/Web/API/History
|
|
1051
|
+
*/
|
|
1052
|
+
var eventPopstate = "popstate";
|
|
1053
|
+
var eventPushState = "pushState";
|
|
1054
|
+
var eventReplaceState = "replaceState";
|
|
1055
|
+
var eventHashchange = "hashchange";
|
|
1056
|
+
var events = [eventPopstate, eventPushState, eventReplaceState, eventHashchange];
|
|
1057
|
+
var subscribeToLocationUpdates = function subscribeToLocationUpdates(callback) {
|
|
1058
|
+
for (var _i = 0, _events = events; _i < _events.length; _i++) {
|
|
1059
|
+
var event = _events[_i];
|
|
1060
|
+
addEventListener(event, callback);
|
|
1061
|
+
}
|
|
1062
|
+
return function () {
|
|
1063
|
+
for (var _i2 = 0, _events2 = events; _i2 < _events2.length; _i2++) {
|
|
1064
|
+
var _event = _events2[_i2];
|
|
1065
|
+
removeEventListener(_event, callback);
|
|
1025
1066
|
}
|
|
1026
|
-
}
|
|
1027
|
-
return push;
|
|
1067
|
+
};
|
|
1028
1068
|
};
|
|
1029
|
-
var
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1069
|
+
var useLocationProperty = function useLocationProperty(fn, ssrFn) {
|
|
1070
|
+
return index_js.useSyncExternalStore(subscribeToLocationUpdates, fn, ssrFn);
|
|
1071
|
+
};
|
|
1072
|
+
var currentSearch = function currentSearch() {
|
|
1073
|
+
return location.search;
|
|
1074
|
+
};
|
|
1075
|
+
var useSearch = function useSearch() {
|
|
1076
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1077
|
+
_ref$ssrSearch = _ref.ssrSearch,
|
|
1078
|
+
ssrSearch = _ref$ssrSearch === void 0 ? "" : _ref$ssrSearch;
|
|
1079
|
+
return useLocationProperty(currentSearch, function () {
|
|
1080
|
+
return ssrSearch;
|
|
1081
|
+
});
|
|
1082
|
+
};
|
|
1083
|
+
var currentPathname = function currentPathname() {
|
|
1084
|
+
return location.pathname;
|
|
1085
|
+
};
|
|
1086
|
+
var usePathname = function usePathname() {
|
|
1087
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1088
|
+
ssrPath = _ref2.ssrPath;
|
|
1089
|
+
return useLocationProperty(currentPathname, ssrPath ? function () {
|
|
1090
|
+
return ssrPath;
|
|
1091
|
+
} : currentPathname);
|
|
1092
|
+
};
|
|
1093
|
+
var navigate = function navigate(to) {
|
|
1094
|
+
var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
1095
|
+
_ref3$replace = _ref3.replace,
|
|
1096
|
+
replace = _ref3$replace === void 0 ? false : _ref3$replace,
|
|
1097
|
+
_ref3$state = _ref3.state,
|
|
1098
|
+
state = _ref3$state === void 0 ? null : _ref3$state;
|
|
1099
|
+
return history[replace ? eventReplaceState : eventPushState](state, "", to);
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
// the 2nd argument of the `useBrowserLocation` return value is a function
|
|
1103
|
+
// that allows to perform a navigation.
|
|
1104
|
+
var useBrowserLocation = function useBrowserLocation() {
|
|
1105
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1106
|
+
return [usePathname(opts), navigate];
|
|
1107
|
+
};
|
|
1108
|
+
var patchKey = Symbol["for"]("wouter_v3");
|
|
1109
|
+
|
|
1110
|
+
// While History API does have `popstate` event, the only
|
|
1111
|
+
// proper way to listen to changes via `push/replaceState`
|
|
1112
|
+
// is to monkey-patch these methods.
|
|
1113
|
+
//
|
|
1114
|
+
// See https://stackoverflow.com/a/4585031
|
|
1115
|
+
if (typeof history !== "undefined" && typeof window[patchKey] === "undefined") {
|
|
1116
|
+
var _loop = function _loop() {
|
|
1117
|
+
var type = _arr[_i3];
|
|
1118
|
+
var original = history[type];
|
|
1119
|
+
// TODO: we should be using unstable_batchedUpdates to avoid multiple re-renders,
|
|
1120
|
+
// however that will require an additional peer dependency on react-dom.
|
|
1121
|
+
// See: https://github.com/reactwg/react-18/discussions/86#discussioncomment-1567149
|
|
1122
|
+
history[type] = function () {
|
|
1123
|
+
var result = original.apply(this, arguments);
|
|
1124
|
+
var event = new Event(type);
|
|
1125
|
+
event.arguments = arguments;
|
|
1126
|
+
dispatchEvent(event);
|
|
1127
|
+
return result;
|
|
1128
|
+
};
|
|
1129
|
+
};
|
|
1130
|
+
for (var _i3 = 0, _arr = [eventPushState, eventReplaceState]; _i3 < _arr.length; _i3++) {
|
|
1131
|
+
_loop();
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
// patch history object only once
|
|
1135
|
+
// See: https://github.com/molefrog/wouter/issues/167
|
|
1136
|
+
Object.defineProperty(window, patchKey, {
|
|
1137
|
+
value: true
|
|
1138
|
+
});
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
var _excluded3 = ["to", "href", "onClick", "asChild", "children", "replace", "state"];
|
|
1142
|
+
|
|
1143
|
+
/*
|
|
1144
|
+
* Transforms `path` into its relative `base` version
|
|
1145
|
+
* If base isn't part of the path provided returns absolute path e.g. `~/app`
|
|
1146
|
+
*/
|
|
1147
|
+
var relativePath = function relativePath() {
|
|
1148
|
+
var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
|
|
1149
|
+
var path = arguments.length > 1 ? arguments[1] : undefined;
|
|
1150
|
+
return !path.toLowerCase().indexOf(base.toLowerCase()) ? path.slice(base.length) || "/" : "~" + path;
|
|
1151
|
+
};
|
|
1152
|
+
var absolutePath = function absolutePath(to) {
|
|
1153
|
+
var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
1154
|
+
return to[0] === "~" ? to.slice(1) : base + to;
|
|
1155
|
+
};
|
|
1156
|
+
|
|
1157
|
+
/*
|
|
1158
|
+
* decodes escape sequences such as %20
|
|
1159
|
+
*/
|
|
1160
|
+
var unescape = function unescape(str) {
|
|
1161
|
+
try {
|
|
1162
|
+
return decodeURI(str);
|
|
1163
|
+
} catch (_e) {
|
|
1164
|
+
// fail-safe mode: if string can't be decoded do nothing
|
|
1165
|
+
return str;
|
|
1166
|
+
}
|
|
1167
|
+
};
|
|
1168
|
+
|
|
1169
|
+
/*
|
|
1170
|
+
* Router and router context. Router is a lightweight object that represents the current
|
|
1171
|
+
* routing options: how location is managed, base path etc.
|
|
1172
|
+
*
|
|
1173
|
+
* There is a default router present for most of the use cases, however it can be overridden
|
|
1174
|
+
* via the <Router /> component.
|
|
1175
|
+
*/
|
|
1176
|
+
|
|
1177
|
+
var defaultRouter = {
|
|
1178
|
+
hook: useBrowserLocation,
|
|
1179
|
+
searchHook: useSearch,
|
|
1180
|
+
parser: regexparam.parse,
|
|
1181
|
+
base: "",
|
|
1182
|
+
// this option is used to override the current location during SSR
|
|
1183
|
+
ssrPath: undefined,
|
|
1184
|
+
ssrSearch: undefined
|
|
1185
|
+
};
|
|
1186
|
+
var RouterCtx = React.createContext(defaultRouter);
|
|
1187
|
+
|
|
1188
|
+
// gets the closest parent router from the context
|
|
1189
|
+
var useRouter = function useRouter() {
|
|
1190
|
+
return React.useContext(RouterCtx);
|
|
1191
|
+
};
|
|
1192
|
+
|
|
1193
|
+
/**
|
|
1194
|
+
* Parameters context. Used by `useParams()` to get the
|
|
1195
|
+
* matched params from the innermost `Route` component.
|
|
1196
|
+
*/
|
|
1197
|
+
|
|
1198
|
+
React.createContext({});
|
|
1199
|
+
|
|
1200
|
+
/*
|
|
1201
|
+
* Part 1, Hooks API: useRoute and useLocation
|
|
1202
|
+
*/
|
|
1203
|
+
|
|
1204
|
+
// Internal version of useLocation to avoid redundant useRouter calls
|
|
1205
|
+
|
|
1206
|
+
var useLocationFromRouter = function useLocationFromRouter(router) {
|
|
1207
|
+
var _router$hook = router.hook(router),
|
|
1208
|
+
_router$hook2 = _slicedToArray(_router$hook, 2),
|
|
1209
|
+
location = _router$hook2[0],
|
|
1210
|
+
navigate = _router$hook2[1];
|
|
1211
|
+
|
|
1212
|
+
// the function reference should stay the same between re-renders, so that
|
|
1213
|
+
// it can be passed down as an element prop without any performance concerns.
|
|
1214
|
+
// (This is achieved via `useEvent`.)
|
|
1215
|
+
return [unescape(relativePath(router.base, location)), useEvent(function (to, navOpts) {
|
|
1216
|
+
return navigate(absolutePath(to, router.base), navOpts);
|
|
1217
|
+
})];
|
|
1218
|
+
};
|
|
1219
|
+
var useLocation = function useLocation() {
|
|
1220
|
+
return useLocationFromRouter(useRouter());
|
|
1221
|
+
};
|
|
1222
|
+
React.forwardRef(function (props, ref) {
|
|
1223
|
+
var router = useRouter();
|
|
1224
|
+
var _useLocationFromRoute3 = useLocationFromRouter(router),
|
|
1225
|
+
_useLocationFromRoute4 = _slicedToArray(_useLocationFromRoute3, 2),
|
|
1226
|
+
navigate = _useLocationFromRoute4[1];
|
|
1227
|
+
var to = props.to,
|
|
1228
|
+
_props$href = props.href,
|
|
1229
|
+
_href = _props$href === void 0 ? to : _props$href,
|
|
1230
|
+
_onClick = props.onClick,
|
|
1231
|
+
asChild = props.asChild,
|
|
1232
|
+
children = props.children;
|
|
1233
|
+
props.replace;
|
|
1234
|
+
props.state;
|
|
1235
|
+
var restProps = _objectWithoutProperties(props, _excluded3);
|
|
1236
|
+
var onClick = useEvent(function (event) {
|
|
1237
|
+
// ignores the navigation when clicked using right mouse button or
|
|
1238
|
+
// by holding a special modifier key: ctrl, command, win, alt, shift
|
|
1239
|
+
if (event.ctrlKey || event.metaKey || event.altKey || event.shiftKey || event.button !== 0) return;
|
|
1240
|
+
_onClick && _onClick(event); // TODO: is it safe to use _onClick?.(event)
|
|
1241
|
+
if (!event.defaultPrevented) {
|
|
1242
|
+
event.preventDefault();
|
|
1243
|
+
navigate(_href, props);
|
|
1035
1244
|
}
|
|
1036
|
-
}
|
|
1037
|
-
|
|
1245
|
+
});
|
|
1246
|
+
|
|
1247
|
+
// handle nested routers and absolute paths
|
|
1248
|
+
var href = _href[0] === "~" ? _href.slice(1) : router.base + _href;
|
|
1249
|
+
return asChild && React.isValidElement(children) ? React.cloneElement(children, {
|
|
1250
|
+
href: href,
|
|
1251
|
+
onClick: onClick
|
|
1252
|
+
}) : React.createElement("a", _objectSpread(_objectSpread({}, restProps), {}, {
|
|
1253
|
+
href: href,
|
|
1254
|
+
onClick: onClick,
|
|
1255
|
+
children: children,
|
|
1256
|
+
ref: ref
|
|
1257
|
+
}));
|
|
1258
|
+
});
|
|
1259
|
+
|
|
1260
|
+
/* eslint-disable react/jsx-props-no-spreading */
|
|
1261
|
+
var RoutesContext = /*#__PURE__*/React.createContext(null);
|
|
1262
|
+
var useRoutesContext = function useRoutesContext() {
|
|
1263
|
+
return React.useContext(RoutesContext);
|
|
1038
1264
|
};
|
|
1039
1265
|
var propTypes$6 = {
|
|
1040
1266
|
children: PropTypes.node.isRequired,
|
|
1041
|
-
routes: PropTypes.objectOf(PropTypes.string),
|
|
1042
|
-
// .isRequired,
|
|
1267
|
+
routes: PropTypes.objectOf(PropTypes.string).isRequired,
|
|
1043
1268
|
basePath: PropTypes.string
|
|
1044
1269
|
};
|
|
1045
1270
|
var defaultProps$6 = {
|
|
1046
|
-
routes: null,
|
|
1047
1271
|
basePath: null
|
|
1048
1272
|
};
|
|
1049
|
-
|
|
1050
|
-
var routes =
|
|
1051
|
-
basePath =
|
|
1052
|
-
children =
|
|
1273
|
+
function RoutesProvider(_ref) {
|
|
1274
|
+
var routes = _ref.routes,
|
|
1275
|
+
basePath = _ref.basePath,
|
|
1276
|
+
children = _ref.children;
|
|
1053
1277
|
var value = React.useMemo(function () {
|
|
1054
1278
|
return {
|
|
1055
1279
|
routes: routes,
|
|
1056
1280
|
basePath: basePath
|
|
1057
1281
|
};
|
|
1058
|
-
}, []);
|
|
1059
|
-
return /*#__PURE__*/
|
|
1060
|
-
value: value
|
|
1061
|
-
|
|
1062
|
-
};
|
|
1282
|
+
}, [routes, basePath]);
|
|
1283
|
+
return /*#__PURE__*/jsxRuntime.jsx(RoutesContext.Provider, {
|
|
1284
|
+
value: value,
|
|
1285
|
+
children: children
|
|
1286
|
+
});
|
|
1287
|
+
}
|
|
1063
1288
|
RoutesProvider.propTypes = propTypes$6;
|
|
1064
1289
|
RoutesProvider.defaultProps = defaultProps$6;
|
|
1290
|
+
var compilers = {};
|
|
1291
|
+
function generatePath(path, data) {
|
|
1292
|
+
var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
1293
|
+
if (typeof compilers[path] === 'undefined') {
|
|
1294
|
+
compilers[path] = pathToRegexp.compile(path, opts);
|
|
1295
|
+
}
|
|
1296
|
+
var compiler = compilers[path];
|
|
1297
|
+
return compiler(data);
|
|
1298
|
+
}
|
|
1299
|
+
var useUrlGeneratorPathToRepexp = function useUrlGeneratorPathToRepexp() {
|
|
1300
|
+
var _ref2 = useRoutesContext() || {},
|
|
1301
|
+
_ref2$routes = _ref2.routes,
|
|
1302
|
+
routes = _ref2$routes === void 0 ? null : _ref2$routes,
|
|
1303
|
+
_ref2$basePath = _ref2.basePath,
|
|
1304
|
+
basePath = _ref2$basePath === void 0 ? null : _ref2$basePath;
|
|
1305
|
+
var urlGenerator = React.useCallback(function (key, data, opts) {
|
|
1306
|
+
var path = routes !== null ? routes[key] || null : null;
|
|
1307
|
+
if (path === null) {
|
|
1308
|
+
return null;
|
|
1309
|
+
}
|
|
1310
|
+
var url = generatePath(path, data, opts);
|
|
1311
|
+
return basePath !== null ? "".concat(basePath.replace(/\/$/, ''), "/").concat(url.replace(/^\//, '')) : url;
|
|
1312
|
+
}, [routes, basePath]);
|
|
1313
|
+
return urlGenerator;
|
|
1314
|
+
};
|
|
1315
|
+
var useUrlGeneratorPathToRegexp = useUrlGeneratorPathToRepexp;
|
|
1316
|
+
var useRoutes = function useRoutes() {
|
|
1317
|
+
var _useRoutesContext = useRoutesContext(),
|
|
1318
|
+
routes = _useRoutesContext.routes;
|
|
1319
|
+
return routes;
|
|
1320
|
+
};
|
|
1321
|
+
var useRoutes$1 = useRoutes;
|
|
1322
|
+
|
|
1323
|
+
var useRoutePush = function useRoutePush() {
|
|
1324
|
+
var url = useUrlGeneratorPathToRegexp();
|
|
1325
|
+
var _useLocation = useLocation(),
|
|
1326
|
+
_useLocation2 = _slicedToArray(_useLocation, 2),
|
|
1327
|
+
navigate = _useLocation2[1];
|
|
1328
|
+
var push = React.useCallback(function (route, data) {
|
|
1329
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
1330
|
+
args[_key - 2] = arguments[_key];
|
|
1331
|
+
}
|
|
1332
|
+
if (isString(route)) {
|
|
1333
|
+
navigate.apply(void 0, [url(route, data)].concat(args));
|
|
1334
|
+
} else {
|
|
1335
|
+
var _ref = route || {},
|
|
1336
|
+
_ref$pathname = _ref.pathname,
|
|
1337
|
+
pathname = _ref$pathname === void 0 ? null : _ref$pathname,
|
|
1338
|
+
_ref$search = _ref.search,
|
|
1339
|
+
search = _ref$search === void 0 ? null : _ref$search;
|
|
1340
|
+
navigate.apply(void 0, ["".concat(url(pathname, data)).concat(search !== null ? "?".concat(search) : '')].concat(args));
|
|
1341
|
+
}
|
|
1342
|
+
}, [navigate, url]);
|
|
1343
|
+
return push;
|
|
1344
|
+
};
|
|
1345
|
+
var useRouteBack = function useRouteBack() {
|
|
1346
|
+
var url = useUrlGeneratorPathToRegexp();
|
|
1347
|
+
var _useLocation3 = useLocation(),
|
|
1348
|
+
_useLocation4 = _slicedToArray(_useLocation3, 2),
|
|
1349
|
+
navigate = _useLocation4[1];
|
|
1350
|
+
var back = React.useCallback(function () {
|
|
1351
|
+
return navigate(-1);
|
|
1352
|
+
}, [navigate, url]);
|
|
1353
|
+
return back;
|
|
1354
|
+
};
|
|
1065
1355
|
|
|
1066
1356
|
var ScreenContext = /*#__PURE__*/React.createContext({
|
|
1067
1357
|
data: null,
|
|
@@ -2058,7 +2348,7 @@ exports.usePlaybackContext = usePlaybackContext;
|
|
|
2058
2348
|
exports.usePlaybackMediaRef = usePlaybackMediaRef;
|
|
2059
2349
|
exports.useRouteBack = useRouteBack;
|
|
2060
2350
|
exports.useRoutePush = useRoutePush;
|
|
2061
|
-
exports.useRoutes = useRoutes;
|
|
2351
|
+
exports.useRoutes = useRoutes$1;
|
|
2062
2352
|
exports.useScreen = useScreen;
|
|
2063
2353
|
exports.useScreenComponent = useScreenComponent;
|
|
2064
2354
|
exports.useScreenData = useScreenData;
|
|
@@ -2075,7 +2365,7 @@ exports.useStoryContext = useStoryContext;
|
|
|
2075
2365
|
exports.useTracking = useTracking;
|
|
2076
2366
|
exports.useUppy = useUppy;
|
|
2077
2367
|
exports.useUppyConfig = useUppyConfig;
|
|
2078
|
-
exports.useUrlGenerator =
|
|
2368
|
+
exports.useUrlGenerator = useUrlGeneratorPathToRegexp;
|
|
2079
2369
|
exports.useViewerContainer = useViewerContainer;
|
|
2080
2370
|
exports.useViewerContext = useViewerContext;
|
|
2081
2371
|
exports.useViewerEvents = useViewerEvents;
|
package/lib/hooks.js
CHANGED
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
6
|
-
var reactIntl = require('react-intl');
|
|
7
|
-
var isString = require('lodash/isString');
|
|
8
|
-
var dayjs = require('dayjs');
|
|
9
|
-
var core = require('@micromag/core');
|
|
10
|
-
var utils = require('@micromag/core/utils');
|
|
11
6
|
var core$1 = require('@react-spring/core');
|
|
12
7
|
var react$1 = require('@use-gesture/react');
|
|
13
8
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
9
|
+
var raf = require('raf');
|
|
10
|
+
var isObject = require('lodash/isObject');
|
|
11
|
+
var utils = require('@micromag/core/utils');
|
|
12
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
13
|
+
var core = require('@micromag/core');
|
|
14
14
|
var forms = require('@folklore/forms');
|
|
15
15
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
16
16
|
var classNames = require('classnames');
|
|
17
17
|
var screenfull = require('screenfull');
|
|
18
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
19
18
|
var isArray = require('lodash/isArray');
|
|
20
|
-
var isObject = require('lodash/isObject');
|
|
21
19
|
var createDebug = require('debug');
|
|
22
|
-
var
|
|
20
|
+
var isString = require('lodash/isString');
|
|
23
21
|
var contexts = require('@micromag/core/contexts');
|
|
22
|
+
var reactIntl = require('react-intl');
|
|
23
|
+
var dayjs = require('dayjs');
|
|
24
24
|
var cssMediaquery = require('css-mediaquery');
|
|
25
25
|
var clamp = require('lodash/clamp');
|
|
26
26
|
|
|
@@ -118,6 +118,7 @@ var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
|
118
118
|
};
|
|
119
119
|
}, [disabled]);
|
|
120
120
|
};
|
|
121
|
+
var useAnimationFrame$1 = useAnimationFrame;
|
|
121
122
|
|
|
122
123
|
var useFormattedDate = function useFormattedDate() {
|
|
123
124
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -186,9 +187,11 @@ var useDebounced = function useDebounced(handler, watchedValue) {
|
|
|
186
187
|
};
|
|
187
188
|
}, [watchedValue, delay]);
|
|
188
189
|
};
|
|
190
|
+
var useDebounced$1 = useDebounced;
|
|
189
191
|
|
|
190
192
|
var eventsManager$1 = typeof document !== 'undefined' ? new core.EventsManager(document) : null;
|
|
191
193
|
var useDocumentEvent = utils.createUseEvent(eventsManager$1);
|
|
194
|
+
var useDocumentEvent$1 = useDocumentEvent;
|
|
192
195
|
|
|
193
196
|
function useDragProgress() {
|
|
194
197
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -297,6 +300,7 @@ var useForm = function useForm() {
|
|
|
297
300
|
}) : providedFields
|
|
298
301
|
});
|
|
299
302
|
};
|
|
303
|
+
var useForm$1 = useForm;
|
|
300
304
|
|
|
301
305
|
var useFormTransition = function useFormTransition() {
|
|
302
306
|
var paths = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
@@ -325,6 +329,7 @@ var useFormTransition = function useFormTransition() {
|
|
|
325
329
|
timeout: direction === 'left' || direction === 'right' ? 300 : 10
|
|
326
330
|
};
|
|
327
331
|
};
|
|
332
|
+
var useFormTransition$1 = useFormTransition;
|
|
328
333
|
|
|
329
334
|
var useFullscreen = function useFullscreen(element) {
|
|
330
335
|
var enabled = screenfull.isEnabled;
|
|
@@ -374,6 +379,7 @@ var useFullscreen = function useFullscreen(element) {
|
|
|
374
379
|
enabled: enabled
|
|
375
380
|
};
|
|
376
381
|
};
|
|
382
|
+
var useFullscreen$1 = useFullscreen;
|
|
377
383
|
|
|
378
384
|
var _excluded$2 = ["entry"];
|
|
379
385
|
var buildThresholdArray = function buildThresholdArray() {
|
|
@@ -631,6 +637,7 @@ var useIsVisible = function useIsVisible() {
|
|
|
631
637
|
visible: isVisible
|
|
632
638
|
};
|
|
633
639
|
};
|
|
640
|
+
var useIsVisible$1 = useIsVisible;
|
|
634
641
|
|
|
635
642
|
var fontsMap = {
|
|
636
643
|
loading: [],
|
|
@@ -731,6 +738,7 @@ var useLoadedFonts = function useLoadedFonts(fonts) {
|
|
|
731
738
|
loaded: loaded
|
|
732
739
|
};
|
|
733
740
|
};
|
|
741
|
+
var useLoadedFonts$1 = useLoadedFonts;
|
|
734
742
|
|
|
735
743
|
var isTouchEvent = function isTouchEvent(event) {
|
|
736
744
|
return 'touches' in event;
|
|
@@ -853,6 +861,7 @@ var useLongPress = function useLongPress() {
|
|
|
853
861
|
triggered: triggered
|
|
854
862
|
};
|
|
855
863
|
};
|
|
864
|
+
var useLongPress$1 = useLongPress;
|
|
856
865
|
|
|
857
866
|
var progressSteps = [0.1, 0.25, 0.5, 0.75, 0.9];
|
|
858
867
|
var useMediaApi = function useMediaApi() {
|
|
@@ -1188,6 +1197,7 @@ var useMediaApi = function useMediaApi() {
|
|
|
1188
1197
|
suspended: suspended
|
|
1189
1198
|
};
|
|
1190
1199
|
};
|
|
1200
|
+
var useMediaApi$1 = useMediaApi;
|
|
1191
1201
|
|
|
1192
1202
|
var useMediaBuffering = function useMediaBuffering() {
|
|
1193
1203
|
var mediaElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
@@ -1287,6 +1297,7 @@ var useMediaBuffering = function useMediaBuffering() {
|
|
|
1287
1297
|
buffering: buffering
|
|
1288
1298
|
};
|
|
1289
1299
|
};
|
|
1300
|
+
var useMediaBuffering$1 = useMediaBuffering;
|
|
1290
1301
|
|
|
1291
1302
|
var useMediaState = function useMediaState() {
|
|
1292
1303
|
var mediaElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
@@ -1412,6 +1423,7 @@ var useMediaState = function useMediaState() {
|
|
|
1412
1423
|
buffering: buffering
|
|
1413
1424
|
};
|
|
1414
1425
|
};
|
|
1426
|
+
var useMediaState$1 = useMediaState;
|
|
1415
1427
|
|
|
1416
1428
|
function useMediaCurrentTime(element) {
|
|
1417
1429
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
@@ -1720,6 +1732,7 @@ var useMediasParser = function useMediasParser() {
|
|
|
1720
1732
|
parser: parser
|
|
1721
1733
|
};
|
|
1722
1734
|
};
|
|
1735
|
+
var useMediasParser$1 = useMediasParser;
|
|
1723
1736
|
|
|
1724
1737
|
function useMediaThumbnail(media) {
|
|
1725
1738
|
var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
@@ -1858,6 +1871,7 @@ var useParsedStory = function useParsedStory(story) {
|
|
|
1858
1871
|
}, [parser, disabled, withMedias, withTheme, withFonts, story]);
|
|
1859
1872
|
return newStory;
|
|
1860
1873
|
};
|
|
1874
|
+
var useParsedStory$1 = useParsedStory;
|
|
1861
1875
|
|
|
1862
1876
|
function useProgressSteps() {
|
|
1863
1877
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -2230,6 +2244,7 @@ var useThemeParser = function useThemeParser() {
|
|
|
2230
2244
|
}, [parser]);
|
|
2231
2245
|
return parse;
|
|
2232
2246
|
};
|
|
2247
|
+
var useThemeParser$1 = useThemeParser;
|
|
2233
2248
|
|
|
2234
2249
|
var getScreenOptions = function getScreenOptions(screenContext, opts) {
|
|
2235
2250
|
var _ref = screenContext || {},
|
|
@@ -2338,46 +2353,47 @@ var useTrackMedia = function useTrackMedia() {
|
|
|
2338
2353
|
|
|
2339
2354
|
var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(window) : null;
|
|
2340
2355
|
var useWindowEvent = utils.createUseEvent(eventsManager);
|
|
2356
|
+
var useWindowEvent$1 = useWindowEvent;
|
|
2341
2357
|
|
|
2342
2358
|
exports.getObserver = getObserver;
|
|
2343
2359
|
exports.useActivityDetector = useActivityDetector;
|
|
2344
|
-
exports.useAnimationFrame = useAnimationFrame;
|
|
2345
|
-
exports.useDebounce = useDebounced;
|
|
2360
|
+
exports.useAnimationFrame = useAnimationFrame$1;
|
|
2361
|
+
exports.useDebounce = useDebounced$1;
|
|
2346
2362
|
exports.useDimensionObserver = useDimensionObserver;
|
|
2347
|
-
exports.useDocumentEvent = useDocumentEvent;
|
|
2363
|
+
exports.useDocumentEvent = useDocumentEvent$1;
|
|
2348
2364
|
exports.useDragProgress = useDragProgress;
|
|
2349
|
-
exports.useForm = useForm;
|
|
2350
|
-
exports.useFormTransition = useFormTransition;
|
|
2365
|
+
exports.useForm = useForm$1;
|
|
2366
|
+
exports.useFormTransition = useFormTransition$1;
|
|
2351
2367
|
exports.useFormattedDate = useFormattedDate;
|
|
2352
2368
|
exports.useFormattedTime = useFormattedTime;
|
|
2353
|
-
exports.useFullscreen = useFullscreen;
|
|
2369
|
+
exports.useFullscreen = useFullscreen$1;
|
|
2354
2370
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
2355
|
-
exports.useIsVisible = useIsVisible;
|
|
2356
|
-
exports.useLoadedFonts = useLoadedFonts;
|
|
2357
|
-
exports.useLongPress = useLongPress;
|
|
2358
|
-
exports.useMediaApi = useMediaApi;
|
|
2359
|
-
exports.useMediaBuffering = useMediaBuffering;
|
|
2371
|
+
exports.useIsVisible = useIsVisible$1;
|
|
2372
|
+
exports.useLoadedFonts = useLoadedFonts$1;
|
|
2373
|
+
exports.useLongPress = useLongPress$1;
|
|
2374
|
+
exports.useMediaApi = useMediaApi$1;
|
|
2375
|
+
exports.useMediaBuffering = useMediaBuffering$1;
|
|
2360
2376
|
exports.useMediaCurrentTime = useMediaCurrentTime;
|
|
2361
2377
|
exports.useMediaDuration = useMediaDuration;
|
|
2362
2378
|
exports.useMediaLoad = useMediaLoad;
|
|
2363
2379
|
exports.useMediaProgress = useMediaProgress;
|
|
2364
2380
|
exports.useMediaReady = useMediaReady;
|
|
2365
|
-
exports.useMediaState = useMediaState;
|
|
2381
|
+
exports.useMediaState = useMediaState$1;
|
|
2366
2382
|
exports.useMediaThumbnail = useMediaThumbnail;
|
|
2367
2383
|
exports.useMediaWaveform = useMediaWaveform;
|
|
2368
|
-
exports.useMediasParser = useMediasParser;
|
|
2384
|
+
exports.useMediasParser = useMediasParser$1;
|
|
2369
2385
|
exports.useObserver = useObserver;
|
|
2370
|
-
exports.useParsedStory = useParsedStory;
|
|
2386
|
+
exports.useParsedStory = useParsedStory$1;
|
|
2371
2387
|
exports.useProgressSteps = useProgressSteps;
|
|
2372
2388
|
exports.useResizeObserver = useResizeObserver;
|
|
2373
2389
|
exports.useScreenSizeFromElement = useScreenSizeFromElement;
|
|
2374
2390
|
exports.useScreenSizeFromWindow = useScreenSizeFromWindow;
|
|
2375
2391
|
exports.useSpringValue = useSpringValue;
|
|
2376
2392
|
exports.useSwipe = useSwipe;
|
|
2377
|
-
exports.useThemeParser = useThemeParser;
|
|
2393
|
+
exports.useThemeParser = useThemeParser$1;
|
|
2378
2394
|
exports.useTrackEvent = useTrackEvent;
|
|
2379
2395
|
exports.useTrackMedia = useTrackMedia;
|
|
2380
2396
|
exports.useTrackScreenEvent = useTrackScreenEvent;
|
|
2381
2397
|
exports.useTrackScreenMedia = useTrackScreenMedia;
|
|
2382
2398
|
exports.useTrackScreenView = useTrackScreenView;
|
|
2383
|
-
exports.useWindowEvent = useWindowEvent;
|
|
2399
|
+
exports.useWindowEvent = useWindowEvent$1;
|