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

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.6287",
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-01T10:59:05.683Z",
6601
+ cli: "1.4.0-beta.6287",
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,
@@ -66569,4 +66533,4 @@ root.render( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(piral
66569
66533
 
66570
66534
  /******/ })()
66571
66535
  ;
66572
- //# sourceMappingURL=index.4e6122.js.map
66536
+ //# sourceMappingURL=index.a44aae.js.map