element-book 22.1.0 → 22.1.2

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.
@@ -0,0 +1,4 @@
1
+ import { SpaRouter } from 'spa-router-vir';
2
+ import { ValidBookPaths } from './book-routing';
3
+ export declare function createBookRouter(basePath: string | undefined): SpaRouter<ValidBookPaths, undefined, undefined>;
4
+ export type BookRouter = ReturnType<typeof createBookRouter>;
@@ -1,10 +1,10 @@
1
1
  import { isEnumValue } from '@augment-vir/common';
2
- import { createSpaRouter } from 'spa-router-vir';
2
+ import { SpaRouter } from 'spa-router-vir';
3
3
  import { BookMainRoute, defaultBookFullRoute } from './book-routing';
4
- export function createBookRouter(baseRoute) {
5
- return createSpaRouter({
6
- routeBase: baseRoute,
7
- routeSanitizer(rawRoute) {
4
+ export function createBookRouter(basePath) {
5
+ return new SpaRouter({
6
+ basePath: basePath,
7
+ sanitizeRoute(rawRoute) {
8
8
  const sanitizedPaths = sanitizePaths(rawRoute.paths);
9
9
  return {
10
10
  paths: sanitizedPaths,
@@ -1,10 +1,9 @@
1
- import { FullRoute, SpaRouter } from 'spa-router-vir';
1
+ import { FullRoute } from 'spa-router-vir';
2
2
  export declare enum BookMainRoute {
3
3
  Search = "search",
4
4
  Book = "book"
5
5
  }
6
6
  export type ValidBookPaths = [BookMainRoute.Search, string] | [BookMainRoute.Book, ...string[]];
7
- export type BookFullRoute = Required<Readonly<FullRoute<ValidBookPaths, undefined | Record<string, string>, undefined>>>;
7
+ export type BookFullRoute = Required<Readonly<FullRoute<ValidBookPaths, undefined, undefined>>>;
8
8
  export declare function extractSearchQuery(paths: Readonly<ValidBookPaths>): string;
9
9
  export declare const defaultBookFullRoute: Readonly<BookFullRoute>;
10
- export type BookRouter = BookFullRoute extends FullRoute<infer Paths, infer Search, infer Hash> ? Readonly<SpaRouter<Paths, Search, Hash>> : never;
@@ -1,5 +1,6 @@
1
- import { BookFullRoute, BookRouter } from '../../routing/book-routing';
1
+ import { BookRouter } from '../../routing/book-router';
2
+ import { BookFullRoute } from '../../routing/book-routing';
2
3
  export declare const BookBreadcrumbs: import("element-vir").DeclarativeElementDefinition<"book-breadcrumbs", {
3
4
  currentRoute: Readonly<BookFullRoute>;
4
- router: BookRouter | undefined;
5
+ router: Readonly<BookRouter> | undefined;
5
6
  }, {}, {}, `book-breadcrumbs-${string}`, `book-breadcrumbs-${string}`, readonly string[]>;
@@ -1,5 +1,5 @@
1
1
  import { BookTreeNode } from '../../../data/book-tree/book-tree-node';
2
- import { BookRouter } from '../../../routing/book-routing';
2
+ import { BookRouter } from '../../../routing/book-router';
3
3
  export declare const BookNav: import("element-vir").DeclarativeElementDefinition<"book-nav", {
4
4
  flattenedNodes: ReadonlyArray<Readonly<BookTreeNode>>;
5
5
  selectedPath: ReadonlyArray<string> | undefined;
@@ -1,5 +1,6 @@
1
- import { BookFullRoute, BookRouter } from '../../../routing/book-routing';
1
+ import { BookRouter } from '../../../routing/book-router';
2
+ import { BookFullRoute } from '../../../routing/book-routing';
2
3
  export declare const BookRouteLink: import("element-vir").DeclarativeElementDefinition<"book-route-link", {
3
4
  route: Partial<BookFullRoute>;
4
- router: BookRouter | undefined;
5
+ router: Readonly<BookRouter> | undefined;
5
6
  }, {}, {}, `book-route-link-${string}`, "book-route-link-anchor-padding", readonly string[]>;
@@ -1,5 +1,5 @@
1
1
  import { css, html, listen } from 'element-vir';
2
- import { shouldMouseEventTriggerRoutes } from 'spa-router-vir';
2
+ import { shouldClickEventTriggerRouteChange } from 'spa-router-vir';
3
3
  import { ChangeRouteEvent } from '../../events/change-route.event';
4
4
  import { defineBookElement } from '../define-book-element';
5
5
  export const BookRouteLink = defineBookElement()({
@@ -19,15 +19,14 @@ export const BookRouteLink = defineBookElement()({
19
19
  }
20
20
  `,
21
21
  renderCallback: ({ inputs, dispatch }) => {
22
- const linkUrl = inputs.router?.createRoutesUrl({
23
- ...inputs.router?.getCurrentRawRoutes(),
22
+ const linkUrl = inputs.router?.createRouteUrl({
24
23
  ...inputs.route,
25
24
  }) ?? '#';
26
25
  return html `
27
26
  <a
28
27
  href=${linkUrl}
29
28
  ${listen('click', (clickEvent) => {
30
- if (!inputs.router || shouldMouseEventTriggerRoutes(clickEvent)) {
29
+ if (!inputs.router || shouldClickEventTriggerRouteChange(clickEvent)) {
31
30
  clickEvent.preventDefault();
32
31
  window.scrollTo(0, 0);
33
32
  dispatch(new ChangeRouteEvent(inputs.route));
@@ -8,8 +8,8 @@ type ColorThemeState = {
8
8
  theme: ColorTheme;
9
9
  };
10
10
  export declare const ElementBookApp: import("element-vir").DeclarativeElementDefinition<"element-book-app", ElementBookConfig, {
11
- currentRoute: Readonly<Required<Readonly<import("spa-router-vir").FullRoute<import("../../../routing/book-routing").ValidBookPaths, Record<string, string> | undefined, undefined>>>>;
12
- router: Readonly<import("spa-router-vir").SpaRouter<import("../../../routing/book-routing").ValidBookPaths, Record<string, string> | undefined, undefined>> | undefined;
11
+ currentRoute: Readonly<Required<Readonly<import("spa-router-vir").FullRoute<import("../../../routing/book-routing").ValidBookPaths, undefined, undefined>>>>;
12
+ router: import("spa-router-vir").SpaRouter<import("../../../routing/book-routing").ValidBookPaths, undefined, undefined> | undefined;
13
13
  loading: boolean;
14
14
  colors: ColorThemeState;
15
15
  treeBasedControls: {
@@ -5,8 +5,8 @@ import { isJsonEqual } from 'run-time-assertions';
5
5
  import { createNewControls, updateTreeControls, } from '../../../data/book-entry/book-page/controls-wrapper';
6
6
  import { createBookTreeFromEntries } from '../../../data/book-tree/book-tree';
7
7
  import { searchFlattenedNodes } from '../../../data/book-tree/search-nodes';
8
+ import { createBookRouter } from '../../../routing/book-router';
8
9
  import { defaultBookFullRoute, extractSearchQuery, } from '../../../routing/book-routing';
9
- import { createBookRouter } from '../../../routing/create-book-router';
10
10
  import { colorThemeCssVars, setThemeCssVars } from '../../color-theme/color-theme';
11
11
  import { createTheme } from '../../color-theme/create-color-theme';
12
12
  import { ChangeRouteEvent } from '../../events/change-route.event';
@@ -78,7 +78,7 @@ export const ElementBookApp = defineElement()({
78
78
  },
79
79
  cleanupCallback({ state, updateState }) {
80
80
  if (state.router) {
81
- state.router.removeAllRouteListeners();
81
+ state.router.destroy();
82
82
  updateState({ router: undefined });
83
83
  }
84
84
  },
@@ -115,7 +115,7 @@ export const ElementBookApp = defineElement()({
115
115
  }
116
116
  const newRoute = mergeRoutes(newRouteInput);
117
117
  if (state.router) {
118
- state.router.setRoutes(newRoute);
118
+ state.router.setRoute(newRoute);
119
119
  }
120
120
  else {
121
121
  updateState({
@@ -138,14 +138,14 @@ export const ElementBookApp = defineElement()({
138
138
  if (inputs.internalRouterConfig?.useInternalRouter && !state.router) {
139
139
  const router = createBookRouter(inputs.internalRouterConfig.basePath);
140
140
  updateState({ router });
141
- router.addRouteListener(true, (fullRoute) => {
141
+ router.listen(true, (fullRoute) => {
142
142
  updateState({
143
143
  currentRoute: fullRoute,
144
144
  });
145
145
  });
146
146
  }
147
147
  else if (!inputs.internalRouterConfig?.useInternalRouter && state.router) {
148
- state.router.removeAllRouteListeners();
148
+ state.router.destroy();
149
149
  }
150
150
  const inputThemeConfig = {
151
151
  themeColor: inputs.themeColor,
@@ -1,6 +1,7 @@
1
- import { BookFullRoute, BookRouter } from '../../../routing/book-routing';
1
+ import { BookRouter } from '../../../routing/book-router';
2
+ import { BookFullRoute } from '../../../routing/book-routing';
2
3
  export declare const BookBreadcrumbsBar: import("element-vir").DeclarativeElementDefinition<"book-breadcrumbs-bar", {
3
4
  currentSearch: string;
4
- currentRoute: BookFullRoute;
5
- router: BookRouter | undefined;
5
+ currentRoute: Readonly<BookFullRoute>;
6
+ router: Readonly<BookRouter> | undefined;
6
7
  }, {}, {}, `book-breadcrumbs-bar-${string}`, `book-breadcrumbs-bar-${string}`, readonly string[]>;
@@ -1,6 +1,6 @@
1
1
  import { wait } from '@augment-vir/common';
2
2
  import { css, html, listen, renderIf } from 'element-vir';
3
- import { BookMainRoute, defaultBookFullRoute, } from '../../../routing/book-routing';
3
+ import { BookMainRoute, defaultBookFullRoute } from '../../../routing/book-routing';
4
4
  import { colorThemeCssVars } from '../../color-theme/color-theme';
5
5
  import { ChangeRouteEvent } from '../../events/change-route.event';
6
6
  import { BookBreadcrumbs } from '../book-breadcrumbs.element';
@@ -1,7 +1,7 @@
1
1
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
2
2
  import { ControlsWrapper } from '../../../../data/book-entry/book-page/controls-wrapper';
3
3
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
4
- import { BookRouter } from '../../../../routing/book-routing';
4
+ import { BookRouter } from '../../../../routing/book-router';
5
5
  export declare const BookPageWrapper: import("element-vir").DeclarativeElementDefinition<"book-page-wrapper", {
6
6
  isTopLevel: boolean;
7
7
  pageNode: BookTreeNode<BookEntryTypeEnum.Page>;
@@ -1,6 +1,6 @@
1
1
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
2
2
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
3
- import { BookRouter } from '../../../../routing/book-routing';
3
+ import { BookRouter } from '../../../../routing/book-router';
4
4
  export declare const BookElementExampleControls: import("element-vir").DeclarativeElementDefinition<"book-element-example-controls", {
5
5
  elementExampleNode: BookTreeNode<BookEntryTypeEnum.ElementExample>;
6
6
  router: BookRouter | undefined;
@@ -1,9 +1,7 @@
1
1
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
2
2
  import { BookPageControlsValues } from '../../../../data/book-entry/book-page/book-page-controls';
3
3
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
4
- import { BookRouter } from '../../../../routing/book-routing';
5
4
  export declare const BookElementExampleViewer: import("element-vir").DeclarativeElementDefinition<"book-element-example-viewer", {
6
5
  elementExampleNode: BookTreeNode<BookEntryTypeEnum.ElementExample>;
7
6
  currentPageControls: BookPageControlsValues;
8
- router: BookRouter | undefined;
9
7
  }, any, {}, `book-element-example-viewer-${string}`, `book-element-example-viewer-${string}`, readonly string[]>;
@@ -1,7 +1,7 @@
1
1
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
2
2
  import { BookPageControlsValues } from '../../../../data/book-entry/book-page/book-page-controls';
3
3
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
4
- import { BookRouter } from '../../../../routing/book-routing';
4
+ import { BookRouter } from '../../../../routing/book-router';
5
5
  export declare const BookElementExampleWrapper: import("element-vir").DeclarativeElementDefinition<"book-element-example-wrapper", {
6
6
  elementExampleNode: BookTreeNode<BookEntryTypeEnum.ElementExample>;
7
7
  currentPageControls: BookPageControlsValues;
@@ -1,7 +1,8 @@
1
1
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
2
2
  import { ControlsWrapper } from '../../../../data/book-entry/book-page/controls-wrapper';
3
3
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
4
- import { BookFullRoute, BookRouter } from '../../../../routing/book-routing';
4
+ import { BookRouter } from '../../../../routing/book-router';
5
+ import { BookFullRoute } from '../../../../routing/book-routing';
5
6
  export declare const BookEntryDisplay: import("element-vir").DeclarativeElementDefinition<"book-entry-display", {
6
7
  controls: ControlsWrapper;
7
8
  currentNodes: ReadonlyArray<BookTreeNode>;
@@ -2,7 +2,7 @@ import { HtmlInterpolation } from 'element-vir';
2
2
  import { BookEntryTypeEnum } from '../../../../data/book-entry/book-entry-type';
3
3
  import { ControlsWrapper } from '../../../../data/book-entry/book-page/controls-wrapper';
4
4
  import { BookTreeNode } from '../../../../data/book-tree/book-tree-node';
5
- import { BookRouter } from '../../../../routing/book-routing';
5
+ import { BookRouter } from '../../../../routing/book-router';
6
6
  export declare function createNodeTemplates({ currentNodes, isTopLevel, router, isSearching, controls, originalTree, }: {
7
7
  currentNodes: ReadonlyArray<BookTreeNode>;
8
8
  isTopLevel: boolean;
@@ -1 +1 @@
1
- export declare const ChangeRouteEvent: import("element-vir").DefinedTypedEvent<"element-book-change-route", Partial<Required<Readonly<import("spa-router-vir").FullRoute<import("../../routing/book-routing").ValidBookPaths, Record<string, string> | undefined, undefined>>>>>;
1
+ export declare const ChangeRouteEvent: import("element-vir").DefinedTypedEvent<"element-book-change-route", Partial<Required<Readonly<import("spa-router-vir").FullRoute<import("../../routing/book-routing").ValidBookPaths, undefined, undefined>>>>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "element-book",
3
- "version": "22.1.0",
3
+ "version": "22.1.2",
4
4
  "keywords": [
5
5
  "book",
6
6
  "design system",
@@ -42,16 +42,16 @@
42
42
  "test:watch": "web-test-runner --color --watch --config configs/web-test-runner.config.mjs"
43
43
  },
44
44
  "dependencies": {
45
- "@augment-vir/browser": "^26.3.1",
46
- "@augment-vir/common": "^26.3.1",
45
+ "@augment-vir/browser": "^26.3.3",
46
+ "@augment-vir/common": "^26.3.3",
47
47
  "colorjs.io": "0.5.0",
48
48
  "lit-css-vars": "^3.0.9",
49
- "spa-router-vir": "^3.0.4",
50
- "typed-event-target": "^3.2.1",
51
- "vira": "22.1.0"
49
+ "spa-router-vir": "^4.0.2",
50
+ "typed-event-target": "^3.3.0",
51
+ "vira": "22.1.2"
52
52
  },
53
53
  "devDependencies": {
54
- "@augment-vir/browser-testing": "^26.3.1",
54
+ "@augment-vir/browser-testing": "^26.3.3",
55
55
  "@open-wc/testing": "^4.0.0",
56
56
  "@types/chai": "^4.3.14",
57
57
  "@types/mocha": "^10.0.6",
@@ -66,7 +66,7 @@
66
66
  "run-time-assertions": "^1.2.0",
67
67
  "type-fest": "^4.15.0",
68
68
  "typedoc": "^0.25.13",
69
- "typescript": "5.3.3"
69
+ "typescript": "5.4.5"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "element-vir": ">=17"
@@ -1,2 +0,0 @@
1
- import { BookRouter } from './book-routing';
2
- export declare function createBookRouter(baseRoute: string | undefined): BookRouter;