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 @@
|
|
|
1
|
+
{"version":3,"file":"snice-tooltip.js","sourceRoot":"","sources":["../../../components/tooltip/snice-tooltip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
|
|
2
|
+
export type TooltipTrigger = 'hover' | 'click' | 'focus' | 'manual';
|
|
3
|
+
export interface SniceTooltipElement extends HTMLElement {
|
|
4
|
+
content: string;
|
|
5
|
+
position: TooltipPosition;
|
|
6
|
+
trigger: TooltipTrigger;
|
|
7
|
+
delay: number;
|
|
8
|
+
hideDelay: number;
|
|
9
|
+
offset: number;
|
|
10
|
+
arrow: boolean;
|
|
11
|
+
open: boolean;
|
|
12
|
+
maxWidth: number;
|
|
13
|
+
zIndex: number;
|
|
14
|
+
show(): void;
|
|
15
|
+
hide(): void;
|
|
16
|
+
toggle(): void;
|
|
17
|
+
updatePosition(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snice-tooltip.types.js","sourceRoot":"","sources":["../../../components/tooltip/snice-tooltip.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Transition } from '../src/transitions';
|
|
2
|
+
/**
|
|
3
|
+
* Map of all transitions for components to use
|
|
4
|
+
* This is in components folder to avoid affecting tree-shaking in core library
|
|
5
|
+
*/
|
|
6
|
+
export declare const transitions: Record<string, Transition>;
|
|
7
|
+
/**
|
|
8
|
+
* Perform a transition between two panels that need to stay in the DOM
|
|
9
|
+
* Unlike performTransition, this doesn't add/remove elements
|
|
10
|
+
*/
|
|
11
|
+
export declare function performPanelTransition(oldPanel: HTMLElement, newPanel: HTMLElement, transition?: Transition): Promise<void>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Import all transitions from core
|
|
2
|
+
import { fadeTransition, slideTransition, slideRightTransition, slideUpTransition, slideDownTransition, scaleTransition, rotateTransition, flipTransition, zoomTransition, noneTransition, performTransition } from '../src/transitions';
|
|
3
|
+
/**
|
|
4
|
+
* Map of all transitions for components to use
|
|
5
|
+
* This is in components folder to avoid affecting tree-shaking in core library
|
|
6
|
+
*/
|
|
7
|
+
export const transitions = {
|
|
8
|
+
fade: fadeTransition,
|
|
9
|
+
slide: slideTransition,
|
|
10
|
+
'slide-right': slideRightTransition,
|
|
11
|
+
'slide-up': slideUpTransition,
|
|
12
|
+
'slide-down': slideDownTransition,
|
|
13
|
+
scale: scaleTransition,
|
|
14
|
+
rotate: rotateTransition,
|
|
15
|
+
flip: flipTransition,
|
|
16
|
+
zoom: zoomTransition,
|
|
17
|
+
none: noneTransition
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Perform a transition between two panels that need to stay in the DOM
|
|
21
|
+
* Unlike performTransition, this doesn't add/remove elements
|
|
22
|
+
*/
|
|
23
|
+
export async function performPanelTransition(oldPanel, newPanel, transition = {}) {
|
|
24
|
+
// If panels are the same, just return
|
|
25
|
+
if (oldPanel === newPanel)
|
|
26
|
+
return;
|
|
27
|
+
// Get parent container
|
|
28
|
+
const parent = oldPanel.parentElement;
|
|
29
|
+
if (!parent)
|
|
30
|
+
return;
|
|
31
|
+
// Create temporary container to perform the transition
|
|
32
|
+
const container = document.createElement('div');
|
|
33
|
+
container.style.position = 'relative';
|
|
34
|
+
container.style.width = '100%';
|
|
35
|
+
container.style.overflow = 'hidden';
|
|
36
|
+
// Calculate container height to prevent layout shift
|
|
37
|
+
const oldHeight = oldPanel.offsetHeight;
|
|
38
|
+
container.style.minHeight = `${oldHeight}px`;
|
|
39
|
+
// Clone the panels for transition
|
|
40
|
+
const oldClone = oldPanel.cloneNode(true);
|
|
41
|
+
const newClone = newPanel.cloneNode(true);
|
|
42
|
+
// Insert container before old panel
|
|
43
|
+
parent.insertBefore(container, oldPanel);
|
|
44
|
+
// Add the old clone to the container first
|
|
45
|
+
container.appendChild(oldClone);
|
|
46
|
+
// Hide the original panels during transition
|
|
47
|
+
oldPanel.style.visibility = 'hidden';
|
|
48
|
+
oldPanel.style.position = 'absolute';
|
|
49
|
+
newPanel.hidden = false;
|
|
50
|
+
newPanel.style.visibility = 'hidden';
|
|
51
|
+
newPanel.style.position = 'absolute';
|
|
52
|
+
try {
|
|
53
|
+
// Perform the transition with clones
|
|
54
|
+
// performTransition expects oldClone to already be in container
|
|
55
|
+
await performTransition(container, oldClone, newClone, transition);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('Transition error:', error);
|
|
59
|
+
}
|
|
60
|
+
// Restore original panels
|
|
61
|
+
oldPanel.style.visibility = '';
|
|
62
|
+
oldPanel.style.position = '';
|
|
63
|
+
oldPanel.hidden = true;
|
|
64
|
+
newPanel.style.visibility = '';
|
|
65
|
+
newPanel.style.position = '';
|
|
66
|
+
// Remove temporary container
|
|
67
|
+
container.remove();
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../components/transitions.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,EAEd,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAqB,EACrB,QAAqB,EACrB,aAAyB,EAAE;IAE3B,sCAAsC;IACtC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO;IAElC,uBAAuB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,uDAAuD;IACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACtC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEpC,qDAAqD;IACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;IACxC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;IAE7C,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;IAEzD,oCAAoC;IACpC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAErC,IAAI,CAAC;QACH,qCAAqC;QACrC,gEAAgE;QAChE,MAAM,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC7B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE7B,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
type Maybe<T> = T | null | undefined;
|
|
2
|
+
export interface IController<T extends HTMLElement = HTMLElement> {
|
|
3
|
+
element: Maybe<T>;
|
|
4
|
+
attach(element: T): void | Promise<void>;
|
|
5
|
+
detach(element: T): void | Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export type ControllerClass<T extends HTMLElement = HTMLElement> = new () => IController<T>;
|
|
8
|
+
declare class ControllerScope {
|
|
9
|
+
private cleanupFns;
|
|
10
|
+
private pendingOperations;
|
|
11
|
+
register(key: string, cleanup: Function): void;
|
|
12
|
+
unregister(key: string): void;
|
|
13
|
+
cleanup(): Promise<void>;
|
|
14
|
+
runOperation<T>(operation: () => Promise<T>): Promise<T>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Decorator to register a controller class with a name
|
|
18
|
+
* @param name The name to register the controller under
|
|
19
|
+
*/
|
|
20
|
+
export declare function controller(name: string): <T extends ControllerClass>(constructor: T) => T;
|
|
21
|
+
/**
|
|
22
|
+
* Attaches a controller to an element
|
|
23
|
+
* @param element The element to attach the controller to
|
|
24
|
+
* @param controllerName The name of the controller to attach
|
|
25
|
+
*/
|
|
26
|
+
export declare function attachController(element: HTMLElement, controllerName: string): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Detaches a controller from an element
|
|
29
|
+
* @param element The element to detach the controller from
|
|
30
|
+
*/
|
|
31
|
+
export declare function detachController(element: HTMLElement): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Gets the controller instance attached to an element
|
|
34
|
+
* @param element The element to get the controller from
|
|
35
|
+
* @returns The controller instance or undefined
|
|
36
|
+
*/
|
|
37
|
+
export declare function getController<T extends IController = IController>(element: HTMLElement): T | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Gets the controller scope for an element
|
|
40
|
+
* @param element The element to get the scope from
|
|
41
|
+
* @returns The controller scope or undefined
|
|
42
|
+
*/
|
|
43
|
+
export declare function getControllerScope(element: HTMLElement): ControllerScope | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Enable controller support for native HTML elements
|
|
46
|
+
* This sets up a MutationObserver to watch for controller attributes
|
|
47
|
+
* on non-custom elements (elements without hyphens in their tag names)
|
|
48
|
+
*/
|
|
49
|
+
export declare function useNativeElementControllers(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Stop watching for native element controllers
|
|
52
|
+
*/
|
|
53
|
+
export declare function cleanupNativeElementControllers(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Registers a cleanup function for the current controller
|
|
56
|
+
* @param controller The controller instance
|
|
57
|
+
* @param key A unique key for this cleanup function
|
|
58
|
+
* @param cleanup The cleanup function to register
|
|
59
|
+
*/
|
|
60
|
+
export declare function registerControllerCleanup(controller: IController, key: string, cleanup: Function): void;
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { setupEventHandlers, cleanupEventHandlers } from './events';
|
|
2
|
+
import { setupObservers, cleanupObservers } from './observe';
|
|
3
|
+
import { setupResponseHandlers, cleanupResponseHandlers } from './request-response';
|
|
4
|
+
import { IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, CONTROLLER_KEY, CONTROLLER_NAME_KEY, CONTROLLER_ID, CONTROLLER_OPERATIONS, NATIVE_CONTROLLER, IS_ELEMENT_CLASS, ROUTER_CONTEXT } from './symbols';
|
|
5
|
+
import { snice } from './global';
|
|
6
|
+
// Controller-scoped cleanup registry
|
|
7
|
+
class ControllerScope {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.cleanupFns = new Map();
|
|
10
|
+
this.pendingOperations = new Set();
|
|
11
|
+
}
|
|
12
|
+
register(key, cleanup) {
|
|
13
|
+
this.cleanupFns.set(key, cleanup);
|
|
14
|
+
}
|
|
15
|
+
unregister(key) {
|
|
16
|
+
this.cleanupFns.delete(key);
|
|
17
|
+
}
|
|
18
|
+
async cleanup() {
|
|
19
|
+
// Wait for all pending operations
|
|
20
|
+
await Promise.all(this.pendingOperations);
|
|
21
|
+
// Run all cleanup functions
|
|
22
|
+
for (const cleanup of this.cleanupFns.values()) {
|
|
23
|
+
try {
|
|
24
|
+
await cleanup();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error('Error during cleanup:', error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
this.cleanupFns.clear();
|
|
31
|
+
}
|
|
32
|
+
async runOperation(operation) {
|
|
33
|
+
const promise = operation();
|
|
34
|
+
const voidPromise = promise.then(() => { }, () => { });
|
|
35
|
+
this.pendingOperations.add(voidPromise);
|
|
36
|
+
try {
|
|
37
|
+
const result = await promise;
|
|
38
|
+
this.pendingOperations.delete(voidPromise);
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.pendingOperations.delete(voidPromise);
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Decorator to register a controller class with a name
|
|
49
|
+
* @param name The name to register the controller under
|
|
50
|
+
*/
|
|
51
|
+
export function controller(name) {
|
|
52
|
+
return function (constructor) {
|
|
53
|
+
snice.controllerRegistry.set(name, constructor);
|
|
54
|
+
// Mark as controller class for channel decorator detection
|
|
55
|
+
constructor.prototype[IS_CONTROLLER_CLASS] = true;
|
|
56
|
+
return constructor;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Attaches a controller to an element
|
|
61
|
+
* @param element The element to attach the controller to
|
|
62
|
+
* @param controllerName The name of the controller to attach
|
|
63
|
+
*/
|
|
64
|
+
export async function attachController(element, controllerName) {
|
|
65
|
+
const existingController = element[CONTROLLER_KEY];
|
|
66
|
+
const existingName = element[CONTROLLER_NAME_KEY];
|
|
67
|
+
// For native elements, check if this is actually the desired controller
|
|
68
|
+
const nativeController = element[NATIVE_CONTROLLER];
|
|
69
|
+
if (nativeController !== undefined && nativeController !== controllerName) {
|
|
70
|
+
// This attachment is outdated, skip it
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (existingName === controllerName && existingController) {
|
|
74
|
+
// Already attached and controller exists
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// If there's an existing controller, detach it first
|
|
78
|
+
if (existingController) {
|
|
79
|
+
await detachController(element);
|
|
80
|
+
}
|
|
81
|
+
const ControllerClass = snice.controllerRegistry.get(controllerName);
|
|
82
|
+
if (!ControllerClass) {
|
|
83
|
+
throw new Error(`Controller "${controllerName}" not found in registry`);
|
|
84
|
+
}
|
|
85
|
+
// Create controller instance with unique ID and scope
|
|
86
|
+
const controllerInstance = new ControllerClass();
|
|
87
|
+
snice.controllerIdCounter += 1;
|
|
88
|
+
const controllerId = snice.controllerIdCounter;
|
|
89
|
+
const scope = new ControllerScope();
|
|
90
|
+
// Mark this as a controller instance
|
|
91
|
+
controllerInstance[IS_CONTROLLER_INSTANCE] = true;
|
|
92
|
+
controllerInstance[CONTROLLER_ID] = controllerId;
|
|
93
|
+
controllerInstance.element = element;
|
|
94
|
+
// Pass router context from element to controller if it exists
|
|
95
|
+
const routerContext = element[ROUTER_CONTEXT];
|
|
96
|
+
if (routerContext !== undefined) {
|
|
97
|
+
controllerInstance[ROUTER_CONTEXT] = routerContext;
|
|
98
|
+
}
|
|
99
|
+
// Store references
|
|
100
|
+
element[CONTROLLER_KEY] = controllerInstance;
|
|
101
|
+
element[CONTROLLER_NAME_KEY] = controllerName;
|
|
102
|
+
element[CONTROLLER_OPERATIONS] = scope;
|
|
103
|
+
// Wait for element to be ready (required)
|
|
104
|
+
await element.ready;
|
|
105
|
+
// Run attach in the controller's scope
|
|
106
|
+
await scope.runOperation(async () => {
|
|
107
|
+
await controllerInstance.attach(element);
|
|
108
|
+
});
|
|
109
|
+
// Setup @on event handlers for controller
|
|
110
|
+
setupEventHandlers(controllerInstance, element);
|
|
111
|
+
// Setup @observe observers for controller
|
|
112
|
+
setupObservers(controllerInstance, element);
|
|
113
|
+
// Setup @channel handlers for controller
|
|
114
|
+
setupResponseHandlers(controllerInstance, element);
|
|
115
|
+
element.dispatchEvent(new CustomEvent('@snice/controller-attached', {
|
|
116
|
+
detail: { name: controllerName, controller: controllerInstance }
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Detaches a controller from an element
|
|
121
|
+
* @param element The element to detach the controller from
|
|
122
|
+
*/
|
|
123
|
+
export async function detachController(element) {
|
|
124
|
+
const controllerInstance = element[CONTROLLER_KEY];
|
|
125
|
+
const controllerName = element[CONTROLLER_NAME_KEY];
|
|
126
|
+
const scope = element[CONTROLLER_OPERATIONS];
|
|
127
|
+
if (!controllerInstance) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
// Run detach in the controller's scope
|
|
131
|
+
if (scope) {
|
|
132
|
+
await scope.runOperation(async () => {
|
|
133
|
+
await controllerInstance.detach(element);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
await controllerInstance.detach(element);
|
|
138
|
+
}
|
|
139
|
+
controllerInstance.element = null;
|
|
140
|
+
// Cleanup @on event handlers for controller
|
|
141
|
+
cleanupEventHandlers(controllerInstance);
|
|
142
|
+
// Cleanup @observe observers for controller
|
|
143
|
+
cleanupObservers(controllerInstance);
|
|
144
|
+
// Cleanup @channel handlers for controller
|
|
145
|
+
cleanupResponseHandlers(controllerInstance);
|
|
146
|
+
// Cleanup the controller scope
|
|
147
|
+
if (scope) {
|
|
148
|
+
await scope.cleanup();
|
|
149
|
+
}
|
|
150
|
+
// Clean up router context reference
|
|
151
|
+
delete controllerInstance[ROUTER_CONTEXT];
|
|
152
|
+
delete element[CONTROLLER_KEY];
|
|
153
|
+
delete element[CONTROLLER_NAME_KEY];
|
|
154
|
+
delete element[CONTROLLER_OPERATIONS];
|
|
155
|
+
element.dispatchEvent(new CustomEvent('@snice/controller-detached', {
|
|
156
|
+
detail: { name: controllerName, controller: controllerInstance }
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Gets the controller instance attached to an element
|
|
161
|
+
* @param element The element to get the controller from
|
|
162
|
+
* @returns The controller instance or undefined
|
|
163
|
+
*/
|
|
164
|
+
export function getController(element) {
|
|
165
|
+
return element[CONTROLLER_KEY];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Gets the controller scope for an element
|
|
169
|
+
* @param element The element to get the scope from
|
|
170
|
+
* @returns The controller scope or undefined
|
|
171
|
+
*/
|
|
172
|
+
export function getControllerScope(element) {
|
|
173
|
+
return element[CONTROLLER_OPERATIONS];
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Enable controller support for native HTML elements
|
|
177
|
+
* This sets up a MutationObserver to watch for controller attributes
|
|
178
|
+
* on non-custom elements (elements without hyphens in their tag names)
|
|
179
|
+
*/
|
|
180
|
+
export function useNativeElementControllers() {
|
|
181
|
+
// Return if already initialized
|
|
182
|
+
if (globalThis.sniceNativeControllersInitialized) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
globalThis.sniceNativeControllersInitialized = true;
|
|
186
|
+
// Process elements that already have controller attribute
|
|
187
|
+
function processElement(element) {
|
|
188
|
+
if (!(element instanceof HTMLElement))
|
|
189
|
+
return;
|
|
190
|
+
// Skip custom elements (they handle controllers themselves)
|
|
191
|
+
if (element.tagName.includes('-'))
|
|
192
|
+
return;
|
|
193
|
+
// Skip elements that are @element decorated (they have their own controller handling)
|
|
194
|
+
if (element[IS_ELEMENT_CLASS])
|
|
195
|
+
return;
|
|
196
|
+
const controllerName = element.getAttribute('controller');
|
|
197
|
+
const currentControllerName = element[NATIVE_CONTROLLER];
|
|
198
|
+
if (controllerName && controllerName !== currentControllerName) {
|
|
199
|
+
// Controller added or changed
|
|
200
|
+
element[NATIVE_CONTROLLER] = controllerName;
|
|
201
|
+
// For non-custom elements, we need to add the ready promise
|
|
202
|
+
if (!element.ready) {
|
|
203
|
+
element.ready = Promise.resolve();
|
|
204
|
+
}
|
|
205
|
+
// Detach old controller if exists (don't await - let it run async)
|
|
206
|
+
if (currentControllerName) {
|
|
207
|
+
detachController(element).catch(error => {
|
|
208
|
+
console.error(`Failed to detach old controller from native element:`, error);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
// Attach the new controller
|
|
212
|
+
attachController(element, controllerName).catch(error => {
|
|
213
|
+
console.error(`Failed to attach controller "${controllerName}" to native element:`, error);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else if (!controllerName && currentControllerName) {
|
|
217
|
+
// Controller was removed
|
|
218
|
+
delete element[NATIVE_CONTROLLER];
|
|
219
|
+
// Clear the controller name immediately to allow re-attachment
|
|
220
|
+
delete element[CONTROLLER_NAME_KEY];
|
|
221
|
+
detachController(element).catch(error => {
|
|
222
|
+
console.error(`Failed to detach controller from native element:`, error);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Set up MutationObserver to watch for controller attributes
|
|
227
|
+
const observer = new MutationObserver((mutations) => {
|
|
228
|
+
for (const mutation of mutations) {
|
|
229
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'controller') {
|
|
230
|
+
processElement(mutation.target);
|
|
231
|
+
}
|
|
232
|
+
else if (mutation.type === 'childList') {
|
|
233
|
+
// Process added nodes
|
|
234
|
+
mutation.addedNodes.forEach(node => {
|
|
235
|
+
if (node instanceof HTMLElement) {
|
|
236
|
+
// Process the node itself
|
|
237
|
+
processElement(node);
|
|
238
|
+
// Process all descendants with controller attribute
|
|
239
|
+
node.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
// Start observing when DOM is ready
|
|
246
|
+
if (document.readyState === 'loading') {
|
|
247
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
248
|
+
// Process existing elements (excluding custom elements)
|
|
249
|
+
document.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
|
|
250
|
+
// Start observing
|
|
251
|
+
observer.observe(document.body, {
|
|
252
|
+
attributes: true,
|
|
253
|
+
attributeFilter: ['controller'],
|
|
254
|
+
childList: true,
|
|
255
|
+
subtree: true
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
// DOM already loaded
|
|
261
|
+
document.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
|
|
262
|
+
observer.observe(document.body, {
|
|
263
|
+
attributes: true,
|
|
264
|
+
attributeFilter: ['controller'],
|
|
265
|
+
childList: true,
|
|
266
|
+
subtree: true
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
// Store observer reference for cleanup if needed
|
|
270
|
+
globalThis.sniceNativeControllerObserver = observer;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Stop watching for native element controllers
|
|
274
|
+
*/
|
|
275
|
+
export function cleanupNativeElementControllers() {
|
|
276
|
+
const observer = globalThis.sniceNativeControllerObserver;
|
|
277
|
+
if (observer) {
|
|
278
|
+
observer.disconnect();
|
|
279
|
+
delete globalThis.sniceNativeControllerObserver;
|
|
280
|
+
delete globalThis.sniceNativeControllersInitialized;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Registers a cleanup function for the current controller
|
|
285
|
+
* @param controller The controller instance
|
|
286
|
+
* @param key A unique key for this cleanup function
|
|
287
|
+
* @param cleanup The cleanup function to register
|
|
288
|
+
*/
|
|
289
|
+
export function registerControllerCleanup(controller, key, cleanup) {
|
|
290
|
+
if (!controller.element)
|
|
291
|
+
return;
|
|
292
|
+
const scope = getControllerScope(controller.element);
|
|
293
|
+
if (scope) {
|
|
294
|
+
scope.register(key, cleanup);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies core element functionality to a constructor
|
|
3
|
+
* This is shared between @element and @page decorators
|
|
4
|
+
*/
|
|
5
|
+
export declare function applyElementFunctionality(constructor: any): void;
|
|
6
|
+
export declare function element(tagName: string): (constructor: any) => void;
|
|
7
|
+
export declare function layout(tagName: string): (constructor: any) => void;
|
|
8
|
+
export declare function property(options?: PropertyOptions): (target: any, propertyKey: string) => void;
|
|
9
|
+
export interface QueryOptions {
|
|
10
|
+
light?: boolean;
|
|
11
|
+
shadow?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function query(selector: string, options?: QueryOptions): (target: any, propertyKey: string) => void;
|
|
14
|
+
export declare function queryAll(selector: string, options?: QueryOptions): (target: any, propertyKey: string) => void;
|
|
15
|
+
/**
|
|
16
|
+
* SimpleArray type for arrays that can be safely reflected to attributes
|
|
17
|
+
* Supports arrays of: string, number, boolean
|
|
18
|
+
* Uses full-width comma (,) as separator to avoid conflicts
|
|
19
|
+
* Strings cannot contain the full-width comma character
|
|
20
|
+
*/
|
|
21
|
+
export declare class SimpleArray {
|
|
22
|
+
static readonly SEPARATOR = "\uFF0C";
|
|
23
|
+
/**
|
|
24
|
+
* Serialize array to string for attribute storage
|
|
25
|
+
*/
|
|
26
|
+
static serialize(arr: (string | number | boolean)[]): string;
|
|
27
|
+
/**
|
|
28
|
+
* Parse string from attribute back to array
|
|
29
|
+
*/
|
|
30
|
+
static parse(str: string | null): (string | number | boolean)[];
|
|
31
|
+
}
|
|
32
|
+
export interface PropertyOptions {
|
|
33
|
+
type?: StringConstructor | NumberConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | DateConstructor | BigIntConstructor | typeof SimpleArray;
|
|
34
|
+
reflect?: boolean;
|
|
35
|
+
attribute?: string | boolean;
|
|
36
|
+
converter?: PropertyConverter;
|
|
37
|
+
hasChanged?: (value: any, oldValue: any) => boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface PropertyConverter {
|
|
40
|
+
fromAttribute?(value: string | null, type?: any): any;
|
|
41
|
+
toAttribute?(value: any, type?: any): string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Interface for Snice elements with all the framework-provided properties and methods
|
|
45
|
+
*/
|
|
46
|
+
export interface SniceElement extends HTMLElement {
|
|
47
|
+
ready: Promise<void>;
|
|
48
|
+
html?(): string | Promise<string>;
|
|
49
|
+
css?(): string | string[] | Promise<string | string[]>;
|
|
50
|
+
}
|
|
51
|
+
export interface PartOptions {
|
|
52
|
+
throttle?: number;
|
|
53
|
+
debounce?: number;
|
|
54
|
+
}
|
|
55
|
+
export declare function watch(...propertyNames: string[]): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
56
|
+
/**
|
|
57
|
+
* Decorator that injects router context into a property
|
|
58
|
+
* The context is automatically provided to page components by the router
|
|
59
|
+
*/
|
|
60
|
+
export declare function context(): (target: any, propertyKey: string) => void;
|
|
61
|
+
/**
|
|
62
|
+
* Decorator for methods that should run when element is ready
|
|
63
|
+
* Runs after shadow DOM, controller attachment, and event setup
|
|
64
|
+
* Supports async methods
|
|
65
|
+
*/
|
|
66
|
+
export declare function ready(): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
67
|
+
/**
|
|
68
|
+
* Decorator for methods that should run when element is being disposed
|
|
69
|
+
* Used for cleanup tasks when element is removed from DOM
|
|
70
|
+
*/
|
|
71
|
+
export declare function dispose(): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
72
|
+
/**
|
|
73
|
+
* Decorator for methods that render specific parts of the template
|
|
74
|
+
* Parts are identified by the 'part' attribute in the HTML template
|
|
75
|
+
* When the decorated method is called, it automatically re-renders its part
|
|
76
|
+
*/
|
|
77
|
+
export declare function part(partName: string, options?: PartOptions): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|