brew-js-react 0.1.9 → 0.2.0
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 +260 -158
- 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 +14 -0
- package/hooks.js +61 -6
- package/i18n.d.ts +15 -1
- package/i18n.js +14 -11
- package/package.json +2 -2
- package/view.d.ts +6 -0
- package/view.js +44 -11
package/dist/brew-js-react.js
CHANGED
|
@@ -175,6 +175,7 @@ __webpack_require__.d(src_namespaceObject, {
|
|
|
175
175
|
"Mixin": () => (Mixin),
|
|
176
176
|
"ScrollableMixin": () => (ScrollableMixin),
|
|
177
177
|
"StatefulMixin": () => (StatefulMixin),
|
|
178
|
+
"ViewStateContainer": () => (ViewStateContainer),
|
|
178
179
|
"createDialog": () => (createDialog),
|
|
179
180
|
"default": () => (src),
|
|
180
181
|
"isViewMatched": () => (isViewMatched),
|
|
@@ -195,7 +196,9 @@ __webpack_require__.d(src_namespaceObject, {
|
|
|
195
196
|
"useMixin": () => (useMixin),
|
|
196
197
|
"useMixinRef": () => (useMixinRef),
|
|
197
198
|
"useRouteParam": () => (useRouteParam),
|
|
198
|
-
"
|
|
199
|
+
"useRouteState": () => (useRouteState),
|
|
200
|
+
"useScrollableMixin": () => (useScrollableMixin),
|
|
201
|
+
"useViewContainerState": () => (useViewContainerState)
|
|
199
202
|
});
|
|
200
203
|
|
|
201
204
|
// EXTERNAL MODULE: external {"commonjs":"brew-js","commonjs2":"brew-js","amd":"brew-js","root":"brew"}
|
|
@@ -457,6 +460,8 @@ function Dialog(props) {
|
|
|
457
460
|
}, [dialog]);
|
|
458
461
|
return /*#__PURE__*/external_commonjs_react_dom_commonjs2_react_dom_amd_react_dom_root_ReactDOM_.createPortal(props.children, dialog.root);
|
|
459
462
|
}
|
|
463
|
+
// EXTERNAL MODULE: external "zeta-dom-react"
|
|
464
|
+
var external_zeta_dom_react_ = __webpack_require__(103);
|
|
460
465
|
;// CONCATENATED MODULE: ./tmp/brew-js/defaults.js
|
|
461
466
|
|
|
462
467
|
var defaults_defaultExport = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.defaults;
|
|
@@ -475,10 +480,193 @@ install('react', function (app_) {
|
|
|
475
480
|
app_app = app_;
|
|
476
481
|
});
|
|
477
482
|
brew_js_defaults.react = true;
|
|
483
|
+
;// CONCATENATED MODULE: ./tmp/brew-js/anim.js
|
|
484
|
+
|
|
485
|
+
var animateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.animateIn,
|
|
486
|
+
animateOut = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.animateOut,
|
|
487
|
+
addAnimateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.addAnimateIn,
|
|
488
|
+
addAnimateOut = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.addAnimateOut;
|
|
489
|
+
|
|
490
|
+
;// CONCATENATED MODULE: ./src/include/brew-js/anim.js
|
|
491
|
+
|
|
492
|
+
;// CONCATENATED MODULE: ./src/view.js
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
var routeMap = new Map();
|
|
501
|
+
var usedParams = {};
|
|
502
|
+
var StateContext = /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createContext(Object.freeze({
|
|
503
|
+
active: true
|
|
504
|
+
}));
|
|
505
|
+
var stateId;
|
|
506
|
+
|
|
507
|
+
function ViewContainer() {
|
|
508
|
+
/** @type {any} */
|
|
509
|
+
var self = this;
|
|
510
|
+
external_commonjs_react_commonjs2_react_amd_react_root_React_.Component.apply(self, arguments);
|
|
511
|
+
self.mounted = false;
|
|
512
|
+
|
|
513
|
+
if (!stateId) {
|
|
514
|
+
stateId = history.state;
|
|
515
|
+
app_app.on('navigate', function () {
|
|
516
|
+
stateId = history.state;
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
self.componentWillUnmount = app_app.on('navigate', function () {
|
|
521
|
+
if (self.mounted && self.getViewComponent()) {
|
|
522
|
+
self.forceUpdate();
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
definePrototype(ViewContainer, external_commonjs_react_commonjs2_react_amd_react_root_React_.Component, {
|
|
528
|
+
componentDidMount: function componentDidMount() {
|
|
529
|
+
this.mounted = true;
|
|
530
|
+
},
|
|
531
|
+
componentDidCatch: function componentDidCatch(error) {
|
|
532
|
+
zeta_dom_dom.emit('error', this.parentElement || zeta_dom_dom.root, {
|
|
533
|
+
error: error
|
|
534
|
+
}, true);
|
|
535
|
+
},
|
|
536
|
+
render: function render() {
|
|
537
|
+
/** @type {any} */
|
|
538
|
+
var self = this;
|
|
539
|
+
var V = self.getViewComponent();
|
|
540
|
+
|
|
541
|
+
if (V && V !== self.currentViewComponent) {
|
|
542
|
+
self.currentViewComponent = V;
|
|
543
|
+
|
|
544
|
+
if (self.currentView && self.currentElement) {
|
|
545
|
+
self.prevView = self.currentView;
|
|
546
|
+
self.prevElement = self.currentElement;
|
|
547
|
+
self.currentElement = undefined;
|
|
548
|
+
animateOut(self.prevElement, 'show').then(function () {
|
|
549
|
+
self.prevElement = undefined;
|
|
550
|
+
self.prevView = undefined;
|
|
551
|
+
self.forceUpdate();
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
var providerProps = {
|
|
556
|
+
key: routeMap.get(V).id,
|
|
557
|
+
value: {}
|
|
558
|
+
};
|
|
559
|
+
var view = /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(StateContext.Provider, providerProps, /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(ViewStateContainer, null, /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(V, {
|
|
560
|
+
rootProps: self.props.rootProps,
|
|
561
|
+
onComponentLoaded: function onComponentLoaded(element) {
|
|
562
|
+
self.currentElement = element;
|
|
563
|
+
self.parentElement = element.parentElement;
|
|
564
|
+
util_setImmediate(function () {
|
|
565
|
+
return animateIn(element, 'show');
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
})));
|
|
569
|
+
defineGetterProperty(providerProps.value, 'active', function () {
|
|
570
|
+
return self.currentView === view;
|
|
571
|
+
});
|
|
572
|
+
self.currentView = view;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
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);
|
|
576
|
+
},
|
|
577
|
+
getViewComponent: function getViewComponent() {
|
|
578
|
+
var props = this.props;
|
|
579
|
+
return any(props.views, isViewMatched) || history.state === stateId && void redirectTo(props.defaultView);
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
function useViewContainerState() {
|
|
583
|
+
return external_commonjs_react_commonjs2_react_amd_react_root_React_.useContext(StateContext);
|
|
584
|
+
}
|
|
585
|
+
function isViewMatched(view) {
|
|
586
|
+
var params = routeMap.get(view);
|
|
587
|
+
return !!params && false === any(params.matchers, function (v, i) {
|
|
588
|
+
var value = app_app.route[i] || '';
|
|
589
|
+
return isFunction(v) ? !v(value) : (v || '') !== value;
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
function registerView(factory, routeParams) {
|
|
593
|
+
var Component = function Component(props) {
|
|
594
|
+
var Component = (0,external_zeta_dom_react_.useAsync)(factory)[0];
|
|
595
|
+
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement('div', extend({}, props.rootProps, {
|
|
596
|
+
ref: function ref(element) {
|
|
597
|
+
if (element && Component) {
|
|
598
|
+
(props.onComponentLoaded || noop)(element);
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
children: Component && /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(Component["default"])
|
|
602
|
+
}));
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
routeParams = extend({}, routeParams);
|
|
606
|
+
each(routeParams, function (i, v) {
|
|
607
|
+
usedParams[i] = true;
|
|
608
|
+
|
|
609
|
+
if (v instanceof RegExp) {
|
|
610
|
+
routeParams[i] = v.test.bind(v);
|
|
611
|
+
}
|
|
612
|
+
});
|
|
613
|
+
routeMap.set(Component, {
|
|
614
|
+
id: randomId(),
|
|
615
|
+
matchCount: keys(routeParams).length,
|
|
616
|
+
matchers: routeParams,
|
|
617
|
+
params: pick(routeParams, function (v) {
|
|
618
|
+
return typeof v === 'string';
|
|
619
|
+
})
|
|
620
|
+
});
|
|
621
|
+
return Component;
|
|
622
|
+
}
|
|
623
|
+
function renderView() {
|
|
624
|
+
var views = makeArray(arguments);
|
|
625
|
+
var rootProps = isFunction(views[0]) ? {} : views.shift();
|
|
626
|
+
var defaultView = views[0];
|
|
627
|
+
views.sort(function (a, b) {
|
|
628
|
+
return (routeMap.get(b) || {}).matchCount - (routeMap.get(a) || {}).matchCount;
|
|
629
|
+
});
|
|
630
|
+
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(ViewContainer, {
|
|
631
|
+
rootProps: rootProps,
|
|
632
|
+
views: views,
|
|
633
|
+
defaultView: defaultView
|
|
634
|
+
});
|
|
635
|
+
}
|
|
636
|
+
function linkTo(view, params) {
|
|
637
|
+
var viewParams = (routeMap.get(view) || {}).params;
|
|
638
|
+
var newParams = {};
|
|
639
|
+
|
|
640
|
+
for (var i in app_app.route) {
|
|
641
|
+
if (viewParams && i in viewParams) {
|
|
642
|
+
newParams[i] = viewParams[i];
|
|
643
|
+
} else if (params && i in params) {
|
|
644
|
+
newParams[i] = params[i];
|
|
645
|
+
} else if (!usedParams[i]) {
|
|
646
|
+
newParams[i] = app_app.route[i];
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
return app_app.route.getPath(newParams);
|
|
651
|
+
}
|
|
652
|
+
function navigateTo(view, params) {
|
|
653
|
+
return app_app.navigate(linkTo(view, params));
|
|
654
|
+
}
|
|
655
|
+
function redirectTo(view, params) {
|
|
656
|
+
return app_app.navigate(linkTo(view, params), true);
|
|
657
|
+
}
|
|
478
658
|
;// CONCATENATED MODULE: ./src/hooks.js
|
|
479
659
|
|
|
480
660
|
|
|
481
661
|
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
var states = {};
|
|
665
|
+
|
|
666
|
+
function getCurrentStates() {
|
|
667
|
+
return states[history.state] || (states[history.state] = {});
|
|
668
|
+
}
|
|
669
|
+
|
|
482
670
|
function useAppReady() {
|
|
483
671
|
var sReady = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(false);
|
|
484
672
|
var ready = sReady[0],
|
|
@@ -491,24 +679,75 @@ function useAppReady() {
|
|
|
491
679
|
return ready;
|
|
492
680
|
}
|
|
493
681
|
function useRouteParam(name, defaultValue) {
|
|
494
|
-
var
|
|
682
|
+
var container = useViewContainerState();
|
|
683
|
+
var route = app_app.route;
|
|
684
|
+
var sValue = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(route[name]);
|
|
495
685
|
var value = sValue[0],
|
|
496
686
|
setValue = sValue[1];
|
|
497
687
|
(0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useEffect)(function () {
|
|
498
|
-
var current =
|
|
688
|
+
var current = route[name]; // route parameter might be changed after state initialization and before useEffect hook is called
|
|
499
689
|
|
|
500
690
|
setValue(current);
|
|
501
|
-
|
|
691
|
+
|
|
692
|
+
if (name in route) {
|
|
693
|
+
return route.watch(name, function (value) {
|
|
694
|
+
util_setImmediate(function () {
|
|
695
|
+
if (container.active) {
|
|
696
|
+
setValue(value);
|
|
697
|
+
}
|
|
698
|
+
});
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
console.error('Route parameter ' + name + ' does not exist');
|
|
502
703
|
}, [name, defaultValue]);
|
|
503
704
|
|
|
504
705
|
if (!value && defaultValue !== undefined) {
|
|
505
|
-
app_app.navigate(
|
|
706
|
+
app_app.navigate(route.getPath(extend({}, route, kv(name, defaultValue))), true);
|
|
506
707
|
}
|
|
507
708
|
|
|
508
709
|
return value || '';
|
|
509
710
|
}
|
|
510
|
-
|
|
511
|
-
var
|
|
711
|
+
function useRouteState(key, defaultValue) {
|
|
712
|
+
var container = useViewContainerState();
|
|
713
|
+
var cur = getCurrentStates();
|
|
714
|
+
var state = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(key in cur ? cur[key] : defaultValue);
|
|
715
|
+
|
|
716
|
+
if (container.active) {
|
|
717
|
+
cur[key] = state[0];
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
return state;
|
|
721
|
+
}
|
|
722
|
+
function ViewStateContainer(props) {
|
|
723
|
+
var container = useViewContainerState();
|
|
724
|
+
var provider = (0,external_commonjs_react_commonjs2_react_amd_react_root_React_.useState)(function () {
|
|
725
|
+
var cache = {};
|
|
726
|
+
return {
|
|
727
|
+
getState: function getState(uniqueId, key) {
|
|
728
|
+
var cur = getCurrentStates();
|
|
729
|
+
var state = cache[uniqueId] || (cache[uniqueId] = {
|
|
730
|
+
value: cur[key] && cur[key].value,
|
|
731
|
+
get: function get() {
|
|
732
|
+
return state.value;
|
|
733
|
+
},
|
|
734
|
+
set: function set(value) {
|
|
735
|
+
state.value = value;
|
|
736
|
+
}
|
|
737
|
+
});
|
|
738
|
+
|
|
739
|
+
if (container.active) {
|
|
740
|
+
cur[key] = state;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
return state;
|
|
744
|
+
}
|
|
745
|
+
};
|
|
746
|
+
})[0];
|
|
747
|
+
return /*#__PURE__*/(0,external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement)(external_zeta_dom_react_.ViewStateProvider, {
|
|
748
|
+
value: provider
|
|
749
|
+
}, props.children);
|
|
750
|
+
}
|
|
512
751
|
// EXTERNAL MODULE: ./src/include/external/waterpipe.js
|
|
513
752
|
var waterpipe = __webpack_require__(43);
|
|
514
753
|
;// CONCATENATED MODULE: ./src/i18n.js
|
|
@@ -571,28 +810,29 @@ function makeTranslation(resources, defaultLang) {
|
|
|
571
810
|
return getTranslation(prefix, name, data, noEncode) || key;
|
|
572
811
|
}
|
|
573
812
|
|
|
574
|
-
function
|
|
813
|
+
function getTranslationCallback() {
|
|
575
814
|
var prefix = makeArray(arguments);
|
|
576
|
-
var
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
return getTranslation(v, key, data, noEncode);
|
|
584
|
-
}) || key;
|
|
585
|
-
}));
|
|
586
|
-
}
|
|
815
|
+
var key = prefix.join(' ');
|
|
816
|
+
return cache[key] || (cache[key] = createCallback(function (key, data, noEncode) {
|
|
817
|
+
return single(prefix, function (v) {
|
|
818
|
+
return getTranslation(v, key, data, noEncode);
|
|
819
|
+
}) || key;
|
|
820
|
+
}));
|
|
821
|
+
}
|
|
587
822
|
|
|
823
|
+
function useTranslation() {
|
|
824
|
+
var language = useLanguage();
|
|
825
|
+
var t = getTranslationCallback.apply(0, arguments);
|
|
588
826
|
return {
|
|
589
827
|
language: language,
|
|
590
828
|
t: t
|
|
591
829
|
};
|
|
592
830
|
}
|
|
593
831
|
|
|
832
|
+
cache[''] = createCallback(translate);
|
|
594
833
|
return {
|
|
595
|
-
translate:
|
|
834
|
+
translate: cache[''],
|
|
835
|
+
getTranslation: getTranslationCallback,
|
|
596
836
|
useTranslation: useTranslation
|
|
597
837
|
};
|
|
598
838
|
}
|
|
@@ -1223,144 +1463,6 @@ function useMixinRef(mixin) {
|
|
|
1223
1463
|
return mixin && mixin.getMixin().reset();
|
|
1224
1464
|
}
|
|
1225
1465
|
|
|
1226
|
-
;// CONCATENATED MODULE: ./tmp/brew-js/anim.js
|
|
1227
|
-
|
|
1228
|
-
var animateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.animateIn,
|
|
1229
|
-
animateOut = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.animateOut,
|
|
1230
|
-
addAnimateIn = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.addAnimateIn,
|
|
1231
|
-
addAnimateOut = external_commonjs_brew_js_commonjs2_brew_js_amd_brew_js_root_brew_.addAnimateOut;
|
|
1232
|
-
|
|
1233
|
-
;// CONCATENATED MODULE: ./src/include/brew-js/anim.js
|
|
1234
|
-
|
|
1235
|
-
;// CONCATENATED MODULE: ./src/view.js
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
var routeMap = new Map();
|
|
1242
|
-
var stateId;
|
|
1243
|
-
|
|
1244
|
-
function ViewContainer() {
|
|
1245
|
-
/** @type {any} */
|
|
1246
|
-
var self = this;
|
|
1247
|
-
external_commonjs_react_commonjs2_react_amd_react_root_React_.Component.apply(self, arguments);
|
|
1248
|
-
self.mounted = false;
|
|
1249
|
-
|
|
1250
|
-
if (!stateId) {
|
|
1251
|
-
stateId = history.state;
|
|
1252
|
-
app_app.on('navigate', function () {
|
|
1253
|
-
stateId = history.state;
|
|
1254
|
-
});
|
|
1255
|
-
}
|
|
1256
|
-
|
|
1257
|
-
self.componentWillUnmount = app_app.on('navigate', function () {
|
|
1258
|
-
if (self.mounted && self.getViewComponent()) {
|
|
1259
|
-
self.forceUpdate();
|
|
1260
|
-
}
|
|
1261
|
-
});
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
definePrototype(ViewContainer, external_commonjs_react_commonjs2_react_amd_react_root_React_.Component, {
|
|
1265
|
-
componentDidMount: function componentDidMount() {
|
|
1266
|
-
this.mounted = true;
|
|
1267
|
-
},
|
|
1268
|
-
render: function render() {
|
|
1269
|
-
/** @type {any} */
|
|
1270
|
-
var self = this;
|
|
1271
|
-
var V = self.getViewComponent();
|
|
1272
|
-
|
|
1273
|
-
if (V && V !== self.currentViewComponent) {
|
|
1274
|
-
self.currentViewComponent = V;
|
|
1275
|
-
|
|
1276
|
-
if (self.currentView && self.currentElement) {
|
|
1277
|
-
self.prevView = self.currentView;
|
|
1278
|
-
self.prevElement = self.currentElement;
|
|
1279
|
-
self.currentElement = undefined;
|
|
1280
|
-
animateOut(self.prevElement, 'show').then(function () {
|
|
1281
|
-
self.prevElement = undefined;
|
|
1282
|
-
self.prevView = undefined;
|
|
1283
|
-
self.forceUpdate();
|
|
1284
|
-
});
|
|
1285
|
-
}
|
|
1286
|
-
|
|
1287
|
-
self.currentView = /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(V, {
|
|
1288
|
-
key: routeMap.get(V).id,
|
|
1289
|
-
rootProps: self.props.rootProps,
|
|
1290
|
-
onComponentLoaded: function onComponentLoaded(element) {
|
|
1291
|
-
self.currentElement = element;
|
|
1292
|
-
util_setImmediate(function () {
|
|
1293
|
-
return animateIn(element, 'show');
|
|
1294
|
-
});
|
|
1295
|
-
}
|
|
1296
|
-
});
|
|
1297
|
-
}
|
|
1298
|
-
|
|
1299
|
-
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);
|
|
1300
|
-
},
|
|
1301
|
-
getViewComponent: function getViewComponent() {
|
|
1302
|
-
var props = this.props;
|
|
1303
|
-
return any(props.views, isViewMatched) || history.state === stateId && void redirectTo(props.defaultView);
|
|
1304
|
-
}
|
|
1305
|
-
});
|
|
1306
|
-
function isViewMatched(view) {
|
|
1307
|
-
var params = routeMap.get(view);
|
|
1308
|
-
return !!params && !any(params.matchers, function (v, i) {
|
|
1309
|
-
var value = app_app.route[i] || '';
|
|
1310
|
-
return isFunction(v) ? !v(value) : (v || '') !== value;
|
|
1311
|
-
});
|
|
1312
|
-
}
|
|
1313
|
-
function registerView(factory, routeParams) {
|
|
1314
|
-
var Component = function Component(props) {
|
|
1315
|
-
var Component = (0,external_zeta_dom_react_.useAsync)(factory)[0];
|
|
1316
|
-
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement('div', extend({}, props.rootProps, {
|
|
1317
|
-
ref: function ref(element) {
|
|
1318
|
-
if (element && Component) {
|
|
1319
|
-
(props.onComponentLoaded || noop)(element);
|
|
1320
|
-
}
|
|
1321
|
-
},
|
|
1322
|
-
children: Component && /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(Component["default"])
|
|
1323
|
-
}));
|
|
1324
|
-
};
|
|
1325
|
-
|
|
1326
|
-
routeParams = extend({}, routeParams);
|
|
1327
|
-
each(routeParams, function (i, v) {
|
|
1328
|
-
if (v instanceof RegExp) {
|
|
1329
|
-
routeParams[i] = v.test.bind(v);
|
|
1330
|
-
}
|
|
1331
|
-
});
|
|
1332
|
-
routeMap.set(Component, {
|
|
1333
|
-
id: randomId(),
|
|
1334
|
-
matchCount: keys(routeParams).length,
|
|
1335
|
-
matchers: routeParams,
|
|
1336
|
-
params: pick(routeParams, function (v) {
|
|
1337
|
-
return typeof v === 'string';
|
|
1338
|
-
})
|
|
1339
|
-
});
|
|
1340
|
-
return Component;
|
|
1341
|
-
}
|
|
1342
|
-
function renderView() {
|
|
1343
|
-
var views = makeArray(arguments);
|
|
1344
|
-
var rootProps = isFunction(views[0]) ? {} : views.shift();
|
|
1345
|
-
var defaultView = views[0];
|
|
1346
|
-
views.sort(function (a, b) {
|
|
1347
|
-
return (routeMap.get(b) || {}).matchCount - (routeMap.get(a) || {}).matchCount;
|
|
1348
|
-
});
|
|
1349
|
-
return /*#__PURE__*/external_commonjs_react_commonjs2_react_amd_react_root_React_.createElement(ViewContainer, {
|
|
1350
|
-
rootProps: rootProps,
|
|
1351
|
-
views: views,
|
|
1352
|
-
defaultView: defaultView
|
|
1353
|
-
});
|
|
1354
|
-
}
|
|
1355
|
-
function linkTo(view, params) {
|
|
1356
|
-
return app_app.route.getPath(extend({}, app_app.route, params, (routeMap.get(view) || {}).params));
|
|
1357
|
-
}
|
|
1358
|
-
function navigateTo(view, params) {
|
|
1359
|
-
return app_app.navigate(linkTo(view, params));
|
|
1360
|
-
}
|
|
1361
|
-
function redirectTo(view, params) {
|
|
1362
|
-
return app_app.navigate(linkTo(view, params), true);
|
|
1363
|
-
}
|
|
1364
1466
|
;// CONCATENATED MODULE: ./src/index.js
|
|
1365
1467
|
|
|
1366
1468
|
/* harmony default export */ const src = (brew_js_app);
|