brew-js-react 0.1.8 → 0.1.11
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/dist/brew-js-react.js +96 -41
- package/dist/brew-js-react.js.map +1 -1
- package/dist/brew-js-react.min.js +1 -1
- package/dist/brew-js-react.min.js.map +1 -1
- package/hooks.d.ts +12 -0
- package/hooks.js +17 -4
- package/i18n.d.ts +15 -1
- package/i18n.js +14 -11
- package/package.json +1 -1
- package/view.d.ts +1 -1
- package/view.js +52 -15
package/dist/brew-js-react.js
CHANGED
|
@@ -195,6 +195,7 @@ __webpack_require__.d(src_namespaceObject, {
|
|
|
195
195
|
"useMixin": () => (useMixin),
|
|
196
196
|
"useMixinRef": () => (useMixinRef),
|
|
197
197
|
"useRouteParam": () => (useRouteParam),
|
|
198
|
+
"useRouteState": () => (useRouteState),
|
|
198
199
|
"useScrollableMixin": () => (useScrollableMixin)
|
|
199
200
|
});
|
|
200
201
|
|
|
@@ -249,10 +250,14 @@ var _lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_
|
|
|
249
250
|
combineFn = _lib$util.combineFn,
|
|
250
251
|
executeOnce = _lib$util.executeOnce,
|
|
251
252
|
createPrivateStore = _lib$util.createPrivateStore,
|
|
253
|
+
util_setTimeout = _lib$util.setTimeout,
|
|
252
254
|
setTimeoutOnce = _lib$util.setTimeoutOnce,
|
|
255
|
+
util_setInterval = _lib$util.setInterval,
|
|
256
|
+
setIntervalSafe = _lib$util.setIntervalSafe,
|
|
253
257
|
util_setImmediate = _lib$util.setImmediate,
|
|
254
258
|
setImmediateOnce = _lib$util.setImmediateOnce,
|
|
255
259
|
throwNotFunction = _lib$util.throwNotFunction,
|
|
260
|
+
errorWithCode = _lib$util.errorWithCode,
|
|
256
261
|
keys = _lib$util.keys,
|
|
257
262
|
values = _lib$util.values,
|
|
258
263
|
util_hasOwnProperty = _lib$util.hasOwnProperty,
|
|
@@ -293,7 +298,6 @@ var _lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_
|
|
|
293
298
|
var domUtil_lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_zeta_.util,
|
|
294
299
|
domReady = domUtil_lib$util.domReady,
|
|
295
300
|
tagName = domUtil_lib$util.tagName,
|
|
296
|
-
domUtil_is = domUtil_lib$util.is,
|
|
297
301
|
isVisible = domUtil_lib$util.isVisible,
|
|
298
302
|
matchSelector = domUtil_lib$util.matchSelector,
|
|
299
303
|
comparePosition = domUtil_lib$util.comparePosition,
|
|
@@ -320,11 +324,6 @@ var domUtil_lib$util = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_do
|
|
|
320
324
|
getContentRect = domUtil_lib$util.getContentRect,
|
|
321
325
|
scrollBy = domUtil_lib$util.scrollBy,
|
|
322
326
|
scrollIntoView = domUtil_lib$util.scrollIntoView,
|
|
323
|
-
createRange = domUtil_lib$util.createRange,
|
|
324
|
-
rangeIntersects = domUtil_lib$util.rangeIntersects,
|
|
325
|
-
rangeEquals = domUtil_lib$util.rangeEquals,
|
|
326
|
-
rangeCovers = domUtil_lib$util.rangeCovers,
|
|
327
|
-
compareRangePosition = domUtil_lib$util.compareRangePosition,
|
|
328
327
|
makeSelection = domUtil_lib$util.makeSelection,
|
|
329
328
|
getRect = domUtil_lib$util.getRect,
|
|
330
329
|
getRects = domUtil_lib$util.getRects,
|
|
@@ -354,6 +353,7 @@ var _lib$dom = external_commonjs_zeta_dom_commonjs2_zeta_dom_amd_zeta_dom_root_z
|
|
|
354
353
|
releaseModal = _lib$dom.releaseModal,
|
|
355
354
|
retainFocus = _lib$dom.retainFocus,
|
|
356
355
|
releaseFocus = _lib$dom.releaseFocus,
|
|
356
|
+
iterateFocusPath = _lib$dom.iterateFocusPath,
|
|
357
357
|
dom_focus = _lib$dom.focus;
|
|
358
358
|
|
|
359
359
|
;// CONCATENATED MODULE: ./src/include/zeta-dom/dom.js
|
|
@@ -480,6 +480,7 @@ brew_js_defaults.react = true;
|
|
|
480
480
|
|
|
481
481
|
|
|
482
482
|
|
|
483
|
+
var states = {};
|
|
483
484
|
function useAppReady() {
|
|
484
485
|
var sReady = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(false);
|
|
485
486
|
var ready = sReady[0],
|
|
@@ -492,22 +493,34 @@ function useAppReady() {
|
|
|
492
493
|
return ready;
|
|
493
494
|
}
|
|
494
495
|
function useRouteParam(name, defaultValue) {
|
|
495
|
-
var
|
|
496
|
+
var route = app_app.route;
|
|
497
|
+
var sValue = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(route[name]);
|
|
496
498
|
var value = sValue[0],
|
|
497
499
|
setValue = sValue[1];
|
|
498
500
|
(0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useEffect)(function () {
|
|
499
|
-
var current =
|
|
501
|
+
var current = route[name]; // route parameter might be changed after state initialization and before useEffect hook is called
|
|
500
502
|
|
|
501
503
|
setValue(current);
|
|
502
|
-
|
|
504
|
+
|
|
505
|
+
if (name in route) {
|
|
506
|
+
return route.watch(name, setValue);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
console.error('Route parameter ' + name + ' does not exist');
|
|
503
510
|
}, [name, defaultValue]);
|
|
504
511
|
|
|
505
512
|
if (!value && defaultValue !== undefined) {
|
|
506
|
-
app_app.navigate(
|
|
513
|
+
app_app.navigate(route.getPath(extend({}, route, kv(name, defaultValue))), true);
|
|
507
514
|
}
|
|
508
515
|
|
|
509
516
|
return value || '';
|
|
510
517
|
}
|
|
518
|
+
function useRouteState(key, defaultValue) {
|
|
519
|
+
var cur = states[history.state] || (states[history.state] = {});
|
|
520
|
+
var state = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(key in cur ? cur[key] : defaultValue);
|
|
521
|
+
cur[key] = state[0];
|
|
522
|
+
return state;
|
|
523
|
+
}
|
|
511
524
|
// EXTERNAL MODULE: external "zeta-dom-react"
|
|
512
525
|
var external_zeta_dom_react_ = __webpack_require__(103);
|
|
513
526
|
// EXTERNAL MODULE: ./src/include/external/waterpipe.js
|
|
@@ -572,28 +585,29 @@ function makeTranslation(resources, defaultLang) {
|
|
|
572
585
|
return getTranslation(prefix, name, data, noEncode) || key;
|
|
573
586
|
}
|
|
574
587
|
|
|
575
|
-
function
|
|
588
|
+
function getTranslationCallback() {
|
|
576
589
|
var prefix = makeArray(arguments);
|
|
577
|
-
var
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
return getTranslation(v, key, data, noEncode);
|
|
585
|
-
}) || key;
|
|
586
|
-
}));
|
|
587
|
-
}
|
|
590
|
+
var key = prefix.join(' ');
|
|
591
|
+
return cache[key] || (cache[key] = createCallback(function (key, data, noEncode) {
|
|
592
|
+
return single(prefix, function (v) {
|
|
593
|
+
return getTranslation(v, key, data, noEncode);
|
|
594
|
+
}) || key;
|
|
595
|
+
}));
|
|
596
|
+
}
|
|
588
597
|
|
|
598
|
+
function useTranslation() {
|
|
599
|
+
var language = useLanguage();
|
|
600
|
+
var t = getTranslationCallback.apply(0, arguments);
|
|
589
601
|
return {
|
|
590
602
|
language: language,
|
|
591
603
|
t: t
|
|
592
604
|
};
|
|
593
605
|
}
|
|
594
606
|
|
|
607
|
+
cache[''] = createCallback(translate);
|
|
595
608
|
return {
|
|
596
|
-
translate:
|
|
609
|
+
translate: cache[''],
|
|
610
|
+
getTranslation: getTranslationCallback,
|
|
597
611
|
useTranslation: useTranslation
|
|
598
612
|
};
|
|
599
613
|
}
|
|
@@ -1240,12 +1254,22 @@ var animateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_bre
|
|
|
1240
1254
|
|
|
1241
1255
|
|
|
1242
1256
|
var routeMap = new Map();
|
|
1257
|
+
var usedParams = {};
|
|
1258
|
+
var stateId;
|
|
1243
1259
|
|
|
1244
1260
|
function ViewContainer() {
|
|
1245
1261
|
/** @type {any} */
|
|
1246
1262
|
var self = this;
|
|
1247
1263
|
external_commonjs_react_commonjs2_react_amd_react_root_React_.Component.apply(self, arguments);
|
|
1248
1264
|
self.mounted = false;
|
|
1265
|
+
|
|
1266
|
+
if (!stateId) {
|
|
1267
|
+
stateId = history.state;
|
|
1268
|
+
app_app.on('navigate', function () {
|
|
1269
|
+
stateId = history.state;
|
|
1270
|
+
});
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1249
1273
|
self.componentWillUnmount = app_app.on('navigate', function () {
|
|
1250
1274
|
if (self.mounted && self.getViewComponent()) {
|
|
1251
1275
|
self.forceUpdate();
|
|
@@ -1277,8 +1301,8 @@ definePrototype(ViewContainer, external_commonjs_react_commonjs2_react_amd_react
|
|
|
1277
1301
|
}
|
|
1278
1302
|
|
|
1279
1303
|
self.currentView = /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(V, {
|
|
1280
|
-
key:
|
|
1281
|
-
rootProps:
|
|
1304
|
+
key: routeMap.get(V).id,
|
|
1305
|
+
rootProps: self.props.rootProps,
|
|
1282
1306
|
onComponentLoaded: function onComponentLoaded(element) {
|
|
1283
1307
|
self.currentElement = element;
|
|
1284
1308
|
util_setImmediate(function () {
|
|
@@ -1291,17 +1315,19 @@ definePrototype(ViewContainer, external_commonjs_react_commonjs2_react_amd_react
|
|
|
1291
1315
|
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(external_commonjs_react_commonjs2_react_amd_react_root_React_.Fragment, null, self.prevView, self.currentView);
|
|
1292
1316
|
},
|
|
1293
1317
|
getViewComponent: function getViewComponent() {
|
|
1294
|
-
var
|
|
1295
|
-
return any(views, isViewMatched) || void redirectTo(
|
|
1318
|
+
var props = this.props;
|
|
1319
|
+
return any(props.views, isViewMatched) || history.state === stateId && void redirectTo(props.defaultView);
|
|
1296
1320
|
}
|
|
1297
1321
|
});
|
|
1298
1322
|
function isViewMatched(view) {
|
|
1299
1323
|
var params = routeMap.get(view);
|
|
1300
|
-
return !!params &&
|
|
1324
|
+
return !!params && false === any(params.matchers, function (v, i) {
|
|
1325
|
+
var value = app_app.route[i] || '';
|
|
1326
|
+
return isFunction(v) ? !v(value) : (v || '') !== value;
|
|
1327
|
+
});
|
|
1301
1328
|
}
|
|
1302
1329
|
function registerView(factory, routeParams) {
|
|
1303
1330
|
var Component = function Component(props) {
|
|
1304
|
-
var childProps = exclude(props, ['rootProps', 'onComponentLoaded']);
|
|
1305
1331
|
var Component = (0,external_zeta_dom_react_.useAsync)(factory)[0];
|
|
1306
1332
|
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement('div', extend({}, props.rootProps, {
|
|
1307
1333
|
ref: function ref(element) {
|
|
@@ -1309,27 +1335,56 @@ function registerView(factory, routeParams) {
|
|
|
1309
1335
|
(props.onComponentLoaded || noop)(element);
|
|
1310
1336
|
}
|
|
1311
1337
|
},
|
|
1312
|
-
children: Component && /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(Component["default"]
|
|
1338
|
+
children: Component && /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(Component["default"])
|
|
1313
1339
|
}));
|
|
1314
1340
|
};
|
|
1315
1341
|
|
|
1316
|
-
|
|
1342
|
+
routeParams = extend({}, routeParams);
|
|
1343
|
+
each(routeParams, function (i, v) {
|
|
1344
|
+
usedParams[i] = true;
|
|
1345
|
+
|
|
1346
|
+
if (v instanceof RegExp) {
|
|
1347
|
+
routeParams[i] = v.test.bind(v);
|
|
1348
|
+
}
|
|
1349
|
+
});
|
|
1350
|
+
routeMap.set(Component, {
|
|
1351
|
+
id: randomId(),
|
|
1352
|
+
matchCount: keys(routeParams).length,
|
|
1353
|
+
matchers: routeParams,
|
|
1354
|
+
params: pick(routeParams, function (v) {
|
|
1355
|
+
return typeof v === 'string';
|
|
1356
|
+
})
|
|
1357
|
+
});
|
|
1317
1358
|
return Component;
|
|
1318
1359
|
}
|
|
1319
1360
|
function renderView() {
|
|
1320
1361
|
var views = makeArray(arguments);
|
|
1321
|
-
var
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
}
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
views: views
|
|
1329
|
-
|
|
1362
|
+
var rootProps = isFunction(views[0]) ? {} : views.shift();
|
|
1363
|
+
var defaultView = views[0];
|
|
1364
|
+
views.sort(function (a, b) {
|
|
1365
|
+
return (routeMap.get(b) || {}).matchCount - (routeMap.get(a) || {}).matchCount;
|
|
1366
|
+
});
|
|
1367
|
+
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(ViewContainer, {
|
|
1368
|
+
rootProps: rootProps,
|
|
1369
|
+
views: views,
|
|
1370
|
+
defaultView: defaultView
|
|
1371
|
+
});
|
|
1330
1372
|
}
|
|
1331
1373
|
function linkTo(view, params) {
|
|
1332
|
-
|
|
1374
|
+
var viewParams = (routeMap.get(view) || {}).params;
|
|
1375
|
+
var newParams = {};
|
|
1376
|
+
|
|
1377
|
+
for (var i in app_app.route) {
|
|
1378
|
+
if (viewParams && i in viewParams) {
|
|
1379
|
+
newParams[i] = viewParams[i];
|
|
1380
|
+
} else if (params && i in params) {
|
|
1381
|
+
newParams[i] = params[i];
|
|
1382
|
+
} else if (!usedParams[i]) {
|
|
1383
|
+
newParams[i] = app_app.route[i];
|
|
1384
|
+
}
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
return app_app.route.getPath(newParams);
|
|
1333
1388
|
}
|
|
1334
1389
|
function navigateTo(view, params) {
|
|
1335
1390
|
return app_app.navigate(linkTo(view, params));
|