@pacem/pacem-core 1.0.0-banach → 1.0.0-bessel

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.
Files changed (39) hide show
  1. package/dist/browser/pacem-core.js +50 -24
  2. package/dist/browser/pacem-core.js.map +1 -1
  3. package/dist/browser/pacem-core.min.js +2 -3
  4. package/dist/bundle/pacem-core.min.mjs +5 -5
  5. package/dist/bundle/pacem-core.mjs +44 -22
  6. package/dist/bundle/pacem-core.mjs.map +2 -2
  7. package/dist/esm/adapter.js +1 -1
  8. package/dist/esm/command.js +1 -1
  9. package/dist/esm/comparers.js +1 -1
  10. package/dist/esm/converters.js +1 -1
  11. package/dist/esm/decorators-next.js +1 -1
  12. package/dist/esm/decorators.js +1 -1
  13. package/dist/esm/defaults.js +1 -1
  14. package/dist/esm/events.js +15 -1
  15. package/dist/esm/eventtarget.js +1 -1
  16. package/dist/esm/expression.js +1 -1
  17. package/dist/esm/index-animations.js +1 -1
  18. package/dist/esm/index-behaviors.js +1 -1
  19. package/dist/esm/index-components.js +1 -1
  20. package/dist/esm/index-iife.js +1 -1
  21. package/dist/esm/index-logging.js +1 -1
  22. package/dist/esm/index-net.js +1 -1
  23. package/dist/esm/index-root.js +1 -1
  24. package/dist/esm/index-ui.js +1 -1
  25. package/dist/esm/index.js +1 -1
  26. package/dist/esm/logger.js +1 -1
  27. package/dist/esm/prefix.js +1 -1
  28. package/dist/esm/promise.js +1 -1
  29. package/dist/esm/regex.js +1 -1
  30. package/dist/esm/storage.js +1 -1
  31. package/dist/esm/template.js +1 -1
  32. package/dist/esm/transforms.js +1 -1
  33. package/dist/esm/types.js +1 -1
  34. package/dist/esm/utils-customelement.js +1 -1
  35. package/dist/esm/utils-customevent.js +1 -1
  36. package/dist/esm/utils.js +8 -1
  37. package/package.json +1 -1
  38. package/typings/index.d.ts +16 -10
  39. package/dist/browser/pacem-core.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @pacem/pacem-core v1.0.0-banach (https://js.pacem.it)
2
+ * @pacem/pacem-core v1.0.0-bessel (https://js.pacem.it)
3
3
  * Pacem (https://pacem.it)
4
4
  * Licensed under Apache-2.0
5
5
  */
@@ -1002,6 +1002,13 @@ var Utils = class _Utils {
1002
1002
  static set scrollLeft(x) {
1003
1003
  window.scrollTo(x, _Utils.scrollTop);
1004
1004
  }
1005
+ static scrollTo(x, y = true, smooth = true) {
1006
+ const yFirst = _Utils.isNull(y) || typeof y === "boolean";
1007
+ const left = yFirst ? _Utils.scrollLeft : x;
1008
+ const top = yFirst ? x : y;
1009
+ const behavior = (yFirst ? y : smooth) ? "smooth" : "instant";
1010
+ window.scrollTo({ behavior, left, top });
1011
+ }
1005
1012
  static get scrollTop() {
1006
1013
  return window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0;
1007
1014
  }
@@ -1426,6 +1433,18 @@ var PropertyChangeEvent = class extends CustomTypedEvent {
1426
1433
  super(PropertyChangeEventName, args);
1427
1434
  }
1428
1435
  };
1436
+ var RouterNavigatingEventName = "navigating";
1437
+ var RouterNavigateEventName = "navigate";
1438
+ var RouterNavigateEvent = class extends CustomTypedEvent {
1439
+ constructor(path) {
1440
+ super(RouterNavigateEventName, typeof path === "string" ? { path } : path, { cancelable: false, bubbles: false });
1441
+ }
1442
+ };
1443
+ var RouterNavigatingEvent = class extends CustomTypedEvent {
1444
+ constructor(path) {
1445
+ super(RouterNavigatingEventName, path, { cancelable: true, bubbles: false });
1446
+ }
1447
+ };
1429
1448
 
1430
1449
  // packages/core/dist/esm/animations/events.js
1431
1450
  var AnimationEvent = class extends CustomTypedEvent {
@@ -2025,10 +2044,6 @@ __export(index_components_exports, {
2025
2044
  RepeaterItemRemoveEventName: () => RepeaterItemRemoveEventName,
2026
2045
  ResizeEvent: () => ResizeEvent,
2027
2046
  ResizeEventName: () => ResizeEventName,
2028
- RouterNavigateEvent: () => RouterNavigateEvent,
2029
- RouterNavigateEventName: () => RouterNavigateEventName,
2030
- RouterNavigatingEvent: () => RouterNavigatingEvent,
2031
- RouterNavigatingEventName: () => RouterNavigatingEventName,
2032
2047
  ScrollEvent: () => ScrollEvent,
2033
2048
  ScrollEventName: () => ScrollEventName,
2034
2049
  StateEvent: () => StateEvent,
@@ -5787,25 +5802,22 @@ var __decorate24 = function(decorators, target, key2, desc) {
5787
5802
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key2, r) : d(target, key2)) || r;
5788
5803
  return c > 3 && r && Object.defineProperty(target, key2, r), r;
5789
5804
  };
5790
- var RouterNavigatingEventName = "navigating";
5791
- var RouterNavigateEventName = "navigate";
5792
- var RouterNavigateEvent = class extends CustomTypedEvent {
5793
- constructor(path) {
5794
- super(RouterNavigateEventName, typeof path === "string" ? { path } : path, { cancelable: false, bubbles: false });
5795
- }
5796
- };
5797
- var RouterNavigatingEvent = class extends CustomTypedEvent {
5798
- constructor(path) {
5799
- super(RouterNavigatingEventName, path, { cancelable: true, bubbles: false });
5800
- }
5801
- };
5802
5805
  var CHECK_PATTERN = /^([\w\.]:)?\/\/[^\/]+/;
5803
5806
  var PacemRouterElement = class PacemRouterElement2 extends PacemEventTarget {
5804
5807
  constructor() {
5805
5808
  super(...arguments);
5809
+ this._onScroll = (e) => {
5810
+ const scrollRestoration = this.scrollRestoration ?? true;
5811
+ if (!scrollRestoration) {
5812
+ return;
5813
+ }
5814
+ const y = Math.floor(Utils.scrollTop);
5815
+ window.history.replaceState(Utils.extend({}, window.history.state, { $scrollY: y }), document.title);
5816
+ };
5806
5817
  this._onPopState = (evt) => {
5807
5818
  if (!Utils.isNull(evt.state) && !this.#cancelingNavigation) {
5808
- this.path = evt.state.$path;
5819
+ const state = evt.state;
5820
+ this.path = state.$path;
5809
5821
  }
5810
5822
  };
5811
5823
  }
@@ -5848,12 +5860,13 @@ var PacemRouterElement = class PacemRouterElement2 extends PacemEventTarget {
5848
5860
  this.path = from;
5849
5861
  return;
5850
5862
  }
5851
- this.state = state;
5863
+ const newState = !poppingState ? Utils.extend({ $scrollY: 0 }, state) : Utils.extend({ $scrollY: 0 }, window.history.state, state);
5864
+ this.state = newState;
5865
+ window.history.scrollRestoration = this.scrollRestoration ?? true ? "manual" : "auto";
5852
5866
  if (poppingState) {
5853
- window.history.scrollRestoration = "manual";
5854
- window.history.replaceState(state, title);
5867
+ window.history.replaceState(newState, document.title);
5855
5868
  } else {
5856
- window.history.pushState(state, title, path);
5869
+ window.history.pushState(newState, title, path);
5857
5870
  }
5858
5871
  if (!Utils.isNullOrEmpty(title)) {
5859
5872
  document.title = title;
@@ -5878,6 +5891,7 @@ var PacemRouterElement = class PacemRouterElement2 extends PacemEventTarget {
5878
5891
  connectedCallback() {
5879
5892
  super.connectedCallback();
5880
5893
  window.addEventListener("popstate", this._onPopState, false);
5894
+ document.addEventListener("scroll", this._onScroll, false);
5881
5895
  }
5882
5896
  viewActivatedCallback() {
5883
5897
  super.viewActivatedCallback();
@@ -5887,6 +5901,7 @@ var PacemRouterElement = class PacemRouterElement2 extends PacemEventTarget {
5887
5901
  }
5888
5902
  }
5889
5903
  disconnectedCallback() {
5904
+ document.removeEventListener("scroll", this._onScroll, false);
5890
5905
  window.removeEventListener("popstate", this._onPopState, false);
5891
5906
  super.disconnectedCallback();
5892
5907
  }
@@ -5940,6 +5955,9 @@ __decorate24([
5940
5955
  __decorate24([
5941
5956
  Watch({ emit: false, converter: PropertyConverters.String })
5942
5957
  ], PacemRouterElement.prototype, "path", void 0);
5958
+ __decorate24([
5959
+ Watch({ emit: false, reflectBack: true, converter: PropertyConverters.Boolean })
5960
+ ], PacemRouterElement.prototype, "scrollRestoration", void 0);
5943
5961
  PacemRouterElement = __decorate24([
5944
5962
  CustomElement({ tagName: P + "-router" })
5945
5963
  ], PacemRouterElement);
@@ -8480,6 +8498,10 @@ export {
8480
8498
  Regex,
8481
8499
  Repeater,
8482
8500
  RepeaterItem,
8501
+ RouterNavigateEvent,
8502
+ RouterNavigateEventName,
8503
+ RouterNavigatingEvent,
8504
+ RouterNavigatingEventName,
8483
8505
  Storage,
8484
8506
  TemplateElement,
8485
8507
  Throttle,