sample-piral 1.4.0-beta.6280 → 1.4.0-beta.6288

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.
@@ -406,10 +406,10 @@ var RootListener = function RootListener() {
406
406
  target.dispose = dispose;
407
407
  };
408
408
  document.body.addEventListener('render-html', renderHtml, false);
409
- document.body.addEventListener('render-content', renderContent, false);
409
+ window.addEventListener('render-content', renderContent, false);
410
410
  return function () {
411
411
  document.body.removeEventListener('render-html', renderHtml, false);
412
- document.body.removeEventListener('render-content', renderContent, false);
412
+ window.removeEventListener('render-content', renderContent, false);
413
413
  };
414
414
  }
415
415
  }, [context]);
@@ -2393,6 +2393,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
2393
2393
 
2394
2394
 
2395
2395
  if (typeof window !== 'undefined' && 'customElements' in window) {
2396
+ var contents = 'contents';
2396
2397
  /**
2397
2398
  * This is a nice abstraction allowing anyone to actually use the extension system
2398
2399
  * brought by Piral. Not all props of the extension system are actually exposed.
@@ -2492,7 +2493,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
2492
2493
  }, {
2493
2494
  key: "connectedCallback",
2494
2495
  value: function connectedCallback() {
2495
- this.style.display = 'contents';
2496
+ this.style.display = contents;
2496
2497
  if (this.isConnected) {
2497
2498
  this.dispatchEvent(new CustomEvent('render-html', {
2498
2499
  bubbles: true,
@@ -2555,7 +2556,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
2555
2556
  _createClass(PiralPortal, [{
2556
2557
  key: "connectedCallback",
2557
2558
  value: function connectedCallback() {
2558
- this.style.display = 'contents';
2559
+ this.style.display = contents;
2559
2560
  }
2560
2561
  }]);
2561
2562
  return PiralPortal;
@@ -2582,7 +2583,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
2582
2583
  _createClass(PiralSlot, [{
2583
2584
  key: "connectedCallback",
2584
2585
  value: function connectedCallback() {
2585
- this.style.display = 'contents';
2586
+ this.style.display = contents;
2586
2587
  }
2587
2588
  }]);
2588
2589
  return PiralSlot;
@@ -2622,13 +2623,13 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
2622
2623
  _createClass(PiralContent, [{
2623
2624
  key: "connectedCallback",
2624
2625
  value: function connectedCallback() {
2625
- this.style.display = 'contents';
2626
+ this.style.display = contents;
2626
2627
  var cid = this.getAttribute('cid');
2627
2628
  var content = PiralContent.contentAssignments[cid];
2628
2629
  var portal = this.closest('piral-portal');
2629
2630
  if (content && portal) {
2630
2631
  var portalId = portal.getAttribute('pid');
2631
- document.body.dispatchEvent(new CustomEvent('render-content', {
2632
+ window.dispatchEvent(new CustomEvent('render-content', {
2632
2633
  detail: {
2633
2634
  target: this,
2634
2635
  content: content,
@@ -2651,6 +2652,58 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
2651
2652
  PiralContent.contentAssignments[cid] = content;
2652
2653
  };
2653
2654
  customElements.define(_utils__WEBPACK_IMPORTED_MODULE_3__.contentName, PiralContent);
2655
+ /**
2656
+ * This is a virtual element to indicate that the contained content is
2657
+ * rendered from a micro frontend's component. It will be used by the
2658
+ * orchestrator, so there is nothing you will need to do with it.
2659
+ *
2660
+ * Right now this is only used when you opt-in in the createInstance.
2661
+ */
2662
+ var PiralComponent = /*#__PURE__*/function (_HTMLElement5) {
2663
+ _inherits(PiralComponent, _HTMLElement5);
2664
+ var _super5 = _createSuper(PiralComponent);
2665
+ function PiralComponent() {
2666
+ _classCallCheck(this, PiralComponent);
2667
+ return _super5.apply(this, arguments);
2668
+ }
2669
+ _createClass(PiralComponent, [{
2670
+ key: "name",
2671
+ get: function get() {
2672
+ return this.getAttribute('name');
2673
+ }
2674
+ }, {
2675
+ key: "origin",
2676
+ get: function get() {
2677
+ return this.getAttribute('origin');
2678
+ }
2679
+ }, {
2680
+ key: "connectedCallback",
2681
+ value: function connectedCallback() {
2682
+ this.style.display = contents;
2683
+ this.deferEvent('add-component');
2684
+ }
2685
+ }, {
2686
+ key: "disconnectedCallback",
2687
+ value: function disconnectedCallback() {
2688
+ this.deferEvent('remove-component');
2689
+ }
2690
+ }, {
2691
+ key: "deferEvent",
2692
+ value: function deferEvent(eventName) {
2693
+ var ev = new CustomEvent(eventName, {
2694
+ detail: {
2695
+ name: this.name,
2696
+ origin: this.origin
2697
+ }
2698
+ });
2699
+ setTimeout(function () {
2700
+ return window.dispatchEvent(ev);
2701
+ }, 0);
2702
+ }
2703
+ }]);
2704
+ return PiralComponent;
2705
+ }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
2706
+ customElements.define(_utils__WEBPACK_IMPORTED_MODULE_3__.componentName, PiralComponent);
2654
2707
  }
2655
2708
  function renderElement(context, element, props) {
2656
2709
  if (typeof window !== 'undefined') {
@@ -2831,14 +2884,22 @@ function getWrapper(wrappers, wrapperType) {
2831
2884
  return WrapType || WrapAll || DefaultWrapper;
2832
2885
  }
2833
2886
  function makeWrapper(context, outerProps, wrapperType, errorType) {
2887
+ var wrapped = context.readState(function (m) {
2888
+ return m.app.wrap;
2889
+ });
2834
2890
  var OuterWrapper = context.readState(function (m) {
2835
2891
  return getWrapper(m.registry.wrappers, wrapperType);
2836
2892
  });
2837
- return function (props) {
2893
+ var Wrapper = function Wrapper(props) {
2838
2894
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(OuterWrapper, _objectSpread(_objectSpread({}, outerProps), props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_components__WEBPACK_IMPORTED_MODULE_2__.ErrorBoundary, _objectSpread(_objectSpread(_objectSpread({}, outerProps), props), {}, {
2839
2895
  errorType: errorType
2840
2896
  }), props.children));
2841
2897
  };
2898
+ return wrapped ? function (props) {
2899
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("piral-component", {
2900
+ origin: outerProps.piral.meta.name
2901
+ }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Wrapper, _objectSpread({}, props)));
2902
+ } : Wrapper;
2842
2903
  }
2843
2904
  function withApi(context, component, piral, errorType) {
2844
2905
  var wrapperType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : errorType;
@@ -2931,11 +2992,7 @@ function integrateDebugger(context, options) {
2931
2992
  integrate: function integrate(dbg) {
2932
2993
  context.dispatch(function (s) {
2933
2994
  return _objectSpread(_objectSpread({}, s), {}, {
2934
- components: _objectSpread(_objectSpread({}, s.components), dbg.components),
2935
- routes: _objectSpread(_objectSpread({}, s.routes), dbg.routes),
2936
- registry: _objectSpread(_objectSpread({}, s.registry), {}, {
2937
- wrappers: _objectSpread(_objectSpread({}, s.registry.wrappers), dbg.wrappers)
2938
- })
2995
+ routes: _objectSpread(_objectSpread({}, s.routes), dbg.routes)
2939
2996
  });
2940
2997
  });
2941
2998
  context.state.subscribe(function (current, previous) {
@@ -3175,6 +3232,7 @@ __webpack_require__.r(__webpack_exports__);
3175
3232
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3176
3233
  /* harmony export */ attachDomPortal: () => (/* binding */ attachDomPortal),
3177
3234
  /* harmony export */ changeDomPortal: () => (/* binding */ changeDomPortal),
3235
+ /* harmony export */ componentName: () => (/* binding */ componentName),
3178
3236
  /* harmony export */ contentName: () => (/* binding */ contentName),
3179
3237
  /* harmony export */ convertComponent: () => (/* binding */ convertComponent),
3180
3238
  /* harmony export */ extensionName: () => (/* binding */ extensionName),
@@ -3188,6 +3246,7 @@ __webpack_require__.r(__webpack_exports__);
3188
3246
 
3189
3247
 
3190
3248
  var extensionName = 'piral-extension';
3249
+ var componentName = 'piral-component';
3191
3250
  var contentName = 'piral-content';
3192
3251
  var portalName = 'piral-portal';
3193
3252
  var slotName = 'piral-slot';
@@ -6267,37 +6326,6 @@ var Localizer = /*#__PURE__*/function () {
6267
6326
 
6268
6327
  /***/ }),
6269
6328
 
6270
- /***/ "../../utilities/piral-debug-utils/esm/DebugTracker.js":
6271
- /*!*************************************************************!*\
6272
- !*** ../../utilities/piral-debug-utils/esm/DebugTracker.js ***!
6273
- \*************************************************************/
6274
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6275
-
6276
- "use strict";
6277
- __webpack_require__.r(__webpack_exports__);
6278
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6279
- /* harmony export */ DebugTracker: () => (/* binding */ DebugTracker)
6280
- /* harmony export */ });
6281
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
6282
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6283
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./state */ "../../utilities/piral-debug-utils/esm/state.js");
6284
-
6285
-
6286
- var DebugTracker = function DebugTracker() {
6287
- var route = (0,_state__WEBPACK_IMPORTED_MODULE_1__.useDebugState)(function (s) {
6288
- return s.route;
6289
- });
6290
- react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
6291
- if (route) {
6292
- (0,_state__WEBPACK_IMPORTED_MODULE_1__.navigate)(route.path, route.state);
6293
- }
6294
- }, [route]);
6295
- // tslint:disable-next-line:no-null-keyword
6296
- return null;
6297
- };
6298
-
6299
- /***/ }),
6300
-
6301
6329
  /***/ "../../utilities/piral-debug-utils/esm/ExtensionCatalogue.js":
6302
6330
  /*!*******************************************************************!*\
6303
6331
  !*** ../../utilities/piral-debug-utils/esm/ExtensionCatalogue.js ***!
@@ -6322,6 +6350,7 @@ var ExtensionCatalogue = function ExtensionCatalogue() {
6322
6350
  name = _state$name === void 0 ? '' : _state$name,
6323
6351
  _state$params = state.params,
6324
6352
  params = _state$params === void 0 ? {} : _state$params;
6353
+ // @ts-ignore
6325
6354
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("piral-extension", {
6326
6355
  name: name,
6327
6356
  params: JSON.stringify(params)
@@ -6332,141 +6361,6 @@ var ExtensionCatalogue = function ExtensionCatalogue() {
6332
6361
 
6333
6362
  /***/ }),
6334
6363
 
6335
- /***/ "../../utilities/piral-debug-utils/esm/VisualizationWrapper.js":
6336
- /*!*********************************************************************!*\
6337
- !*** ../../utilities/piral-debug-utils/esm/VisualizationWrapper.js ***!
6338
- \*********************************************************************/
6339
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6340
-
6341
- "use strict";
6342
- __webpack_require__.r(__webpack_exports__);
6343
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6344
- /* harmony export */ VisualizationWrapper: () => (/* binding */ VisualizationWrapper)
6345
- /* harmony export */ });
6346
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
6347
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
6348
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./state */ "../../utilities/piral-debug-utils/esm/state.js");
6349
-
6350
-
6351
- var moduleColor = {};
6352
- var Visualizer = function Visualizer(_ref) {
6353
- var pilet = _ref.pilet,
6354
- force = _ref.force,
6355
- active = _ref.active;
6356
- var colors = ['#001F3F', '#0074D9', '#7FDBFF', '#39CCCC', '#3D9970', '#2ECC40', '#01FF70', '#FFDC00', '#FF851B', '#FF4136', '#85144B', '#F012BE', '#B10DC9'];
6357
- var container = react__WEBPACK_IMPORTED_MODULE_0__.useRef();
6358
- var color = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
6359
- return moduleColor[pilet] || (moduleColor[pilet] = colors[Object.keys(moduleColor).length % colors.length]);
6360
- }, [pilet]);
6361
- react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
6362
- var sibling = container.current && container.current.nextElementSibling;
6363
- if (sibling && active) {
6364
- var target = container.current.parentNode;
6365
- var mouseIn = function mouseIn() {
6366
- if (container.current && sibling) {
6367
- var style = container.current.style;
6368
- style.display = 'block';
6369
- style.left = '0px';
6370
- style.top = '0px';
6371
- style.bottom = '0px';
6372
- style.right = '0px';
6373
- var targetRect = sibling.getBoundingClientRect();
6374
- var sourceRect = container.current.getBoundingClientRect();
6375
- style.left = targetRect.left - sourceRect.left + 'px';
6376
- style.top = targetRect.top - sourceRect.top + 'px';
6377
- style.bottom = -(targetRect.bottom - sourceRect.bottom) + 'px';
6378
- style.right = -(targetRect.right - sourceRect.right) + 'px';
6379
- }
6380
- };
6381
- var mouseOut = function mouseOut() {
6382
- if (container.current) {
6383
- var style = container.current.style;
6384
- style.display = 'none';
6385
- }
6386
- };
6387
- var append = function append() {
6388
- if (force) {
6389
- mouseIn();
6390
- } else if (sibling) {
6391
- sibling.addEventListener('mouseover', mouseIn);
6392
- sibling.addEventListener('mouseout', mouseOut);
6393
- }
6394
- };
6395
- var remove = function remove() {
6396
- if (force) {
6397
- mouseOut();
6398
- } else if (sibling) {
6399
- sibling.removeEventListener('mouseover', mouseIn);
6400
- sibling.removeEventListener('mouseout', mouseOut);
6401
- }
6402
- };
6403
- var observer = new MutationObserver(function () {
6404
- var _container$current;
6405
- var newSibling = (_container$current = container.current) === null || _container$current === void 0 ? void 0 : _container$current.nextElementSibling;
6406
- if (newSibling !== sibling) {
6407
- remove();
6408
- sibling = newSibling;
6409
- append();
6410
- }
6411
- });
6412
- append();
6413
- observer.observe(target, {
6414
- childList: true
6415
- });
6416
- return function () {
6417
- remove();
6418
- observer.disconnect();
6419
- };
6420
- }
6421
- }, [active, force]);
6422
- if (active) {
6423
- var rect = {
6424
- border: '1px solid red',
6425
- display: 'none',
6426
- position: 'absolute',
6427
- top: 0,
6428
- bottom: 0,
6429
- right: 0,
6430
- left: 0,
6431
- zIndex: 99999999999,
6432
- pointerEvents: 'none',
6433
- borderColor: color
6434
- };
6435
- var info = {
6436
- color: 'white',
6437
- position: 'absolute',
6438
- right: 0,
6439
- top: 0,
6440
- fontSize: '8px',
6441
- background: color
6442
- };
6443
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
6444
- style: rect,
6445
- ref: container
6446
- }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
6447
- style: info
6448
- }, pilet));
6449
- }
6450
- // tslint:disable-next-line:no-null-keyword
6451
- return null;
6452
- };
6453
- var VisualizationWrapper = function VisualizationWrapper(_ref2) {
6454
- var piral = _ref2.piral,
6455
- children = _ref2.children;
6456
- var _useDebugState = (0,_state__WEBPACK_IMPORTED_MODULE_1__.useDebugState)(function (m) {
6457
- return m.visualize;
6458
- }),
6459
- active = _useDebugState.active,
6460
- force = _useDebugState.force;
6461
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Visualizer, {
6462
- pilet: piral.meta.name,
6463
- force: force,
6464
- active: active
6465
- }), children);
6466
- };
6467
-
6468
- /***/ }),
6469
-
6470
6364
  /***/ "../../utilities/piral-debug-utils/esm/debug.js":
6471
6365
  /*!******************************************************!*\
6472
6366
  !*** ../../utilities/piral-debug-utils/esm/debug.js ***!
@@ -6478,10 +6372,9 @@ __webpack_require__.r(__webpack_exports__);
6478
6372
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6479
6373
  /* harmony export */ installPiralDebug: () => (/* binding */ installPiralDebug)
6480
6374
  /* harmony export */ });
6481
- /* harmony import */ var _DebugTracker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DebugTracker */ "../../utilities/piral-debug-utils/esm/DebugTracker.js");
6482
- /* harmony import */ var _VisualizationWrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./VisualizationWrapper */ "../../utilities/piral-debug-utils/esm/VisualizationWrapper.js");
6483
6375
  /* harmony import */ var _ExtensionCatalogue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ExtensionCatalogue */ "../../utilities/piral-debug-utils/esm/ExtensionCatalogue.js");
6484
- /* harmony import */ var _decycle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./decycle */ "../../utilities/piral-debug-utils/esm/decycle.js");
6376
+ /* harmony import */ var _decycle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./decycle */ "../../utilities/piral-debug-utils/esm/decycle.js");
6377
+ /* harmony import */ var _visualizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visualizer */ "../../utilities/piral-debug-utils/esm/visualizer.js");
6485
6378
  /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ "../../utilities/piral-debug-utils/esm/state.js");
6486
6379
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
6487
6380
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -6493,7 +6386,6 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
6493
6386
 
6494
6387
 
6495
6388
 
6496
-
6497
6389
  function installPiralDebug(options) {
6498
6390
  var getGlobalState = options.getGlobalState,
6499
6391
  getExtensions = options.getExtensions,
@@ -6517,7 +6409,6 @@ function installPiralDebug(options) {
6517
6409
  var selfSource = 'piral-debug-api';
6518
6410
  var debugApiVersion = 'v1';
6519
6411
  var setValue = _state__WEBPACK_IMPORTED_MODULE_0__.initialSetter;
6520
- (0,_state__WEBPACK_IMPORTED_MODULE_0__.setInitialState)(initialSettings);
6521
6412
  var settings = _objectSpread(_objectSpread({}, customSettings), {}, {
6522
6413
  viewState: {
6523
6414
  value: initialSettings.viewState,
@@ -6579,6 +6470,9 @@ function installPiralDebug(options) {
6579
6470
  }
6580
6471
  }
6581
6472
  });
6473
+ if (initialSettings.viewOrigins) {
6474
+ (0,_visualizer__WEBPACK_IMPORTED_MODULE_1__.createVisualizer)();
6475
+ }
6582
6476
  var sendMessage = function sendMessage(content) {
6583
6477
  window.postMessage({
6584
6478
  content: content,
@@ -6658,33 +6552,12 @@ function installPiralDebug(options) {
6658
6552
  });
6659
6553
  }
6660
6554
  };
6661
- var toggleVisualize = function toggleVisualize() {
6662
- (0,_state__WEBPACK_IMPORTED_MODULE_0__.setState)(function (s) {
6663
- return _objectSpread(_objectSpread({}, s), {}, {
6664
- visualize: _objectSpread(_objectSpread({}, s.visualize), {}, {
6665
- force: !s.visualize.force
6666
- })
6667
- });
6668
- });
6669
- };
6670
6555
  var updateVisualize = function updateVisualize(active) {
6671
- (0,_state__WEBPACK_IMPORTED_MODULE_0__.setState)(function (s) {
6672
- return _objectSpread(_objectSpread({}, s), {}, {
6673
- visualize: _objectSpread(_objectSpread({}, s.visualize), {}, {
6674
- active: active
6675
- })
6676
- });
6677
- });
6678
- };
6679
- var goToRoute = function goToRoute(path, state) {
6680
- (0,_state__WEBPACK_IMPORTED_MODULE_0__.setState)(function (s) {
6681
- return _objectSpread(_objectSpread({}, s), {}, {
6682
- route: {
6683
- path: path,
6684
- state: state
6685
- }
6686
- });
6687
- });
6556
+ if (active) {
6557
+ (0,_visualizer__WEBPACK_IMPORTED_MODULE_1__.createVisualizer)();
6558
+ } else {
6559
+ (0,_visualizer__WEBPACK_IMPORTED_MODULE_1__.destroyVisualizer)();
6560
+ }
6688
6561
  };
6689
6562
  var eventDispatcher = document.body.dispatchEvent;
6690
6563
  var systemResolve = System.constructor.prototype.resolve;
@@ -6720,12 +6593,12 @@ function installPiralDebug(options) {
6720
6593
  debug: debugApiVersion,
6721
6594
  instance: {
6722
6595
  name: "sample-piral",
6723
- version: "1.4.0-beta.6280",
6596
+ version: "1.4.0-beta.6288",
6724
6597
  dependencies: "reactstrap,tslib,react,react-dom,react-router,react-router-dom"
6725
6598
  },
6726
6599
  build: {
6727
- date: "2023-11-29T17:14:20.158Z",
6728
- cli: "1.4.0-beta.6280",
6600
+ date: "2023-12-01T20:17:47.562Z",
6601
+ cli: "1.4.0-beta.6288",
6729
6602
  compat: "1"
6730
6603
  }
6731
6604
  };
@@ -6737,7 +6610,7 @@ function installPiralDebug(options) {
6737
6610
  capabilities: ['events', 'container', 'routes', 'pilets', 'settings', 'extensions', 'dependencies', 'dependency-map']
6738
6611
  };
6739
6612
  var start = function start() {
6740
- var container = (0,_decycle__WEBPACK_IMPORTED_MODULE_1__.decycle)(getGlobalState());
6613
+ var container = (0,_decycle__WEBPACK_IMPORTED_MODULE_2__.decycle)(getGlobalState());
6741
6614
  var routes = getRoutes().filter(function (r) {
6742
6615
  return !excludedRoutes.includes(r);
6743
6616
  });
@@ -6825,7 +6698,7 @@ function installPiralDebug(options) {
6825
6698
  events.unshift({
6826
6699
  id: events.length.toString(),
6827
6700
  name: ev.type.replace('piral-', ''),
6828
- args: (0,_decycle__WEBPACK_IMPORTED_MODULE_1__.decycle)(ev.detail.arg),
6701
+ args: (0,_decycle__WEBPACK_IMPORTED_MODULE_2__.decycle)(ev.detail.arg),
6829
6702
  time: Date.now()
6830
6703
  });
6831
6704
  sendMessage({
@@ -6872,21 +6745,14 @@ function installPiralDebug(options) {
6872
6745
  case 'emit-event':
6873
6746
  return fireEvent(content.name, content.args);
6874
6747
  case 'goto-route':
6875
- return goToRoute(content.route, content.state);
6748
+ return navigate(content.route, content.state);
6876
6749
  case 'visualize-all':
6877
- return toggleVisualize();
6750
+ return (0,_visualizer__WEBPACK_IMPORTED_MODULE_1__.toggleVisualizer)();
6878
6751
  }
6879
6752
  }
6880
6753
  });
6881
- (0,_state__WEBPACK_IMPORTED_MODULE_0__.setNavigate)(navigate);
6882
6754
  integrate({
6883
- components: {
6884
- Debug: _DebugTracker__WEBPACK_IMPORTED_MODULE_2__.DebugTracker
6885
- },
6886
6755
  routes: _defineProperty({}, initialSettings.cataloguePath, _ExtensionCatalogue__WEBPACK_IMPORTED_MODULE_3__.ExtensionCatalogue),
6887
- wrappers: {
6888
- '*': _VisualizationWrapper__WEBPACK_IMPORTED_MODULE_4__.VisualizationWrapper
6889
- },
6890
6756
  onChange: function onChange(previous, current, changed) {
6891
6757
  if (changed.state) {
6892
6758
  if (settings.viewState.value) {
@@ -6909,7 +6775,7 @@ function installPiralDebug(options) {
6909
6775
  }
6910
6776
  sendMessage({
6911
6777
  type: 'container',
6912
- container: (0,_decycle__WEBPACK_IMPORTED_MODULE_1__.decycle)(getGlobalState())
6778
+ container: (0,_decycle__WEBPACK_IMPORTED_MODULE_2__.decycle)(getGlobalState())
6913
6779
  });
6914
6780
  }
6915
6781
  if (changed.pilets) {
@@ -7156,25 +7022,9 @@ __webpack_require__.r(__webpack_exports__);
7156
7022
  /* harmony export */ disablePersistance: () => (/* binding */ disablePersistance),
7157
7023
  /* harmony export */ enablePersistance: () => (/* binding */ enablePersistance),
7158
7024
  /* harmony export */ getInitialSettings: () => (/* binding */ getInitialSettings),
7159
- /* harmony export */ getState: () => (/* binding */ getState),
7160
7025
  /* harmony export */ initialSetter: () => (/* binding */ initialSetter),
7161
- /* harmony export */ navigate: () => (/* binding */ navigate),
7162
- /* harmony export */ setInitialState: () => (/* binding */ setInitialState),
7163
- /* harmony export */ setNavigate: () => (/* binding */ setNavigate),
7164
- /* harmony export */ setState: () => (/* binding */ setState),
7165
- /* harmony export */ settingsKeys: () => (/* binding */ settingsKeys),
7166
- /* harmony export */ subscribe: () => (/* binding */ subscribe),
7167
- /* harmony export */ useDebugState: () => (/* binding */ useDebugState)
7026
+ /* harmony export */ settingsKeys: () => (/* binding */ settingsKeys)
7168
7027
  /* harmony export */ });
7169
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
7170
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7171
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7172
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7173
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7174
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7175
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7176
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7177
-
7178
7028
  var settingsKeys = {
7179
7029
  viewState: 'dbg:view-state',
7180
7030
  loadPilets: 'dbg:load-pilets',
@@ -7249,73 +7099,6 @@ function getInitialSettings(defaultValues) {
7249
7099
  cataloguePath: '/$debug-extension-catalogue'
7250
7100
  };
7251
7101
  }
7252
- var listeners = [];
7253
- var _navigate = undefined;
7254
- function setNavigate(navigate) {
7255
- _navigate = navigate;
7256
- }
7257
- function navigate(path, state) {
7258
- var _navigate2;
7259
- (_navigate2 = _navigate) === null || _navigate2 === void 0 || _navigate2(path, state);
7260
- }
7261
- var state = {
7262
- visualize: {
7263
- active: false,
7264
- force: false
7265
- },
7266
- catalogue: {
7267
- active: false,
7268
- path: ''
7269
- },
7270
- route: undefined
7271
- };
7272
- function setInitialState(initialSettings) {
7273
- state.visualize.active = initialSettings.viewOrigins;
7274
- state.catalogue.active = initialSettings.extensionCatalogue;
7275
- state.catalogue.path = initialSettings.cataloguePath;
7276
- }
7277
- function setState(dispatch) {
7278
- var newState = dispatch(state);
7279
- if (newState !== state) {
7280
- state = newState;
7281
- listeners.forEach(function (listener) {
7282
- return listener();
7283
- });
7284
- }
7285
- }
7286
- function getState() {
7287
- return state;
7288
- }
7289
- function subscribe(select, notify) {
7290
- var prevState = select(state);
7291
- var cb = function cb() {
7292
- var nextState = select(state);
7293
- if (prevState !== nextState) {
7294
- prevState = nextState;
7295
- notify(nextState);
7296
- }
7297
- };
7298
- var unsubscribe = function unsubscribe() {
7299
- var idx = listeners.indexOf(cb);
7300
- if (idx !== -1) {
7301
- listeners.splice(idx, 1);
7302
- }
7303
- };
7304
- listeners.push(cb);
7305
- return unsubscribe;
7306
- }
7307
- function useDebugState(select) {
7308
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(function () {
7309
- return select(getState());
7310
- }),
7311
- _useState2 = _slicedToArray(_useState, 2),
7312
- state = _useState2[0],
7313
- setState = _useState2[1];
7314
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
7315
- return subscribe(select, setState);
7316
- }, []);
7317
- return state;
7318
- }
7319
7102
 
7320
7103
  /***/ }),
7321
7104
 
@@ -7360,6 +7143,186 @@ function useDebugRouteFilter(paths) {
7360
7143
 
7361
7144
  /***/ }),
7362
7145
 
7146
+ /***/ "../../utilities/piral-debug-utils/esm/visualizer.js":
7147
+ /*!***********************************************************!*\
7148
+ !*** ../../utilities/piral-debug-utils/esm/visualizer.js ***!
7149
+ \***********************************************************/
7150
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7151
+
7152
+ "use strict";
7153
+ __webpack_require__.r(__webpack_exports__);
7154
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
7155
+ /* harmony export */ createVisualizer: () => (/* binding */ createVisualizer),
7156
+ /* harmony export */ destroyVisualizer: () => (/* binding */ destroyVisualizer),
7157
+ /* harmony export */ toggleVisualizer: () => (/* binding */ toggleVisualizer)
7158
+ /* harmony export */ });
7159
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7160
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7161
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
7162
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7163
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7164
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7165
+ 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 } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
7166
+ 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); }; }
7167
+ 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); }
7168
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
7169
+ function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
7170
+ function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
7171
+ 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; } }
7172
+ function _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf("[native code]") !== -1; } catch (e) { return typeof fn === "function"; } }
7173
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
7174
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
7175
+ var visualizerName = 'piral-inspector-visualizer';
7176
+ var persistAttribute = 'persist';
7177
+ var piletColorMap = {};
7178
+ var colors = ['#001F3F', '#0074D9', '#7FDBFF', '#39CCCC', '#3D9970', '#2ECC40', '#01FF70', '#FFDC00', '#FF851B', '#FF4136', '#85144B', '#F012BE', '#B10DC9'];
7179
+ function getTarget(element) {
7180
+ var row = element.childNodes;
7181
+ var rects = Array.prototype.map.call(row, function (item) {
7182
+ if (item instanceof Element) {
7183
+ return item.getBoundingClientRect();
7184
+ } else if (item instanceof Text) {
7185
+ var range = document.createRange();
7186
+ range.selectNode(item);
7187
+ return range.getBoundingClientRect();
7188
+ } else {
7189
+ return new DOMRectReadOnly(0, 0, 0, 0);
7190
+ }
7191
+ });
7192
+ var relevant = rects.filter(function (m) {
7193
+ return m.height !== 0 && m.width !== 0;
7194
+ });
7195
+ if (relevant.length === 0) {
7196
+ return new DOMRectReadOnly(0, 0, 0, 0);
7197
+ }
7198
+ return relevant.reduce(function (a, b) {
7199
+ var x = Math.min(a.left, b.left);
7200
+ var y = Math.min(a.top, b.top);
7201
+ var width = Math.max(a.right, b.right) - x;
7202
+ var height = Math.max(a.bottom, b.bottom) - y;
7203
+ return new DOMRectReadOnly(x, y, width, height);
7204
+ });
7205
+ }
7206
+ function hide(vis) {
7207
+ vis.style.opacity = '0';
7208
+ // vis.style.pointerEvents = 'auto';
7209
+ }
7210
+
7211
+ function show(vis) {
7212
+ vis.style.opacity = '1';
7213
+ // vis.style.pointerEvents = 'none';
7214
+ }
7215
+
7216
+ function updatePosition(source, vis) {
7217
+ var targetRect = getTarget(source);
7218
+ vis.style.left = targetRect.left + 'px';
7219
+ vis.style.top = targetRect.top + 'px';
7220
+ vis.style.width = targetRect.width + 'px';
7221
+ vis.style.height = targetRect.height + 'px';
7222
+ }
7223
+ var PiralInspectorVisualizer = /*#__PURE__*/function (_HTMLElement) {
7224
+ _inherits(PiralInspectorVisualizer, _HTMLElement);
7225
+ var _super = _createSuper(PiralInspectorVisualizer);
7226
+ function PiralInspectorVisualizer() {
7227
+ var _this;
7228
+ _classCallCheck(this, PiralInspectorVisualizer);
7229
+ _this = _super.apply(this, arguments);
7230
+ _this.update = function () {
7231
+ var persist = _this.getAttribute(persistAttribute) !== null;
7232
+ _this.innerText = '';
7233
+ document.querySelectorAll('piral-component').forEach(function (element) {
7234
+ var pilet = element.getAttribute('origin');
7235
+ var vis = _this.appendChild(document.createElement('div'));
7236
+ var info = vis.appendChild(document.createElement('div'));
7237
+ vis.style.position = 'absolute';
7238
+ vis.style.zIndex = '2147483647';
7239
+ vis.style.border = '1px solid #ccc';
7240
+ vis.style.pointerEvents = 'none';
7241
+ info.style.color = 'white';
7242
+ info.textContent = pilet;
7243
+ info.style.position = 'absolute';
7244
+ info.style.right = '0';
7245
+ info.style.top = '0';
7246
+ info.style.fontSize = '8px';
7247
+ info.style.background = piletColorMap[pilet] || (piletColorMap[pilet] = colors[Object.keys(piletColorMap).length % colors.length]);
7248
+ if (!persist) {
7249
+ hide(vis);
7250
+ element.addEventListener('mouseenter', function () {
7251
+ updatePosition(element, vis);
7252
+ show(vis);
7253
+ });
7254
+ element.addEventListener('mouseleave', function () {
7255
+ hide(vis);
7256
+ });
7257
+ } else {
7258
+ updatePosition(element, vis);
7259
+ show(vis);
7260
+ }
7261
+ });
7262
+ };
7263
+ return _this;
7264
+ }
7265
+ _createClass(PiralInspectorVisualizer, [{
7266
+ key: "connectedCallback",
7267
+ value: function connectedCallback() {
7268
+ this.style.position = 'absolute';
7269
+ this.style.top = '0';
7270
+ this.style.left = '0';
7271
+ this.style.width = '0';
7272
+ this.style.height = '0';
7273
+ window.addEventListener('resize', this.update);
7274
+ window.addEventListener('add-component', this.update);
7275
+ window.addEventListener('remove-component', this.update);
7276
+ this.update();
7277
+ }
7278
+ }, {
7279
+ key: "disconnectedCallback",
7280
+ value: function disconnectedCallback() {
7281
+ window.removeEventListener('resize', this.update);
7282
+ window.removeEventListener('add-component', this.update);
7283
+ window.removeEventListener('remove-component', this.update);
7284
+ }
7285
+ }, {
7286
+ key: "attributeChangedCallback",
7287
+ value: function attributeChangedCallback(name, oldValue, newValue) {
7288
+ if (name === persistAttribute && oldValue !== newValue) {
7289
+ this.update();
7290
+ }
7291
+ }
7292
+ }], [{
7293
+ key: "observedAttributes",
7294
+ get: function get() {
7295
+ return [persistAttribute];
7296
+ }
7297
+ }]);
7298
+ return PiralInspectorVisualizer;
7299
+ }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
7300
+ customElements.define(visualizerName, PiralInspectorVisualizer);
7301
+ function createVisualizer() {
7302
+ var visualizer = document.querySelector(visualizerName);
7303
+ if (!visualizer) {
7304
+ document.body.appendChild(document.createElement(visualizerName));
7305
+ }
7306
+ }
7307
+ function destroyVisualizer() {
7308
+ var visualizer = document.querySelector(visualizerName);
7309
+ if (visualizer) {
7310
+ visualizer.remove();
7311
+ }
7312
+ }
7313
+ function toggleVisualizer() {
7314
+ var visualizer = document.querySelector(visualizerName);
7315
+ if (visualizer) {
7316
+ if (visualizer.getAttribute(persistAttribute) !== null) {
7317
+ visualizer.removeAttribute(persistAttribute);
7318
+ } else {
7319
+ visualizer.setAttribute(persistAttribute, '');
7320
+ }
7321
+ }
7322
+ }
7323
+
7324
+ /***/ }),
7325
+
7363
7326
  /***/ "../../utilities/piral-hooks-utils/esm/hooks/onClickOutside.js":
7364
7327
  /*!*********************************************************************!*\
7365
7328
  !*** ../../utilities/piral-hooks-utils/esm/hooks/onClickOutside.js ***!
@@ -8690,12 +8653,12 @@ body.pi-modal-open .pi-modal {
8690
8653
  flex: 1;
8691
8654
  margin: 1px 0;
8692
8655
  }
8693
- .app-menu .pi-menu > .pi-item > a {
8656
+ .app-menu .pi-menu > .pi-item a {
8694
8657
  display: block;
8695
8658
  border-left: 5px solid #abcdef;
8696
8659
  padding: 1em;
8697
8660
  }
8698
- .app-menu .pi-menu > .pi-item > a:hover {
8661
+ .app-menu .pi-menu > .pi-item a:hover {
8699
8662
  border-left-color: #559adf;
8700
8663
  }
8701
8664
 
@@ -9064,7 +9027,7 @@ body.pi-modal-open .pi-modal {
9064
9027
  }
9065
9028
  .hamburger--arrow.is-active .hamburger-inner::after {
9066
9029
  transform: translate3d(-8px, 0, 0) rotate(45deg) scale(0.7, 1);
9067
- }`, "",{"version":3,"sources":["webpack://./src/styles/_layout.scss","webpack://./src/styles/index.scss","webpack://./src/styles/_burger.scss"],"names":[],"mappings":"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","sourcesContent":["@use 'sass:math';\n\nhtml, body, #app, .app-container {\n width: 100%;\n min-height: 100%;\n background: $bg-color;\n}\n\nhtml, body {\n height: 100%;\n margin: 0;\n padding: 0;\n font-family: 'Roboto', sans-serif;\n}\n\na {\n text-decoration: none;\n color: $basic-dark-color;\n\n &:hover {\n color: darken($color: $basic-dark-color, $amount: 10%)\n }\n}\n\n.pi-modal {\n display: none;\n position: fixed;\n z-index: 3;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background: rgba(0, 0, 0, 0.4);\n animation: fade-in 0.4s;\n\n .pi-modal-dialog {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n max-width: 90%;\n max-height: 90%;\n margin: auto;\n background: #fefefe;\n animation: fade-in 0.4s;\n }\n}\n\nbody.pi-modal-open {\n height: 100vh;\n overflow-y: hidden;\n padding-right: 15px;\n position: fixed;\n\n .pi-modal {\n display: block;\n }\n}\n\n.text-right {\n text-align: right;\n}\n\n.language-picker {\n position: relative;\n margin: 4px 8px 0 0;\n\n .current {\n cursor: pointer;\n }\n\n ul {\n display: none;\n background: #f5f5f6;\n border: none;\n margin: 0;\n padding: 0;\n overflow: hidden;\n border-radius: 3px 0 3px 3px;\n background-clip: padding-box;\n margin-bottom: 5px;\n position: absolute;\n top: 100%;\n right: 0;\n\n li {\n cursor: pointer;\n border-bottom: 1px solid #ebebeb;\n padding: 10px 20px;\n margin: 0;\n outline: 0;\n color: #7d8086;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n span {\n padding-left: 8px;\n }\n\n &:hover {\n background: rgba(235, 235, 235, 0.9);\n color: #737881;\n }\n }\n\n &.open {\n display: block;\n }\n }\n}\n\n.language-icon {\n height: 16px;\n width: 16px;\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.app-container {\n flex: 1;\n position: relative;\n}\n\n.pi-notifications {\n position: fixed;\n display: flex;\n align-items: flex-end;\n flex-direction: column;\n right: 2em;\n bottom: 2em;\n\n .pi-item {\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n text-align: left;\n padding: 0.8em;\n background-color: $bg-color;\n max-width: 500px;\n position: relative;\n box-shadow: 1px 7px 14px -5px rgba(0,0,0,0.2);\n\n &+& {\n margin-top: 1em;\n }\n\n &.success:before {\n background-color: #2BDE3F;\n }\n\n &.error:before {\n background-color: #e7431a;\n }\n\n &.info:before {\n background-color: #1D72F3;\n }\n\n &.warning:before {\n background-color: #FFC007;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 2px;\n }\n\n .pi-details {\n flex: 1;\n\n .pi-title {\n color: #3e3e3e;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 8px;\n }\n\n .pi-description {\n font-size: 14px;\n margin-top: 0;\n margin-bottom: 0;\n color: #878787;\n }\n }\n\n .pi-close {\n width: 14px;\n cursor: pointer;\n height: 14px;\n fill: #878787;\n margin-left: 1.2em;\n background: url('../images/close.svg') no-repeat center center;\n }\n }\n\n @media screen and (max-width: $breakpoint-tablet) {\n right: 0;\n left: 0;\n bottom: 0;\n\n .pi-item {\n max-width: 100%;\n width: 100%;\n }\n }\n}\n\n.app-container, #app {\n display: flex;\n flex-direction: column;\n}\n\n.app-content {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: 0 2em;\n}\n\n.app-title {\n display: flex;\n position: relative;\n align-items: center;\n}\n\n.app-header {\n display: flex;\n flex-direction: row;\n padding: 0 2em;\n margin-bottom: 1em;\n align-items: center;\n justify-content: space-between;\n background: $header-color;\n position: relative;\n z-index: 2;\n\n h1 {\n white-space: nowrap;\n font-size: 2rem;\n }\n\n @media screen and (max-width: $breakpoint-tablet) {\n padding: 0 1em;\n\n h1 {\n display: none;\n }\n }\n}\n\n.pi-center {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n}\n\n.app-footer {\n font-size: 0.8em;\n padding: 1em 0;\n background: $footer-color;\n display: flex;\n flex-direction: row;\n\n .pi-menu {\n margin: 0 auto;\n max-width: 1000px;\n column-width: 300px;\n display: block;\n\n .pi-item {\n display: block;\n padding: 1em 2em;\n }\n }\n}\n\n.app-menu {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n padding: 0;\n margin: 0;\n width: 300px;\n max-width: 100%;\n background: lighten($header-color, 15%);\n transform: translateX(-100%);\n transition: all 0.1s ease;\n padding-top: 85px;\n z-index: 1;\n\n &.is-open {\n transform: none;\n box-shadow: $menu-shadow-size 0px $menu-shadow-size (-$menu-shadow-size) rgba(0, 0, 0, 0.2);\n }\n\n .app-menu-content {\n overflow-y: auto;\n height: 100%;\n }\n\n .pi-menu {\n display: flex;\n flex-direction: column;\n list-style: none;\n\n > .pi-item {\n flex: 1;\n margin: 1px 0;\n\n > a {\n display: block;\n border-left: 5px solid $header-color;\n padding: 1em;\n\n &:hover {\n border-left-color: $menu-color;\n }\n }\n }\n }\n}\n\n.pi-spinner {\n position: relative;\n width: $basic-spinner-dimensions;\n height: $basic-spinner-dimensions;\n font-size: 0;\n\n &:before,\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n border-width: 4px;\n border-style: solid;\n border-radius: 50%;\n }\n\n @keyframes rotate-animation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n @keyframes anti-rotate-animation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n }\n\n &:before {\n width: $main-spinner-dimensions;\n height: $main-spinner-dimensions;\n border-bottom-color: $basic-dark-color;\n border-right-color: $basic-dark-color;\n border-top-color: rgba($basic-dark-color, 0);\n border-left-color: rgba($basic-dark-color, 0);\n top: 0;\n left: 0;\n animation: rotate-animation 1s linear 0s infinite;\n }\n\n &:after {\n width: $small-spinner-dimensions;\n height: $small-spinner-dimensions;\n border-bottom-color: $basic-dark-color;\n border-right-color: $basic-dark-color;\n border-top-color: rgba($basic-dark-color, 0);\n border-left-color: rgba($basic-dark-color, 0);\n top: math.div($main-spinner-dimensions - $small-spinner-dimensions, 2);\n left: math.div($main-spinner-dimensions - $small-spinner-dimensions, 2);\n animation: anti-rotate-animation 0.85s linear 0s infinite;\n }\n}\n\n$tile-height: 70px;\n$tile-width: 70px;\n$tile-gap: 10px;\n\n.pi-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.pi-dashboard {\n flex: 1;\n position: relative;\n display: grid;\n grid-template-columns: repeat(auto-fit, $tile-width);\n grid-template-rows: repeat(auto-fit, $tile-height);\n grid-gap: $tile-gap;\n overflow: visible;\n\n .pi-tile {\n display: flex;\n position: relative;\n\n &.small {\n grid-column: span 1;\n grid-row: span 1;\n width: $tile-width;\n height: $tile-height;\n }\n\n &.medium {\n grid-column: span 2;\n grid-row: span 2;\n width: 2 * $tile-width + 1 * $tile-gap;\n height: 2 * $tile-height + 1 * $tile-gap;\n }\n\n &.wide {\n grid-column: span 4;\n grid-row: span 2;\n width: 4 * $tile-width + 3 * $tile-gap;\n height: 2 * $tile-height + 1 * $tile-gap;\n }\n\n &.large {\n grid-column: span 4;\n grid-row: span 4;\n width: 4 * $tile-width + 3 * $tile-gap;\n height: 4 * $tile-height + 3 * $tile-gap;\n }\n\n &:hover {\n outline: rgba(29, 29, 29, 0.1) solid 4px;\n }\n }\n}\n\n.pi-search {\n position: relative;\n flex: 1;\n display: flex;\n justify-content: center;\n\n input[type=search] {\n font-size: 1em;\n border: 1px solid transparent;\n background-color: #f1f1f1;\n padding: 10px;\n font-size: 16px;\n max-width: 80%;\n width: 250px;\n box-sizing: border-box;\n transition: width ease 0.1s;\n\n @media screen and (max-width: $breakpoint-mobile) {\n width: 100px;\n }\n }\n\n &:focus-within input[type=search] {\n width: 90%;\n max-width: 90%;\n\n & + .pi-details:not(:empty) {\n display: block;\n opacity: 1;\n }\n }\n\n .pi-details {\n display: none;\n opacity: 0;\n position: absolute;\n z-index: 2;\n top: 100%;\n width: 90%;\n box-sizing: border-box;\n background: #f0f0f0;\n padding: 1px;\n transition: all 0.1s 0.1s ease;\n }\n\n .pi-item {\n display: block;\n padding: 10px;\n cursor: pointer;\n background-color: white;\n border-bottom: 1px solid #d4d4d4;\n }\n\n .pi-item:hover {\n background-color: #e9e9e9;\n }\n\n .pi-center {\n padding: 30px;\n background-color: white;\n }\n}\n\n.form-row {\n margin: 1em;\n\n label {\n display: block;\n margin-bottom: 0.2em;\n }\n\n input {\n padding: 0.3rem;\n font-size: 1rem;\n }\n\n button {\n padding: 0.5em 1em;\n border: 1px solid black;\n font-weight: bold;\n border-radius: 4px;\n cursor: pointer;\n }\n\n button:disabled {\n border: 1px solid #ccc;\n color: #ccc;\n cursor: default;\n }\n}\n\n.pi-error {\n > img {\n width: 600px;\n max-width: 100%;\n margin: 1em 0;\n }\n\n .pi-title {\n color: $basic-dark-color;\n display: block;\n font-size: 1.5em;\n }\n\n .pi-description {\n display: block;\n margin: 0.5em 0;\n }\n\n .pi-details {\n display: block;\n margin: 0.5em 0;\n color: #3e3e3e;\n font-size: 0.8em;\n }\n}\n\n.app-user {\n position: relative;\n\n .app-user-avatar {\n display: flex;\n align-items: center;\n white-space: nowrap;\n cursor: pointer;\n\n img {\n position: relative;\n overflow: hidden;\n width: 32px;\n min-width: 32px;\n height: 32px;\n border-radius: 50% !important;\n vertical-align: middle;\n border-style: none;\n box-sizing: border-box;\n line-height: 1;\n margin-right: 0.5em;\n }\n\n &::after {\n display: inline-block;\n box-sizing: border-box;\n height: 8px;\n width: 8px;\n border-style: solid;\n border-color: black;\n border-width: 0px 2px 2px 0px;\n position: relative;\n transform: rotate(45deg);\n transition: opacity 150ms ease-in-out;\n content: '';\n }\n }\n\n .app-user-details {\n display: none;\n list-style: none;\n position: absolute;\n background: white;\n padding: 0;\n right: 0;\n border: 1px solid #ececec;\n border-radius: 3px;\n top: 40px;\n cursor: default;\n\n li {\n display: block;\n padding: 10px;\n max-width: 300px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n\n & > a {\n display: block;\n }\n\n &.sep {\n border-bottom: 1px solid #ccc;\n padding: 0;\n }\n\n .user-name {\n font-weight: bold;\n color: #666;\n display: block;\n font-size: 0.6em;\n }\n }\n\n &:before, &:after {\n content: '';\n display: block;\n position: absolute;\n bottom: 100%;\n width: 0;\n height: 0;\n }\n\n &:before {\n right: 27px;\n border: 6px solid transparent;\n border-bottom-color: #ececec;\n }\n\n &:after {\n right: 28px;\n border: 5px solid transparent;\n border-bottom-color: #fff;\n }\n }\n\n &.is-open {\n img {\n opacity: 0.8;\n }\n\n .app-user-details {\n display: block;\n }\n\n &::after {\n opacity: 0.2;\n }\n }\n}\n","$bg-color: white;\n$basic-dark-color: #56aa1c;\n$header-color: #abcdef;\n$footer-color: lighten($header-color, 10%);\n$menu-color: darken($header-color, 20%);\n$border-width: 4px;\n$basic-spinner-dimensions: 50px;\n$main-spinner-dimensions: $basic-spinner-dimensions - $border-width * 2;\n$small-spinner-dimensions: $main-spinner-dimensions * 0.7;\n$menu-shadow-size: 30px;\n\n$hamburger-padding: 15px 0 !default;\n$hamburger-layer-width: 40px !default;\n$hamburger-layer-height: 4px !default;\n$hamburger-layer-spacing: 6px !default;\n$hamburger-layer-color: #000 !default;\n$hamburger-layer-border-radius: 4px !default;\n$hamburger-hover-opacity: 0.7 !default;\n$hamburger-active-layer-color: $hamburger-layer-color !default;\n$hamburger-active-hover-opacity: $hamburger-hover-opacity !default;\n$hamburger-hover-use-filter: false !default;\n$hamburger-hover-filter: opacity(50%) !default;\n$hamburger-active-hover-filter: $hamburger-hover-filter !default;\n\n$breakpoint-mobile: 450px;\n$breakpoint-tablet: 650px;\n\n@import './layout';\n@import './burger';\n","@use 'sass:math';\n\n.hamburger {\n padding: $hamburger-padding;\n display: inline-block;\n cursor: pointer;\n\n transition-property: opacity, filter;\n transition-duration: 0.15s;\n transition-timing-function: linear;\n\n // Normalize (<button>)\n font: inherit;\n color: inherit;\n text-transform: none;\n background-color: transparent;\n border: 0;\n margin: 0;\n overflow: visible;\n transform: scale(0.6);\n\n &:hover {\n @if $hamburger-hover-use-filter == true {\n filter: $hamburger-hover-filter;\n }\n @else {\n opacity: $hamburger-hover-opacity;\n }\n }\n\n &.is-active {\n &:hover {\n @if $hamburger-hover-use-filter == true {\n filter: $hamburger-active-hover-filter;\n }\n @else {\n opacity: $hamburger-active-hover-opacity;\n }\n }\n\n .hamburger-inner,\n .hamburger-inner::before,\n .hamburger-inner::after {\n background-color: $hamburger-active-layer-color;\n }\n }\n}\n\n.hamburger-box {\n width: $hamburger-layer-width;\n height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;\n display: inline-block;\n position: relative;\n}\n\n.hamburger-inner {\n display: block;\n top: 50%;\n margin-top: math.div($hamburger-layer-height, -2);\n\n &,\n &::before,\n &::after {\n width: $hamburger-layer-width;\n height: $hamburger-layer-height;\n background-color: $hamburger-layer-color;\n border-radius: $hamburger-layer-border-radius;\n position: absolute;\n transition-property: transform;\n transition-duration: 0.15s;\n transition-timing-function: ease;\n }\n\n &::before,\n &::after {\n content: \"\";\n display: block;\n }\n\n &::before {\n top: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;\n }\n\n &::after {\n bottom: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;\n }\n}\n\n.hamburger--arrow.is-active {\n .hamburger-inner {\n &::before {\n transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(-45deg) scale(0.7, 1);\n }\n\n &::after {\n transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(45deg) scale(0.7, 1);\n }\n }\n}\n"],"sourceRoot":""}]);
9030
+ }`, "",{"version":3,"sources":["webpack://./src/styles/_layout.scss","webpack://./src/styles/index.scss","webpack://./src/styles/_burger.scss"],"names":[],"mappings":"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","sourcesContent":["@use 'sass:math';\n\nhtml, body, #app, .app-container {\n width: 100%;\n min-height: 100%;\n background: $bg-color;\n}\n\nhtml, body {\n height: 100%;\n margin: 0;\n padding: 0;\n font-family: 'Roboto', sans-serif;\n}\n\na {\n text-decoration: none;\n color: $basic-dark-color;\n\n &:hover {\n color: darken($color: $basic-dark-color, $amount: 10%)\n }\n}\n\n.pi-modal {\n display: none;\n position: fixed;\n z-index: 3;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background: rgba(0, 0, 0, 0.4);\n animation: fade-in 0.4s;\n\n .pi-modal-dialog {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n max-width: 90%;\n max-height: 90%;\n margin: auto;\n background: #fefefe;\n animation: fade-in 0.4s;\n }\n}\n\nbody.pi-modal-open {\n height: 100vh;\n overflow-y: hidden;\n padding-right: 15px;\n position: fixed;\n\n .pi-modal {\n display: block;\n }\n}\n\n.text-right {\n text-align: right;\n}\n\n.language-picker {\n position: relative;\n margin: 4px 8px 0 0;\n\n .current {\n cursor: pointer;\n }\n\n ul {\n display: none;\n background: #f5f5f6;\n border: none;\n margin: 0;\n padding: 0;\n overflow: hidden;\n border-radius: 3px 0 3px 3px;\n background-clip: padding-box;\n margin-bottom: 5px;\n position: absolute;\n top: 100%;\n right: 0;\n\n li {\n cursor: pointer;\n border-bottom: 1px solid #ebebeb;\n padding: 10px 20px;\n margin: 0;\n outline: 0;\n color: #7d8086;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n span {\n padding-left: 8px;\n }\n\n &:hover {\n background: rgba(235, 235, 235, 0.9);\n color: #737881;\n }\n }\n\n &.open {\n display: block;\n }\n }\n}\n\n.language-icon {\n height: 16px;\n width: 16px;\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.app-container {\n flex: 1;\n position: relative;\n}\n\n.pi-notifications {\n position: fixed;\n display: flex;\n align-items: flex-end;\n flex-direction: column;\n right: 2em;\n bottom: 2em;\n\n .pi-item {\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n text-align: left;\n padding: 0.8em;\n background-color: $bg-color;\n max-width: 500px;\n position: relative;\n box-shadow: 1px 7px 14px -5px rgba(0,0,0,0.2);\n\n &+& {\n margin-top: 1em;\n }\n\n &.success:before {\n background-color: #2BDE3F;\n }\n\n &.error:before {\n background-color: #e7431a;\n }\n\n &.info:before {\n background-color: #1D72F3;\n }\n\n &.warning:before {\n background-color: #FFC007;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 2px;\n }\n\n .pi-details {\n flex: 1;\n\n .pi-title {\n color: #3e3e3e;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 8px;\n }\n\n .pi-description {\n font-size: 14px;\n margin-top: 0;\n margin-bottom: 0;\n color: #878787;\n }\n }\n\n .pi-close {\n width: 14px;\n cursor: pointer;\n height: 14px;\n fill: #878787;\n margin-left: 1.2em;\n background: url('../images/close.svg') no-repeat center center;\n }\n }\n\n @media screen and (max-width: $breakpoint-tablet) {\n right: 0;\n left: 0;\n bottom: 0;\n\n .pi-item {\n max-width: 100%;\n width: 100%;\n }\n }\n}\n\n.app-container, #app {\n display: flex;\n flex-direction: column;\n}\n\n.app-content {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: 0 2em;\n}\n\n.app-title {\n display: flex;\n position: relative;\n align-items: center;\n}\n\n.app-header {\n display: flex;\n flex-direction: row;\n padding: 0 2em;\n margin-bottom: 1em;\n align-items: center;\n justify-content: space-between;\n background: $header-color;\n position: relative;\n z-index: 2;\n\n h1 {\n white-space: nowrap;\n font-size: 2rem;\n }\n\n @media screen and (max-width: $breakpoint-tablet) {\n padding: 0 1em;\n\n h1 {\n display: none;\n }\n }\n}\n\n.pi-center {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n}\n\n.app-footer {\n font-size: 0.8em;\n padding: 1em 0;\n background: $footer-color;\n display: flex;\n flex-direction: row;\n\n .pi-menu {\n margin: 0 auto;\n max-width: 1000px;\n column-width: 300px;\n display: block;\n\n .pi-item {\n display: block;\n padding: 1em 2em;\n }\n }\n}\n\n.app-menu {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n padding: 0;\n margin: 0;\n width: 300px;\n max-width: 100%;\n background: lighten($header-color, 15%);\n transform: translateX(-100%);\n transition: all 0.1s ease;\n padding-top: 85px;\n z-index: 1;\n\n &.is-open {\n transform: none;\n box-shadow: $menu-shadow-size 0px $menu-shadow-size (-$menu-shadow-size) rgba(0, 0, 0, 0.2);\n }\n\n .app-menu-content {\n overflow-y: auto;\n height: 100%;\n }\n\n .pi-menu {\n display: flex;\n flex-direction: column;\n list-style: none;\n\n > .pi-item {\n flex: 1;\n margin: 1px 0;\n\n a {\n display: block;\n border-left: 5px solid $header-color;\n padding: 1em;\n\n &:hover {\n border-left-color: $menu-color;\n }\n }\n }\n }\n}\n\n.pi-spinner {\n position: relative;\n width: $basic-spinner-dimensions;\n height: $basic-spinner-dimensions;\n font-size: 0;\n\n &:before,\n &:after {\n content: \"\";\n display: block;\n position: absolute;\n border-width: 4px;\n border-style: solid;\n border-radius: 50%;\n }\n\n @keyframes rotate-animation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n @keyframes anti-rotate-animation {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(-360deg);\n }\n }\n\n &:before {\n width: $main-spinner-dimensions;\n height: $main-spinner-dimensions;\n border-bottom-color: $basic-dark-color;\n border-right-color: $basic-dark-color;\n border-top-color: rgba($basic-dark-color, 0);\n border-left-color: rgba($basic-dark-color, 0);\n top: 0;\n left: 0;\n animation: rotate-animation 1s linear 0s infinite;\n }\n\n &:after {\n width: $small-spinner-dimensions;\n height: $small-spinner-dimensions;\n border-bottom-color: $basic-dark-color;\n border-right-color: $basic-dark-color;\n border-top-color: rgba($basic-dark-color, 0);\n border-left-color: rgba($basic-dark-color, 0);\n top: math.div($main-spinner-dimensions - $small-spinner-dimensions, 2);\n left: math.div($main-spinner-dimensions - $small-spinner-dimensions, 2);\n animation: anti-rotate-animation 0.85s linear 0s infinite;\n }\n}\n\n$tile-height: 70px;\n$tile-width: 70px;\n$tile-gap: 10px;\n\n.pi-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.pi-dashboard {\n flex: 1;\n position: relative;\n display: grid;\n grid-template-columns: repeat(auto-fit, $tile-width);\n grid-template-rows: repeat(auto-fit, $tile-height);\n grid-gap: $tile-gap;\n overflow: visible;\n\n .pi-tile {\n display: flex;\n position: relative;\n\n &.small {\n grid-column: span 1;\n grid-row: span 1;\n width: $tile-width;\n height: $tile-height;\n }\n\n &.medium {\n grid-column: span 2;\n grid-row: span 2;\n width: 2 * $tile-width + 1 * $tile-gap;\n height: 2 * $tile-height + 1 * $tile-gap;\n }\n\n &.wide {\n grid-column: span 4;\n grid-row: span 2;\n width: 4 * $tile-width + 3 * $tile-gap;\n height: 2 * $tile-height + 1 * $tile-gap;\n }\n\n &.large {\n grid-column: span 4;\n grid-row: span 4;\n width: 4 * $tile-width + 3 * $tile-gap;\n height: 4 * $tile-height + 3 * $tile-gap;\n }\n\n &:hover {\n outline: rgba(29, 29, 29, 0.1) solid 4px;\n }\n }\n}\n\n.pi-search {\n position: relative;\n flex: 1;\n display: flex;\n justify-content: center;\n\n input[type=search] {\n font-size: 1em;\n border: 1px solid transparent;\n background-color: #f1f1f1;\n padding: 10px;\n font-size: 16px;\n max-width: 80%;\n width: 250px;\n box-sizing: border-box;\n transition: width ease 0.1s;\n\n @media screen and (max-width: $breakpoint-mobile) {\n width: 100px;\n }\n }\n\n &:focus-within input[type=search] {\n width: 90%;\n max-width: 90%;\n\n & + .pi-details:not(:empty) {\n display: block;\n opacity: 1;\n }\n }\n\n .pi-details {\n display: none;\n opacity: 0;\n position: absolute;\n z-index: 2;\n top: 100%;\n width: 90%;\n box-sizing: border-box;\n background: #f0f0f0;\n padding: 1px;\n transition: all 0.1s 0.1s ease;\n }\n\n .pi-item {\n display: block;\n padding: 10px;\n cursor: pointer;\n background-color: white;\n border-bottom: 1px solid #d4d4d4;\n }\n\n .pi-item:hover {\n background-color: #e9e9e9;\n }\n\n .pi-center {\n padding: 30px;\n background-color: white;\n }\n}\n\n.form-row {\n margin: 1em;\n\n label {\n display: block;\n margin-bottom: 0.2em;\n }\n\n input {\n padding: 0.3rem;\n font-size: 1rem;\n }\n\n button {\n padding: 0.5em 1em;\n border: 1px solid black;\n font-weight: bold;\n border-radius: 4px;\n cursor: pointer;\n }\n\n button:disabled {\n border: 1px solid #ccc;\n color: #ccc;\n cursor: default;\n }\n}\n\n.pi-error {\n > img {\n width: 600px;\n max-width: 100%;\n margin: 1em 0;\n }\n\n .pi-title {\n color: $basic-dark-color;\n display: block;\n font-size: 1.5em;\n }\n\n .pi-description {\n display: block;\n margin: 0.5em 0;\n }\n\n .pi-details {\n display: block;\n margin: 0.5em 0;\n color: #3e3e3e;\n font-size: 0.8em;\n }\n}\n\n.app-user {\n position: relative;\n\n .app-user-avatar {\n display: flex;\n align-items: center;\n white-space: nowrap;\n cursor: pointer;\n\n img {\n position: relative;\n overflow: hidden;\n width: 32px;\n min-width: 32px;\n height: 32px;\n border-radius: 50% !important;\n vertical-align: middle;\n border-style: none;\n box-sizing: border-box;\n line-height: 1;\n margin-right: 0.5em;\n }\n\n &::after {\n display: inline-block;\n box-sizing: border-box;\n height: 8px;\n width: 8px;\n border-style: solid;\n border-color: black;\n border-width: 0px 2px 2px 0px;\n position: relative;\n transform: rotate(45deg);\n transition: opacity 150ms ease-in-out;\n content: '';\n }\n }\n\n .app-user-details {\n display: none;\n list-style: none;\n position: absolute;\n background: white;\n padding: 0;\n right: 0;\n border: 1px solid #ececec;\n border-radius: 3px;\n top: 40px;\n cursor: default;\n\n li {\n display: block;\n padding: 10px;\n max-width: 300px;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n text-align: right;\n\n & > a {\n display: block;\n }\n\n &.sep {\n border-bottom: 1px solid #ccc;\n padding: 0;\n }\n\n .user-name {\n font-weight: bold;\n color: #666;\n display: block;\n font-size: 0.6em;\n }\n }\n\n &:before, &:after {\n content: '';\n display: block;\n position: absolute;\n bottom: 100%;\n width: 0;\n height: 0;\n }\n\n &:before {\n right: 27px;\n border: 6px solid transparent;\n border-bottom-color: #ececec;\n }\n\n &:after {\n right: 28px;\n border: 5px solid transparent;\n border-bottom-color: #fff;\n }\n }\n\n &.is-open {\n img {\n opacity: 0.8;\n }\n\n .app-user-details {\n display: block;\n }\n\n &::after {\n opacity: 0.2;\n }\n }\n}\n","$bg-color: white;\n$basic-dark-color: #56aa1c;\n$header-color: #abcdef;\n$footer-color: lighten($header-color, 10%);\n$menu-color: darken($header-color, 20%);\n$border-width: 4px;\n$basic-spinner-dimensions: 50px;\n$main-spinner-dimensions: $basic-spinner-dimensions - $border-width * 2;\n$small-spinner-dimensions: $main-spinner-dimensions * 0.7;\n$menu-shadow-size: 30px;\n\n$hamburger-padding: 15px 0 !default;\n$hamburger-layer-width: 40px !default;\n$hamburger-layer-height: 4px !default;\n$hamburger-layer-spacing: 6px !default;\n$hamburger-layer-color: #000 !default;\n$hamburger-layer-border-radius: 4px !default;\n$hamburger-hover-opacity: 0.7 !default;\n$hamburger-active-layer-color: $hamburger-layer-color !default;\n$hamburger-active-hover-opacity: $hamburger-hover-opacity !default;\n$hamburger-hover-use-filter: false !default;\n$hamburger-hover-filter: opacity(50%) !default;\n$hamburger-active-hover-filter: $hamburger-hover-filter !default;\n\n$breakpoint-mobile: 450px;\n$breakpoint-tablet: 650px;\n\n@import './layout';\n@import './burger';\n","@use 'sass:math';\n\n.hamburger {\n padding: $hamburger-padding;\n display: inline-block;\n cursor: pointer;\n\n transition-property: opacity, filter;\n transition-duration: 0.15s;\n transition-timing-function: linear;\n\n // Normalize (<button>)\n font: inherit;\n color: inherit;\n text-transform: none;\n background-color: transparent;\n border: 0;\n margin: 0;\n overflow: visible;\n transform: scale(0.6);\n\n &:hover {\n @if $hamburger-hover-use-filter == true {\n filter: $hamburger-hover-filter;\n }\n @else {\n opacity: $hamburger-hover-opacity;\n }\n }\n\n &.is-active {\n &:hover {\n @if $hamburger-hover-use-filter == true {\n filter: $hamburger-active-hover-filter;\n }\n @else {\n opacity: $hamburger-active-hover-opacity;\n }\n }\n\n .hamburger-inner,\n .hamburger-inner::before,\n .hamburger-inner::after {\n background-color: $hamburger-active-layer-color;\n }\n }\n}\n\n.hamburger-box {\n width: $hamburger-layer-width;\n height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;\n display: inline-block;\n position: relative;\n}\n\n.hamburger-inner {\n display: block;\n top: 50%;\n margin-top: math.div($hamburger-layer-height, -2);\n\n &,\n &::before,\n &::after {\n width: $hamburger-layer-width;\n height: $hamburger-layer-height;\n background-color: $hamburger-layer-color;\n border-radius: $hamburger-layer-border-radius;\n position: absolute;\n transition-property: transform;\n transition-duration: 0.15s;\n transition-timing-function: ease;\n }\n\n &::before,\n &::after {\n content: \"\";\n display: block;\n }\n\n &::before {\n top: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;\n }\n\n &::after {\n bottom: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;\n }\n}\n\n.hamburger--arrow.is-active {\n .hamburger-inner {\n &::before {\n transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(-45deg) scale(0.7, 1);\n }\n\n &::after {\n transform: translate3d($hamburger-layer-width * -0.2, 0, 0) rotate(45deg) scale(0.7, 1);\n }\n }\n}\n"],"sourceRoot":""}]);
9068
9031
  // Exports
9069
9032
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
9070
9033
 
@@ -12130,6 +12093,7 @@ __webpack_require__.r(__webpack_exports__);
12130
12093
  app: {
12131
12094
  error: undefined,
12132
12095
  loading: typeof window !== 'undefined',
12096
+ wrap: true,
12133
12097
  },
12134
12098
  components: {
12135
12099
  ErrorInfo: piral_core_defaults_DefaultErrorInfo__WEBPACK_IMPORTED_MODULE_7__.DefaultErrorInfo,
@@ -64437,10 +64401,11 @@ __webpack_require__.r(__webpack_exports__);
64437
64401
  /* harmony export */ unregisterModules: () => (/* binding */ unregisterModules)
64438
64402
  /* harmony export */ });
64439
64403
  var _excluded = ["dependencies", "spec", "name"],
64440
- _excluded2 = ["name", "spec", "dependencies"],
64404
+ _excluded2 = ["name", "spec"],
64441
64405
  _excluded3 = ["dependencies", "spec"],
64442
64406
  _excluded4 = ["dependencies", "config", "link"],
64443
- _excluded5 = ["dependencies", "config", "link"];
64407
+ _excluded5 = ["dependencies", "config", "link"],
64408
+ _excluded6 = ["config", "name", "link"];
64444
64409
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
64445
64410
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
64446
64411
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -64586,21 +64551,21 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64586
64551
  }
64587
64552
  var systemJSPrototype = SystemJS.prototype;
64588
64553
  systemJSPrototype["import"] = function (id, parentUrl, meta) {
64589
- var loader7 = this;
64554
+ var loader8 = this;
64590
64555
  parentUrl && _typeof(parentUrl) === "object" && (meta = parentUrl, parentUrl = void 0);
64591
- return Promise.resolve(loader7.prepareImport()).then(function () {
64592
- return loader7.resolve(id, parentUrl, meta);
64556
+ return Promise.resolve(loader8.prepareImport()).then(function () {
64557
+ return loader8.resolve(id, parentUrl, meta);
64593
64558
  }).then(function (id2) {
64594
- var load = getOrCreateLoad(loader7, id2, void 0, meta);
64595
- return load.C || topLevelLoad(loader7, load);
64559
+ var load = getOrCreateLoad(loader8, id2, void 0, meta);
64560
+ return load.C || topLevelLoad(loader8, load);
64596
64561
  });
64597
64562
  };
64598
64563
  systemJSPrototype.createContext = function (parentId) {
64599
- var loader7 = this;
64564
+ var loader8 = this;
64600
64565
  return {
64601
64566
  url: parentId,
64602
64567
  resolve: function resolve(id, parentUrl) {
64603
- return Promise.resolve(loader7.resolve(id, parentUrl || parentId));
64568
+ return Promise.resolve(loader8.resolve(id, parentUrl || parentId));
64604
64569
  }
64605
64570
  };
64606
64571
  };
@@ -64608,8 +64573,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64608
64573
  function loadToId(load) {
64609
64574
  return load.id;
64610
64575
  }
64611
- function triggerOnload(loader7, load, err, isErrSource) {
64612
- loader7.onload(err, load.id, load.d && load.d.map(loadToId), !!isErrSource);
64576
+ function triggerOnload(loader8, load, err, isErrSource) {
64577
+ loader8.onload(err, load.id, load.d && load.d.map(loadToId), !!isErrSource);
64613
64578
  if (err) throw err;
64614
64579
  }
64615
64580
  var lastRegister;
@@ -64621,8 +64586,8 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64621
64586
  lastRegister = void 0;
64622
64587
  return _lastRegister;
64623
64588
  };
64624
- function getOrCreateLoad(loader7, id, firstParentUrl, meta) {
64625
- var load = loader7[REGISTRY][id];
64589
+ function getOrCreateLoad(loader8, id, firstParentUrl, meta) {
64590
+ var load = loader8[REGISTRY][id];
64626
64591
  if (load) return load;
64627
64592
  var importerSetters = [];
64628
64593
  var ns = Object.create(null);
@@ -64630,7 +64595,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64630
64595
  value: "Module"
64631
64596
  });
64632
64597
  var instantiatePromise = Promise.resolve().then(function () {
64633
- return loader7.instantiate(id, firstParentUrl, meta);
64598
+ return loader8.instantiate(id, firstParentUrl, meta);
64634
64599
  }).then(function (registration) {
64635
64600
  if (!registration) throw Error(errMsg(2, "Module " + id + " did not instantiate"));
64636
64601
  function _export(name, value) {
@@ -64661,24 +64626,24 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64661
64626
  }
64662
64627
  var declared = registration[1](_export, registration[1].length === 2 ? {
64663
64628
  "import": function _import(importId, meta2) {
64664
- return loader7["import"](importId, id, meta2);
64629
+ return loader8["import"](importId, id, meta2);
64665
64630
  },
64666
- meta: loader7.createContext(id)
64631
+ meta: loader8.createContext(id)
64667
64632
  } : void 0);
64668
64633
  load.e = declared.execute || function () {};
64669
64634
  return [registration[0], declared.setters || [], registration[2] || []];
64670
64635
  }, function (err) {
64671
64636
  load.e = null;
64672
64637
  load.er = err;
64673
- triggerOnload(loader7, load, err, true);
64638
+ triggerOnload(loader8, load, err, true);
64674
64639
  throw err;
64675
64640
  });
64676
64641
  var linkPromise = instantiatePromise.then(function (instantiation) {
64677
64642
  return Promise.all(instantiation[0].map(function (dep, i) {
64678
64643
  var setter = instantiation[1][i];
64679
64644
  var meta2 = instantiation[2][i];
64680
- return Promise.resolve(loader7.resolve(dep, id)).then(function (depId) {
64681
- var depLoad = getOrCreateLoad(loader7, depId, id, meta2);
64645
+ return Promise.resolve(loader8.resolve(dep, id)).then(function (depId) {
64646
+ var depLoad = getOrCreateLoad(loader8, depId, id, meta2);
64682
64647
  return Promise.resolve(depLoad.I).then(function () {
64683
64648
  if (setter) {
64684
64649
  depLoad.i.push(setter);
@@ -64691,7 +64656,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64691
64656
  load.d = depLoads;
64692
64657
  });
64693
64658
  });
64694
- return load = loader7[REGISTRY][id] = {
64659
+ return load = loader8[REGISTRY][id] = {
64695
64660
  id: id,
64696
64661
  i: importerSetters,
64697
64662
  n: ns,
@@ -64707,31 +64672,31 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64707
64672
  p: void 0
64708
64673
  };
64709
64674
  }
64710
- function instantiateAll(loader7, load, parent, loaded) {
64675
+ function instantiateAll(loader8, load, parent, loaded) {
64711
64676
  if (!loaded[load.id]) {
64712
64677
  loaded[load.id] = true;
64713
64678
  return Promise.resolve(load.L).then(function () {
64714
64679
  if (!load.p || load.p.e === null) load.p = parent;
64715
64680
  return Promise.all(load.d.map(function (dep) {
64716
- return instantiateAll(loader7, dep, parent, loaded);
64681
+ return instantiateAll(loader8, dep, parent, loaded);
64717
64682
  }));
64718
64683
  })["catch"](function (err) {
64719
64684
  if (load.er) throw err;
64720
64685
  load.e = null;
64721
- triggerOnload(loader7, load, err, false);
64686
+ triggerOnload(loader8, load, err, false);
64722
64687
  throw err;
64723
64688
  });
64724
64689
  }
64725
64690
  }
64726
- function topLevelLoad(loader7, load) {
64727
- return load.C = instantiateAll(loader7, load, load, {}).then(function () {
64728
- return postOrderExec(loader7, load, {});
64691
+ function topLevelLoad(loader8, load) {
64692
+ return load.C = instantiateAll(loader8, load, load, {}).then(function () {
64693
+ return postOrderExec(loader8, load, {});
64729
64694
  }).then(function () {
64730
64695
  return load.n;
64731
64696
  });
64732
64697
  }
64733
64698
  var nullContext = Object.freeze(Object.create(null));
64734
- function postOrderExec(loader7, load, seen) {
64699
+ function postOrderExec(loader8, load, seen) {
64735
64700
  if (seen[load.id]) return;
64736
64701
  seen[load.id] = true;
64737
64702
  if (!load.e) {
@@ -64744,11 +64709,11 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64744
64709
  var depLoadPromises;
64745
64710
  load.d.forEach(function (depLoad) {
64746
64711
  try {
64747
- var depLoadPromise = postOrderExec(loader7, depLoad, seen);
64712
+ var depLoadPromise = postOrderExec(loader8, depLoad, seen);
64748
64713
  if (depLoadPromise) (depLoadPromises = depLoadPromises || []).push(depLoadPromise);
64749
64714
  } catch (err) {
64750
64715
  load.er = err;
64751
- triggerOnload(loader7, load, err, false);
64716
+ triggerOnload(loader8, load, err, false);
64752
64717
  throw err;
64753
64718
  }
64754
64719
  });
@@ -64761,11 +64726,11 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64761
64726
  execPromise = execPromise.then(function () {
64762
64727
  load.C = load.n;
64763
64728
  load.E = null;
64764
- if (true) triggerOnload(loader7, load, null, true);
64729
+ if (true) triggerOnload(loader8, load, null, true);
64765
64730
  }, function (err) {
64766
64731
  load.er = err;
64767
64732
  load.E = null;
64768
- if (true) triggerOnload(loader7, load, err, true);
64733
+ if (true) triggerOnload(loader8, load, err, true);
64769
64734
  throw err;
64770
64735
  });
64771
64736
  return load.E = execPromise;
@@ -64776,7 +64741,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64776
64741
  load.er = err;
64777
64742
  throw err;
64778
64743
  } finally {
64779
- triggerOnload(loader7, load, load.er, true);
64744
+ triggerOnload(loader8, load, load.er, true);
64780
64745
  }
64781
64746
  }
64782
64747
  }
@@ -64876,10 +64841,10 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64876
64841
  if (lastScript) {
64877
64842
  lastScript.src;
64878
64843
  lastAutoImportDeps = deps;
64879
- var loader7 = this;
64844
+ var loader8 = this;
64880
64845
  lastAutoImportTimeout = setTimeout(function () {
64881
64846
  autoImportCandidates[lastScript.src] = [deps, declare];
64882
- loader7["import"](lastScript.src);
64847
+ loader8["import"](lastScript.src);
64883
64848
  });
64884
64849
  }
64885
64850
  } else {
@@ -64894,7 +64859,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64894
64859
  delete autoImportCandidates[url];
64895
64860
  return autoImportRegistration;
64896
64861
  }
64897
- var loader7 = this;
64862
+ var loader8 = this;
64898
64863
  return Promise.resolve(systemJSPrototype.createScript(url)).then(function (script) {
64899
64864
  return new Promise(function (resolve, reject) {
64900
64865
  script.addEventListener("error", function () {
@@ -64905,7 +64870,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64905
64870
  if (lastWindowErrorUrl === url) {
64906
64871
  reject(lastWindowError);
64907
64872
  } else {
64908
- var register = loader7.getRegister(url);
64873
+ var register = loader8.getRegister(url);
64909
64874
  if (register && register[0] === lastAutoImportDeps) clearTimeout(lastAutoImportTimeout);
64910
64875
  resolve(register);
64911
64876
  }
@@ -64921,7 +64886,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64921
64886
  var instantiate = systemJSPrototype.instantiate;
64922
64887
  var jsContentTypeRegEx = /^(text|application)\/(x-)?javascript(;|$)/;
64923
64888
  systemJSPrototype.instantiate = function (url, parent, meta) {
64924
- var loader7 = this;
64889
+ var loader8 = this;
64925
64890
  if (!this.shouldFetch(url, parent, meta)) return instantiate.apply(this, arguments);
64926
64891
  return this.fetch(url, {
64927
64892
  credentials: "same-origin",
@@ -64934,7 +64899,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64934
64899
  return res.text().then(function (source) {
64935
64900
  if (source.indexOf("//# sourceURL=") < 0) source += "\n//# sourceURL=" + url;
64936
64901
  (0, eval)(source);
64937
- return loader7.getRegister(url);
64902
+ return loader8.getRegister(url);
64938
64903
  });
64939
64904
  });
64940
64905
  };
@@ -64954,10 +64919,10 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
64954
64919
  return systemInstantiate.call(this, url, firstParentUrl, meta);
64955
64920
  };
64956
64921
  if (hasSelf && typeof importScripts === "function") systemJSPrototype.instantiate = function (url) {
64957
- var loader7 = this;
64922
+ var loader8 = this;
64958
64923
  return Promise.resolve().then(function () {
64959
64924
  importScripts(url);
64960
- return loader7.getRegister(url);
64925
+ return loader8.getRegister(url);
64961
64926
  });
64962
64927
  };
64963
64928
  (function (global2) {
@@ -65144,14 +65109,14 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
65144
65109
  };
65145
65110
  var iterator = typeof Symbol !== "undefined" && Symbol.iterator;
65146
65111
  systemJSPrototype.entries = function () {
65147
- var loader7 = this,
65148
- keys = Object.keys(loader7[REGISTRY]);
65112
+ var loader8 = this,
65113
+ keys = Object.keys(loader8[REGISTRY]);
65149
65114
  var index = 0,
65150
65115
  ns,
65151
65116
  key;
65152
65117
  var result = {
65153
65118
  next: function next() {
65154
- while ((key = keys[index++]) !== void 0 && (ns = loader7.get(key)) === void 0);
65119
+ while ((key = keys[index++]) !== void 0 && (ns = loader8.get(key)) === void 0);
65155
65120
  return {
65156
65121
  done: key === void 0,
65157
65122
  value: key !== void 0 && [key, ns]
@@ -65710,6 +65675,8 @@ function inspectPilet(meta) {
65710
65675
  var inBrowser = typeof document !== "undefined";
65711
65676
  if ("link" in meta && meta.spec === "v3") {
65712
65677
  return ["v3", meta, setupSinglePilet];
65678
+ } else if (inBrowser && "link" in meta && meta.spec === "mf") {
65679
+ return ["mf", meta, setupSinglePilet];
65713
65680
  } else if (inBrowser && "link" in meta && meta.spec === "v2") {
65714
65681
  return ["v2", meta, setupSinglePilet];
65715
65682
  } else if (inBrowser && "requireRef" in meta && meta.spec !== "v2") {
@@ -65836,9 +65803,8 @@ function loader2(entry, _config) {
65836
65803
  var name = entry.name,
65837
65804
  _entry$spec2 = entry.spec,
65838
65805
  spec = _entry$spec2 === void 0 ? "vx" : _entry$spec2,
65839
- _entry$dependencies2 = entry.dependencies,
65840
- dependencies = _entry$dependencies2 === void 0 ? {} : _entry$dependencies2,
65841
65806
  rest = _objectWithoutProperties(entry, _excluded2);
65807
+ var dependencies = "dependencies" in entry ? entry.dependencies : {};
65842
65808
  var meta = _objectSpread({
65843
65809
  name: name,
65844
65810
  version: "",
@@ -65887,8 +65853,8 @@ function loader3(entry, _config) {
65887
65853
  var name = entry.name,
65888
65854
  _entry$config = entry.config,
65889
65855
  config = _entry$config === void 0 ? {} : _entry$config,
65890
- _entry$dependencies3 = entry.dependencies,
65891
- dependencies = _entry$dependencies3 === void 0 ? {} : _entry$dependencies3,
65856
+ _entry$dependencies2 = entry.dependencies,
65857
+ dependencies = _entry$dependencies2 === void 0 ? {} : _entry$dependencies2,
65892
65858
  _entry$spec3 = entry.spec,
65893
65859
  spec = _entry$spec3 === void 0 ? "v0" : _entry$spec3;
65894
65860
  var meta = _objectSpread({
@@ -65919,8 +65885,8 @@ function includeDependency(entry, crossOrigin) {
65919
65885
 
65920
65886
  // src/loaders/v1/index.ts
65921
65887
  function loader4(entry, config) {
65922
- var _entry$dependencies4 = entry.dependencies,
65923
- dependencies = _entry$dependencies4 === void 0 ? {} : _entry$dependencies4,
65888
+ var _entry$dependencies3 = entry.dependencies,
65889
+ dependencies = _entry$dependencies3 === void 0 ? {} : _entry$dependencies3,
65924
65890
  _entry$spec4 = entry.spec,
65925
65891
  spec = _entry$spec4 === void 0 ? "v1" : _entry$spec4,
65926
65892
  rest = _objectWithoutProperties(entry, _excluded3);
@@ -65936,8 +65902,8 @@ function loader4(entry, config) {
65936
65902
 
65937
65903
  // src/loaders/v2/index.ts
65938
65904
  function loader5(entry, _config) {
65939
- var _entry$dependencies5 = entry.dependencies,
65940
- dependencies = _entry$dependencies5 === void 0 ? {} : _entry$dependencies5,
65905
+ var _entry$dependencies4 = entry.dependencies,
65906
+ dependencies = _entry$dependencies4 === void 0 ? {} : _entry$dependencies4,
65941
65907
  _entry$config2 = entry.config,
65942
65908
  config = _entry$config2 === void 0 ? {} : _entry$config2,
65943
65909
  link = entry.link,
@@ -65955,8 +65921,8 @@ function loader5(entry, _config) {
65955
65921
 
65956
65922
  // src/loaders/v3/index.ts
65957
65923
  function loader6(entry, _config) {
65958
- var _entry$dependencies6 = entry.dependencies,
65959
- dependencies = _entry$dependencies6 === void 0 ? {} : _entry$dependencies6,
65924
+ var _entry$dependencies5 = entry.dependencies,
65925
+ dependencies = _entry$dependencies5 === void 0 ? {} : _entry$dependencies5,
65960
65926
  _entry$config3 = entry.config,
65961
65927
  config = _entry$config3 === void 0 ? {} : _entry$config3,
65962
65928
  link = entry.link,
@@ -65972,6 +65938,95 @@ function loader6(entry, _config) {
65972
65938
  });
65973
65939
  }
65974
65940
 
65941
+ // src/loaders/mf/index.ts
65942
+ var appShell = "piral";
65943
+ function populateKnownDependencies(scope) {
65944
+ var _iterator3 = _createForOfIteratorHelper(System.entries()),
65945
+ _step3;
65946
+ try {
65947
+ var _loop2 = function _loop2() {
65948
+ var _step3$value = _slicedToArray(_step3.value, 1),
65949
+ entry = _step3$value[0];
65950
+ var index = entry.lastIndexOf("@");
65951
+ if (index > 0 && !entry.match(/^https?:\/\//)) {
65952
+ var entryName = entry.substring(0, index);
65953
+ var entryVersion = entry.substring(index + 1);
65954
+ if (!(entryName in scope)) {
65955
+ scope[entryName] = {};
65956
+ }
65957
+ scope[entryName][entryVersion] = {
65958
+ from: appShell,
65959
+ eager: false,
65960
+ get: function get() {
65961
+ return System["import"](entry).then(function (result) {
65962
+ return function () {
65963
+ return result;
65964
+ };
65965
+ });
65966
+ }
65967
+ };
65968
+ }
65969
+ };
65970
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
65971
+ _loop2();
65972
+ }
65973
+ } catch (err) {
65974
+ _iterator3.e(err);
65975
+ } finally {
65976
+ _iterator3.f();
65977
+ }
65978
+ }
65979
+ function extractSharedDependencies(scope) {
65980
+ for (var _i3 = 0, _Object$keys2 = Object.keys(scope); _i3 < _Object$keys2.length; _i3++) {
65981
+ var entryName = _Object$keys2[_i3];
65982
+ var entries = scope[entryName];
65983
+ var _loop3 = function _loop3() {
65984
+ var entryVersion = _Object$keys3[_i4];
65985
+ var entry = entries[entryVersion];
65986
+ if (entry.from !== appShell) {
65987
+ registerModule("".concat(entryName, "@").concat(entryVersion), function () {
65988
+ return entry.get().then(function (factory) {
65989
+ return factory();
65990
+ });
65991
+ });
65992
+ }
65993
+ };
65994
+ for (var _i4 = 0, _Object$keys3 = Object.keys(entries); _i4 < _Object$keys3.length; _i4++) {
65995
+ _loop3();
65996
+ }
65997
+ }
65998
+ }
65999
+ function loadMfFactory(piletName, exposedName) {
66000
+ var varName = piletName.replace(/^@/, "").replace("/", "-").replace(/\-/g, "_");
66001
+ var container = window[varName];
66002
+ var scope = {};
66003
+ container.init(scope);
66004
+ populateKnownDependencies(scope);
66005
+ extractSharedDependencies(scope);
66006
+ return container.get(exposedName);
66007
+ }
66008
+ function loader7(entry, _config) {
66009
+ var _rest$custom;
66010
+ var _entry$config4 = entry.config,
66011
+ config = _entry$config4 === void 0 ? {} : _entry$config4,
66012
+ name = entry.name,
66013
+ link = entry.link,
66014
+ rest = _objectWithoutProperties(entry, _excluded6);
66015
+ var dependencies = {};
66016
+ var exposedName = ((_rest$custom = rest.custom) === null || _rest$custom === void 0 ? void 0 : _rest$custom.exposed) || "./pilet";
66017
+ var meta = _objectSpread({
66018
+ name: name,
66019
+ dependencies: dependencies,
66020
+ config: config,
66021
+ link: link
66022
+ }, rest);
66023
+ return includeScriptDependency(link).then(function () {
66024
+ return loadMfFactory(name, exposedName);
66025
+ }).then(function (factory) {
66026
+ return createEvaluatedPilet(meta, factory());
66027
+ });
66028
+ }
66029
+
65975
66030
  // src/loader.ts
65976
66031
  function extendLoader(fallback, specLoaders) {
65977
66032
  if (_typeof(specLoaders) === "object" && specLoaders) {
@@ -66000,6 +66055,8 @@ function getDefaultLoader() {
66000
66055
  return loader4(r[1], config);
66001
66056
  case "v0":
66002
66057
  return loader3(r[1], config);
66058
+ case "mf":
66059
+ return loader7(r[1], config);
66003
66060
  case "bundle":
66004
66061
  return loader(r[1], config);
66005
66062
  default:
@@ -66017,11 +66074,11 @@ function runAll(createApi, existingPilets, additionalPilets, hooks) {
66017
66074
  return Promise.resolve([]);
66018
66075
  }
66019
66076
  try {
66020
- var _iterator3 = _createForOfIteratorHelper(existingPilets),
66021
- _step3;
66077
+ var _iterator4 = _createForOfIteratorHelper(existingPilets),
66078
+ _step4;
66022
66079
  try {
66023
- var _loop2 = function _loop2() {
66024
- var existing = _step3.value;
66080
+ var _loop4 = function _loop4() {
66081
+ var existing = _step4.value;
66025
66082
  var name = existing.name;
66026
66083
  var _additionalPilets$fil = additionalPilets.filter(function (pilet) {
66027
66084
  return pilet.name === name;
@@ -66032,13 +66089,13 @@ function runAll(createApi, existingPilets, additionalPilets, hooks) {
66032
66089
  additionalPilets.splice(additionalPilets.indexOf(newPilet), 1);
66033
66090
  }
66034
66091
  };
66035
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
66036
- _loop2();
66092
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
66093
+ _loop4();
66037
66094
  }
66038
66095
  } catch (err) {
66039
- _iterator3.e(err);
66096
+ _iterator4.e(err);
66040
66097
  } finally {
66041
- _iterator3.f();
66098
+ _iterator4.f();
66042
66099
  }
66043
66100
  var pilets = [].concat(_toConsumableArray(existingPilets), _toConsumableArray(additionalPilets));
66044
66101
  return runPilets(createApi, pilets, hooks);
@@ -66550,6 +66607,12 @@ var instance = (0,piral__WEBPACK_IMPORTED_MODULE_5__.createInstance)({
66550
66607
  }
66551
66608
  }))),
66552
66609
  requestPilets: function requestPilets() {
66610
+ return Promise.resolve([{
66611
+ spec: 'mf',
66612
+ name: '@wmf/foo',
66613
+ version: '1.0.0',
66614
+ link: 'http://localhost:8080/index.js'
66615
+ }]);
66553
66616
  return fetch('https://feed.piral.cloud/api/v1/pilet/sample').then(function (res) {
66554
66617
  return res.json();
66555
66618
  }).then(function (res) {
@@ -66569,4 +66632,4 @@ root.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(piral
66569
66632
 
66570
66633
  /******/ })()
66571
66634
  ;
66572
- //# sourceMappingURL=index.4e6122.js.map
66635
+ //# sourceMappingURL=index.2f6366.js.map