snice 1.13.2 → 1.13.4
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/bin/templates/base/README.md +1 -1
- package/dist/components/accordion/snice-accordion-item.d.ts +25 -0
- package/dist/components/accordion/snice-accordion-item.js +260 -0
- package/dist/components/accordion/snice-accordion-item.js.map +1 -0
- package/dist/components/accordion/snice-accordion.d.ts +28 -0
- package/dist/components/accordion/snice-accordion.js +221 -0
- package/dist/components/accordion/snice-accordion.js.map +1 -0
- package/dist/components/accordion/snice-accordion.types.d.ts +29 -0
- package/dist/components/accordion/snice-accordion.types.js +2 -0
- package/dist/components/accordion/snice-accordion.types.js.map +1 -0
- package/dist/components/alert/snice-alert.d.ts +26 -0
- package/dist/components/alert/snice-alert.js +191 -0
- package/dist/components/alert/snice-alert.js.map +1 -0
- package/dist/components/alert/snice-alert.types.d.ts +11 -0
- package/dist/components/alert/snice-alert.types.js +2 -0
- package/dist/components/alert/snice-alert.types.js.map +1 -0
- package/dist/components/avatar/snice-avatar.d.ts +24 -0
- package/dist/components/avatar/snice-avatar.js +177 -0
- package/dist/components/avatar/snice-avatar.js.map +1 -0
- package/dist/components/avatar/snice-avatar.types.d.ts +12 -0
- package/dist/components/avatar/snice-avatar.types.js +2 -0
- package/dist/components/avatar/snice-avatar.types.js.map +1 -0
- package/dist/components/badge/snice-badge.d.ts +25 -0
- package/dist/components/badge/snice-badge.js +157 -0
- package/dist/components/badge/snice-badge.js.map +1 -0
- package/dist/components/badge/snice-badge.types.d.ts +15 -0
- package/dist/components/badge/snice-badge.types.js +2 -0
- package/dist/components/badge/snice-badge.types.js.map +1 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +27 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.js +212 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.types.d.ts +23 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.types.js +2 -0
- package/dist/components/breadcrumbs/snice-breadcrumbs.types.js.map +1 -0
- package/dist/components/breadcrumbs/snice-crumb.d.ts +9 -0
- package/dist/components/breadcrumbs/snice-crumb.js +50 -0
- package/dist/components/breadcrumbs/snice-crumb.js.map +1 -0
- package/dist/components/button/snice-button.d.ts +32 -0
- package/dist/components/button/snice-button.js +212 -0
- package/dist/components/button/snice-button.js.map +1 -0
- package/dist/components/button/snice-button.types.d.ts +23 -0
- package/dist/components/button/snice-button.types.js +2 -0
- package/dist/components/button/snice-button.types.js.map +1 -0
- package/dist/components/card/snice-card.d.ts +19 -0
- package/dist/components/card/snice-card.js +132 -0
- package/dist/components/card/snice-card.js.map +1 -0
- package/dist/components/card/snice-card.types.d.ts +9 -0
- package/dist/components/card/snice-card.types.js +2 -0
- package/dist/components/card/snice-card.types.js.map +1 -0
- package/dist/components/checkbox/snice-checkbox.d.ts +34 -0
- package/dist/components/checkbox/snice-checkbox.js +289 -0
- package/dist/components/checkbox/snice-checkbox.js.map +1 -0
- package/dist/components/checkbox/snice-checkbox.types.d.ts +20 -0
- package/dist/components/checkbox/snice-checkbox.types.js +2 -0
- package/dist/components/checkbox/snice-checkbox.types.js.map +1 -0
- package/dist/components/chip/snice-chip.d.ts +28 -0
- package/dist/components/chip/snice-chip.js +203 -0
- package/dist/components/chip/snice-chip.js.map +1 -0
- package/dist/components/chip/snice-chip.types.d.ts +14 -0
- package/dist/components/chip/snice-chip.types.js +2 -0
- package/dist/components/chip/snice-chip.types.js.map +1 -0
- package/dist/components/date-picker/snice-date-picker.d.ts +82 -0
- package/dist/components/date-picker/snice-date-picker.js +880 -0
- package/dist/components/date-picker/snice-date-picker.js.map +1 -0
- package/dist/components/date-picker/snice-date-picker.types.d.ts +71 -0
- package/dist/components/date-picker/snice-date-picker.types.js +2 -0
- package/dist/components/date-picker/snice-date-picker.types.js.map +1 -0
- package/dist/components/divider/snice-divider.d.ts +17 -0
- package/dist/components/divider/snice-divider.js +111 -0
- package/dist/components/divider/snice-divider.js.map +1 -0
- package/dist/components/divider/snice-divider.types.d.ts +14 -0
- package/dist/components/divider/snice-divider.types.js +2 -0
- package/dist/components/divider/snice-divider.types.js.map +1 -0
- package/dist/components/drawer/snice-drawer.d.ts +37 -0
- package/dist/components/drawer/snice-drawer.js +335 -0
- package/dist/components/drawer/snice-drawer.js.map +1 -0
- package/dist/components/drawer/snice-drawer.types.d.ts +16 -0
- package/dist/components/drawer/snice-drawer.types.js +2 -0
- package/dist/components/drawer/snice-drawer.types.js.map +1 -0
- package/dist/components/input/snice-input.d.ts +65 -0
- package/dist/components/input/snice-input.js +603 -0
- package/dist/components/input/snice-input.js.map +1 -0
- package/dist/components/input/snice-input.types.d.ts +53 -0
- package/dist/components/input/snice-input.types.js +2 -0
- package/dist/components/input/snice-input.types.js.map +1 -0
- package/dist/components/layout/snice-layout-blog.d.ts +4 -0
- package/dist/components/layout/snice-layout-blog.js +56 -0
- package/dist/components/layout/snice-layout-blog.js.map +1 -0
- package/dist/components/layout/snice-layout-card.d.ts +6 -0
- package/dist/components/layout/snice-layout-card.js +53 -0
- package/dist/components/layout/snice-layout-card.js.map +1 -0
- package/dist/components/layout/snice-layout-centered.d.ts +5 -0
- package/dist/components/layout/snice-layout-centered.js +38 -0
- package/dist/components/layout/snice-layout-centered.js.map +1 -0
- package/dist/components/layout/snice-layout-dashboard.d.ts +4 -0
- package/dist/components/layout/snice-layout-dashboard.js +53 -0
- package/dist/components/layout/snice-layout-dashboard.js.map +1 -0
- package/dist/components/layout/snice-layout-fullscreen.d.ts +5 -0
- package/dist/components/layout/snice-layout-fullscreen.js +50 -0
- package/dist/components/layout/snice-layout-fullscreen.js.map +1 -0
- package/dist/components/layout/snice-layout-landing.d.ts +4 -0
- package/dist/components/layout/snice-layout-landing.js +55 -0
- package/dist/components/layout/snice-layout-landing.js.map +1 -0
- package/dist/components/layout/snice-layout-minimal.d.ts +4 -0
- package/dist/components/layout/snice-layout-minimal.js +27 -0
- package/dist/components/layout/snice-layout-minimal.js.map +1 -0
- package/dist/components/layout/snice-layout-sidebar.d.ts +5 -0
- package/dist/components/layout/snice-layout-sidebar.js +64 -0
- package/dist/components/layout/snice-layout-sidebar.js.map +1 -0
- package/dist/components/layout/snice-layout-split.d.ts +6 -0
- package/dist/components/layout/snice-layout-split.js +47 -0
- package/dist/components/layout/snice-layout-split.js.map +1 -0
- package/dist/components/layout/snice-layout.d.ts +4 -0
- package/dist/components/layout/snice-layout.js +43 -0
- package/dist/components/layout/snice-layout.js.map +1 -0
- package/dist/components/layout/snice-layout.types.d.ts +3 -0
- package/dist/components/layout/snice-layout.types.js +2 -0
- package/dist/components/layout/snice-layout.types.js.map +1 -0
- package/dist/components/login/snice-login.d.ts +45 -0
- package/dist/components/login/snice-login.js +385 -0
- package/dist/components/login/snice-login.js.map +1 -0
- package/dist/components/login/snice-login.types.d.ts +31 -0
- package/dist/components/login/snice-login.types.js +2 -0
- package/dist/components/login/snice-login.types.js.map +1 -0
- package/dist/components/modal/snice-modal.d.ts +32 -0
- package/dist/components/modal/snice-modal.js +288 -0
- package/dist/components/modal/snice-modal.js.map +1 -0
- package/dist/components/modal/snice-modal.types.d.ts +18 -0
- package/dist/components/modal/snice-modal.types.js +2 -0
- package/dist/components/modal/snice-modal.types.js.map +1 -0
- package/dist/components/pagination/snice-pagination.d.ts +26 -0
- package/dist/components/pagination/snice-pagination.js +373 -0
- package/dist/components/pagination/snice-pagination.js.map +1 -0
- package/dist/components/pagination/snice-pagination.types.d.ts +18 -0
- package/dist/components/pagination/snice-pagination.types.js +2 -0
- package/dist/components/pagination/snice-pagination.types.js.map +1 -0
- package/dist/components/progress/snice-progress.d.ts +35 -0
- package/dist/components/progress/snice-progress.js +295 -0
- package/dist/components/progress/snice-progress.js.map +1 -0
- package/dist/components/progress/snice-progress.types.d.ts +18 -0
- package/dist/components/progress/snice-progress.types.js +2 -0
- package/dist/components/progress/snice-progress.types.js.map +1 -0
- package/dist/components/radio/snice-radio.d.ts +33 -0
- package/dist/components/radio/snice-radio.js +286 -0
- package/dist/components/radio/snice-radio.js.map +1 -0
- package/dist/components/radio/snice-radio.types.d.ts +19 -0
- package/dist/components/radio/snice-radio.types.js +2 -0
- package/dist/components/radio/snice-radio.types.js.map +1 -0
- package/dist/components/select/snice-option.d.ts +17 -0
- package/dist/components/select/snice-option.js +77 -0
- package/dist/components/select/snice-option.js.map +1 -0
- package/dist/components/select/snice-option.types.d.ts +14 -0
- package/dist/components/select/snice-option.types.js +2 -0
- package/dist/components/select/snice-option.types.js.map +1 -0
- package/dist/components/select/snice-select.d.ts +89 -0
- package/dist/components/select/snice-select.js +900 -0
- package/dist/components/select/snice-select.js.map +1 -0
- package/dist/components/select/snice-select.types.d.ts +49 -0
- package/dist/components/select/snice-select.types.js +2 -0
- package/dist/components/select/snice-select.types.js.map +1 -0
- package/dist/components/skeleton/snice-skeleton.d.ts +16 -0
- package/dist/components/skeleton/snice-skeleton.js +159 -0
- package/dist/components/skeleton/snice-skeleton.js.map +1 -0
- package/dist/components/skeleton/snice-skeleton.types.d.ts +10 -0
- package/dist/components/skeleton/snice-skeleton.types.js +2 -0
- package/dist/components/skeleton/snice-skeleton.types.js.map +1 -0
- package/dist/components/switch/snice-switch.d.ts +38 -0
- package/dist/components/switch/snice-switch.js +309 -0
- package/dist/components/switch/snice-switch.js.map +1 -0
- package/dist/components/switch/snice-switch.types.d.ts +21 -0
- package/dist/components/switch/snice-switch.types.js +2 -0
- package/dist/components/switch/snice-switch.types.js.map +1 -0
- package/dist/components/symbols.d.ts +1 -0
- package/dist/components/symbols.js +20 -0
- package/dist/components/symbols.js.map +1 -0
- package/dist/components/table/snice-cell-boolean.d.ts +21 -0
- package/dist/components/table/snice-cell-boolean.js +152 -0
- package/dist/components/table/snice-cell-boolean.js.map +1 -0
- package/dist/components/table/snice-cell-date.d.ts +24 -0
- package/dist/components/table/snice-cell-date.js +240 -0
- package/dist/components/table/snice-cell-date.js.map +1 -0
- package/dist/components/table/snice-cell-duration.d.ts +16 -0
- package/dist/components/table/snice-cell-duration.js +123 -0
- package/dist/components/table/snice-cell-duration.js.map +1 -0
- package/dist/components/table/snice-cell-filesize.d.ts +16 -0
- package/dist/components/table/snice-cell-filesize.js +119 -0
- package/dist/components/table/snice-cell-filesize.js.map +1 -0
- package/dist/components/table/snice-cell-number.d.ts +23 -0
- package/dist/components/table/snice-cell-number.js +202 -0
- package/dist/components/table/snice-cell-number.js.map +1 -0
- package/dist/components/table/snice-cell-progress.d.ts +17 -0
- package/dist/components/table/snice-cell-progress.js +114 -0
- package/dist/components/table/snice-cell-progress.js.map +1 -0
- package/dist/components/table/snice-cell-rating.d.ts +17 -0
- package/dist/components/table/snice-cell-rating.js +113 -0
- package/dist/components/table/snice-cell-rating.js.map +1 -0
- package/dist/components/table/snice-cell-sparkline.d.ts +29 -0
- package/dist/components/table/snice-cell-sparkline.js +290 -0
- package/dist/components/table/snice-cell-sparkline.js.map +1 -0
- package/dist/components/table/snice-cell-text.d.ts +19 -0
- package/dist/components/table/snice-cell-text.js +153 -0
- package/dist/components/table/snice-cell-text.js.map +1 -0
- package/dist/components/table/snice-cell.d.ts +32 -0
- package/dist/components/table/snice-cell.js +451 -0
- package/dist/components/table/snice-cell.js.map +1 -0
- package/dist/components/table/snice-column.d.ts +62 -0
- package/dist/components/table/snice-column.js +440 -0
- package/dist/components/table/snice-column.js.map +1 -0
- package/dist/components/table/snice-header.d.ts +33 -0
- package/dist/components/table/snice-header.js +303 -0
- package/dist/components/table/snice-header.js.map +1 -0
- package/dist/components/table/snice-progress.d.ts +10 -0
- package/dist/components/table/snice-progress.js +91 -0
- package/dist/components/table/snice-progress.js.map +1 -0
- package/dist/components/table/snice-rating.d.ts +9 -0
- package/dist/components/table/snice-rating.js +68 -0
- package/dist/components/table/snice-rating.js.map +1 -0
- package/dist/components/table/snice-row.d.ts +43 -0
- package/dist/components/table/snice-row.js +365 -0
- package/dist/components/table/snice-row.js.map +1 -0
- package/dist/components/table/snice-table.d.ts +69 -0
- package/dist/components/table/snice-table.js +814 -0
- package/dist/components/table/snice-table.js.map +1 -0
- package/dist/components/table/snice-table.types.d.ts +137 -0
- package/dist/components/table/snice-table.types.js +2 -0
- package/dist/components/table/snice-table.types.js.map +1 -0
- package/dist/components/tabs/snice-tab-panel.d.ts +12 -0
- package/dist/components/tabs/snice-tab-panel.js +78 -0
- package/dist/components/tabs/snice-tab-panel.js.map +1 -0
- package/dist/components/tabs/snice-tab.d.ts +13 -0
- package/dist/components/tabs/snice-tab.js +90 -0
- package/dist/components/tabs/snice-tab.js.map +1 -0
- package/dist/components/tabs/snice-tabs.d.ts +34 -0
- package/dist/components/tabs/snice-tabs.js +367 -0
- package/dist/components/tabs/snice-tabs.js.map +1 -0
- package/dist/components/tabs/snice-tabs.types.d.ts +23 -0
- package/dist/components/tabs/snice-tabs.types.js +2 -0
- package/dist/components/tabs/snice-tabs.types.js.map +1 -0
- package/dist/components/toast/snice-toast-container.d.ts +25 -0
- package/dist/components/toast/snice-toast-container.js +251 -0
- package/dist/components/toast/snice-toast-container.js.map +1 -0
- package/dist/components/toast/snice-toast.d.ts +23 -0
- package/dist/components/toast/snice-toast.js +316 -0
- package/dist/components/toast/snice-toast.js.map +1 -0
- package/dist/components/toast/snice-toast.types.d.ts +30 -0
- package/dist/components/toast/snice-toast.types.js +2 -0
- package/dist/components/toast/snice-toast.types.js.map +1 -0
- package/dist/components/tooltip/snice-tooltip.d.ts +50 -0
- package/dist/components/tooltip/snice-tooltip.js +656 -0
- package/dist/components/tooltip/snice-tooltip.js.map +1 -0
- package/dist/components/tooltip/snice-tooltip.types.d.ts +18 -0
- package/dist/components/tooltip/snice-tooltip.types.js +2 -0
- package/dist/components/tooltip/snice-tooltip.types.js.map +1 -0
- package/dist/components/transitions.d.ts +11 -0
- package/dist/components/transitions.js +69 -0
- package/dist/components/transitions.js.map +1 -0
- package/dist/src/controller.d.ts +61 -0
- package/dist/src/controller.js +297 -0
- package/dist/src/controller.js.map +1 -0
- package/dist/src/element.d.ts +77 -0
- package/dist/src/element.js +805 -0
- package/dist/src/element.js.map +1 -0
- package/dist/src/events.d.ts +37 -0
- package/dist/src/events.js +289 -0
- package/dist/src/events.js.map +1 -0
- package/dist/src/global.d.ts +7 -0
- package/dist/src/global.js +23 -0
- package/dist/src/global.js.map +1 -0
- package/{src/index.ts → dist/src/index.d.ts} +1 -1
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/observe.d.ts +26 -0
- package/dist/src/observe.js +329 -0
- package/dist/src/observe.js.map +1 -0
- package/dist/src/request-response.d.ts +46 -0
- package/dist/src/request-response.js +267 -0
- package/dist/src/request-response.js.map +1 -0
- package/dist/src/router.d.ts +87 -0
- package/dist/src/router.js +375 -0
- package/dist/src/router.js.map +1 -0
- package/dist/src/symbols.d.ts +29 -0
- package/{src/symbols.ts → dist/src/symbols.js} +2 -12
- package/dist/src/symbols.js.map +1 -0
- package/dist/src/transitions.d.ts +50 -0
- package/dist/src/transitions.js +199 -0
- package/dist/src/transitions.js.map +1 -0
- package/package.json +6 -8
- package/src/controller.ts +0 -347
- package/src/element.ts +0 -897
- package/src/events.ts +0 -349
- package/src/global.ts +0 -31
- package/src/observe.ts +0 -414
- package/src/request-response.ts +0 -336
- package/src/router.ts +0 -552
- package/src/transitions.ts +0 -264
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Transition } from './transitions';
|
|
2
|
+
/**
|
|
3
|
+
* Route parameters extracted from the URL
|
|
4
|
+
*/
|
|
5
|
+
export type RouteParams = Record<string, string>;
|
|
6
|
+
/**
|
|
7
|
+
* Guard function that determines if navigation is allowed
|
|
8
|
+
* @param context The application context
|
|
9
|
+
* @param params The URL parameters from the route
|
|
10
|
+
*/
|
|
11
|
+
export type Guard<T = any> = (context: T, params: RouteParams) => boolean | Promise<boolean>;
|
|
12
|
+
export interface RouterOptions {
|
|
13
|
+
/**
|
|
14
|
+
* The target element selector where the page element will be instantiated.
|
|
15
|
+
* The router will use this selector to find the target element, clear it, and append the page element to it.
|
|
16
|
+
*/
|
|
17
|
+
target: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to use hash routing or push state routing.
|
|
20
|
+
*/
|
|
21
|
+
type: 'hash' | 'pushstate';
|
|
22
|
+
/**
|
|
23
|
+
* Override for the window object to use for routing, defaults to global.
|
|
24
|
+
*/
|
|
25
|
+
window?: Window;
|
|
26
|
+
/**
|
|
27
|
+
* Override for the document object to use for routing, defaults to global.
|
|
28
|
+
*/
|
|
29
|
+
document?: Document;
|
|
30
|
+
/**
|
|
31
|
+
* Global transition configuration for all pages
|
|
32
|
+
*/
|
|
33
|
+
transition?: Transition;
|
|
34
|
+
/**
|
|
35
|
+
* Optional context object passed to guard functions
|
|
36
|
+
*/
|
|
37
|
+
context?: any;
|
|
38
|
+
/**
|
|
39
|
+
* Default layout element tag name for all pages
|
|
40
|
+
*/
|
|
41
|
+
layout?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface PageOptions {
|
|
44
|
+
/**
|
|
45
|
+
* The tag name of the custom element.
|
|
46
|
+
* @example { tag: 'login-page' }
|
|
47
|
+
* // for <login-page></login-page>
|
|
48
|
+
*/
|
|
49
|
+
tag: string;
|
|
50
|
+
/**
|
|
51
|
+
* The routes that will trigger the page element.
|
|
52
|
+
* @example { routes: ['/login', '/login/:id'] }
|
|
53
|
+
*/
|
|
54
|
+
routes: string[];
|
|
55
|
+
/**
|
|
56
|
+
* Optional per-page transition override
|
|
57
|
+
*/
|
|
58
|
+
transition?: Transition;
|
|
59
|
+
/**
|
|
60
|
+
* Guard functions that must pass for navigation to proceed.
|
|
61
|
+
* Can be a single guard or an array of guards (all must pass).
|
|
62
|
+
*/
|
|
63
|
+
guards?: Guard<any> | Guard<any>[];
|
|
64
|
+
/**
|
|
65
|
+
* Layout element tag name for this page.
|
|
66
|
+
* Use false to explicitly disable layout for this page.
|
|
67
|
+
*/
|
|
68
|
+
layout?: string | false;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Router return type
|
|
72
|
+
*/
|
|
73
|
+
export interface RouterInstance {
|
|
74
|
+
page: (pageOptions: PageOptions) => <C extends {
|
|
75
|
+
new (...args: any[]): HTMLElement;
|
|
76
|
+
}>(constructor: C) => void;
|
|
77
|
+
initialize: () => void;
|
|
78
|
+
navigate: (path: string) => Promise<void>;
|
|
79
|
+
register: (route: string, tag: string, transition?: Transition, guards?: Guard<any> | Guard<any>[]) => void;
|
|
80
|
+
context: any;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates a new router instance.
|
|
84
|
+
* @param {RouterOptions} options - The router configuration options.
|
|
85
|
+
* @returns An object containing the router's API methods.
|
|
86
|
+
*/
|
|
87
|
+
export declare function Router(options: RouterOptions): RouterInstance;
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import Route from 'route-parser';
|
|
2
|
+
import { applyElementFunctionality } from './element';
|
|
3
|
+
import { ROUTER_CONTEXT, CONTEXT_REQUEST_HANDLER, PAGE_TRANSITION, CREATED_AT } from './symbols';
|
|
4
|
+
import { performTransition as performTransitionUtil } from './transitions';
|
|
5
|
+
/**
|
|
6
|
+
* Possible outcomes from route resolution
|
|
7
|
+
*/
|
|
8
|
+
var RouteResult;
|
|
9
|
+
(function (RouteResult) {
|
|
10
|
+
RouteResult["SUCCESS"] = "success";
|
|
11
|
+
RouteResult["GUARDS_FAILED"] = "guards-failed";
|
|
12
|
+
RouteResult["NOT_FOUND"] = "not-found";
|
|
13
|
+
})(RouteResult || (RouteResult = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Creates a new router instance.
|
|
16
|
+
* @param {RouterOptions} options - The router configuration options.
|
|
17
|
+
* @returns An object containing the router's API methods.
|
|
18
|
+
*/
|
|
19
|
+
export function Router(options) {
|
|
20
|
+
const routes = [];
|
|
21
|
+
let is_sorted = false;
|
|
22
|
+
let _404; // the 404 page
|
|
23
|
+
let _403; // the 403 forbidden page
|
|
24
|
+
let home; // the home page
|
|
25
|
+
let currentLayoutName = null; // Track current layout name
|
|
26
|
+
let currentLayoutTimestamp = null; // Track current layout timestamp
|
|
27
|
+
const context = options.context || {}; // Store context for guards
|
|
28
|
+
function getCurrentLayoutElement(target) {
|
|
29
|
+
const noCurrentLayout = !currentLayoutName || !currentLayoutTimestamp;
|
|
30
|
+
if (noCurrentLayout) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const layoutElements = target.querySelectorAll(currentLayoutName);
|
|
34
|
+
for (const element of layoutElements) {
|
|
35
|
+
const hasTimestamp = element[CREATED_AT] === currentLayoutTimestamp;
|
|
36
|
+
if (hasTimestamp) {
|
|
37
|
+
return element;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Decorator function for defining a page with associated routes.
|
|
44
|
+
* @param {PageOptions} pageOptions - The page configuration options.
|
|
45
|
+
* @returns A decorator function to apply to a custom element class.
|
|
46
|
+
*/
|
|
47
|
+
function page(pageOptions) {
|
|
48
|
+
return function (constructor) {
|
|
49
|
+
// Apply all element functionality (properties, queries, watchers, controllers, etc.)
|
|
50
|
+
applyElementFunctionality(constructor);
|
|
51
|
+
// Store transition config on constructor for later use
|
|
52
|
+
constructor[PAGE_TRANSITION] = pageOptions.transition;
|
|
53
|
+
// Extend the connectedCallback to add router-specific functionality
|
|
54
|
+
const elementConnectedCallback = constructor.prototype.connectedCallback;
|
|
55
|
+
constructor.prototype.connectedCallback = function () {
|
|
56
|
+
// Call the element's connectedCallback first
|
|
57
|
+
elementConnectedCallback?.call(this);
|
|
58
|
+
// Setup context request handler for nested elements
|
|
59
|
+
const contextRequestHandler = (event) => {
|
|
60
|
+
// Only respond if this element has context
|
|
61
|
+
if (this[ROUTER_CONTEXT] !== undefined) {
|
|
62
|
+
event.detail.context = this[ROUTER_CONTEXT];
|
|
63
|
+
event.stopPropagation(); // Stop bubbling once context is provided
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
this.addEventListener('@context/request', contextRequestHandler);
|
|
67
|
+
// Store handler for cleanup
|
|
68
|
+
this[CONTEXT_REQUEST_HANDLER] = contextRequestHandler;
|
|
69
|
+
};
|
|
70
|
+
// Extend the disconnectedCallback to clean up router-specific stuff
|
|
71
|
+
const elementDisconnectedCallback = constructor.prototype.disconnectedCallback;
|
|
72
|
+
constructor.prototype.disconnectedCallback = function () {
|
|
73
|
+
// Call element's disconnectedCallback first
|
|
74
|
+
elementDisconnectedCallback?.call(this);
|
|
75
|
+
// Clean up context request handler
|
|
76
|
+
const handler = this[CONTEXT_REQUEST_HANDLER];
|
|
77
|
+
if (handler) {
|
|
78
|
+
this.removeEventListener('@context/request', handler);
|
|
79
|
+
delete this[CONTEXT_REQUEST_HANDLER];
|
|
80
|
+
}
|
|
81
|
+
// Clean up context reference
|
|
82
|
+
delete this[ROUTER_CONTEXT];
|
|
83
|
+
};
|
|
84
|
+
// Define the custom element
|
|
85
|
+
customElements.define(pageOptions.tag, constructor);
|
|
86
|
+
// Register the routes with guards and layout
|
|
87
|
+
pageOptions.routes.forEach(route => register(route, pageOptions.tag, pageOptions.transition, pageOptions.guards, pageOptions.layout));
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Registers a new route with the router.
|
|
92
|
+
* @param {string} route - The route path.
|
|
93
|
+
* @param {string} tag - The custom element tag associated with the route.
|
|
94
|
+
* @example
|
|
95
|
+
* register('/custom-route', 'custom-element');
|
|
96
|
+
*/
|
|
97
|
+
function register(route, tag, transition, guards, layout) {
|
|
98
|
+
routes.push({ route: new Route(route), tag, transition, guards, layout });
|
|
99
|
+
is_sorted = false;
|
|
100
|
+
if (route === '/404') {
|
|
101
|
+
_404 = tag;
|
|
102
|
+
}
|
|
103
|
+
if (route === '/403') {
|
|
104
|
+
_403 = tag;
|
|
105
|
+
}
|
|
106
|
+
if (route === '/') {
|
|
107
|
+
home = tag;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function setupEventListeners() {
|
|
111
|
+
const isHashType = options.type === 'hash';
|
|
112
|
+
const isPushStateType = options.type === 'pushstate';
|
|
113
|
+
if (isHashType) {
|
|
114
|
+
window.addEventListener('hashchange', () => {
|
|
115
|
+
const targetExists = !!document.querySelector(options.target);
|
|
116
|
+
if (!targetExists) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const path = getPath();
|
|
120
|
+
navigate(path);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (isPushStateType) {
|
|
124
|
+
window.addEventListener('popstate', () => {
|
|
125
|
+
const targetExists = !!document.querySelector(options.target);
|
|
126
|
+
if (!targetExists) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const path = getPath();
|
|
130
|
+
navigate(path);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Initializes the router and sets up navigation event listeners.
|
|
136
|
+
* @example
|
|
137
|
+
* initialize();
|
|
138
|
+
*/
|
|
139
|
+
function initialize() {
|
|
140
|
+
const targetExists = !!document.querySelector(options.target);
|
|
141
|
+
if (!targetExists) {
|
|
142
|
+
throw new Error(`Target element not found: ${options.target}`);
|
|
143
|
+
}
|
|
144
|
+
const needsSorting = !is_sorted;
|
|
145
|
+
if (needsSorting) {
|
|
146
|
+
routes.sort((a, b) => b.route.spec.length - a.route.spec.length);
|
|
147
|
+
is_sorted = true;
|
|
148
|
+
}
|
|
149
|
+
setupEventListeners();
|
|
150
|
+
const path = getPath();
|
|
151
|
+
navigate(path);
|
|
152
|
+
}
|
|
153
|
+
function getPath() {
|
|
154
|
+
switch (options.type) {
|
|
155
|
+
case 'hash':
|
|
156
|
+
return window.location.hash.slice(1);
|
|
157
|
+
case 'pushstate':
|
|
158
|
+
return window.location.pathname;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async function renderForbiddenPage(target) {
|
|
162
|
+
let newPageElement;
|
|
163
|
+
const has403Page = !!_403;
|
|
164
|
+
if (has403Page) {
|
|
165
|
+
newPageElement = document.createElement(_403);
|
|
166
|
+
newPageElement[ROUTER_CONTEXT] = context;
|
|
167
|
+
}
|
|
168
|
+
if (!has403Page) {
|
|
169
|
+
const div = document.createElement('div');
|
|
170
|
+
div.className = 'default-403';
|
|
171
|
+
div.innerHTML = /*html*/ `<h1>403</h1><p>Unauthorized</p>`;
|
|
172
|
+
newPageElement = div;
|
|
173
|
+
}
|
|
174
|
+
target.innerHTML = '';
|
|
175
|
+
target.appendChild(newPageElement);
|
|
176
|
+
currentLayoutName = null;
|
|
177
|
+
currentLayoutTimestamp = null;
|
|
178
|
+
}
|
|
179
|
+
async function checkGuards(guards, params, target) {
|
|
180
|
+
const hasGuards = !!guards;
|
|
181
|
+
if (!hasGuards) {
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
const guardsArray = Array.isArray(guards) ? guards : [guards];
|
|
185
|
+
for (const guard of guardsArray) {
|
|
186
|
+
const allowed = await guard(context, params);
|
|
187
|
+
if (!allowed) {
|
|
188
|
+
await renderForbiddenPage(target);
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
function createHomeElement() {
|
|
195
|
+
const newPageElement = document.createElement(home);
|
|
196
|
+
newPageElement[ROUTER_CONTEXT] = context;
|
|
197
|
+
const constructor = customElements.get(home);
|
|
198
|
+
const transition = constructor?.[PAGE_TRANSITION];
|
|
199
|
+
const homeRoute = routes.find(r => r.route.match('/'));
|
|
200
|
+
return { element: newPageElement, transition, layout: homeRoute?.layout };
|
|
201
|
+
}
|
|
202
|
+
function create404Element() {
|
|
203
|
+
const has404Page = !!_404;
|
|
204
|
+
if (has404Page) {
|
|
205
|
+
const newPageElement = document.createElement(_404);
|
|
206
|
+
newPageElement[ROUTER_CONTEXT] = context;
|
|
207
|
+
const constructor = customElements.get(_404);
|
|
208
|
+
const transition = constructor?.[PAGE_TRANSITION];
|
|
209
|
+
return { element: newPageElement, transition, layout: undefined };
|
|
210
|
+
}
|
|
211
|
+
const div = document.createElement('div');
|
|
212
|
+
div.className = 'default-404';
|
|
213
|
+
div.innerHTML = /*html*/ `<h1>404</h1><p>Page not found</p>`;
|
|
214
|
+
return { element: div, transition: undefined, layout: undefined };
|
|
215
|
+
}
|
|
216
|
+
async function resolveRoute(path, target) {
|
|
217
|
+
for (const route of routes) {
|
|
218
|
+
const params = route.route.match(path);
|
|
219
|
+
const isMatch = params !== false;
|
|
220
|
+
if (!isMatch) {
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
const guardsAllowed = await checkGuards(route.guards, params, target);
|
|
224
|
+
if (!guardsAllowed) {
|
|
225
|
+
return { result: RouteResult.GUARDS_FAILED };
|
|
226
|
+
}
|
|
227
|
+
const newPageElement = document.createElement(route.tag);
|
|
228
|
+
newPageElement[ROUTER_CONTEXT] = context;
|
|
229
|
+
const routeParams = params;
|
|
230
|
+
Object.keys(routeParams).forEach(key => newPageElement.setAttribute(key, routeParams[key]));
|
|
231
|
+
return { result: RouteResult.SUCCESS, element: newPageElement, transition: route.transition, layout: route.layout };
|
|
232
|
+
}
|
|
233
|
+
return { result: RouteResult.NOT_FOUND };
|
|
234
|
+
}
|
|
235
|
+
function determineLayout(pageLayout) {
|
|
236
|
+
const isExplicitlyNoLayout = pageLayout === false;
|
|
237
|
+
if (isExplicitlyNoLayout) {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
const hasPageLayout = !!pageLayout;
|
|
241
|
+
if (hasPageLayout) {
|
|
242
|
+
return pageLayout;
|
|
243
|
+
}
|
|
244
|
+
const hasRouterLayout = !!options.layout;
|
|
245
|
+
if (hasRouterLayout) {
|
|
246
|
+
return options.layout;
|
|
247
|
+
}
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
function setupLayout(layoutToUse) {
|
|
251
|
+
const needsNewLayout = layoutToUse !== currentLayoutName;
|
|
252
|
+
if (!needsNewLayout) {
|
|
253
|
+
return { element: null, needsNewLayout: false };
|
|
254
|
+
}
|
|
255
|
+
currentLayoutName = layoutToUse;
|
|
256
|
+
const shouldCreateLayout = !!layoutToUse;
|
|
257
|
+
if (shouldCreateLayout) {
|
|
258
|
+
const timestamp = Date.now();
|
|
259
|
+
currentLayoutTimestamp = timestamp;
|
|
260
|
+
const layoutElement = document.createElement(layoutToUse);
|
|
261
|
+
layoutElement[ROUTER_CONTEXT] = context;
|
|
262
|
+
layoutElement[CREATED_AT] = timestamp;
|
|
263
|
+
return { element: layoutElement, needsNewLayout: true };
|
|
264
|
+
}
|
|
265
|
+
currentLayoutTimestamp = null;
|
|
266
|
+
return { element: null, needsNewLayout: true };
|
|
267
|
+
}
|
|
268
|
+
async function renderWithLayout(target, pageElement, transition, layoutElement, needsNewLayout) {
|
|
269
|
+
const currentLayout = layoutElement || getCurrentLayoutElement(target);
|
|
270
|
+
if (!currentLayout) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const oldPageInLayout = currentLayout.querySelector('[slot="page"]');
|
|
274
|
+
const shouldTransition = !!(transition && oldPageInLayout);
|
|
275
|
+
if (shouldTransition) {
|
|
276
|
+
pageElement.setAttribute('slot', 'page');
|
|
277
|
+
await performTransition(currentLayout, oldPageInLayout, pageElement, transition);
|
|
278
|
+
if (needsNewLayout) {
|
|
279
|
+
target.innerHTML = '';
|
|
280
|
+
target.appendChild(currentLayout);
|
|
281
|
+
}
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const existingPages = currentLayout.querySelectorAll('[slot="page"]');
|
|
285
|
+
existingPages.forEach(page => page.remove());
|
|
286
|
+
pageElement.setAttribute('slot', 'page');
|
|
287
|
+
currentLayout.appendChild(pageElement);
|
|
288
|
+
if (needsNewLayout) {
|
|
289
|
+
target.innerHTML = '';
|
|
290
|
+
target.appendChild(currentLayout);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
async function renderDirect(target, pageElement, transition) {
|
|
294
|
+
const currentElementInTarget = target.children[0];
|
|
295
|
+
const shouldTransition = !!(transition && currentElementInTarget);
|
|
296
|
+
if (shouldTransition) {
|
|
297
|
+
await performTransition(target, currentElementInTarget, pageElement, transition);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
target.innerHTML = '';
|
|
301
|
+
target.appendChild(pageElement);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Navigates to the specified path.
|
|
305
|
+
* @param {string} path - The path to navigate to.
|
|
306
|
+
* @example
|
|
307
|
+
* navigate('/login');
|
|
308
|
+
*/
|
|
309
|
+
async function navigate(path) {
|
|
310
|
+
const target = document.querySelector(options.target);
|
|
311
|
+
if (!target) {
|
|
312
|
+
throw new Error(`Target element not found: ${options.target}`);
|
|
313
|
+
}
|
|
314
|
+
window.scrollTo(0, 0);
|
|
315
|
+
const isHomePath = (path.trim() === '' || path === '/') && !!home;
|
|
316
|
+
if (isHomePath) {
|
|
317
|
+
const homeRoute = routes.find(r => r.route.match('/'));
|
|
318
|
+
const guardsAllowed = await checkGuards(homeRoute?.guards, {}, target);
|
|
319
|
+
if (!guardsAllowed) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const { element, transition, layout } = createHomeElement();
|
|
323
|
+
const layoutToUse = determineLayout(layout);
|
|
324
|
+
const { element: layoutElement, needsNewLayout } = setupLayout(layoutToUse);
|
|
325
|
+
const finalTransition = transition || options.transition;
|
|
326
|
+
const hasLayout = layoutElement !== null || getCurrentLayoutElement(target) !== null;
|
|
327
|
+
if (hasLayout) {
|
|
328
|
+
await renderWithLayout(target, element, finalTransition, layoutElement, needsNewLayout);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
await renderDirect(target, element, finalTransition);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const routeResult = await resolveRoute(path, target);
|
|
335
|
+
const isGuardsFailed = routeResult.result === RouteResult.GUARDS_FAILED;
|
|
336
|
+
if (isGuardsFailed) {
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
const isSuccess = routeResult.result === RouteResult.SUCCESS;
|
|
340
|
+
if (isSuccess) {
|
|
341
|
+
const { element, transition, layout } = routeResult;
|
|
342
|
+
const layoutToUse = determineLayout(layout);
|
|
343
|
+
const { element: layoutElement, needsNewLayout } = setupLayout(layoutToUse);
|
|
344
|
+
const finalTransition = transition || options.transition;
|
|
345
|
+
const hasLayout = layoutElement !== null || getCurrentLayoutElement(target) !== null;
|
|
346
|
+
if (hasLayout) {
|
|
347
|
+
await renderWithLayout(target, element, finalTransition, layoutElement, needsNewLayout);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
await renderDirect(target, element, finalTransition);
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
const { element, transition, layout } = create404Element();
|
|
354
|
+
const layoutToUse = determineLayout(layout);
|
|
355
|
+
const { element: layoutElement, needsNewLayout } = setupLayout(layoutToUse);
|
|
356
|
+
const finalTransition = transition || options.transition;
|
|
357
|
+
const hasLayout = layoutElement !== null || getCurrentLayoutElement(target) !== null;
|
|
358
|
+
if (hasLayout) {
|
|
359
|
+
await renderWithLayout(target, element, finalTransition, layoutElement, needsNewLayout);
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
await renderDirect(target, element, finalTransition);
|
|
363
|
+
}
|
|
364
|
+
async function performTransition(container, oldElement, newElement, transition) {
|
|
365
|
+
return performTransitionUtil(container, oldElement, newElement, transition);
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
page,
|
|
369
|
+
initialize,
|
|
370
|
+
navigate,
|
|
371
|
+
register,
|
|
372
|
+
context,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const IS_CONTROLLER_CLASS: symbol;
|
|
2
|
+
export declare const IS_CONTROLLER_INSTANCE: symbol;
|
|
3
|
+
export declare const IS_ELEMENT_CLASS: symbol;
|
|
4
|
+
export declare const CHANNEL_HANDLERS: symbol;
|
|
5
|
+
export declare const READY_PROMISE: symbol;
|
|
6
|
+
export declare const READY_RESOLVE: symbol;
|
|
7
|
+
export declare const CONTROLLER: symbol;
|
|
8
|
+
export declare const ON_HANDLERS: symbol;
|
|
9
|
+
export declare const CONTROLLER_KEY: symbol;
|
|
10
|
+
export declare const CONTROLLER_NAME_KEY: symbol;
|
|
11
|
+
export declare const CONTROLLER_ID: symbol;
|
|
12
|
+
export declare const CONTROLLER_OPERATIONS: symbol;
|
|
13
|
+
export declare const NATIVE_CONTROLLER: symbol;
|
|
14
|
+
export declare const CLEANUP: symbol;
|
|
15
|
+
export declare const PROPERTIES: symbol;
|
|
16
|
+
export declare const PROPERTY_VALUES: symbol;
|
|
17
|
+
export declare const PROPERTIES_INITIALIZED: symbol;
|
|
18
|
+
export declare const PROPERTY_WATCHERS: symbol;
|
|
19
|
+
export declare const EXPLICITLY_SET_PROPERTIES: symbol;
|
|
20
|
+
export declare const ROUTER_CONTEXT: symbol;
|
|
21
|
+
export declare const CURRENT_PAGE_MARKER: symbol;
|
|
22
|
+
export declare const CONTEXT_REQUEST_HANDLER: symbol;
|
|
23
|
+
export declare const PAGE_TRANSITION: symbol;
|
|
24
|
+
export declare const CREATED_AT: symbol;
|
|
25
|
+
export declare const READY_HANDLERS: symbol;
|
|
26
|
+
export declare const DISPOSE_HANDLERS: symbol;
|
|
27
|
+
export declare const OBSERVERS: symbol;
|
|
28
|
+
export declare const PARTS: symbol;
|
|
29
|
+
export declare const PART_TIMERS: symbol;
|
|
@@ -1,52 +1,42 @@
|
|
|
1
1
|
// Central file for all symbols used in the framework
|
|
2
2
|
// All symbols are stored globally to ensure consistency across modules
|
|
3
|
-
|
|
4
3
|
import { getSymbol } from './global';
|
|
5
|
-
|
|
6
4
|
export const IS_CONTROLLER_CLASS = getSymbol('is-controller-class');
|
|
7
5
|
export const IS_CONTROLLER_INSTANCE = getSymbol('is-controller-instance');
|
|
8
6
|
export const IS_ELEMENT_CLASS = getSymbol('is-element-class');
|
|
9
7
|
export const CHANNEL_HANDLERS = getSymbol('channel-handlers');
|
|
10
|
-
|
|
11
8
|
// Internal element state symbols
|
|
12
9
|
export const READY_PROMISE = getSymbol('ready-promise');
|
|
13
10
|
export const READY_RESOLVE = getSymbol('ready-resolve');
|
|
14
11
|
export const CONTROLLER = getSymbol('controller');
|
|
15
|
-
|
|
16
12
|
// Event handler symbols
|
|
17
13
|
export const ON_HANDLERS = getSymbol('on-handlers');
|
|
18
|
-
|
|
19
14
|
// Controller symbols
|
|
20
15
|
export const CONTROLLER_KEY = getSymbol('controller-key');
|
|
21
16
|
export const CONTROLLER_NAME_KEY = getSymbol('controller-name');
|
|
22
17
|
export const CONTROLLER_ID = getSymbol('controller-id');
|
|
23
18
|
export const CONTROLLER_OPERATIONS = getSymbol('controller-operations');
|
|
24
19
|
export const NATIVE_CONTROLLER = getSymbol('native-controller');
|
|
25
|
-
|
|
26
20
|
// Cleanup symbol - holds an object with all cleanup arrays
|
|
27
21
|
export const CLEANUP = getSymbol('cleanup');
|
|
28
|
-
|
|
29
22
|
// Property symbols
|
|
30
23
|
export const PROPERTIES = getSymbol('properties');
|
|
31
24
|
export const PROPERTY_VALUES = getSymbol('property-values');
|
|
32
25
|
export const PROPERTIES_INITIALIZED = getSymbol('properties-initialized');
|
|
33
26
|
export const PROPERTY_WATCHERS = getSymbol('property-watchers');
|
|
34
27
|
export const EXPLICITLY_SET_PROPERTIES = getSymbol('explicitly-set-properties');
|
|
35
|
-
|
|
36
28
|
// Router context symbol
|
|
37
29
|
export const ROUTER_CONTEXT = getSymbol('router-context');
|
|
38
30
|
export const CURRENT_PAGE_MARKER = getSymbol('current-page-marker');
|
|
39
31
|
export const CONTEXT_REQUEST_HANDLER = getSymbol('context-request-handler');
|
|
40
32
|
export const PAGE_TRANSITION = getSymbol('page-transition');
|
|
41
33
|
export const CREATED_AT = getSymbol('created-at');
|
|
42
|
-
|
|
43
34
|
// Lifecycle symbols
|
|
44
35
|
export const READY_HANDLERS = getSymbol('ready-handlers');
|
|
45
36
|
export const DISPOSE_HANDLERS = getSymbol('dispose-handlers');
|
|
46
|
-
|
|
47
37
|
// Observer symbols
|
|
48
38
|
export const OBSERVERS = getSymbol('observers');
|
|
49
|
-
|
|
50
39
|
// Part symbols
|
|
51
40
|
export const PARTS = getSymbol('parts');
|
|
52
|
-
export const PART_TIMERS = getSymbol('part-timers');
|
|
41
|
+
export const PART_TIMERS = getSymbol('part-timers');
|
|
42
|
+
//# sourceMappingURL=symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/symbols.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,uEAAuE;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAE9D,iCAAiC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAElD,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;AAEpD,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAEhE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAE5C,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC,2BAA2B,CAAC,CAAC;AAEhF,wBAAwB;AACxB,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAElD,oBAAoB;AACpB,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAE9D,mBAAmB;AACnB,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAEhD,eAAe;AACf,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic transition system for animating between elements
|
|
3
|
+
*/
|
|
4
|
+
export interface Transition {
|
|
5
|
+
/**
|
|
6
|
+
* Name of the transition (for identification)
|
|
7
|
+
*/
|
|
8
|
+
name?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Duration of the out transition in ms
|
|
11
|
+
*/
|
|
12
|
+
outDuration?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Duration of the in transition in ms
|
|
15
|
+
*/
|
|
16
|
+
inDuration?: number;
|
|
17
|
+
/**
|
|
18
|
+
* CSS properties for the out transition (as string)
|
|
19
|
+
* Example: 'opacity: 0; transform: scale(0.9)'
|
|
20
|
+
*/
|
|
21
|
+
out?: string;
|
|
22
|
+
/**
|
|
23
|
+
* CSS properties for the in transition (as string)
|
|
24
|
+
* Example: 'opacity: 1; transform: scale(1)'
|
|
25
|
+
*/
|
|
26
|
+
in?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Transition mode:
|
|
29
|
+
* - 'sequential': out transition completes before in transition starts
|
|
30
|
+
* - 'simultaneous': both transitions happen at the same time
|
|
31
|
+
*/
|
|
32
|
+
mode?: 'sequential' | 'simultaneous';
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Perform a transition between two elements
|
|
36
|
+
*/
|
|
37
|
+
export declare function performTransition(container: Element, oldElement: HTMLElement, newElement: HTMLElement, transition?: Transition): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Predefined transitions
|
|
40
|
+
*/
|
|
41
|
+
export declare const fadeTransition: Transition;
|
|
42
|
+
export declare const slideTransition: Transition;
|
|
43
|
+
export declare const slideRightTransition: Transition;
|
|
44
|
+
export declare const slideUpTransition: Transition;
|
|
45
|
+
export declare const slideDownTransition: Transition;
|
|
46
|
+
export declare const scaleTransition: Transition;
|
|
47
|
+
export declare const rotateTransition: Transition;
|
|
48
|
+
export declare const flipTransition: Transition;
|
|
49
|
+
export declare const zoomTransition: Transition;
|
|
50
|
+
export declare const noneTransition: Transition;
|