@domql/router 2.5.35 → 2.5.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -25,6 +25,7 @@ __export(router_exports, {
25
25
  router: () => router
26
26
  });
27
27
  module.exports = __toCommonJS(router_exports);
28
+ var import_event = require("@domql/event");
28
29
  var import_utils = require("@domql/utils");
29
30
  const getActiveRoute = (level = 0, route = import_utils.window.location.pathname) => {
30
31
  const routeArray = route.split("/");
@@ -48,8 +49,9 @@ const defaultOptions = {
48
49
  scrollToOptions: { behavior: "smooth" }
49
50
  };
50
51
  const router = (path, element, state = {}, passedOptions = {}) => {
51
- const options = { ...defaultOptions, ...passedOptions };
52
+ const options = { ...defaultOptions, ...element.context.routerOptions, ...passedOptions };
52
53
  lastLevel = options.lastLevel;
54
+ const newElementKey = options.newElementKey;
53
55
  const [pathname, hash] = path.split("#");
54
56
  const rootNode = element.node;
55
57
  const route = getActiveRoute(options.level, pathname);
@@ -67,10 +69,13 @@ const router = (path, element, state = {}, passedOptions = {}) => {
67
69
  if (options.updateState) {
68
70
  element.state.update({ route, hash }, { preventContentUpdate: true });
69
71
  }
72
+ if (newElementKey && options.removeOldElement) {
73
+ element[newElementKey].remove();
74
+ }
70
75
  element.set({
71
76
  tag: options.useFragment && "fragment",
72
77
  extend: content
73
- });
78
+ }, { newElementKey });
74
79
  }
75
80
  if (options.scrollToTop) {
76
81
  scrollNode.scrollTo({
@@ -97,5 +102,6 @@ const router = (path, element, state = {}, passedOptions = {}) => {
97
102
  });
98
103
  }
99
104
  }
105
+ (0, import_event.triggerEventOn)("routeChanged", element, options);
100
106
  };
101
107
  var router_default = router;
package/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  'use strict'
2
2
 
3
+ import { triggerEventOn } from '@domql/event'
3
4
  import { document, window } from '@domql/utils'
4
5
 
5
6
  export const getActiveRoute = (level = 0, route = window.location.pathname) => {
@@ -31,8 +32,9 @@ export const router = (
31
32
  state = {},
32
33
  passedOptions = {}
33
34
  ) => {
34
- const options = { ...defaultOptions, ...passedOptions }
35
+ const options = { ...defaultOptions, ...element.context.routerOptions, ...passedOptions }
35
36
  lastLevel = options.lastLevel
37
+ const newElementKey = options.newElementKey
36
38
 
37
39
  const [pathname, hash] = path.split('#')
38
40
 
@@ -54,10 +56,13 @@ export const router = (
54
56
  element.state.update({ route, hash }, { preventContentUpdate: true })
55
57
  }
56
58
 
59
+ if (newElementKey && options.removeOldElement) {
60
+ element[newElementKey].remove()
61
+ }
57
62
  element.set({
58
63
  tag: options.useFragment && 'fragment',
59
64
  extend: content
60
- })
65
+ }, { newElementKey })
61
66
  }
62
67
 
63
68
  if (options.scrollToTop) {
@@ -80,6 +85,9 @@ export const router = (
80
85
  })
81
86
  }
82
87
  }
88
+
89
+ // trigger `on.routeChanged`
90
+ triggerEventOn('routeChanged', element, options)
83
91
  }
84
92
 
85
93
  export default router
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/router",
3
- "version": "2.5.35",
3
+ "version": "2.5.56",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "dist/esm/index.js",
@@ -25,7 +25,7 @@
25
25
  "@domql/globals": "latest",
26
26
  "@domql/utils": "latest"
27
27
  },
28
- "gitHead": "8d7684fd84f5c48fb5cf71e76a05eda071c118f7",
28
+ "gitHead": "a832fd0b6d8c39f16e6c7b2b61ab6c3dccd1f539",
29
29
  "devDependencies": {
30
30
  "@babel/core": "^7.12.0"
31
31
  }