sample-piral 0.14.9 → 0.14.10-beta.3659

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.
@@ -2367,8 +2367,9 @@ __webpack_require__.r(__webpack_exports__);
2367
2367
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2368
2368
  /* harmony export */ "ErrorBoundary": () => (/* binding */ ErrorBoundary)
2369
2369
  /* harmony export */ });
2370
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "../../../node_modules/tslib/tslib.es6.js");
2370
2371
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
2371
- /* harmony import */ var piral_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! piral-base */ "../../framework/piral-base/esm/utils.js");
2372
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./components */ "../../framework/piral-core/esm/components/components.js");
2372
2373
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2373
2374
 
2374
2375
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -2393,8 +2394,9 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
2393
2394
 
2394
2395
 
2395
2396
 
2397
+
2396
2398
  /**
2397
- * The React component for catching errors and displaying error information.
2399
+ * The component for catching errors and displaying error information.
2398
2400
  */
2399
2401
 
2400
2402
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
@@ -2402,12 +2404,12 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
2402
2404
 
2403
2405
  var _super = _createSuper(ErrorBoundary);
2404
2406
 
2405
- function ErrorBoundary(props) {
2407
+ function ErrorBoundary() {
2406
2408
  var _this;
2407
2409
 
2408
2410
  _classCallCheck(this, ErrorBoundary);
2409
2411
 
2410
- _this = _super.call(this, props);
2412
+ _this = _super.apply(this, arguments);
2411
2413
  _this.state = {
2412
2414
  error: undefined
2413
2415
  };
@@ -2417,12 +2419,11 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
2417
2419
  _createClass(ErrorBoundary, [{
2418
2420
  key: "componentDidCatch",
2419
2421
  value: function componentDidCatch(error) {
2420
- var onError = this.props.onError;
2421
-
2422
- if ((0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(onError)) {
2423
- onError(error);
2424
- }
2425
-
2422
+ var _this$props = this.props,
2423
+ piral = _this$props.piral,
2424
+ errorType = _this$props.errorType;
2425
+ var pilet = piral.meta.name;
2426
+ console.error("[".concat(pilet, "] Exception in component of type \"").concat(errorType, "\"."), error);
2426
2427
  this.setState({
2427
2428
  error: error
2428
2429
  });
@@ -2430,26 +2431,25 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
2430
2431
  }, {
2431
2432
  key: "render",
2432
2433
  value: function render() {
2433
- var _this$props = this.props,
2434
- children = _this$props.children,
2435
- renderError = _this$props.renderError,
2436
- renderChild = _this$props.renderChild,
2437
- renderProps = _this$props.renderProps;
2434
+ var _a = this.props,
2435
+ children = _a.children,
2436
+ piral = _a.piral,
2437
+ errorType = _a.errorType,
2438
+ renderProps = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__rest)(_a, ["children", "piral", "errorType"]);
2439
+
2438
2440
  var error = this.state.error;
2441
+ var rest = renderProps;
2439
2442
 
2440
2443
  if (error) {
2441
- if ((0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(renderError)) {
2442
- return renderError(error, renderProps);
2443
- }
2444
-
2445
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
2446
- style: {
2447
- whiteSpace: 'pre-wrap'
2448
- }
2449
- }, error && error.message);
2444
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_2__.PiralError, Object.assign({
2445
+ type: errorType,
2446
+ error: error
2447
+ }, rest));
2450
2448
  }
2451
2449
 
2452
- return (0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(renderChild) ? renderChild(children, renderProps) : children;
2450
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
2451
+ fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_2__.PiralLoadingIndicator, null)
2452
+ }, children);
2453
2453
  }
2454
2454
  }]);
2455
2455
 
@@ -2510,6 +2510,133 @@ ExtensionSlot.displayName = "ExtensionSlot";
2510
2510
 
2511
2511
  /***/ }),
2512
2512
 
2513
+ /***/ "../../framework/piral-core/esm/components/ForeignComponentContainer.js":
2514
+ /*!******************************************************************************!*\
2515
+ !*** ../../framework/piral-core/esm/components/ForeignComponentContainer.js ***!
2516
+ \******************************************************************************/
2517
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2518
+
2519
+ "use strict";
2520
+ __webpack_require__.r(__webpack_exports__);
2521
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2522
+ /* harmony export */ "ForeignComponentContainer": () => (/* binding */ ForeignComponentContainer)
2523
+ /* harmony export */ });
2524
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
2525
+ /* harmony import */ var piral_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! piral-base */ "../../framework/piral-base/esm/utils.js");
2526
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2527
+
2528
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2529
+
2530
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
2531
+
2532
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
2533
+
2534
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
2535
+
2536
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
2537
+
2538
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
2539
+
2540
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
2541
+
2542
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
2543
+
2544
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2545
+
2546
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
2547
+
2548
+
2549
+
2550
+ var ForeignComponentContainer = /*#__PURE__*/function (_React$Component) {
2551
+ _inherits(ForeignComponentContainer, _React$Component);
2552
+
2553
+ var _super = _createSuper(ForeignComponentContainer);
2554
+
2555
+ function ForeignComponentContainer() {
2556
+ var _this;
2557
+
2558
+ _classCallCheck(this, ForeignComponentContainer);
2559
+
2560
+ _this = _super.apply(this, arguments);
2561
+
2562
+ _this.handler = function (ev) {
2563
+ var innerProps = _this.props.innerProps;
2564
+ ev.stopPropagation();
2565
+ innerProps.piral.renderHtmlExtension(ev.detail.target, ev.detail.props);
2566
+ };
2567
+
2568
+ _this.setNode = function (node) {
2569
+ _this.current = node;
2570
+ };
2571
+
2572
+ return _this;
2573
+ }
2574
+
2575
+ _createClass(ForeignComponentContainer, [{
2576
+ key: "componentDidMount",
2577
+ value: function componentDidMount() {
2578
+ var node = this.current;
2579
+ var _this$props = this.props,
2580
+ $component = _this$props.$component,
2581
+ $context = _this$props.$context,
2582
+ innerProps = _this$props.innerProps;
2583
+ var mount = $component.mount;
2584
+
2585
+ if (node && (0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(mount)) {
2586
+ mount(node, innerProps, $context);
2587
+ node.addEventListener('render-html', this.handler, false);
2588
+ }
2589
+
2590
+ this.previous = node;
2591
+ }
2592
+ }, {
2593
+ key: "componentDidUpdate",
2594
+ value: function componentDidUpdate() {
2595
+ var current = this.current,
2596
+ previous = this.previous;
2597
+ var _this$props2 = this.props,
2598
+ $component = _this$props2.$component,
2599
+ $context = _this$props2.$context,
2600
+ innerProps = _this$props2.innerProps;
2601
+ var update = $component.update;
2602
+
2603
+ if (current !== previous) {
2604
+ previous && this.componentWillUnmount();
2605
+ current && this.componentDidMount();
2606
+ } else if ((0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(update)) {
2607
+ update(current, innerProps, $context);
2608
+ }
2609
+ }
2610
+ }, {
2611
+ key: "componentWillUnmount",
2612
+ value: function componentWillUnmount() {
2613
+ var node = this.previous;
2614
+ var $component = this.props.$component;
2615
+ var unmount = $component.unmount;
2616
+
2617
+ if (node && (0,piral_base__WEBPACK_IMPORTED_MODULE_1__.isfunc)(unmount)) {
2618
+ unmount(node);
2619
+ node.removeEventListener('render-html', this.handler, false);
2620
+ }
2621
+
2622
+ this.previous = undefined;
2623
+ }
2624
+ }, {
2625
+ key: "render",
2626
+ value: function render() {
2627
+ var $portalId = this.props.$portalId;
2628
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
2629
+ "data-portal-id": $portalId,
2630
+ ref: this.setNode
2631
+ });
2632
+ }
2633
+ }]);
2634
+
2635
+ return ForeignComponentContainer;
2636
+ }(react__WEBPACK_IMPORTED_MODULE_0__.Component);
2637
+
2638
+ /***/ }),
2639
+
2513
2640
  /***/ "../../framework/piral-core/esm/components/Mediator.js":
2514
2641
  /*!*************************************************************!*\
2515
2642
  !*** ../../framework/piral-core/esm/components/Mediator.js ***!
@@ -3163,7 +3290,8 @@ __webpack_require__.r(__webpack_exports__);
3163
3290
  /* harmony export */ "SetProvider": () => (/* reexport safe */ _SetProvider__WEBPACK_IMPORTED_MODULE_16__.SetProvider),
3164
3291
  /* harmony export */ "SetRedirect": () => (/* reexport safe */ _SetRedirect__WEBPACK_IMPORTED_MODULE_17__.SetRedirect),
3165
3292
  /* harmony export */ "SetRoute": () => (/* reexport safe */ _SetRoute__WEBPACK_IMPORTED_MODULE_18__.SetRoute),
3166
- /* harmony export */ "SwitchErrorInfo": () => (/* reexport safe */ _SwitchErrorInfo__WEBPACK_IMPORTED_MODULE_19__.SwitchErrorInfo)
3293
+ /* harmony export */ "SwitchErrorInfo": () => (/* reexport safe */ _SwitchErrorInfo__WEBPACK_IMPORTED_MODULE_19__.SwitchErrorInfo),
3294
+ /* harmony export */ "wrapComponent": () => (/* reexport safe */ _wrapComponent__WEBPACK_IMPORTED_MODULE_20__.wrapComponent)
3167
3295
  /* harmony export */ });
3168
3296
  /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./components */ "../../framework/piral-core/esm/components/components.js");
3169
3297
  /* harmony import */ var _DefaultErrorInfo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DefaultErrorInfo */ "../../framework/piral-core/esm/components/DefaultErrorInfo.js");
@@ -3185,6 +3313,8 @@ __webpack_require__.r(__webpack_exports__);
3185
3313
  /* harmony import */ var _SetRedirect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./SetRedirect */ "../../framework/piral-core/esm/components/SetRedirect.js");
3186
3314
  /* harmony import */ var _SetRoute__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./SetRoute */ "../../framework/piral-core/esm/components/SetRoute.js");
3187
3315
  /* harmony import */ var _SwitchErrorInfo__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./SwitchErrorInfo */ "../../framework/piral-core/esm/components/SwitchErrorInfo.js");
3316
+ /* harmony import */ var _wrapComponent__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./wrapComponent */ "../../framework/piral-core/esm/components/wrapComponent.js");
3317
+
3188
3318
 
3189
3319
 
3190
3320
 
@@ -3205,6 +3335,102 @@ __webpack_require__.r(__webpack_exports__);
3205
3335
 
3206
3336
 
3207
3337
 
3338
+
3339
+ /***/ }),
3340
+
3341
+ /***/ "../../framework/piral-core/esm/components/wrapComponent.js":
3342
+ /*!******************************************************************!*\
3343
+ !*** ../../framework/piral-core/esm/components/wrapComponent.js ***!
3344
+ \******************************************************************/
3345
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3346
+
3347
+ "use strict";
3348
+ __webpack_require__.r(__webpack_exports__);
3349
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3350
+ /* harmony export */ "wrapComponent": () => (/* binding */ wrapComponent)
3351
+ /* harmony export */ });
3352
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
3353
+ /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router */ "../../../node_modules/react-router/esm/react-router.js");
3354
+ /* harmony import */ var _PortalRenderer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PortalRenderer */ "../../framework/piral-core/esm/components/PortalRenderer.js");
3355
+ /* harmony import */ var _ForeignComponentContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ForeignComponentContainer */ "../../framework/piral-core/esm/components/ForeignComponentContainer.js");
3356
+ /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../hooks */ "../../framework/piral-core/esm/hooks/globalState.js");
3357
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "../../framework/piral-core/esm/utils/helpers.js");
3358
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "../../framework/piral-core/esm/utils/foreign.js");
3359
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+ // this is an arbitrary start number to have 6 digits
3367
+
3368
+ var portalIdBase = 123456;
3369
+
3370
+ function wrapReactComponent(Component, captured, Wrapper) {
3371
+ return function (props) {
3372
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Wrapper, Object.assign({}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, Object.assign({}, props, captured)));
3373
+ };
3374
+ }
3375
+
3376
+ function wrapForeignComponent(component, captured, Wrapper) {
3377
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {
3378
+ var _useGlobalStateContex = (0,_hooks__WEBPACK_IMPORTED_MODULE_1__.useGlobalStateContext)(),
3379
+ state = _useGlobalStateContex.state,
3380
+ readState = _useGlobalStateContex.readState,
3381
+ destroyPortal = _useGlobalStateContex.destroyPortal;
3382
+
3383
+ var router = react__WEBPACK_IMPORTED_MODULE_0__.useContext(react_router__WEBPACK_IMPORTED_MODULE_2__.__RouterContext);
3384
+ var id = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
3385
+ return (portalIdBase++).toString(26);
3386
+ }, _utils__WEBPACK_IMPORTED_MODULE_3__.none);
3387
+ var context = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
3388
+ return {
3389
+ router: router,
3390
+ state: state,
3391
+ readState: readState
3392
+ };
3393
+ }, [router, state]);
3394
+ var innerProps = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
3395
+ return Object.assign(Object.assign({}, props), captured);
3396
+ }, [props]);
3397
+ react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
3398
+ return function () {
3399
+ return destroyPortal(id);
3400
+ };
3401
+ }, _utils__WEBPACK_IMPORTED_MODULE_3__.none);
3402
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Wrapper, Object.assign({}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_PortalRenderer__WEBPACK_IMPORTED_MODULE_4__.PortalRenderer, {
3403
+ id: id
3404
+ }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ForeignComponentContainer__WEBPACK_IMPORTED_MODULE_5__.ForeignComponentContainer, {
3405
+ innerProps: innerProps,
3406
+ "$portalId": id,
3407
+ "$component": component,
3408
+ "$context": context
3409
+ }));
3410
+ });
3411
+ }
3412
+
3413
+ function isNotExotic(component) {
3414
+ return !component.$$typeof;
3415
+ }
3416
+
3417
+ function wrapComponent(converters, component, captured, Wrapper) {
3418
+ if (!component) {
3419
+ var pilet = captured.piral.meta.name;
3420
+ console.error("[".concat(pilet, "] The given value is not a valid component.")); // tslint:disable-next-line:no-null-keyword
3421
+
3422
+ component = function component() {
3423
+ return null;
3424
+ };
3425
+ }
3426
+
3427
+ if (_typeof(component) === 'object' && isNotExotic(component)) {
3428
+ var result = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.convertComponent)(converters[component.type], component);
3429
+ return wrapForeignComponent(result, captured, Wrapper);
3430
+ }
3431
+
3432
+ return wrapReactComponent(component, captured, Wrapper);
3433
+ }
3208
3434
 
3209
3435
  /***/ }),
3210
3436
 
@@ -3285,7 +3511,7 @@ function createInstance() {
3285
3511
  var createApi = apiFactory(context, usedPlugins);
3286
3512
  var root = createApi({
3287
3513
  name: 'root',
3288
- version: "0.14.9" || 0,
3514
+ version: "0.14.10-beta.3659" || 0,
3289
3515
  spec: ''
3290
3516
  });
3291
3517
  var options = (0,_helpers__WEBPACK_IMPORTED_MODULE_6__.createPiletOptions)({
@@ -3666,6 +3892,7 @@ __webpack_require__.r(__webpack_exports__);
3666
3892
  /* harmony export */ "SetRoute": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.SetRoute),
3667
3893
  /* harmony export */ "SwitchErrorInfo": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.SwitchErrorInfo),
3668
3894
  /* harmony export */ "getPiralComponent": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.getPiralComponent),
3895
+ /* harmony export */ "wrapComponent": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_3__.wrapComponent),
3669
3896
  /* harmony export */ "useAction": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_4__.useAction),
3670
3897
  /* harmony export */ "useActions": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_4__.useActions),
3671
3898
  /* harmony export */ "useGlobalState": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_4__.useGlobalState),
@@ -3840,11 +4067,15 @@ function createCoreApi(context) {
3840
4067
  var expiration = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getDataExpiration)(expires);
3841
4068
  return context.tryWriteDataItem(name, value, pilet, target, expiration);
3842
4069
  },
3843
- registerPage: function registerPage(route, arg, meta) {
4070
+ registerPage: function registerPage(route, arg) {
4071
+ var meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
4072
+ var component = (0,_state__WEBPACK_IMPORTED_MODULE_1__.withApi)(context, arg, api, 'page', undefined, {
4073
+ meta: meta
4074
+ });
3844
4075
  context.registerPage(route, {
3845
4076
  pilet: pilet,
3846
4077
  meta: meta,
3847
- component: (0,_state__WEBPACK_IMPORTED_MODULE_1__.withApi)(context, arg, api, 'page')
4078
+ component: component
3848
4079
  });
3849
4080
  return function () {
3850
4081
  return api.unregisterPage(route);
@@ -4311,238 +4542,50 @@ __webpack_require__.r(__webpack_exports__);
4311
4542
  /* harmony export */ "withApi": () => (/* binding */ withApi)
4312
4543
  /* harmony export */ });
4313
4544
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
4314
- /* harmony import */ var piral_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! piral-base */ "../../framework/piral-base/esm/utils.js");
4315
- /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router */ "../../../node_modules/react-router/esm/react-router.js");
4316
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components */ "../../framework/piral-core/esm/components/ErrorBoundary.js");
4317
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components */ "../../framework/piral-core/esm/components/PortalRenderer.js");
4318
- /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../components */ "../../framework/piral-core/esm/components/components.js");
4319
- /* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks */ "../../framework/piral-core/esm/hooks/globalState.js");
4545
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components */ "../../framework/piral-core/esm/components/ErrorBoundary.js");
4546
+ /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components */ "../../framework/piral-core/esm/components/wrapComponent.js");
4320
4547
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ "../../framework/piral-core/esm/utils/react.js");
4321
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "../../framework/piral-core/esm/utils/helpers.js");
4322
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils */ "../../framework/piral-core/esm/utils/foreign.js");
4323
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4324
-
4325
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4326
-
4327
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
4328
-
4329
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
4330
-
4331
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
4332
-
4333
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
4334
-
4335
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
4336
-
4337
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
4338
-
4339
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
4340
-
4341
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
4342
-
4343
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
4344
4548
 
4345
4549
 
4346
4550
 
4347
4551
 
4348
-
4349
-
4350
- // this is an arbitrary start number to have 6 digits
4351
-
4352
- var portalIdBase = 123456;
4353
-
4354
4552
  var DefaultWrapper = function DefaultWrapper(props) {
4355
4553
  return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.defaultRender)(props.children);
4356
4554
  };
4357
4555
 
4358
- var ForeignComponentContainer = /*#__PURE__*/function (_React$Component) {
4359
- _inherits(ForeignComponentContainer, _React$Component);
4360
-
4361
- var _super = _createSuper(ForeignComponentContainer);
4362
-
4363
- function ForeignComponentContainer() {
4364
- var _this;
4365
-
4366
- _classCallCheck(this, ForeignComponentContainer);
4367
-
4368
- _this = _super.apply(this, arguments);
4369
-
4370
- _this.handler = function (ev) {
4371
- var innerProps = _this.props.innerProps;
4372
- ev.stopPropagation();
4373
- innerProps.piral.renderHtmlExtension(ev.detail.target, ev.detail.props);
4374
- };
4556
+ function getWrapper(wrappers, wrapperType) {
4557
+ var WrapAll = wrappers['*'];
4558
+ var WrapType = wrappers[wrapperType];
4375
4559
 
4376
- _this.setNode = function (node) {
4377
- _this.current = node;
4560
+ if (WrapAll && WrapType) {
4561
+ return function (props) {
4562
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrapAll, Object.assign({}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrapType, Object.assign({}, props)));
4378
4563
  };
4379
-
4380
- return _this;
4381
4564
  }
4382
4565
 
4383
- _createClass(ForeignComponentContainer, [{
4384
- key: "componentDidMount",
4385
- value: function componentDidMount() {
4386
- var node = this.current;
4387
- var _this$props = this.props,
4388
- $component = _this$props.$component,
4389
- $context = _this$props.$context,
4390
- innerProps = _this$props.innerProps;
4391
- var mount = $component.mount;
4392
-
4393
- if (node && (0,piral_base__WEBPACK_IMPORTED_MODULE_2__.isfunc)(mount)) {
4394
- mount(node, innerProps, $context);
4395
- node.addEventListener('render-html', this.handler, false);
4396
- }
4397
-
4398
- this.previous = node;
4399
- }
4400
- }, {
4401
- key: "componentDidUpdate",
4402
- value: function componentDidUpdate() {
4403
- var current = this.current,
4404
- previous = this.previous;
4405
- var _this$props2 = this.props,
4406
- $component = _this$props2.$component,
4407
- $context = _this$props2.$context,
4408
- innerProps = _this$props2.innerProps;
4409
- var update = $component.update;
4410
-
4411
- if (current !== previous) {
4412
- previous && this.componentWillUnmount();
4413
- current && this.componentDidMount();
4414
- } else if ((0,piral_base__WEBPACK_IMPORTED_MODULE_2__.isfunc)(update)) {
4415
- update(current, innerProps, $context);
4416
- }
4417
- }
4418
- }, {
4419
- key: "componentWillUnmount",
4420
- value: function componentWillUnmount() {
4421
- var node = this.previous;
4422
- var $component = this.props.$component;
4423
- var unmount = $component.unmount;
4424
-
4425
- if (node && (0,piral_base__WEBPACK_IMPORTED_MODULE_2__.isfunc)(unmount)) {
4426
- unmount(node);
4427
- node.removeEventListener('render-html', this.handler, false);
4428
- }
4429
-
4430
- this.previous = undefined;
4431
- }
4432
- }, {
4433
- key: "render",
4434
- value: function render() {
4435
- var $portalId = this.props.$portalId;
4436
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
4437
- "data-portal-id": $portalId,
4438
- ref: this.setNode
4439
- });
4440
- }
4441
- }]);
4442
-
4443
- return ForeignComponentContainer;
4444
- }(react__WEBPACK_IMPORTED_MODULE_0__.Component);
4445
-
4446
- function wrapReactComponent(Component, stasisOptions, piral, Wrapper) {
4447
- return function (props) {
4448
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Wrapper, Object.assign({}, props, {
4449
- piral: piral
4450
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_3__.ErrorBoundary, Object.assign({}, stasisOptions, {
4451
- renderProps: props
4452
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, Object.assign({}, props, {
4453
- piral: piral
4454
- }))));
4455
- };
4566
+ return WrapType || WrapAll || DefaultWrapper;
4456
4567
  }
4457
4568
 
4458
- function wrapForeignComponent(component, stasisOptions, piral, Wrapper) {
4459
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {
4460
- var _useGlobalStateContex = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__.useGlobalStateContext)(),
4461
- state = _useGlobalStateContex.state,
4462
- readState = _useGlobalStateContex.readState,
4463
- destroyPortal = _useGlobalStateContex.destroyPortal;
4464
-
4465
- var router = react__WEBPACK_IMPORTED_MODULE_0__.useContext(react_router__WEBPACK_IMPORTED_MODULE_5__.__RouterContext);
4466
- var id = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
4467
- return (portalIdBase++).toString(26);
4468
- }, _utils__WEBPACK_IMPORTED_MODULE_6__.none);
4469
- var context = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
4470
- return {
4471
- router: router,
4472
- state: state,
4473
- readState: readState
4474
- };
4475
- }, [router, state]);
4476
- var innerProps = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
4477
- return Object.assign(Object.assign({}, props), {
4478
- piral: piral
4479
- });
4480
- }, [props]);
4481
- react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
4482
- return function () {
4483
- return destroyPortal(id);
4484
- };
4485
- }, _utils__WEBPACK_IMPORTED_MODULE_6__.none);
4486
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Wrapper, Object.assign({}, innerProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_3__.ErrorBoundary, Object.assign({}, stasisOptions, {
4487
- renderProps: props
4488
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_7__.PortalRenderer, {
4489
- id: id
4490
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ForeignComponentContainer, {
4491
- innerProps: innerProps,
4492
- "$portalId": id,
4493
- "$component": component,
4494
- "$context": context
4495
- })));
4569
+ function makeWrapper(context, outerProps, wrapperType, errorType) {
4570
+ var OuterWrapper = context.readState(function (m) {
4571
+ return getWrapper(m.registry.wrappers, wrapperType);
4496
4572
  });
4497
- }
4498
-
4499
- function isNotExotic(component) {
4500
- return !component.$$typeof;
4501
- }
4502
-
4503
- function wrapComponent(converters, component, piral, Wrapper, stasisOptions) {
4504
- if (!component) {
4505
- console.error('The given value is not a valid component.'); // tslint:disable-next-line:no-null-keyword
4506
-
4507
- component = function component() {
4508
- return null;
4509
- };
4510
- }
4511
-
4512
- if (_typeof(component) === 'object' && isNotExotic(component)) {
4513
- var result = (0,_utils__WEBPACK_IMPORTED_MODULE_8__.convertComponent)(converters[component.type], component);
4514
- return wrapForeignComponent(result, stasisOptions, piral, Wrapper);
4515
- }
4516
-
4517
- return wrapReactComponent(component, stasisOptions, piral, Wrapper);
4518
- }
4519
-
4520
- function getWrapper(wrappers, wrapperType) {
4521
- return wrappers[wrapperType] || wrappers['*'] || DefaultWrapper;
4573
+ return function (props) {
4574
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(OuterWrapper, Object.assign({}, outerProps, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_2__.ErrorBoundary, Object.assign({}, outerProps, props, {
4575
+ errorType: errorType
4576
+ }), props.children));
4577
+ };
4522
4578
  }
4523
4579
 
4524
4580
  function withApi(context, component, piral, errorType) {
4525
4581
  var wrapperType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : errorType;
4526
- var converters = context.converters;
4527
- var Wrapper = context.readState(function (m) {
4528
- return getWrapper(m.registry.wrappers, wrapperType);
4529
- });
4530
- return wrapComponent(converters, component, piral, Wrapper, {
4531
- onError: function onError(error) {
4532
- console.error(piral, error);
4533
- },
4534
- renderChild: function renderChild(child) {
4535
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Suspense, {
4536
- fallback: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_9__.PiralLoadingIndicator, null)
4537
- }, child);
4538
- },
4539
- renderError: function renderError(error, props) {
4540
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_9__.PiralError, Object.assign({
4541
- type: errorType,
4542
- error: error
4543
- }, props));
4544
- }
4582
+ var captured = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
4583
+ var outerProps = Object.assign(Object.assign({}, captured), {
4584
+ piral: piral
4545
4585
  });
4586
+ var converters = context.converters;
4587
+ var Wrapper = makeWrapper(context, outerProps, wrapperType, errorType);
4588
+ return (0,_components__WEBPACK_IMPORTED_MODULE_3__.wrapComponent)(converters, component, outerProps, Wrapper);
4546
4589
  }
4547
4590
 
4548
4591
  /***/ }),
@@ -5679,6 +5722,7 @@ __webpack_require__.r(__webpack_exports__);
5679
5722
  /* harmony export */ "withoutExtension": () => (/* reexport safe */ piral_core__WEBPACK_IMPORTED_MODULE_0__.withoutExtension),
5680
5723
  /* harmony export */ "withoutKey": () => (/* reexport safe */ piral_core__WEBPACK_IMPORTED_MODULE_0__.withoutKey),
5681
5724
  /* harmony export */ "withoutPage": () => (/* reexport safe */ piral_core__WEBPACK_IMPORTED_MODULE_0__.withoutPage),
5725
+ /* harmony export */ "wrapComponent": () => (/* reexport safe */ piral_core__WEBPACK_IMPORTED_MODULE_0__.wrapComponent),
5682
5726
  /* harmony export */ "Dashboard": () => (/* reexport safe */ piral_ext__WEBPACK_IMPORTED_MODULE_1__.Dashboard),
5683
5727
  /* harmony export */ "Languages": () => (/* reexport safe */ piral_ext__WEBPACK_IMPORTED_MODULE_1__.Languages),
5684
5728
  /* harmony export */ "Menu": () => (/* reexport safe */ piral_ext__WEBPACK_IMPORTED_MODULE_1__.Menu),
@@ -9224,11 +9268,11 @@ function installPiralDebug(options) {
9224
9268
  debug: debugApiVersion,
9225
9269
  instance: {
9226
9270
  name: "sample-piral",
9227
- version: "0.14.9",
9271
+ version: "0.14.10-beta.3659",
9228
9272
  dependencies: "reactstrap,react,react-dom,react-router,react-router-dom,history,tslib,path-to-regexp,@libre/atom,@dbeining/react-atom"
9229
9273
  },
9230
9274
  build: {
9231
- date: "2022-01-21T11:12:10.668Z",
9275
+ date: "2022-02-13T10:42:13.084Z",
9232
9276
  cli: "0.14.9",
9233
9277
  compat: "0.14"
9234
9278
  },
@@ -80533,4 +80577,4 @@ var layout_1 = __webpack_require__(/*! ./layout */ "./src/layout.tsx");
80533
80577
 
80534
80578
  /******/ })()
80535
80579
  ;
80536
- //# sourceMappingURL=index.7455cb.js.map
80580
+ //# sourceMappingURL=index.60c9f2.js.map