snice 4.36.1 → 4.36.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.
- package/README.md +1 -1
- package/adapters/react/SniceProvider.js +1 -1
- package/adapters/react/SniceRouter.js +1 -1
- package/adapters/react/matchRoute.js +1 -1
- package/adapters/react/useRequestHandler.js +1 -1
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.min.js +1 -1
- package/dist/cdn/action-bar/snice-action-bar.js +1 -1
- package/dist/cdn/action-bar/snice-action-bar.min.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
- package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
- package/dist/cdn/alert/snice-alert.js +1 -1
- package/dist/cdn/alert/snice-alert.min.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
- package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
- package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
- package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
- package/dist/cdn/availability/snice-availability.js +1 -1
- package/dist/cdn/availability/snice-availability.min.js +1 -1
- package/dist/cdn/avatar/snice-avatar.js +1 -1
- package/dist/cdn/avatar/snice-avatar.min.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
- package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
- package/dist/cdn/badge/snice-badge.js +1 -1
- package/dist/cdn/badge/snice-badge.min.js +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.min.js +1 -1
- package/dist/cdn/binpack/snice-binpack.js +1 -1
- package/dist/cdn/binpack/snice-binpack.min.js +1 -1
- package/dist/cdn/book/snice-book.js +1 -1
- package/dist/cdn/book/snice-book.min.js +1 -1
- package/dist/cdn/booking/snice-booking.js +1 -1
- package/dist/cdn/booking/snice-booking.min.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
- package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
- package/dist/cdn/button/snice-button.js +1 -1
- package/dist/cdn/button/snice-button.min.js +1 -1
- package/dist/cdn/calendar/snice-calendar.js +1 -1
- package/dist/cdn/calendar/snice-calendar.min.js +1 -1
- package/dist/cdn/camera/snice-camera.js +1 -1
- package/dist/cdn/camera/snice-camera.min.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
- package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.js +1 -1
- package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
- package/dist/cdn/card/snice-card.js +1 -1
- package/dist/cdn/card/snice-card.min.js +1 -1
- package/dist/cdn/carousel/snice-carousel.js +1 -1
- package/dist/cdn/carousel/snice-carousel.min.js +1 -1
- package/dist/cdn/cart/snice-cart.js +1 -1
- package/dist/cdn/cart/snice-cart.min.js +1 -1
- package/dist/cdn/chart/snice-chart.js +1 -1
- package/dist/cdn/chart/snice-chart.min.js +1 -1
- package/dist/cdn/chat/snice-chat.js +1 -1
- package/dist/cdn/chat/snice-chat.min.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.js +1 -1
- package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
- package/dist/cdn/chip/snice-chip.js +1 -1
- package/dist/cdn/chip/snice-chip.min.js +1 -1
- package/dist/cdn/code-block/snice-code-block.js +1 -1
- package/dist/cdn/code-block/snice-code-block.min.js +1 -1
- package/dist/cdn/color-display/snice-color-display.js +1 -1
- package/dist/cdn/color-display/snice-color-display.min.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.js +1 -1
- package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.js +1 -1
- package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
- package/dist/cdn/comments/snice-comments.js +1 -1
- package/dist/cdn/comments/snice-comments.min.js +1 -1
- package/dist/cdn/countdown/snice-countdown.js +1 -1
- package/dist/cdn/countdown/snice-countdown.min.js +1 -1
- package/dist/cdn/cropper/snice-cropper.js +1 -1
- package/dist/cdn/cropper/snice-cropper.min.js +1 -1
- package/dist/cdn/data-card/snice-data-card.js +1 -1
- package/dist/cdn/data-card/snice-data-card.min.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.js +1 -1
- package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
- package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
- package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
- package/dist/cdn/diff/snice-diff.js +1 -1
- package/dist/cdn/diff/snice-diff.min.js +1 -1
- package/dist/cdn/divider/snice-divider.js +1 -1
- package/dist/cdn/divider/snice-divider.min.js +1 -1
- package/dist/cdn/doc/snice-doc.js +1 -1
- package/dist/cdn/doc/snice-doc.min.js +1 -1
- package/dist/cdn/draw/snice-draw.js +1 -1
- package/dist/cdn/draw/snice-draw.min.js +1 -1
- package/dist/cdn/drawer/snice-drawer.js +1 -1
- package/dist/cdn/drawer/snice-drawer.min.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.js +1 -1
- package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
- package/dist/cdn/estimate/snice-estimate.js +1 -1
- package/dist/cdn/estimate/snice-estimate.min.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
- package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.js +1 -1
- package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.js +1 -1
- package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
- package/dist/cdn/flow/snice-flow.js +1 -1
- package/dist/cdn/flow/snice-flow.min.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.js +1 -1
- package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
- package/dist/cdn/funnel/snice-funnel.js +1 -1
- package/dist/cdn/funnel/snice-funnel.min.js +1 -1
- package/dist/cdn/gantt/snice-gantt.js +1 -1
- package/dist/cdn/gantt/snice-gantt.min.js +1 -1
- package/dist/cdn/gauge/snice-gauge.js +1 -1
- package/dist/cdn/gauge/snice-gauge.min.js +1 -1
- package/dist/cdn/grid/snice-grid.js +1 -1
- package/dist/cdn/grid/snice-grid.min.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.js +1 -1
- package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
- package/dist/cdn/image/snice-image.js +1 -1
- package/dist/cdn/image/snice-image.min.js +1 -1
- package/dist/cdn/input/snice-input.js +1 -1
- package/dist/cdn/input/snice-input.min.js +1 -1
- package/dist/cdn/invoice/snice-invoice.js +1 -1
- package/dist/cdn/invoice/snice-invoice.min.js +1 -1
- package/dist/cdn/kanban/snice-kanban.js +1 -1
- package/dist/cdn/kanban/snice-kanban.min.js +1 -1
- package/dist/cdn/key-value/snice-key-value.js +1 -1
- package/dist/cdn/key-value/snice-key-value.min.js +1 -1
- package/dist/cdn/kpi/snice-kpi.js +1 -1
- package/dist/cdn/kpi/snice-kpi.min.js +1 -1
- package/dist/cdn/layout/snice-layout.js +1 -1
- package/dist/cdn/layout/snice-layout.min.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
- package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
- package/dist/cdn/link/snice-link.js +1 -1
- package/dist/cdn/link/snice-link.min.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.js +1 -1
- package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
- package/dist/cdn/list/snice-list.js +1 -1
- package/dist/cdn/list/snice-list.min.js +1 -1
- package/dist/cdn/location/snice-location.js +1 -1
- package/dist/cdn/location/snice-location.min.js +1 -1
- package/dist/cdn/login/snice-login.js +1 -1
- package/dist/cdn/login/snice-login.min.js +1 -1
- package/dist/cdn/map/snice-map.js +1 -1
- package/dist/cdn/map/snice-map.min.js +1 -1
- package/dist/cdn/markdown/snice-markdown.js +1 -1
- package/dist/cdn/markdown/snice-markdown.min.js +1 -1
- package/dist/cdn/masonry/snice-masonry.js +1 -1
- package/dist/cdn/masonry/snice-masonry.min.js +1 -1
- package/dist/cdn/menu/snice-menu.js +1 -1
- package/dist/cdn/menu/snice-menu.min.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.js +1 -1
- package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.js +1 -1
- package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
- package/dist/cdn/modal/snice-modal.js +1 -1
- package/dist/cdn/modal/snice-modal.min.js +1 -1
- package/dist/cdn/music-player/snice-music-player.js +1 -1
- package/dist/cdn/music-player/snice-music-player.min.js +1 -1
- package/dist/cdn/nav/snice-nav.js +1 -1
- package/dist/cdn/nav/snice-nav.min.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.js +1 -1
- package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.js +1 -1
- package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
- package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.js +1 -1
- package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
- package/dist/cdn/pagination/snice-pagination.js +1 -1
- package/dist/cdn/pagination/snice-pagination.min.js +1 -1
- package/dist/cdn/paint/snice-paint.js +1 -1
- package/dist/cdn/paint/snice-paint.min.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
- package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
- package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
- package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
- package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
- package/dist/cdn/product-card/snice-product-card.js +1 -1
- package/dist/cdn/product-card/snice-product-card.min.js +1 -1
- package/dist/cdn/progress/snice-progress.js +1 -1
- package/dist/cdn/progress/snice-progress.min.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
- package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.js +1 -1
- package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
- package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
- package/dist/cdn/radio/snice-radio.js +1 -1
- package/dist/cdn/radio/snice-radio.min.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.js +1 -1
- package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
- package/dist/cdn/rating/snice-rating.js +1 -1
- package/dist/cdn/rating/snice-rating.min.js +1 -1
- package/dist/cdn/receipt/snice-receipt.js +1 -1
- package/dist/cdn/receipt/snice-receipt.min.js +1 -1
- package/dist/cdn/recipe/snice-recipe.js +1 -1
- package/dist/cdn/recipe/snice-recipe.min.js +1 -1
- package/dist/cdn/runtime/README.md +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.js +9 -4
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +5 -5
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +9 -4
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +5 -5
- package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
- package/dist/cdn/sankey/snice-sankey.js +1 -1
- package/dist/cdn/sankey/snice-sankey.min.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
- package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
- package/dist/cdn/select/snice-select.js +1 -1
- package/dist/cdn/select/snice-select.min.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.js +1 -1
- package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
- package/dist/cdn/slider/snice-slider.js +1 -1
- package/dist/cdn/slider/snice-slider.min.js +1 -1
- package/dist/cdn/sortable/snice-sortable.js +1 -1
- package/dist/cdn/sortable/snice-sortable.min.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.js +1 -1
- package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
- package/dist/cdn/spinner/snice-spinner.js +1 -1
- package/dist/cdn/spinner/snice-spinner.min.js +1 -1
- package/dist/cdn/split-button/snice-split-button.js +1 -1
- package/dist/cdn/split-button/snice-split-button.min.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.js +1 -1
- package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.js +1 -1
- package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
- package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.js +1 -1
- package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
- package/dist/cdn/step-input/snice-step-input.js +1 -1
- package/dist/cdn/step-input/snice-step-input.min.js +1 -1
- package/dist/cdn/stepper/snice-stepper.js +1 -1
- package/dist/cdn/stepper/snice-stepper.min.js +1 -1
- package/dist/cdn/switch/snice-switch.js +1 -1
- package/dist/cdn/switch/snice-switch.min.js +1 -1
- package/dist/cdn/table/snice-table.js +1 -1
- package/dist/cdn/table/snice-table.min.js +1 -1
- package/dist/cdn/tabs/snice-tabs.js +1 -1
- package/dist/cdn/tabs/snice-tabs.min.js +1 -1
- package/dist/cdn/tag/snice-tag.js +1 -1
- package/dist/cdn/tag/snice-tag.min.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.js +1 -1
- package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
- package/dist/cdn/terminal/snice-terminal.js +1 -1
- package/dist/cdn/terminal/snice-terminal.min.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.js +1 -1
- package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
- package/dist/cdn/textarea/snice-textarea.js +1 -1
- package/dist/cdn/textarea/snice-textarea.min.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.js +1 -1
- package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
- package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
- package/dist/cdn/timeline/snice-timeline.js +1 -1
- package/dist/cdn/timeline/snice-timeline.min.js +1 -1
- package/dist/cdn/timer/snice-timer.js +1 -1
- package/dist/cdn/timer/snice-timer.min.js +1 -1
- package/dist/cdn/toast/snice-toast.js +1 -1
- package/dist/cdn/toast/snice-toast.min.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.js +1 -1
- package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
- package/dist/cdn/tree/snice-tree.js +1 -1
- package/dist/cdn/tree/snice-tree.min.js +1 -1
- package/dist/cdn/treemap/snice-treemap.js +1 -1
- package/dist/cdn/treemap/snice-treemap.min.js +1 -1
- package/dist/cdn/user-card/snice-user-card.js +1 -1
- package/dist/cdn/user-card/snice-user-card.min.js +1 -1
- package/dist/cdn/video-player/snice-video-player.js +1 -1
- package/dist/cdn/video-player/snice-video-player.min.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
- package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.js +1 -1
- package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
- package/dist/cdn/weather/snice-weather.js +1 -1
- package/dist/cdn/weather/snice-weather.min.js +1 -1
- package/dist/cdn/work-order/snice-work-order.js +1 -1
- package/dist/cdn/work-order/snice-work-order.min.js +1 -1
- package/dist/index.cjs +6 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +6 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +6 -1
- package/dist/index.iife.js.map +1 -1
- package/dist/react/SniceProvider.js +1 -1
- package/dist/react/SniceRouter.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/matchRoute.js +1 -1
- package/dist/react/useRequestHandler.js +1 -1
- package/dist/symbols.cjs +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.cjs +1 -1
- package/dist/transitions.esm.js +1 -1
- package/docs/STORYBOOK.md +1 -0
- package/docs/code-block.md +1 -0
- package/docs/controllers.md +1 -0
- package/docs/elements.md +1 -0
- package/docs/events.md +1 -0
- package/docs/fetcher.md +1 -0
- package/docs/observe.md +1 -0
- package/docs/placards.md +1 -0
- package/docs/request-response.md +1 -0
- package/docs/routing.md +1 -0
- package/package.json +1 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.36.
|
|
2
|
+
* snice v4.36.2
|
|
3
3
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
4
4
|
* (c) 2024
|
|
5
5
|
* Released under the MIT License.
|
|
6
6
|
*/
|
|
7
7
|
/*!
|
|
8
|
-
* snice v4.36.
|
|
8
|
+
* snice v4.36.1
|
|
9
9
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
10
10
|
* (c) 2024
|
|
11
11
|
* Released under the MIT License.
|
|
12
12
|
*/
|
|
13
|
-
globalThis.snice||(globalThis.snice={controllerRegistry:new Map,controllerIdCounter:0});const t=globalThis.snice;function e(t){return Symbol.for(`snice:${t}`)}const n=e("is-controller-class"),o=e("is-controller-instance"),r=e("is-element-class"),s=e("channel-handlers"),i=e("ready-promise"),a=e("ready-resolve"),c=e("controller"),l=e("initialized"),u=e("controller-key"),h=e("controller-name"),d=e("controller-id"),m=e("controller-operations"),f=e("native-controller"),p=e("cleanup"),y=e("properties"),g=e("property-values"),b=e("pre-init-property-values"),v=e("properties-initialized"),w=e("property-watchers"),N=e("explicitly-set-properties"),S=e("router-context"),T=e("page-transition"),_=e("created-at"),E=e("ready-handlers"),A=e("dispose-handlers"),x=e("moved-handlers"),C=e("adopted-handlers"),O=e("observers"),M=e("setting-from-property"),k=e("moved-timers"),L=e("adopted-timers"),I=e("dispatch-timers"),P=e("render-method"),$=e("render-options"),R=e("render-instance"),D=e("render-timers"),F=e("render-callbacks"),q=e("styles-method"),B=e("styles-applied"),j=e("parent-styles-methods"),V=e("context-handler"),U=e("navigation-context-instance"),z=e("registered-elements"),H=e("is-updating"),W=e("context-register"),K=e("context-unregister"),G=e("context-notify-element"),Q=e("context-timer"),J=e("context-called"),X=e("context-update");class Y{static{this.SEPARATOR=","}static serialize(t){return Array.isArray(t)?t.map(t=>{if("string"==typeof t){if(t.includes(Y.SEPARATOR))throw new Error(`SimpleArray strings cannot contain the character "${Y.SEPARATOR}" (U+FF0C)`);return t}if("number"==typeof t||"boolean"==typeof t)return String(t);throw new Error("SimpleArray only supports string, number, and boolean types. Got: "+typeof t)}).join(Y.SEPARATOR):""}static parse(t){return null==t||""===t?[]:t.split(Y.SEPARATOR).map(t=>{if(/^-?\d+\.?\d*$/.test(t)){const e=Number(t);if(!isNaN(e))return e}return"true"===t||"false"!==t&&t})}}var Z,tt,et;const nt=Symbol.for("snice:registered-elements-set");let ot=0;class rt{constructor(t={},e=[],n="",o={},r){if(this[Z]=new WeakMap,this[tt]=new Set,this[et]=!1,this.id=ot++,this.application=t,this.navigation={placards:e,route:n,params:o},r&&"function"==typeof r.create)this.fetch=r.create(this);else{if("function"!=typeof fetch)throw new Error("No fetch implementation available");this.fetch=fetch.bind(this)}}[(Z=z,tt=nt,et=H,W)](t,e){this[z].set(t,e),this[nt].add(t)}[K](t){this[z].delete(t),this[nt].delete(t)}[X](t,e,n,o){this.application=t,this.navigation.placards=e,this.navigation.route=n,this.navigation.params=o,this.notify()}update(){this.notify()}notify(){if(this[H])return;this[H]=!0;const t=this[nt],e=this[z];for(const n of t){const t=e.get(n);if(t&&"function"==typeof n[t])try{n[t](this)}catch(e){console.error(`Error calling @context method ${t}:`,e)}}this[H]=!1}[G](t){const e=this[z].get(t);e&&"function"==typeof t[e]&&t[e](this)}}function st(t){if(null!=t)return"string"==typeof t?String:"number"==typeof t?Number:"boolean"==typeof t?Boolean:t instanceof Date?Date:"bigint"==typeof t?BigInt:Array.isArray(t)?Array:void 0}function it(t,e,n,o){switch(e.type||st(o)){case Boolean:return null!==t&&"false"!==t;case Number:return null!==t?Number(t):null;case String:return t;case Date:return t?new Date(t):null;case BigInt:return t&&t.endsWith("n")?BigInt(t.slice(0,-1)):t?BigInt(t):null;case Y:return Y.parse(t);case Array:try{return t?JSON.parse(t):[]}catch{return[]}case Object:try{return t?JSON.parse(t):{}}catch{return{}}default:return"number"==typeof n&&null!==t?Number(t):t}}function at(t,e){return"string"==typeof t.attribute?t.attribute:e.toLowerCase()}function ct(t,e){return t[e]||(t[e]=new Set),t[e]}function lt(t,e){return t[e]||(t[e]={}),t[e]}function ut(t,e,n,o,r){const s=e[w];if(s){if(s.has(n))for(const e of s.get(n))try{e.method.call(t,o,r,n)}catch(t){console.error(`Error in @watch('${n}') method ${e.methodName}:`,t)}if(s.has("*"))for(const e of s.get("*"))try{e.method.call(t,o,r,n)}catch(t){console.error(`Error in @watch('*') method ${e.methodName}:`,t)}}}function ht(t,e){let n=null;return function(...o){null!==n&&clearTimeout(n),n=setTimeout(()=>{t.apply(this,o),n=null},e)}}function dt(t,e){let n=0,o=null;return function(...r){const s=Date.now(),i=e-(s-n);if(i<=0)return o&&(clearTimeout(o),o=null),n=s,t.apply(this,r);o||(o=setTimeout(()=>{n=Date.now(),o=null,t.apply(this,r)},i))}}const mt=new Map;function ft(t,e,n){let o,r;return"string"==typeof e?(o=e,r=n):(o=void 0,r=e),function(e,n){const s=n.name;n.addInitializer(function(){const n=this.constructor;if(n.__observeMethods||(n.__observeMethods=new Set),n.__observeMethods.has(e))return;n.__observeMethods.add(e),n[O]||(n[O]=[]);const i=Array.isArray(t)?t:[t];for(const t of i){const[i,...a]=t.split(":"),c=a.join(":");n[O].push({type:i,target:c,selector:o,methodName:s,method:e,options:r})}})}}function pt(t,e){const n=t.constructor[O];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].observers||(t[p].observers=[]):t[p]={events:[],channels:[],observers:[]};for(const o of n){const n=o.method.bind(t),r=o.options?.throttle?dt(n,o.options.throttle):n;switch(o.type){case"intersection":yt(t,e,o,r);break;case"resize":gt(t,e,o,r);break;case"media":bt(t,e,o,r);break;case"mutation":vt(t,e,o,r);break;default:console.warn(`Unknown observer type: ${o.type}`)}}}}function yt(t,e,n,o){const r={threshold:n.options?.threshold??0,rootMargin:n.options?.rootMargin??"0px",root:n.options?.root??null};if("undefined"==typeof IntersectionObserver)return void console.warn("IntersectionObserver is not available in this environment");const s=new IntersectionObserver(t=>{for(const e of t)try{!1===o(e)&&s&&s.unobserve(e.target)}catch(t){console.error(`Error in intersection observer ${n.methodName}:`,t)}},r),i=n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):[e];i.forEach(t=>s.observe(t)),t[p].observers.push(()=>{i.forEach(t=>s.unobserve(t)),0===s.takeRecords().length&&s.disconnect()})}function gt(t,e,n,o){const r=n.options?.box||"content-box";if("undefined"==typeof ResizeObserver)return void console.warn("ResizeObserver is not available in this environment");const s=new ResizeObserver(t=>{for(const e of t)try{o(e)}catch(t){console.error(`Error in resize observer ${n.methodName}:`,t)}});(n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):[e]).forEach(t=>{s.observe(t,{box:r})}),t[p].observers.push(()=>{s.disconnect()})}function bt(t,e,n,o){const r=n.target;if(!r)return void console.warn("Media query observer requires a query string");let s=mt.get(r);if(!s)try{s=window.matchMedia(r),mt.set(r,s)}catch(t){return void console.error(`Invalid media query: ${r}`,t)}const i=t=>{try{o(t.matches)}catch(t){console.error(`Error in media query observer ${n.methodName}:`,t)}};i(s);const a=t=>i(t);s.addEventListener?(s.addEventListener("change",a),t[p].observers.push(()=>{s.removeEventListener("change",a)})):(s.addListener(a),t[p].observers.push(()=>{s.removeListener(a)}))}function vt(t,e,n,r){const s=n.target.split(":"),i=s[0]||"childList",a=s[1],c={};switch(i){case"childList":c.childList=!0;break;case"attributes":c.attributes=!0,a&&(c.attributeFilter=[a]);break;default:return void console.warn(`Unknown mutation type: ${i}`)}n.options?.subtree&&(c.subtree=!0,n.options.maxDepth&&console.warn("maxDepth is set but requires custom implementation"));const l=!(!n.options?.maxDepth||!n.options.subtree),u=new MutationObserver(t=>{try{if(!l)return void r(t);const o=n.options.maxDepth,s=e.shadowRoot||e,i=t.filter(t=>{let e=0,n=t.target;for(;n&&n!==s&&e<o;)n=n.parentNode,e++;return e<o});i.length>0&&r(i)}catch(t){console.error(`Error in mutation observer ${n.methodName}:`,t)}}),h=!0===t[o];(n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):h&&e.shadowRoot?[e.shadowRoot]:[e]).forEach(t=>{u.observe(t,c)}),t[p].observers.push(()=>{u.disconnect()})}function wt(t){if(t[p]?.observers){for(const e of t[p].observers)e();t[p].observers=[]}}function Nt(t,e){return function(n,r){let s,i,a=0;return async function(...r){const c=async()=>{const s=e?.timeout??12e4,i=e?.discoveryTimeout??50,a=n.apply(this,r),{value:c,done:l}=await a.next();if(l)return c;let u,h;const d=new Promise((t,e)=>{u=t,h=e});let m,f,p;const y=new Promise((e,n)=>{m=e,f=n,p=setTimeout(()=>{n(new Error(`Request "${t}" timed out after ${i}ms - no handler found`))},i)}),g=new CustomEvent(`@request/${t}`,{bubbles:void 0===e?.bubbles||e.bubbles,cancelable:e?.cancelable||!1,composed:!0,detail:{payload:c,discovery:{resolve:()=>{clearTimeout(p),m()},reject:f},data:{resolve:u,reject:h}}});(!0===this[o]&&this.element?this.element:this).dispatchEvent(g);try{await y;const e=setTimeout(()=>{h(new Error(`Request "${t}" timed out after ${s}ms`))},s),n=await d;clearTimeout(e);const{value:o}=await a.next(n);return o}catch(t){try{await a.throw(t)}catch(t){throw t}}};if(e?.debounce)return new Promise((t,n)=>{clearTimeout(s),s=setTimeout(async()=>{try{t(await c())}catch(t){n(t)}},e.debounce)});if(!e?.throttle)return c();const l=Date.now(),u=e.throttle-(l-a);return u<=0?(clearTimeout(i),a=l,c()):i?Promise.resolve():new Promise((t,e)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{t(await c())}catch(t){e(t)}},u)})}}}function St(t,e){return function(n,o){const r=o.name;o.addInitializer(function(){const o=this.constructor;o.__respondMethods||(o.__respondMethods=new Set),o.__respondMethods.has(n)||(o.__respondMethods.add(n),o[s]||(o[s]=[]),o[s].push({channelName:t,methodName:r,method:n,options:e}))})}}function Tt(t,e){const n=t.constructor[s];if(n){t[p]||(t[p]={events:[],channels:[]});for(const o of n){const n=o.method.bind(t),r=`@request/${o.channelName}`;let s,i,a=0;const c=(t=>o.options?.debounce?(...e)=>new Promise((n,r)=>{clearTimeout(s),s=setTimeout(async()=>{try{n(await t(...e))}catch(t){r(t)}},o.options.debounce)}):o.options?.throttle?(...e)=>{const n=Date.now(),r=o.options.throttle-(n-a);return r<=0?(clearTimeout(i),a=n,t(...e)):i?Promise.resolve(void 0):new Promise((n,o)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{n(await t(...e))}catch(t){o(t)}},r)})}:t)(n),l=t=>{const{data:e,discovery:n,payload:r}=t.detail;t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),n.resolve(),Promise.resolve(c(r)).then(t=>{e.resolve(t)}).catch(t=>{e.reject(t),console.error(`Error in response handler ${o.methodName}:`,t)})};e.addEventListener(r,l),t[p].channels.push(()=>{e.removeEventListener(r,l)})}}}function _t(t){if(t[p]?.channels){for(const e of t[p].channels)e();t[p].channels=[]}}const Et=Symbol.for("snice:html-result"),At=Symbol.for("snice:css-result");function xt(t,...e){return{_$litType$:Et,strings:t,values:e}}function Ct(t,...e){let n=t[0];for(let o=0;o<e.length;o++)n+=String(e[o])+t[o+1];const o={_$litType$:At,cssText:n};if("undefined"!=typeof CSSStyleSheet&&"adoptedStyleSheets"in Document.prototype)try{const t=new CSSStyleSheet;t.replaceSync(n),o.styleSheet=t}catch(t){}return o}function Ot(t){return t&&t._$litType$===Et}function Mt(t){return t&&t._$litType$===At}const kt=Symbol.for("snice:nothing"),Lt=Symbol.for("snice:unsafe-html");function It(t){return{_$litType$:Lt,html:t}}const Pt=`snice$${Math.random().toFixed(9).slice(2)}$`,$t="?"+Pt,Rt=`<${$t}>`,Dt=new RegExp(Pt,"g"),Ft=new WeakMap,qt=Symbol("not-committed"),Bt=Symbol.for("snice:no-change"),jt=t=>null===t||"object"!=typeof t&&"function"!=typeof t;class Vt{constructor(t,e,n){this.parts=[],this.element=e;const o=document.createTreeWalker(e.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT);let r=0;const s=[];let i;for(;null!==(i=o.nextNode());)if(i.nodeType===Node.ELEMENT_NODE){const t=i,e=t.tagName.toLowerCase();if("if"===e){const e=t.getAttribute("value");e&&e.includes(Pt)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-if",index:r++,element:t}));continue}if("case"===e){const e=t.getAttribute("value");e&&e.includes(Pt)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-case",index:r++,element:t}));continue}if(t.hasAttributes()){const e=t.attributes,o=[];for(let s=0;s<e.length;s++){const i=e[s],a=i.value;if(a.includes(Pt)){o.push(i);const e=n[r]||i.name,s=a.split(Pt),c=s.length-1;e.startsWith("@@")||e.startsWith("@")?(this.parts.push({type:"event",index:r,name:e.slice(1),element:t}),r+=1):e.startsWith(".")?(this.parts.push({type:"property",index:r,name:e.slice(1),element:t}),r+=1):e.startsWith("?")?(this.parts.push({type:"boolean-attribute",index:r,name:e.slice(1),element:t}),r+=1):(this.parts.push({type:"attribute",index:r,name:i.name,element:t,attrStrings:s}),r+=c)}}for(const e of o)t.removeAttribute(e.name)}}else if(i.nodeType===Node.COMMENT_NODE){const t=i;if(t.data===$t){const e=t.parentNode,n=document.createComment("");e.insertBefore(n,t.nextSibling),this.parts.push({type:"node",index:r++,startNode:t,endNode:n})}}else if(i.nodeType===Node.TEXT_NODE){const t=i,e=t.data;if(e.includes(Pt)){const n=t.parentNode,o=e.split(Dt),i=o.length-1;for(let e=0;e<i;e++){n.insertBefore(document.createTextNode(o[e]),t);const s=document.createComment(""),i=document.createComment("");n.insertBefore(s,t),n.insertBefore(i,t),this.parts.push({type:"node",index:r++,startNode:s,endNode:i})}""!==o[i]?t.data=o[i]:s.push(t)}}for(const t of s)t.parentNode?.removeChild(t)}}class Ut{constructor(t){this.parts=[],this.fragment=null,this.conditionalParts=[],this.regularParts=[],this.template=function(t){const{strings:e}=t,n=Ft.get(e);if(n)return n;const o=[],r=[];let s=!1,i=!1,a="",c="";for(let t=0;t<e.length;t++){const n=e[t];if(o.push(n),t<e.length-1){for(let t=0;t<n.length;t++){const e=n[t];if(s){if(i)e===a&&(i=!1,a="");else if(">"===e)s=!1;else if('"'===e||"'"===e)i=!0,a=e;else if("="===e){let e=t-1;for(;e>=0&&/[\w\-\.@\?]/.test(n[e]);)e--;c=n.substring(e+1,t).trim()}}else"<"===e&&(s=!0)}if(i)r.push(c),o.push(Pt);else if(s){const t=n.trimEnd();if(t.endsWith("=")){let e=t.length-2;for(;e>=0&&/[\w\-\.@\?\/]/.test(t[e]);)e--;c=t.substring(e+1,t.length-1).trim(),r.push(c),o.push(Pt)}else n.match(/<(if|case)\s*$/)?(c="value",r.push("value"),o.push(`value="${Pt}"`)):(r.push(""),o.push(Pt))}else r.push(""),o.push(Rt)}}const l=o.join(""),u=document.createElement("template");u.innerHTML=l;const h=new Vt(t,u,r);return Ft.set(e,h),h}(t),this.strings=t.strings}isSameTemplate(t){return this.strings===t}renderFragment(){if(!this.fragment){this.fragment=this.template.element.content.cloneNode(!0);const t=document.createTreeWalker(this.template.element.content,NodeFilter.SHOW_ALL),e=document.createTreeWalker(this.fragment,NodeFilter.SHOW_ALL),n=new Map;let o=t.currentNode,r=e.currentNode;for(;o&&r;)n.set(o,r),o=t.nextNode(),r=e.nextNode();for(let t=0;t<this.template.parts.length;t++){const e=this.template.parts[t];let o;switch(e.type){case"node":const t=n.get(e.startNode),r=n.get(e.endNode);o=new Ht(t,r);break;case"attribute":const s=n.get(e.element);o=new Wt(s,e.name,e.attrStrings);break;case"property":const i=n.get(e.element);o=new Kt(i,e.name);break;case"boolean-attribute":const a=n.get(e.element);o=new Gt(a,e.name);break;case"event":const c=n.get(e.element);o=new Qt(c,e.name);break;case"conditional-if":const l=n.get(e.element);o=new te(l);break;case"conditional-case":const u=n.get(e.element);o=new ee(u);break;default:throw new Error(`Unknown part type: ${e.type}`)}this.parts.push(o),o instanceof te||o instanceof ee?this.conditionalParts.push({part:o,index:e.index}):this.regularParts.push({part:o,index:e.index})}}return this.fragment}render(t){const e=this.renderFragment();return this.update(t),e}update(t){for(const{part:e,index:n}of this.conditionalParts)e.commit(t[n]);for(const{part:e,index:n}of this.regularParts)e instanceof Wt&&void 0!==e.strings?e.commit(t,n):e.commit(t[n])}clear(){for(const t of this.parts)t.clear()}}class zt{}class Ht extends zt{constructor(t,e){super(),this._committedValue=qt,this.startNode=t,this.endNode=e}commit(t){if(t!==Bt)return t===kt||null==t||""===t?(this._committedValue!==kt&&this._clear(),void(this._committedValue=kt)):void(jt(t)?t!==this._committedValue&&this._commitText(t):Ot(t)?this._commitTemplateResult(t):!function(t){return t&&t._$litType$===Lt}(t)?void 0===t.nodeType?(t=>Array.isArray(t)||"function"==typeof t?.[Symbol.iterator])(t)?this._commitIterable(t):this._commitText(t):this._commitNode(t):this._commitUnsafeHTML(t))}_commitText(t){if(this._committedValue!==qt&&this._committedValue!==kt&&jt(this._committedValue)&&!Array.isArray(this._committedValue)){const e=this.startNode.nextSibling;if(e&&e.nodeType===Node.TEXT_NODE)return e.data=String(t),void(this._committedValue=t)}this._clear(),this._insertBefore(document.createTextNode(String(t))),this._committedValue=t}_commitTemplateResult(t){const e=this._committedValue;if(e instanceof Ut){const n=Ft.get(t.strings);if(n&&e.template===n)return void e.update(t.values)}this._clear();const n=new Ut(t),o=n.renderFragment();this._insertBefore(o),n.update(t.values),this._committedValue=n}_commitIterable(t){Array.isArray(this._committedValue)&&this._committedValue[0]instanceof Ht||(this._clear(),this._committedValue=[]);const e=this._committedValue;let n=0;for(const o of t){let t;if(n>=e.length){const n=document.createComment(""),o=document.createComment("");this._insertBefore(n),this._insertBefore(o),t=new Ht(n,o),e.push(t)}else t=e[n];t.commit(o),n++}if(n<e.length){for(let t=n;t<e.length;t++){const n=e[t];n._clear(),n.startNode.remove(),n.endNode.remove()}e.length=n}}_commitNode(t){this._committedValue!==t&&(this._clear(),this._insertBefore(t),this._committedValue=t)}_commitUnsafeHTML(t){this._clear();const e=document.createElement("template");e.innerHTML=t.html,this._insertBefore(e.content),this._committedValue=t}_insertBefore(t){this.endNode.parentNode?.insertBefore(t,this.endNode)}_clear(){const t=this.startNode.parentNode;if(!t)return;let e=this.startNode.nextSibling;for(;e&&e!==this.endNode;){const n=e.nextSibling;t.removeChild(e),e=n}this._committedValue=kt}clear(){this._clear()}}class Wt extends zt{constructor(t,e,n){super(),this._committedValue=qt,this.element=t,this.name=e,n&&(n.length>2||""!==n[0]||""!==n[1])?(this._committedValue=new Array(n.length-1).fill(qt),this.strings=n):this._committedValue=qt}commit(t,e=0){let n,o=!1;if(void 0===this.strings){if(t===Bt)return;if(o=!jt(t)||t!==this._committedValue&&t!==Bt,!o)return;this._committedValue=t,n=t}else{const r=t,s=this._committedValue;n=this.strings[0];for(let t=0;t<this.strings.length-1;t++){let i=r[e+t];i===Bt&&(i=s[t]),o=o||!jt(i)||i!==s[t],i===kt?n=kt:n!==kt&&(n=n+(i??"")+this.strings[t+1]),s[t]=i}if(!o)return}this._commitValue(n)}_commitValue(t){t===kt||null==t?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,String(t))}clear(){this.element.removeAttribute(this.name)}}class Kt extends zt{constructor(t,e){super(),this._committedValue=qt,this.element=t,this.name=e}commit(t){t!==Bt&&t!==this._committedValue&&(this._committedValue=t,this.element[this.name]=t===kt?void 0:t)}clear(){this.element[this.name]=void 0,this._committedValue=qt}}class Gt extends zt{constructor(t,e){super(),this._committedValue=qt,this.element=t,this.name=e}commit(t){if(t===Bt)return;const e=!!t&&t!==kt;e!==this._committedValue&&(this._committedValue=e,e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name))}clear(){this.element.removeAttribute(this.name),this._committedValue=qt}}class Qt extends zt{constructor(t,e){super(),this.listener=null,this.value=void 0,this.keyFilter=null,this.host=null,this.element=t;const n=["keydown","keyup","keypress"].includes(e.split(".")[0].split(":")[0]),o=e.indexOf("."),r=n?e.indexOf(":"):-1,s=o>0&&r>0?Math.min(o,r):Math.max(o,r);if(s>0){const t=e.substring(0,s),n=e.substring(s+1);this.eventName=t,this.keyFilter=Jt(n)}else this.eventName=e}commit(t){if(t===Bt)return;if(t===kt&&(t=null),t===this.value&&null!=t)return;if(this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null),this.value=t,null==t)return;if("function"!=typeof t)return;if(!this.host){const t=this.element.getRootNode();this.host=t.host||null}const e=this.host||null,n=this.keyFilter;this.listener=o=>{n&&!Yt(o,n)||t.call(e,o)},this.element.addEventListener(this.eventName,this.listener)}clear(){this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null)}}function Jt(t){const e=t.startsWith("~");e&&(t=t.substring(1));const n=t.split("+"),o={key:"",anyModifiers:e};for(const t of n){const e=t.toLowerCase();"ctrl"===e||"control"===e?o.ctrl=!0:"alt"===e?o.alt=!0:"shift"===e?o.shift=!0:"meta"===e||"cmd"===e||"command"===e?o.meta=!0:o.key=Xt(t)}return o}function Xt(t){return{esc:"Escape",escape:"Escape",enter:"Enter",return:"Enter",space:" ",spacebar:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",arrowup:"ArrowUp",arrowdown:"ArrowDown",arrowleft:"ArrowLeft",arrowright:"ArrowRight",delete:"Delete",del:"Delete",backspace:"Backspace",tab:"Tab",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"}[t.toLowerCase()]||t}function Yt(t,e){if(t.key!==e.key)return!1;if(e.anyModifiers)return!0;const n=e.ctrl?t.ctrlKey:!t.ctrlKey,o=e.alt?t.altKey:!t.altKey,r=e.shift?t.shiftKey:!t.shiftKey,s=e.meta?t.metaKey:!t.metaKey;return n&&o&&r&&s}const Zt=Symbol("not-set");class te extends zt{constructor(t){super(),this.value=Zt,this.childFragment=null;const e=t.parentNode;for(this.startNode=document.createComment("if"),this.endNode=document.createComment("/if"),e.insertBefore(this.startNode,t),e.insertBefore(this.endNode,t.nextSibling);t.firstChild;)e.insertBefore(t.firstChild,this.endNode);e.removeChild(t)}commit(t){const e=Boolean(t);if(this.value!==t)if(this.value=t,e)this.childFragment&&this.childFragment.hasChildNodes()&&this.startNode.parentNode.insertBefore(this.childFragment,this.endNode);else{this.childFragment||(this.childFragment=document.createDocumentFragment());let t=this.startNode.nextSibling;for(;t&&t!==this.endNode;){const e=t.nextSibling;this.childFragment.appendChild(t),t=e}}}clear(){this.childFragment||(this.childFragment=document.createDocumentFragment());let t=this.startNode.nextSibling;for(;t&&t!==this.endNode;){const e=t.nextSibling;this.childFragment.appendChild(t),t=e}}}class ee extends zt{constructor(t){super(),this.value=Zt,this.branches=new Map,this.defaultBranch=null,this.currentKey=null;const e=t.parentNode;this.startNode=document.createComment("case"),this.endNode=document.createComment("/case"),e.insertBefore(this.startNode,t),e.insertBefore(this.endNode,t.nextSibling);for(const e of Array.from(t.children)){const t=e.tagName.toLowerCase();if("when"===t){const t=e.getAttribute("value")||"",n=document.createDocumentFragment();for(;e.firstChild;)n.appendChild(e.firstChild);this.branches.set(t,n)}else if("default"===t)for(this.defaultBranch=document.createDocumentFragment();e.firstChild;)this.defaultBranch.appendChild(e.firstChild)}e.removeChild(t)}commit(t){if(this.value===t)return;this.value=t;const e=String(t);this._collectCurrent();const n=this.branches.has(e),o=n?this.branches.get(e):this.defaultBranch;this.currentKey=n?e:this.defaultBranch?"__default__":null,o&&o.hasChildNodes()&&this.startNode.parentNode.insertBefore(o,this.endNode)}_collectCurrent(){if(null===this.currentKey)return;const t="__default__"===this.currentKey?this.defaultBranch:this.branches.get(this.currentKey);if(!t)return;let e=this.startNode.nextSibling;for(;e&&e!==this.endNode;){const n=e.nextSibling;t.appendChild(e),e=n}}clear(){this._collectCurrent(),this.currentKey=null}}const ne=e("on-handlers");function oe(t,e,n){let o=null,r={};return"string"==typeof e?(o=e,r=n||{}):e&&"object"==typeof e?r=e:null===e&&n&&(r=n),function(e,n){const s=n.name;return n.addInitializer(function(){const n=this.constructor;if(n.__onMethods||(n.__onMethods=new Set),n.__onMethods.has(e))return;n.__onMethods.add(e),n[ne]||(n[ne]=[]);const i=Array.isArray(t)?t:[t];for(const t of i)n[ne].push({eventName:t,selector:o,methodName:s,method:e,options:r})}),e}}function re(t,e){let n=0;return function(...o){const r=Date.now();r-n>=e&&(n=r,t.apply(this,o))}}const se=new Set(["scroll","focus","blur","load","unload","error","resize","abort","mouseenter","mouseleave","pointerenter","pointerleave"]);function ie(t,e){const n=t.constructor[ne];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].events?t[p].events.length>0&&ae(t):t[p].events=[]:t[p]={events:[],channels:[],observers:[]};for(const o of n){const n=t[o.methodName];let r=n?n.bind(t):o.method.bind(t);const s=o.options||{},i=["keydown","keyup","keypress"].includes(o.eventName.split(".")[0].split(":")[0]),a=o.eventName.indexOf("."),c=i?o.eventName.indexOf(":"):-1,l=a>0&&c>0?Math.min(a,c):Math.max(a,c),u=l>0?o.eventName.substring(0,l):o.eventName,h=l>0?o.eventName.substring(l+1):null;s.debounce&&s.debounce>0?r=ht(r,s.debounce):s.throttle&&s.throttle>0&&(r=re(r,s.throttle));let d=null;h&&["keydown","keyup","keypress"].includes(u)&&(d=Jt(h));const m=(t=>d?e=>{Yt(e,d)&&t(e)}:t)(r);if(o.selector){const n=e.shadowRoot||e,r=t=>{const e=t.target;if(e.matches&&e.matches(o.selector)&&e||e.closest&&e.closest(o.selector)||null){s.preventDefault&&t.preventDefault(),s.stopPropagation&&(t.stopPropagation(),t.stopImmediatePropagation());try{m(t)}catch(t){console.error(`Error in event handler ${o.methodName}:`,t)}}},i=se.has(u),a={capture:void 0!==s.capture?s.capture:i,once:s.once||!1,passive:s.passive||!1};n.addEventListener(u,r,a),t[p].events.push({target:n,eventName:u,handler:r,options:a})}else{const n=e.shadowRoot,r=Symbol.for(`snice:event-handled:${o.methodName}`),i=t=>{if(!t[r]){t[r]=!0,s.preventDefault&&t.preventDefault(),s.stopPropagation&&t.stopPropagation();try{m(t)}catch(t){console.error(`Error in event handler ${o.methodName}:`,t)}}},a={capture:s.capture||!1,once:s.once||!1,passive:s.passive||!1};n&&(n.addEventListener(u,i,a),t[p].events.push({target:n,eventName:u,handler:i,options:a})),e.addEventListener(u,i,a),t[p].events.push({target:e,eventName:u,handler:i,options:a})}}}}function ae(t){if(t[p]?.events){for(const{target:e,eventName:n,handler:o,options:r}of t[p].events)e.removeEventListener(n,o,r);t[p].events=[]}}class ce{constructor(){this.cleanupFns=new Map,this.pendingOperations=new Set}register(t,e){this.cleanupFns.set(t,e)}unregister(t){this.cleanupFns.delete(t)}async cleanup(){await Promise.all(this.pendingOperations);for(const t of this.cleanupFns.values())try{await t()}catch(t){console.error("Error during cleanup:",t)}this.cleanupFns.clear()}async runOperation(t){const e=t(),n=e.then(()=>{},()=>{});this.pendingOperations.add(n);try{const t=await e;return this.pendingOperations.delete(n),t}catch(t){throw this.pendingOperations.delete(n),t}}}function le(t){return function(e,o){const r=globalThis.snice?.controllerRegistry;if(!r)throw new Error("Snice global registry not initialized");return r.set(t,e),e.prototype[n]=!0,e}}async function ue(e,n){const r=e[u],s=e[h],i=e[f];if(void 0!==i&&i!==n)return;if(s===n&&r)return;r&&await he(e);const a=globalThis.snice?.controllerRegistry;if(!a)throw new Error("Snice global registry not initialized");const c=a.get(n);if(!c)throw console.error(`Controller "${n}" not found. Available:`,Array.from(a.keys())),new Error(`Controller "${n}" not found in registry`);const l=new c;t.controllerIdCounter+=1;const p=t.controllerIdCounter,y=new ce;l[o]=!0,l[d]=p,l.element=e;const g=e[S];void 0!==g&&(l[S]=g),e[u]=l,e[h]=n,e[m]=y,await e.ready,await y.runOperation(async()=>{await l.attach(e)}),pt(l,e),Tt(l,e),ie(l,e),e.dispatchEvent(new CustomEvent("controller-attached",{detail:{name:n,controller:l}}))}async function he(t){const e=t[u],n=t[h],o=t[m];e&&(o?await o.runOperation(async()=>{await e.detach(t)}):await e.detach(t),e.element=null,wt(e),_t(e),ae(e),o&&await o.cleanup(),delete e[S],delete t[u],delete t[h],delete t[m],t.dispatchEvent(new CustomEvent("controller-detached",{detail:{name:n,controller:e}})))}function de(){if(globalThis.sniceNativeControllersInitialized)return;function t(t){if(!(t instanceof HTMLElement))return;if(t.tagName.includes("-"))return;if(t[r])return;const e=t.getAttribute("controller"),n=t[f];if(e!==n){if(!e)return delete t[f],delete t[h],void he(t).catch(t=>{console.error("Failed to detach controller from native element:",t)});t[f]=e,t.ready||(t.ready=Promise.resolve()),n&&he(t).catch(t=>{console.error("Failed to detach old controller from native element:",t)}),ue(t,e).catch(t=>{console.error(`Failed to attach controller "${e}" to native element:`,t)})}}globalThis.sniceNativeControllersInitialized=!0;const e=new MutationObserver(e=>{for(const n of e)"attributes"===n.type&&"controller"===n.attributeName?t(n.target):"childList"===n.type&&n.addedNodes.forEach(e=>{e instanceof HTMLElement&&(t(e),e.querySelectorAll('[controller]:not([class*="-"])').forEach(t))})});function n(){document.querySelectorAll('[controller]:not([class*="-"])').forEach(t),e.observe(document.body,{attributes:!0,attributeFilter:["controller"],childList:!0,subtree:!0})}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",n):n(),globalThis.sniceNativeControllerObserver=e}const me=e("context-handlers");function fe(t={}){return function(e,n){const o=n.name;return n.addInitializer(function(){const n=this.constructor;n.__contextMethods||(n.__contextMethods=new Set),n.__contextMethods.has(e)||(n.__contextMethods.add(e),n[me]||(n[me]=[]),n[me].push({methodName:o,method:e,options:t}))}),e}}function pe(t){const e=t.constructor[me];if(!e||!Array.isArray(e)||0===e.length)return;const n=t[V];if(n){t[U]=n;for(const o of e){const{methodName:e,method:r,options:s}=o,i=`__wrapped_${e}`;t[i]=function(e){if(s.once&&t[J])return;const n=()=>{if(r.call(t,e),s.once){t[J]=!0;const e=t[U];e&&"function"==typeof e[K]&&e[K](t)}};if(s.debounce)return clearTimeout(t[Q]),void(t[Q]=setTimeout(n,s.debounce));if(s.throttle){const e=Date.now();return void(e-(t[Q]||0)>=s.throttle&&(t[Q]=e,n()))}n()},"function"==typeof n[W]&&n[W](t,i)}}}const ye=new class{constructor(){this.pending=new Set,this.scheduled=!1}schedule(t,e){e.sync?be(t,e):(this.pending.add(t),this.scheduled||(this.scheduled=!0,queueMicrotask(()=>this.flush())))}flush(){const t=Array.from(this.pending);this.pending.clear(),this.scheduled=!1;for(const e of t){be(e,e[$]||{})}}};function ge(t){const e=t[F];if(!e||0===e.length)return;const n=[...e];t[F]=[],n.forEach(t=>t())}function be(t,e,n){const o=t[P];if(o&&(!e.once||!t[R]))try{const r=void 0!==n?n:o.call(t);if(t.shadowRoot||t.attachShadow({mode:"open"}),!1===e.differential)return"string"!=typeof r?void console.warn("Render method with differential: false must return a string"):(t.shadowRoot.innerHTML=r,void ge(t));if(!Ot(r))return void console.warn("Render method must return html`` template result");let s=t[R];if(s&&s.isSameTemplate(r.strings))return s.update(r.values),void ge(t);s&&(t.shadowRoot.innerHTML=""),s=new Ut(r),t[R]=s,t.shadowRoot.appendChild(s.renderFragment()),s.update(r.values),ge(t)}catch(t){console.error("Error rendering element:",t)}}function ve(t,e=!1){const n=t[$]||{};if(!n.once||!t[R])if(e)be(t,n);else{if(void 0!==n.debounce&&n.debounce>0)return t[D]||(t[D]={}),clearTimeout(t[D].debounce),void(t[D].debounce=setTimeout(()=>{ye.schedule(t,n)},n.debounce));if(void 0!==n.throttle&&n.throttle>0){t[D]||(t[D]={lastThrottle:0});const e=t[D],o=Date.now();if(0===e.lastThrottle||o-e.lastThrottle>=n.throttle)return e.lastThrottle=o,void ye.schedule(t,n);if(!e.throttleTimer){const r=n.throttle-(o-e.lastThrottle);e.throttleTimer=setTimeout(()=>{e.throttleTimer=null,e.lastThrottle=Date.now(),ye.schedule(t,n)},r)}return}ye.schedule(t,n)}}function we(t={}){return function(e,n){return n.name,n.addInitializer(function(){this[P]=e,this[$]=t}),function(...t){const n=e.apply(this,t);return be(this,{},n),n}}}function Ne(){return function(t,e){return e.addInitializer(function(){this[q]&&!this[j]?this[j]=[this[q]]:this[q]&&this[j]&&this[j].push(this[q]),this[q]=t}),t}}function Se(t){t.prototype[r]=!0;const e=t.prototype.connectedCallback,n=t.prototype.disconnectedCallback,o=t.prototype.attributeChangedCallback,s=t.observedAttributes||[];s.includes("controller")||s.push("controller");const u=t[y];if(u)for(const[t,e]of u){if(!1===e.attribute)continue;const n=at(e,t);s.includes(n)||s.push(n)}Object.defineProperty(t,"observedAttributes",{get:()=>s,configurable:!0}),Object.defineProperty(t.prototype,"ready",{get(){return this[i]||(this[i]=new Promise(t=>{this[a]=t})),this[i]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controller",{get(){return this[c]},set(t){const e=this[c];this[c]=t,t!==e&&(t?ue(this,t).catch(e=>{console.error(`Failed to attach controller "${t}":`,e)}):e&&he(this).catch(t=>{console.error("Failed to detach controller:",t)}))},enumerable:!0,configurable:!0}),t.prototype.connectedCallback=async function(){if(this[i]||(this[i]=new Promise(t=>{this[a]=t})),this[l]){ie(this,this),Tt(this,this),pe(this);try{pt(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName} on reconnection:`,t)}return void(e&&e.call(this))}this[v]=!0;const n=t[y];if(n)for(const[t,e]of n){if(!1===e.attribute)continue;const n=at(e,t);if(!this.hasAttribute(n))continue;const o=this.getAttribute(n);ct(this,N).add(t),e.type===Boolean&&""===o&&this.setAttribute(n,"true"),this[t]=it(o,e)}if(this[b]){for(const[t,e]of Array.from(this[b].entries())){const o=n?.get(t),r=at(o||{},t);this[b].delete(t),this.hasAttribute(r)||(this[t]=e)}delete this[b]}!function(t){const e=t[q];if(e&&!t[B]){t[B]=!0;try{const n=[],o=t[j];if(o)for(const e of o){const o=e.call(t);Mt(o)&&n.push(o)}const r=e.call(t);if(!Mt(r))return void console.warn("Styles method must return css`` template result");if(n.push(r),t.shadowRoot||t.attachShadow({mode:"open"}),!t.shadowRoot)return;if(n.every(t=>!!t.styleSheet)&&"adoptedStyleSheets"in t.shadowRoot)return void(t.shadowRoot.adoptedStyleSheets=n.map(t=>t.styleSheet));for(const e of n){const n=document.createElement("style");n.textContent=e.cssText,t.shadowRoot.appendChild(n)}}catch(t){console.error("Error applying styles:",t)}}}(this),ie(this,this),Tt(this,this),pe(this),this[l]=!0,e&&e.call(this);const o=t[E];await new Promise(t=>queueMicrotask(t)),this[P]&&ve(this,!0);try{pt(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName}:`,t)}if(o)for(const t of o)try{await t.method.call(this)}catch(e){console.error(`Error in @ready handler ${t.methodName}:`,e)}this[a]&&(this[a](),this[a]=null)},t.prototype.disconnectedCallback=async function(){const e=t[A];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @dispose handler ${t.methodName}:`,e)}n&&n.call(this),this[c]&&he(this).catch(t=>{console.error("Failed to detach controller:",t)}),ae(this),_t(this),function(t){const e=t.constructor[me];if(!e||!Array.isArray(e)||0===e.length)return;for(const n of e)n.options.debounce&&t[Q]&&(clearTimeout(t[Q]),delete t[Q]),delete t[`__wrapped_${n.methodName}`];const n=t[U];n&&"function"==typeof n[K]&&n[K](t),delete t[U],delete t[J]}(this),wt(this)},t.prototype.attributeChangedCallback=function(e,n,r){if(o?.call(this,e,n,r),"controller"===e)return void(this.controller=r);const s=t[y];if(s)for(const[n,o]of s){if(at(o,n).toLowerCase()!==e.toLowerCase())continue;const s=this[g]?.[n],i=it(r,o,s,void 0);if(s===i)break;ct(this,N).add(n),lt(this,g)[n]=i,this[M]?.has(e.toLowerCase())||(ut(this,t,n,s,i),this[P]&&this[l]&&ve(this));break}},t.prototype.connectedMoveCallback=async function(){const e=t[x];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @moved handler ${t.methodName}:`,e)}},t.prototype.adoptedCallback=async function(){const e=t[C];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @adopted handler ${t.methodName}:`,e)}}}function Te(t,e,n,o){if(function(t){let e=Object.getPrototypeOf(t);const n=[];for(;e&&e!==HTMLElement&&e!==Function.prototype;)n.push(e),e=Object.getPrototypeOf(e);n.reverse();for(const e of n){if(e[y]){t[y]||(t[y]=new Map);for(const[n,o]of e[y])t[y].has(n)||t[y].set(n,o)}e.formAssociated&&!t.formAssociated&&(t.formAssociated=!0)}}(e),n.metadata&&n.metadata[y]){e[y]||(e[y]=new Map);for(const[t,o]of n.metadata[y])e[y].set(t,o)}return o?.formAssociated&&(e.formAssociated=!0),Se(e),customElements.get(t)?(globalThis.SNICE_DEBUG&&console.warn(`[snice] "${t}" is already registered. Skipping.`),e):(customElements.define(t,e),e)}function _e(t,e){return function(n,o){return Te(t,n,o,e)}}function Ee(t){return function(e,n){return Te(t,e,n)}}function Ae(t){return function(e,n){const o=n.name;return n.metadata||(n.metadata={}),n.metadata[y]||(n.metadata[y]=new Map),n.metadata[y].set(o,t||{}),function(e){const n=this.constructor;n[y]||(n[y]=new Map);const r={...t};r.type||void 0===e||(r.type=st(e)),n[y].set(o,r);const s=`__propDef_${o}`,i=this.constructor.prototype[s];if(!i||i!==t){this.constructor.prototype[s]=t;const n={get(){if(!1===r?.attribute)return this[g]&&o in this[g]?this[g][o]:this[b]?.has(o)?this[b].get(o):e;const t=at(r||{},o),n=this.getAttribute?.(t);if(null!==n)return it(n,r||{},void 0,e);return((r?.type||st(e))!==Boolean||!this[N]?.has(o))&&(this[b]?.has(o)?this[b].get(o):e)},set(t){const n=this[o];if(n!==t){if(!this[v])return this[b]||(this[b]=new Map),void this[b].set(o,t);if(!1===r?.attribute)lt(this,g)[o]=t;else{const n=at(r,o),s=function(t,e,n){if(null==t||!1===t||e?.type===Y&&Array.isArray(t)&&0===t.length)return null;if(e.converter?.toAttribute)return e.converter.toAttribute(t,e.type);switch(e.type||st(n)){case Boolean:return"true";case Date:return t instanceof Date?t.toISOString():String(t);case BigInt:return"bigint"==typeof t?t.toString()+"n":String(t);case Y:return Array.isArray(t)?Y.serialize(t):String(t);case Array:return Array.isArray(t)?JSON.stringify(t):String(t);case Object:return"object"==typeof t&&null!==t?JSON.stringify(t):String(t);default:return String(t)}}(t,r,e);ct(this,N).add(o),ct(this,M).add(n.toLowerCase()),null===s?this.removeAttribute?.(n):this.setAttribute?.(n,s),setTimeout(()=>{this[M]?.delete(n.toLowerCase())},0)}ut(this,this.constructor,o,n,t),this[P]&&this[l]&&ve(this)}},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,o,n)}return lt(this,g)[o]=e,e}}}function xe(t){return!0===t[o]&&t.element?t.element:t}function Ce(t,e={}){return function(n,o){const{light:r=!1,shadow:s=!0}=e,i=o.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=xe(this);let n=null;return s&&e.shadowRoot&&(n=e.shadowRoot.querySelector(t)),!n&&r&&(n=e.querySelector(t)),n||null},set(){},configurable:!0,enumerable:!0}),e}}}function Oe(t,e={}){return function(n,o){const{light:r=!1,shadow:s=!0}=e,i=o.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=xe(this),n=[];return s&&e.shadowRoot&&n.push(...e.shadowRoot.querySelectorAll(t)),r&&n.push(...e.querySelectorAll(t)),n},set(){},configurable:!0,enumerable:!0}),e}}}function Me(...t){return function(e,n){const o=n.name;n.addInitializer(function(){const n=this.constructor;if(n.__watchMethods||(n.__watchMethods=new Set),!n.__watchMethods.has(e)){n.__watchMethods.add(e),n[w]||(n[w]=new Map);for(const r of t)n[w].has(r)||n[w].set(r,[]),n[w].get(r).push({methodName:o,method:e})}})}}function ke(){return function(t,e){const n=e.name;return function(t){if(!Object.hasOwn(this.constructor.prototype,n)){const t={get(){if(void 0!==this[S])return this[S];let t=!0===this[o]&&this.element?this.element:this;if(!t||!t.dispatchEvent)return;t.getRootNode&&t.getRootNode()instanceof ShadowRoot&&(t=t.getRootNode().host);const e={target:this};return t.dispatchEvent(new CustomEvent("@context/request",{bubbles:!0,cancelable:!0,detail:e})),void 0!==e.context?(this[S]=e.context,e.context):void 0},set(){},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,n,t)}return t}}}function Le(t,e,n,o,r){const s=o.name;o.addInitializer(function(){const o=this.constructor,i=`__${e}Methods`;o[i]||(o[i]=new Set),o[i].has(n)||(o[i].add(n),o[t]||(o[t]=[]),o[t].push({methodName:s,method:n,...r}))})}function Ie(){return function(t,e){Le(E,"ready",t,e)}}function Pe(){return function(t,e){Le(A,"dispose",t,e)}}function $e(t,e,n){return function(o={}){return function(r,s){Le(t,n,r,s,{options:o});const i=s.name;return function(...t){this[e]||(this[e]=new Map),this[e].has(i)||this[e].set(i,{throttleTimer:null,debounceTimer:null,lastThrottleCall:0});const n=this[e].get(i),s=(...t)=>r.apply(this,t);if(o.debounce>0)return clearTimeout(n.debounceTimer),void(n.debounceTimer=setTimeout(()=>s(...t),o.debounce));if(o.throttle>0){const e=Date.now();if(0===n.lastThrottleCall||e-n.lastThrottleCall>=o.throttle)return n.lastThrottleCall=e,s(...t);if(!n.throttleTimer){const r=o.throttle-(e-n.lastThrottleCall);n.throttleTimer=setTimeout(()=>{n.throttleTimer=null,n.lastThrottleCall=Date.now(),s(...t)},r)}return}return s(...t)}}}}const Re=$e(x,k,"moved"),De=$e(C,L,"adopted");
|
|
13
|
+
globalThis.snice||(globalThis.snice={controllerRegistry:new Map,controllerIdCounter:0});const t=globalThis.snice;function e(t){return Symbol.for(`snice:${t}`)}const n=e("is-controller-class"),o=e("is-controller-instance"),r=e("is-element-class"),s=e("channel-handlers"),i=e("ready-promise"),a=e("ready-resolve"),c=e("controller"),l=e("initialized"),u=e("controller-key"),h=e("controller-name"),d=e("controller-id"),m=e("controller-operations"),f=e("native-controller"),p=e("cleanup"),y=e("properties"),g=e("property-values"),b=e("pre-init-property-values"),v=e("properties-initialized"),w=e("property-watchers"),N=e("explicitly-set-properties"),S=e("router-context"),T=e("page-transition"),_=e("created-at"),E=e("ready-handlers"),A=e("dispose-handlers"),x=e("moved-handlers"),C=e("adopted-handlers"),O=e("observers"),M=e("setting-from-property"),k=e("moved-timers"),L=e("adopted-timers"),I=e("dispatch-timers"),P=e("render-method"),$=e("render-options"),R=e("render-instance"),D=e("render-timers"),F=e("render-callbacks"),q=e("styles-method"),B=e("styles-applied"),j=e("parent-styles-methods"),V=e("context-handler"),U=e("navigation-context-instance"),z=e("registered-elements"),H=e("is-updating"),W=e("context-register"),K=e("context-unregister"),G=e("context-notify-element"),Q=e("context-timer"),J=e("context-called"),X=e("context-update");class Y{static{this.SEPARATOR=","}static serialize(t){return Array.isArray(t)?t.map(t=>{if("string"==typeof t){if(t.includes(Y.SEPARATOR))throw new Error(`SimpleArray strings cannot contain the character "${Y.SEPARATOR}" (U+FF0C)`);return t}if("number"==typeof t||"boolean"==typeof t)return String(t);throw new Error("SimpleArray only supports string, number, and boolean types. Got: "+typeof t)}).join(Y.SEPARATOR):""}static parse(t){return null==t||""===t?[]:t.split(Y.SEPARATOR).map(t=>{if(/^-?\d+\.?\d*$/.test(t)){const e=Number(t);if(!isNaN(e))return e}return"true"===t||"false"!==t&&t})}}var Z,tt,et;const nt=Symbol.for("snice:registered-elements-set");let ot=0;class rt{constructor(t={},e=[],n="",o={},r){if(this[Z]=new WeakMap,this[tt]=new Set,this[et]=!1,this.id=ot++,this.application=t,this.navigation={placards:e,route:n,params:o},r&&"function"==typeof r.create)this.fetch=r.create(this);else{if("function"!=typeof fetch)throw new Error("No fetch implementation available");this.fetch=fetch.bind(this)}}[(Z=z,tt=nt,et=H,W)](t,e){this[z].set(t,e),this[nt].add(t)}[K](t){this[z].delete(t),this[nt].delete(t)}[X](t,e,n,o){this.application=t,this.navigation.placards=e,this.navigation.route=n,this.navigation.params=o,this.notify()}update(){this.notify()}notify(){if(this[H])return;this[H]=!0;const t=this[nt],e=this[z];for(const n of t){const t=e.get(n);if(t&&"function"==typeof n[t])try{n[t](this)}catch(e){console.error(`Error calling @context method ${t}:`,e)}}this[H]=!1}[G](t){const e=this[z].get(t);e&&"function"==typeof t[e]&&t[e](this)}}function st(t){if(null!=t)return"string"==typeof t?String:"number"==typeof t?Number:"boolean"==typeof t?Boolean:t instanceof Date?Date:"bigint"==typeof t?BigInt:Array.isArray(t)?Array:void 0}function it(t,e,n,o){switch(e.type||st(o)){case Boolean:return null!==t&&"false"!==t;case Number:return null!==t?Number(t):null;case String:return t;case Date:return t?new Date(t):null;case BigInt:return t&&t.endsWith("n")?BigInt(t.slice(0,-1)):t?BigInt(t):null;case Y:return Y.parse(t);case Array:try{return t?JSON.parse(t):[]}catch{return[]}case Object:try{return t?JSON.parse(t):{}}catch{return{}}default:return"number"==typeof n&&null!==t?Number(t):t}}function at(t,e){return"string"==typeof t.attribute?t.attribute:e.toLowerCase()}function ct(t,e){return t[e]||(t[e]=new Set),t[e]}function lt(t,e){return t[e]||(t[e]={}),t[e]}function ut(t,e,n,o,r){const s=e[w];if(s){if(s.has(n))for(const e of s.get(n))try{e.method.call(t,o,r,n)}catch(t){console.error(`Error in @watch('${n}') method ${e.methodName}:`,t)}if(s.has("*"))for(const e of s.get("*"))try{e.method.call(t,o,r,n)}catch(t){console.error(`Error in @watch('*') method ${e.methodName}:`,t)}}}function ht(t,e){let n=null;return function(...o){null!==n&&clearTimeout(n),n=setTimeout(()=>{t.apply(this,o),n=null},e)}}function dt(t,e){let n=0,o=null;return function(...r){const s=Date.now(),i=e-(s-n);if(i<=0)return o&&(clearTimeout(o),o=null),n=s,t.apply(this,r);o||(o=setTimeout(()=>{n=Date.now(),o=null,t.apply(this,r)},i))}}const mt=new Map;function ft(t,e,n){let o,r;return"string"==typeof e?(o=e,r=n):(o=void 0,r=e),function(e,n){const s=n.name;n.addInitializer(function(){const n=this.constructor;if(n.__observeMethods||(n.__observeMethods=new Set),n.__observeMethods.has(e))return;n.__observeMethods.add(e),n[O]||(n[O]=[]);const i=Array.isArray(t)?t:[t];for(const t of i){const[i,...a]=t.split(":"),c=a.join(":");n[O].push({type:i,target:c,selector:o,methodName:s,method:e,options:r})}})}}function pt(t,e){const n=t.constructor[O];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].observers||(t[p].observers=[]):t[p]={events:[],channels:[],observers:[]};for(const o of n){const n=o.method.bind(t),r=o.options?.throttle?dt(n,o.options.throttle):n;switch(o.type){case"intersection":yt(t,e,o,r);break;case"resize":gt(t,e,o,r);break;case"media":bt(t,e,o,r);break;case"mutation":vt(t,e,o,r);break;default:console.warn(`Unknown observer type: ${o.type}`)}}}}function yt(t,e,n,o){const r={threshold:n.options?.threshold??0,rootMargin:n.options?.rootMargin??"0px",root:n.options?.root??null};if("undefined"==typeof IntersectionObserver)return void console.warn("IntersectionObserver is not available in this environment");const s=new IntersectionObserver(t=>{for(const e of t)try{!1===o(e)&&s&&s.unobserve(e.target)}catch(t){console.error(`Error in intersection observer ${n.methodName}:`,t)}},r),i=n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):[e];i.forEach(t=>s.observe(t)),t[p].observers.push(()=>{i.forEach(t=>s.unobserve(t)),0===s.takeRecords().length&&s.disconnect()})}function gt(t,e,n,o){const r=n.options?.box||"content-box";if("undefined"==typeof ResizeObserver)return void console.warn("ResizeObserver is not available in this environment");const s=new ResizeObserver(t=>{for(const e of t)try{o(e)}catch(t){console.error(`Error in resize observer ${n.methodName}:`,t)}});(n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):[e]).forEach(t=>{s.observe(t,{box:r})}),t[p].observers.push(()=>{s.disconnect()})}function bt(t,e,n,o){const r=n.target;if(!r)return void console.warn("Media query observer requires a query string");let s=mt.get(r);if(!s)try{s=window.matchMedia(r),mt.set(r,s)}catch(t){return void console.error(`Invalid media query: ${r}`,t)}const i=t=>{try{o(t.matches)}catch(t){console.error(`Error in media query observer ${n.methodName}:`,t)}};i(s);const a=t=>i(t);s.addEventListener?(s.addEventListener("change",a),t[p].observers.push(()=>{s.removeEventListener("change",a)})):(s.addListener(a),t[p].observers.push(()=>{s.removeListener(a)}))}function vt(t,e,n,r){const s=n.target.split(":"),i=s[0]||"childList",a=s[1],c={};switch(i){case"childList":c.childList=!0;break;case"attributes":c.attributes=!0,a&&(c.attributeFilter=[a]);break;default:return void console.warn(`Unknown mutation type: ${i}`)}n.options?.subtree&&(c.subtree=!0,n.options.maxDepth&&console.warn("maxDepth is set but requires custom implementation"));const l=!(!n.options?.maxDepth||!n.options.subtree),u=new MutationObserver(t=>{try{if(!l)return void r(t);const o=n.options.maxDepth,s=e.shadowRoot||e,i=t.filter(t=>{let e=0,n=t.target;for(;n&&n!==s&&e<o;)n=n.parentNode,e++;return e<o});i.length>0&&r(i)}catch(t){console.error(`Error in mutation observer ${n.methodName}:`,t)}}),h=!0===t[o];(n.selector?Array.from(e.shadowRoot?.querySelectorAll(n.selector)||[]):h&&e.shadowRoot?[e.shadowRoot]:[e]).forEach(t=>{u.observe(t,c)}),t[p].observers.push(()=>{u.disconnect()})}function wt(t){if(t[p]?.observers){for(const e of t[p].observers)e();t[p].observers=[]}}function Nt(t,e){return function(n,r){let s,i,a=0;return async function(...r){const c=async()=>{const s=e?.timeout??12e4,i=e?.discoveryTimeout??50,a=n.apply(this,r),{value:c,done:l}=await a.next();if(l)return c;let u,h;const d=new Promise((t,e)=>{u=t,h=e});let m,f,p;const y=new Promise((e,n)=>{m=e,f=n,p=setTimeout(()=>{n(new Error(`Request "${t}" timed out after ${i}ms - no handler found`))},i)}),g=new CustomEvent(`@request/${t}`,{bubbles:void 0===e?.bubbles||e.bubbles,cancelable:e?.cancelable||!1,composed:!0,detail:{payload:c,discovery:{resolve:()=>{clearTimeout(p),m()},reject:f},data:{resolve:u,reject:h}}});(!0===this[o]&&this.element?this.element:this).dispatchEvent(g);try{await y;const e=setTimeout(()=>{h(new Error(`Request "${t}" timed out after ${s}ms`))},s),n=await d;clearTimeout(e);const{value:o}=await a.next(n);return o}catch(t){try{await a.throw(t)}catch(t){throw t}}};if(e?.debounce)return new Promise((t,n)=>{clearTimeout(s),s=setTimeout(async()=>{try{t(await c())}catch(t){n(t)}},e.debounce)});if(!e?.throttle)return c();const l=Date.now(),u=e.throttle-(l-a);return u<=0?(clearTimeout(i),a=l,c()):i?Promise.resolve():new Promise((t,e)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{t(await c())}catch(t){e(t)}},u)})}}}function St(t,e){return function(n,o){const r=o.name;o.addInitializer(function(){const o=this.constructor;o.__respondMethods||(o.__respondMethods=new Set),o.__respondMethods.has(n)||(o.__respondMethods.add(n),o[s]||(o[s]=[]),o[s].push({channelName:t,methodName:r,method:n,options:e}))})}}function Tt(t,e){const n=t.constructor[s];if(n){t[p]||(t[p]={events:[],channels:[]});for(const o of n){const n=o.method.bind(t),r=`@request/${o.channelName}`;let s,i,a=0;const c=(t=>o.options?.debounce?(...e)=>new Promise((n,r)=>{clearTimeout(s),s=setTimeout(async()=>{try{n(await t(...e))}catch(t){r(t)}},o.options.debounce)}):o.options?.throttle?(...e)=>{const n=Date.now(),r=o.options.throttle-(n-a);return r<=0?(clearTimeout(i),a=n,t(...e)):i?Promise.resolve(void 0):new Promise((n,o)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{n(await t(...e))}catch(t){o(t)}},r)})}:t)(n),l=t=>{const{data:e,discovery:n,payload:r}=t.detail;t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),n.resolve(),Promise.resolve(c(r)).then(t=>{e.resolve(t)}).catch(t=>{e.reject(t),console.error(`Error in response handler ${o.methodName}:`,t)})};e.addEventListener(r,l),t[p].channels.push(()=>{e.removeEventListener(r,l)})}}}function _t(t){if(t[p]?.channels){for(const e of t[p].channels)e();t[p].channels=[]}}const Et=Symbol.for("snice:html-result"),At=Symbol.for("snice:css-result");function xt(t,...e){return{_$litType$:Et,strings:t,values:e}}function Ct(t,...e){let n=t[0];for(let o=0;o<e.length;o++)n+=String(e[o])+t[o+1];const o={_$litType$:At,cssText:n};if("undefined"!=typeof CSSStyleSheet&&"adoptedStyleSheets"in Document.prototype)try{const t=new CSSStyleSheet;t.replaceSync(n),o.styleSheet=t}catch(t){}return o}function Ot(t){return t&&t._$litType$===Et}function Mt(t){return t&&t._$litType$===At}const kt=Symbol.for("snice:nothing"),Lt=Symbol.for("snice:unsafe-html");function It(t){return{_$litType$:Lt,html:t}}const Pt=`snice$${Math.random().toFixed(9).slice(2)}$`,$t="?"+Pt,Rt=`<${$t}>`,Dt=new RegExp(Pt,"g"),Ft=new WeakMap,qt=Symbol("not-committed"),Bt=Symbol.for("snice:no-change"),jt=t=>null===t||"object"!=typeof t&&"function"!=typeof t;class Vt{constructor(t,e,n){this.parts=[],this.element=e;const o=document.createTreeWalker(e.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT);let r=0;const s=[];let i;for(;null!==(i=o.nextNode());)if(i.nodeType===Node.ELEMENT_NODE){const t=i,e=t.tagName.toLowerCase();if("if"===e){const e=t.getAttribute("value");e&&e.includes(Pt)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-if",index:r++,element:t}));continue}if("case"===e){const e=t.getAttribute("value");e&&e.includes(Pt)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-case",index:r++,element:t}));continue}if(t.hasAttributes()){const e=t.attributes,o=[];for(let s=0;s<e.length;s++){const i=e[s],a=i.value;if(a.includes(Pt)){o.push(i);const e=n[r]||i.name,s=a.split(Pt),c=s.length-1;e.startsWith("@@")||e.startsWith("@")?(this.parts.push({type:"event",index:r,name:e.slice(1),element:t}),r+=1):e.startsWith(".")?(this.parts.push({type:"property",index:r,name:e.slice(1),element:t}),r+=1):e.startsWith("?")?(this.parts.push({type:"boolean-attribute",index:r,name:e.slice(1),element:t}),r+=1):(this.parts.push({type:"attribute",index:r,name:i.name,element:t,attrStrings:s}),r+=c)}}for(const e of o)t.removeAttribute(e.name)}}else if(i.nodeType===Node.COMMENT_NODE){const t=i;if(t.data===$t){const e=t.parentNode,n=document.createComment("");e.insertBefore(n,t.nextSibling),this.parts.push({type:"node",index:r++,startNode:t,endNode:n})}}else if(i.nodeType===Node.TEXT_NODE){const t=i,e=t.data;if(e.includes(Pt)){const n=t.parentNode,o=e.split(Dt),i=o.length-1;for(let e=0;e<i;e++){n.insertBefore(document.createTextNode(o[e]),t);const s=document.createComment(""),i=document.createComment("");n.insertBefore(s,t),n.insertBefore(i,t),this.parts.push({type:"node",index:r++,startNode:s,endNode:i})}""!==o[i]?t.data=o[i]:s.push(t)}}for(const t of s)t.parentNode?.removeChild(t)}}class Ut{constructor(t){this.parts=[],this.fragment=null,this.conditionalParts=[],this.regularParts=[],this.template=function(t){const{strings:e}=t,n=Ft.get(e);if(n)return n;const o=[],r=[];let s=!1,i=!1,a="",c="";for(let t=0;t<e.length;t++){const n=e[t];if(o.push(n),t<e.length-1){for(let t=0;t<n.length;t++){const e=n[t];if(s){if(i)e===a&&(i=!1,a="");else if(">"===e)s=!1;else if('"'===e||"'"===e)i=!0,a=e;else if("="===e){let e=t-1;for(;e>=0&&/[\w\-\.@\?]/.test(n[e]);)e--;c=n.substring(e+1,t).trim()}}else"<"===e&&(s=!0)}if(i)r.push(c),o.push(Pt);else if(s){const t=n.trimEnd();if(t.endsWith("=")){let e=t.length-2;for(;e>=0&&/[\w\-\.@\?\/]/.test(t[e]);)e--;c=t.substring(e+1,t.length-1).trim(),r.push(c),o.push(Pt)}else n.match(/<(if|case)\s*$/)?(c="value",r.push("value"),o.push(`value="${Pt}"`)):(r.push(""),o.push(Pt))}else r.push(""),o.push(Rt)}}const l=o.join(""),u=document.createElement("template");u.innerHTML=l;const h=new Vt(t,u,r);return Ft.set(e,h),h}(t),this.strings=t.strings}isSameTemplate(t){return this.strings===t}renderFragment(){if(!this.fragment){this.fragment=this.template.element.content.cloneNode(!0);const t=document.createTreeWalker(this.template.element.content,NodeFilter.SHOW_ALL),e=document.createTreeWalker(this.fragment,NodeFilter.SHOW_ALL),n=new Map;let o=t.currentNode,r=e.currentNode;for(;o&&r;)n.set(o,r),o=t.nextNode(),r=e.nextNode();for(let t=0;t<this.template.parts.length;t++){const e=this.template.parts[t];let o;switch(e.type){case"node":const t=n.get(e.startNode),r=n.get(e.endNode);o=new Ht(t,r);break;case"attribute":const s=n.get(e.element);o=new Wt(s,e.name,e.attrStrings);break;case"property":const i=n.get(e.element);o=new Kt(i,e.name);break;case"boolean-attribute":const a=n.get(e.element);o=new Gt(a,e.name);break;case"event":const c=n.get(e.element);o=new Qt(c,e.name);break;case"conditional-if":const l=n.get(e.element);o=new te(l);break;case"conditional-case":const u=n.get(e.element);o=new ee(u);break;default:throw new Error(`Unknown part type: ${e.type}`)}this.parts.push(o),o instanceof te||o instanceof ee?this.conditionalParts.push({part:o,index:e.index}):this.regularParts.push({part:o,index:e.index})}}return this.fragment}render(t){const e=this.renderFragment();return this.update(t),e}update(t){for(const{part:e,index:n}of this.conditionalParts)e.commit(t[n]);for(const{part:e,index:n}of this.regularParts)e instanceof Wt&&void 0!==e.strings?e.commit(t,n):e.commit(t[n])}clear(){for(const t of this.parts)t.clear()}}class zt{}class Ht extends zt{constructor(t,e){super(),this._committedValue=qt,this.startNode=t,this.endNode=e}commit(t){if(t!==Bt)return t===kt||null==t||""===t?(this._committedValue!==kt&&this._clear(),void(this._committedValue=kt)):void(jt(t)?t!==this._committedValue&&this._commitText(t):Ot(t)?this._commitTemplateResult(t):!function(t){return t&&t._$litType$===Lt}(t)?void 0===t.nodeType?(t=>Array.isArray(t)||"function"==typeof t?.[Symbol.iterator])(t)?this._commitIterable(t):this._commitText(t):this._commitNode(t):this._commitUnsafeHTML(t))}_commitText(t){if(this._committedValue!==qt&&this._committedValue!==kt&&jt(this._committedValue)&&!Array.isArray(this._committedValue)){const e=this.startNode.nextSibling;if(e&&e.nodeType===Node.TEXT_NODE)return e.data=String(t),void(this._committedValue=t)}this._clear(),this._insertBefore(document.createTextNode(String(t))),this._committedValue=t}_commitTemplateResult(t){const e=this._committedValue;if(e instanceof Ut){const n=Ft.get(t.strings);if(n&&e.template===n)return void e.update(t.values)}this._clear();const n=new Ut(t),o=n.renderFragment();this._insertBefore(o),n.update(t.values),this._committedValue=n}_commitIterable(t){Array.isArray(this._committedValue)&&this._committedValue[0]instanceof Ht||(this._clear(),this._committedValue=[]);const e=this._committedValue;let n=0;for(const o of t){let t;if(n>=e.length){const n=document.createComment(""),o=document.createComment("");this._insertBefore(n),this._insertBefore(o),t=new Ht(n,o),e.push(t)}else t=e[n];t.commit(o),n++}if(n<e.length){for(let t=n;t<e.length;t++){const n=e[t];n._clear(),n.startNode.remove(),n.endNode.remove()}e.length=n}}_commitNode(t){this._committedValue!==t&&(this._clear(),this._insertBefore(t),this._committedValue=t)}_commitUnsafeHTML(t){this._clear();const e=document.createElement("template");e.innerHTML=t.html,this._insertBefore(e.content),this._committedValue=t}_insertBefore(t){this.endNode.parentNode?.insertBefore(t,this.endNode)}_clear(){const t=this.startNode.parentNode;if(!t)return;let e=this.startNode.nextSibling;for(;e&&e!==this.endNode;){const n=e.nextSibling;t.removeChild(e),e=n}this._committedValue=kt}clear(){this._clear()}}class Wt extends zt{constructor(t,e,n){super(),this._committedValue=qt,this.element=t,this.name=e,n&&(n.length>2||""!==n[0]||""!==n[1])?(this._committedValue=new Array(n.length-1).fill(qt),this.strings=n):this._committedValue=qt}commit(t,e=0){let n,o=!1;if(void 0===this.strings){if(t===Bt)return;if(o=!jt(t)||t!==this._committedValue&&t!==Bt,!o)return;this._committedValue=t,n=t}else{const r=t,s=this._committedValue;n=this.strings[0];for(let t=0;t<this.strings.length-1;t++){let i=r[e+t];i===Bt&&(i=s[t]),o=o||!jt(i)||i!==s[t],i===kt?n=kt:n!==kt&&(n=n+(i??"")+this.strings[t+1]),s[t]=i}if(!o)return}this._commitValue(n)}_commitValue(t){t===kt||null==t?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,String(t))}clear(){this.element.removeAttribute(this.name)}}class Kt extends zt{constructor(t,e){super(),this._committedValue=qt,this.element=t,this.name=e}commit(t){t!==Bt&&t!==this._committedValue&&(this._committedValue=t,this.element[this.name]=t===kt?void 0:t)}clear(){this.element[this.name]=void 0,this._committedValue=qt}}class Gt extends zt{constructor(t,e){super(),this._committedValue=qt,this.element=t,this.name=e}commit(t){if(t===Bt)return;const e=!!t&&t!==kt;e!==this._committedValue&&(this._committedValue=e,e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name))}clear(){this.element.removeAttribute(this.name),this._committedValue=qt}}class Qt extends zt{constructor(t,e){super(),this.listener=null,this.value=void 0,this.keyFilter=null,this.host=null,this.element=t;const n=["keydown","keyup","keypress"].includes(e.split(".")[0].split(":")[0]),o=e.indexOf("."),r=n?e.indexOf(":"):-1,s=o>0&&r>0?Math.min(o,r):Math.max(o,r);if(s>0){const t=e.substring(0,s),n=e.substring(s+1);this.eventName=t,this.keyFilter=Jt(n)}else this.eventName=e}commit(t){if(t===Bt)return;if(t===kt&&(t=null),t===this.value&&null!=t)return;if(this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null),this.value=t,null==t)return;if("function"!=typeof t)return;if(!this.host){const t=this.element.getRootNode();this.host=t.host||null}const e=this.host||null,n=this.keyFilter;this.listener=o=>{n&&!Yt(o,n)||t.call(e,o)},this.element.addEventListener(this.eventName,this.listener)}clear(){this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null)}}function Jt(t){const e=t.startsWith("~");e&&(t=t.substring(1));const n=t.split("+"),o={key:"",anyModifiers:e};for(const t of n){const e=t.toLowerCase();"ctrl"===e||"control"===e?o.ctrl=!0:"alt"===e?o.alt=!0:"shift"===e?o.shift=!0:"meta"===e||"cmd"===e||"command"===e?o.meta=!0:o.key=Xt(t)}return o}function Xt(t){return{esc:"Escape",escape:"Escape",enter:"Enter",return:"Enter",space:" ",spacebar:" ",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",arrowup:"ArrowUp",arrowdown:"ArrowDown",arrowleft:"ArrowLeft",arrowright:"ArrowRight",delete:"Delete",del:"Delete",backspace:"Backspace",tab:"Tab",home:"Home",end:"End",pageup:"PageUp",pagedown:"PageDown"}[t.toLowerCase()]||t}function Yt(t,e){if(t.key!==e.key)return!1;if(e.anyModifiers)return!0;const n=e.ctrl?t.ctrlKey:!t.ctrlKey,o=e.alt?t.altKey:!t.altKey,r=e.shift?t.shiftKey:!t.shiftKey,s=e.meta?t.metaKey:!t.metaKey;return n&&o&&r&&s}const Zt=Symbol("not-set");class te extends zt{constructor(t){super(),this.value=Zt,this.childFragment=null;const e=t.parentNode;for(this.startNode=document.createComment("if"),this.endNode=document.createComment("/if"),e.insertBefore(this.startNode,t),e.insertBefore(this.endNode,t.nextSibling);t.firstChild;)e.insertBefore(t.firstChild,this.endNode);e.removeChild(t)}commit(t){const e=Boolean(t);if(this.value!==t)if(this.value=t,e)this.childFragment&&this.childFragment.hasChildNodes()&&this.startNode.parentNode.insertBefore(this.childFragment,this.endNode);else{this.childFragment||(this.childFragment=document.createDocumentFragment());let t=this.startNode.nextSibling;for(;t&&t!==this.endNode;){const e=t.nextSibling;this.childFragment.appendChild(t),t=e}}}clear(){this.childFragment||(this.childFragment=document.createDocumentFragment());let t=this.startNode.nextSibling;for(;t&&t!==this.endNode;){const e=t.nextSibling;this.childFragment.appendChild(t),t=e}}}class ee extends zt{constructor(t){super(),this.value=Zt,this.branches=new Map,this.defaultBranch=null,this.currentKey=null;const e=t.parentNode;this.startNode=document.createComment("case"),this.endNode=document.createComment("/case"),e.insertBefore(this.startNode,t),e.insertBefore(this.endNode,t.nextSibling);for(const e of Array.from(t.children)){const t=e.tagName.toLowerCase();if("when"===t){const t=e.getAttribute("value")||"",n=document.createDocumentFragment();for(;e.firstChild;)n.appendChild(e.firstChild);this.branches.set(t,n)}else if("default"===t)for(this.defaultBranch=document.createDocumentFragment();e.firstChild;)this.defaultBranch.appendChild(e.firstChild)}e.removeChild(t)}commit(t){if(this.value===t)return;this.value=t;const e=String(t);this._collectCurrent();const n=this.branches.has(e),o=n?this.branches.get(e):this.defaultBranch;this.currentKey=n?e:this.defaultBranch?"__default__":null,o&&o.hasChildNodes()&&this.startNode.parentNode.insertBefore(o,this.endNode)}_collectCurrent(){if(null===this.currentKey)return;const t="__default__"===this.currentKey?this.defaultBranch:this.branches.get(this.currentKey);if(!t)return;let e=this.startNode.nextSibling;for(;e&&e!==this.endNode;){const n=e.nextSibling;t.appendChild(e),e=n}}clear(){this._collectCurrent(),this.currentKey=null}}const ne=e("on-handlers");function oe(t,e,n){let o=null,r={};return"string"==typeof e?(o=e,r=n||{}):e&&"object"==typeof e?r=e:null===e&&n&&(r=n),function(e,n){const s=n.name;return n.addInitializer(function(){const n=this.constructor;if(n.__onMethods||(n.__onMethods=new Set),n.__onMethods.has(e))return;n.__onMethods.add(e),n[ne]||(n[ne]=[]);const i=Array.isArray(t)?t:[t];for(const t of i)n[ne].push({eventName:t,selector:o,methodName:s,method:e,options:r})}),e}}function re(t,e){let n=0;return function(...o){const r=Date.now();r-n>=e&&(n=r,t.apply(this,o))}}const se=new Set(["scroll","focus","blur","load","unload","error","resize","abort","mouseenter","mouseleave","pointerenter","pointerleave"]);function ie(t,e){const n=t.constructor[ne];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].events?t[p].events.length>0&&ae(t):t[p].events=[]:t[p]={events:[],channels:[],observers:[]};for(const o of n){const n=t[o.methodName];let r=n?n.bind(t):o.method.bind(t);const s=o.options||{},i=["keydown","keyup","keypress"].includes(o.eventName.split(".")[0].split(":")[0]),a=o.eventName.indexOf("."),c=i?o.eventName.indexOf(":"):-1,l=a>0&&c>0?Math.min(a,c):Math.max(a,c),u=l>0?o.eventName.substring(0,l):o.eventName,h=l>0?o.eventName.substring(l+1):null;s.debounce&&s.debounce>0?r=ht(r,s.debounce):s.throttle&&s.throttle>0&&(r=re(r,s.throttle));let d=null;h&&["keydown","keyup","keypress"].includes(u)&&(d=Jt(h));const m=(t=>d?e=>{Yt(e,d)&&t(e)}:t)(r);if(o.selector){const n=e.shadowRoot||e,r=t=>{const e=t.target;if(e.matches&&e.matches(o.selector)&&e||e.closest&&e.closest(o.selector)||null){s.preventDefault&&t.preventDefault(),s.stopPropagation&&(t.stopPropagation(),t.stopImmediatePropagation());try{m(t)}catch(t){console.error(`Error in event handler ${o.methodName}:`,t)}}},i=se.has(u),a={capture:void 0!==s.capture?s.capture:i,once:s.once||!1,passive:s.passive||!1};n.addEventListener(u,r,a),t[p].events.push({target:n,eventName:u,handler:r,options:a})}else{const n=e.shadowRoot,r=Symbol.for(`snice:event-handled:${o.methodName}`),i=t=>{if(!t[r]){t[r]=!0,s.preventDefault&&t.preventDefault(),s.stopPropagation&&t.stopPropagation();try{m(t)}catch(t){console.error(`Error in event handler ${o.methodName}:`,t)}}},a={capture:s.capture||!1,once:s.once||!1,passive:s.passive||!1};n&&(n.addEventListener(u,i,a),t[p].events.push({target:n,eventName:u,handler:i,options:a})),e.addEventListener(u,i,a),t[p].events.push({target:e,eventName:u,handler:i,options:a})}}}}function ae(t){if(t[p]?.events){for(const{target:e,eventName:n,handler:o,options:r}of t[p].events)e.removeEventListener(n,o,r);t[p].events=[]}}class ce{constructor(){this.cleanupFns=new Map,this.pendingOperations=new Set}register(t,e){this.cleanupFns.set(t,e)}unregister(t){this.cleanupFns.delete(t)}async cleanup(){await Promise.all(this.pendingOperations);for(const t of this.cleanupFns.values())try{await t()}catch(t){console.error("Error during cleanup:",t)}this.cleanupFns.clear()}async runOperation(t){const e=t(),n=e.then(()=>{},()=>{});this.pendingOperations.add(n);try{const t=await e;return this.pendingOperations.delete(n),t}catch(t){throw this.pendingOperations.delete(n),t}}}function le(t){return function(e,o){const r=globalThis.snice?.controllerRegistry;if(!r)throw new Error("Snice global registry not initialized");return r.set(t,e),e.prototype[n]=!0,e}}async function ue(e,n){const r=e[u],s=e[h],i=e[f];if(void 0!==i&&i!==n)return;if(s===n&&r)return;r&&await he(e);const a=globalThis.snice?.controllerRegistry;if(!a)throw new Error("Snice global registry not initialized");const c=a.get(n);if(!c)throw console.error(`Controller "${n}" not found. Available:`,Array.from(a.keys())),new Error(`Controller "${n}" not found in registry`);const l=new c;t.controllerIdCounter+=1;const p=t.controllerIdCounter,y=new ce;l[o]=!0,l[d]=p,l.element=e;const g=e[S];void 0!==g&&(l[S]=g),e[u]=l,e[h]=n,e[m]=y,await e.ready,await y.runOperation(async()=>{await l.attach(e)}),pt(l,e),Tt(l,e),ie(l,e),e.dispatchEvent(new CustomEvent("controller-attached",{detail:{name:n,controller:l}}))}async function he(t){const e=t[u],n=t[h],o=t[m];e&&(o?await o.runOperation(async()=>{await e.detach(t)}):await e.detach(t),e.element=null,wt(e),_t(e),ae(e),o&&await o.cleanup(),delete e[S],delete t[u],delete t[h],delete t[m],t.dispatchEvent(new CustomEvent("controller-detached",{detail:{name:n,controller:e}})))}function de(){if(globalThis.sniceNativeControllersInitialized)return;function t(t){if(!(t instanceof HTMLElement))return;if(t.tagName.includes("-"))return;if(t[r])return;const e=t.getAttribute("controller"),n=t[f];if(e!==n){if(!e)return delete t[f],delete t[h],void he(t).catch(t=>{console.error("Failed to detach controller from native element:",t)});t[f]=e,t.ready||(t.ready=Promise.resolve()),n&&he(t).catch(t=>{console.error("Failed to detach old controller from native element:",t)}),ue(t,e).catch(t=>{console.error(`Failed to attach controller "${e}" to native element:`,t)})}}globalThis.sniceNativeControllersInitialized=!0;const e=new MutationObserver(e=>{for(const n of e)"attributes"===n.type&&"controller"===n.attributeName?t(n.target):"childList"===n.type&&n.addedNodes.forEach(e=>{e instanceof HTMLElement&&(t(e),e.querySelectorAll('[controller]:not([class*="-"])').forEach(t))})});function n(){document.querySelectorAll('[controller]:not([class*="-"])').forEach(t),e.observe(document.body,{attributes:!0,attributeFilter:["controller"],childList:!0,subtree:!0})}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",n):n(),globalThis.sniceNativeControllerObserver=e}const me=e("context-handlers");function fe(t={}){return function(e,n){const o=n.name;return n.addInitializer(function(){const n=this.constructor;n.__contextMethods||(n.__contextMethods=new Set),n.__contextMethods.has(e)||(n.__contextMethods.add(e),n[me]||(n[me]=[]),n[me].push({methodName:o,method:e,options:t}))}),e}}function pe(t){const e=t.constructor[me];if(!e||!Array.isArray(e)||0===e.length)return;const n=t[V];if(n){t[U]=n;for(const o of e){const{methodName:e,method:r,options:s}=o,i=`__wrapped_${e}`;t[i]=function(e){if(s.once&&t[J])return;const n=()=>{if(r.call(t,e),s.once){t[J]=!0;const e=t[U];e&&"function"==typeof e[K]&&e[K](t)}};if(s.debounce)return clearTimeout(t[Q]),void(t[Q]=setTimeout(n,s.debounce));if(s.throttle){const e=Date.now();return void(e-(t[Q]||0)>=s.throttle&&(t[Q]=e,n()))}n()},"function"==typeof n[W]&&n[W](t,i)}}}const ye=new class{constructor(){this.pending=new Set,this.scheduled=!1}schedule(t,e){e.sync?be(t,e):(this.pending.add(t),this.scheduled||(this.scheduled=!0,queueMicrotask(()=>this.flush())))}flush(){const t=Array.from(this.pending);this.pending.clear(),this.scheduled=!1;for(const e of t){be(e,e[$]||{})}}};function ge(t){const e=t[F];if(!e||0===e.length)return;const n=[...e];t[F]=[],n.forEach(t=>t())}function be(t,e,n){const o=t[P];if(o&&(!e.once||!t[R]))try{const r=void 0!==n?n:o.call(t);if(t.shadowRoot||t.attachShadow({mode:"open"}),!1===e.differential)return"string"!=typeof r?void console.warn("Render method with differential: false must return a string"):(t.shadowRoot.innerHTML=r,void ge(t));if(!Ot(r))return void console.warn("Render method must return html`` template result");let s=t[R];if(s&&s.isSameTemplate(r.strings))return s.update(r.values),void ge(t);s&&(t.shadowRoot.innerHTML=""),s=new Ut(r),t[R]=s,t.shadowRoot.appendChild(s.renderFragment()),s.update(r.values),ge(t)}catch(t){console.error("Error rendering element:",t)}}function ve(t,e=!1){const n=t[$]||{};if(!n.once||!t[R])if(e)be(t,n);else{if(void 0!==n.debounce&&n.debounce>0)return t[D]||(t[D]={}),clearTimeout(t[D].debounce),void(t[D].debounce=setTimeout(()=>{ye.schedule(t,n)},n.debounce));if(void 0!==n.throttle&&n.throttle>0){t[D]||(t[D]={lastThrottle:0});const e=t[D],o=Date.now();if(0===e.lastThrottle||o-e.lastThrottle>=n.throttle)return e.lastThrottle=o,void ye.schedule(t,n);if(!e.throttleTimer){const r=n.throttle-(o-e.lastThrottle);e.throttleTimer=setTimeout(()=>{e.throttleTimer=null,e.lastThrottle=Date.now(),ye.schedule(t,n)},r)}return}ye.schedule(t,n)}}function we(t={}){return function(e,n){return n.name,n.addInitializer(function(){this[P]=e,this[$]=t}),function(...t){const n=e.apply(this,t);return be(this,{},n),n}}}function Ne(){return function(t,e){return e.addInitializer(function(){this[q]&&!this[j]?this[j]=[this[q]]:this[q]&&this[j]&&this[j].push(this[q]),this[q]=t}),t}}function Se(t){t.prototype[r]=!0;const e=t.prototype.connectedCallback,n=t.prototype.disconnectedCallback,o=t.prototype.attributeChangedCallback,s=t.observedAttributes||[];s.includes("controller")||s.push("controller");const u=t[y];if(u)for(const[t,e]of u){if(!1===e.attribute)continue;const n=at(e,t);s.includes(n)||s.push(n)}Object.defineProperty(t,"observedAttributes",{get:()=>s,configurable:!0}),Object.defineProperty(t.prototype,"ready",{get(){return this[i]||(this[i]=new Promise(t=>{this[a]=t})),this[i]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"controller",{get(){return this[c]},set(t){const e=this[c];this[c]=t,t!==e&&(t?ue(this,t).catch(e=>{console.error(`Failed to attach controller "${t}":`,e)}):e&&he(this).catch(t=>{console.error("Failed to detach controller:",t)}))},enumerable:!0,configurable:!0}),t.prototype.connectedCallback=async function(){if(this[i]||(this[i]=new Promise(t=>{this[a]=t})),this[l]){ie(this,this),Tt(this,this),pe(this);try{pt(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName} on reconnection:`,t)}return void(e&&e.call(this))}this[v]=!0;const n=t[y];if(n)for(const[t,e]of n){if(!1===e.attribute)continue;const n=at(e,t);if(!this.hasAttribute(n))continue;const o=this.getAttribute(n);ct(this,N).add(t),e.type===Boolean&&""===o&&this.setAttribute(n,"true"),this[t]=it(o,e)}if(this[b]){for(const[t,e]of Array.from(this[b].entries())){const o=n?.get(t),r=at(o||{},t);this[b].delete(t),this.hasAttribute(r)||(this[t]=e)}delete this[b]}!function(t){const e=t[q];if(e&&!t[B]){t[B]=!0;try{const n=[],o=t[j];if(o)for(const e of o){const o=e.call(t);Mt(o)&&n.push(o)}const r=e.call(t);if(!Mt(r))return void console.warn("Styles method must return css`` template result");if(n.push(r),t.shadowRoot||t.attachShadow({mode:"open"}),!t.shadowRoot)return;if(n.every(t=>!!t.styleSheet)&&"adoptedStyleSheets"in t.shadowRoot)return void(t.shadowRoot.adoptedStyleSheets=n.map(t=>t.styleSheet));for(const e of n){const n=document.createElement("style");n.textContent=e.cssText,t.shadowRoot.appendChild(n)}}catch(t){console.error("Error applying styles:",t)}}}(this),ie(this,this),Tt(this,this),pe(this),this[l]=!0,e&&e.call(this);const o=t[E];await new Promise(t=>queueMicrotask(t)),this[P]&&ve(this,!0);try{pt(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName}:`,t)}if(await new Promise(t=>queueMicrotask(t)),o)for(const t of o)try{await t.method.call(this)}catch(e){console.error(`Error in @ready handler ${t.methodName}:`,e)}this[a]&&(this[a](),this[a]=null)},t.prototype.disconnectedCallback=async function(){const e=t[A];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @dispose handler ${t.methodName}:`,e)}n&&n.call(this),this[c]&&he(this).catch(t=>{console.error("Failed to detach controller:",t)}),ae(this),_t(this),function(t){const e=t.constructor[me];if(!e||!Array.isArray(e)||0===e.length)return;for(const n of e)n.options.debounce&&t[Q]&&(clearTimeout(t[Q]),delete t[Q]),delete t[`__wrapped_${n.methodName}`];const n=t[U];n&&"function"==typeof n[K]&&n[K](t),delete t[U],delete t[J]}(this),wt(this)},t.prototype.attributeChangedCallback=function(e,n,r){if(o?.call(this,e,n,r),"controller"===e)return void(this.controller=r);const s=t[y];if(s)for(const[n,o]of s){if(at(o,n).toLowerCase()!==e.toLowerCase())continue;const s=this[g]?.[n],i=it(r,o,s,void 0);if(s===i)break;ct(this,N).add(n),lt(this,g)[n]=i,this[M]?.has(e.toLowerCase())||(ut(this,t,n,s,i),this[P]&&this[l]&&ve(this));break}},t.prototype.connectedMoveCallback=async function(){const e=t[x];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @moved handler ${t.methodName}:`,e)}},t.prototype.adoptedCallback=async function(){const e=t[C];if(e)for(const t of e)try{await t.method.call(this)}catch(e){console.error(`Error in @adopted handler ${t.methodName}:`,e)}}}function Te(t,e,n,o){if(function(t){let e=Object.getPrototypeOf(t);const n=[];for(;e&&e!==HTMLElement&&e!==Function.prototype;)n.push(e),e=Object.getPrototypeOf(e);n.reverse();for(const e of n){if(e[y]){t[y]||(t[y]=new Map);for(const[n,o]of e[y])t[y].has(n)||t[y].set(n,o)}e.formAssociated&&!t.formAssociated&&(t.formAssociated=!0)}}(e),n.metadata&&n.metadata[y]){e[y]||(e[y]=new Map);for(const[t,o]of n.metadata[y])e[y].set(t,o)}return o?.formAssociated&&(e.formAssociated=!0),Se(e),customElements.get(t)?(globalThis.SNICE_DEBUG&&console.warn(`[snice] "${t}" is already registered. Skipping.`),e):(customElements.define(t,e),e)}function _e(t,e){return function(n,o){return Te(t,n,o,e)}}function Ee(t){return function(e,n){return Te(t,e,n)}}function Ae(t){return function(e,n){const o=n.name;return n.metadata||(n.metadata={}),n.metadata[y]||(n.metadata[y]=new Map),n.metadata[y].set(o,t||{}),function(e){const n=this.constructor;n[y]||(n[y]=new Map);const r={...t};r.type||void 0===e||(r.type=st(e)),n[y].set(o,r);const s=`__propDef_${o}`,i=this.constructor.prototype[s];if(!i||i!==t){this.constructor.prototype[s]=t;const n={get(){if(!1===r?.attribute)return this[g]&&o in this[g]?this[g][o]:this[b]?.has(o)?this[b].get(o):e;const t=at(r||{},o),n=this.getAttribute?.(t);if(null!==n)return it(n,r||{},void 0,e);return((r?.type||st(e))!==Boolean||!this[N]?.has(o))&&(this[b]?.has(o)?this[b].get(o):e)},set(t){const n=this[o];if(n!==t){if(!this[v])return this[b]||(this[b]=new Map),void this[b].set(o,t);if(!1===r?.attribute)lt(this,g)[o]=t;else{const n=at(r,o),s=function(t,e,n){if(null==t||!1===t||e?.type===Y&&Array.isArray(t)&&0===t.length)return null;if(e.converter?.toAttribute)return e.converter.toAttribute(t,e.type);switch(e.type||st(n)){case Boolean:return"true";case Date:return t instanceof Date?t.toISOString():String(t);case BigInt:return"bigint"==typeof t?t.toString()+"n":String(t);case Y:return Array.isArray(t)?Y.serialize(t):String(t);case Array:return Array.isArray(t)?JSON.stringify(t):String(t);case Object:return"object"==typeof t&&null!==t?JSON.stringify(t):String(t);default:return String(t)}}(t,r,e);ct(this,N).add(o),ct(this,M).add(n.toLowerCase()),null===s?this.removeAttribute?.(n):this.setAttribute?.(n,s),setTimeout(()=>{this[M]?.delete(n.toLowerCase())},0)}ut(this,this.constructor,o,n,t),this[P]&&this[l]&&ve(this)}},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,o,n)}return lt(this,g)[o]=e,e}}}function xe(t){return!0===t[o]&&t.element?t.element:t}function Ce(t,e={}){return function(n,o){const{light:r=!1,shadow:s=!0}=e,i=o.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=xe(this);let n=null;return s&&e.shadowRoot&&(n=e.shadowRoot.querySelector(t)),!n&&r&&(n=e.querySelector(t)),n||null},set(){},configurable:!0,enumerable:!0}),e}}}function Oe(t,e={}){return function(n,o){const{light:r=!1,shadow:s=!0}=e,i=o.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=xe(this),n=[];return s&&e.shadowRoot&&n.push(...e.shadowRoot.querySelectorAll(t)),r&&n.push(...e.querySelectorAll(t)),n},set(){},configurable:!0,enumerable:!0}),e}}}function Me(...t){return function(e,n){const o=n.name;n.addInitializer(function(){const n=this.constructor;if(n.__watchMethods||(n.__watchMethods=new Set),!n.__watchMethods.has(e)){n.__watchMethods.add(e),n[w]||(n[w]=new Map);for(const r of t)n[w].has(r)||n[w].set(r,[]),n[w].get(r).push({methodName:o,method:e})}})}}function ke(){return function(t,e){const n=e.name;return function(t){if(!Object.hasOwn(this.constructor.prototype,n)){const t={get(){if(void 0!==this[S])return this[S];let t=!0===this[o]&&this.element?this.element:this;if(!t||!t.dispatchEvent)return;t.getRootNode&&t.getRootNode()instanceof ShadowRoot&&(t=t.getRootNode().host);const e={target:this};return t.dispatchEvent(new CustomEvent("@context/request",{bubbles:!0,cancelable:!0,detail:e})),void 0!==e.context?(this[S]=e.context,e.context):void 0},set(){},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,n,t)}return t}}}function Le(t,e,n,o,r){const s=o.name;o.addInitializer(function(){const o=this.constructor,i=`__${e}Methods`;o[i]||(o[i]=new Set),o[i].has(n)||(o[i].add(n),o[t]||(o[t]=[]),o[t].push({methodName:s,method:n,...r}))})}function Ie(){return function(t,e){Le(E,"ready",t,e)}}function Pe(){return function(t,e){Le(A,"dispose",t,e)}}function $e(t,e,n){return function(o={}){return function(r,s){Le(t,n,r,s,{options:o});const i=s.name;return function(...t){this[e]||(this[e]=new Map),this[e].has(i)||this[e].set(i,{throttleTimer:null,debounceTimer:null,lastThrottleCall:0});const n=this[e].get(i),s=(...t)=>r.apply(this,t);if(o.debounce>0)return clearTimeout(n.debounceTimer),void(n.debounceTimer=setTimeout(()=>s(...t),o.debounce));if(o.throttle>0){const e=Date.now();if(0===n.lastThrottleCall||e-n.lastThrottleCall>=o.throttle)return n.lastThrottleCall=e,s(...t);if(!n.throttleTimer){const r=o.throttle-(e-n.lastThrottleCall);n.throttleTimer=setTimeout(()=>{n.throttleTimer=null,n.lastThrottleCall=Date.now(),s(...t)},r)}return}return s(...t)}}}}const Re=$e(x,k,"moved"),De=$e(C,L,"adopted");
|
|
14
14
|
/*!
|
|
15
15
|
* pica-route v1.1.2
|
|
16
16
|
* A pure URL pattern matching library compatible with route-parser API
|
|
@@ -19,14 +19,14 @@ globalThis.snice||(globalThis.snice={controllerRegistry:new Map,controllerIdCoun
|
|
|
19
19
|
*/
|
|
20
20
|
class Fe{constructor(t){this.parsed=this.parsePattern(t)}get spec(){return this.parsed.template}parsePattern(t){let e=t,n="",o=!1;const r=t.indexOf("?");return-1!==r&&(e=t.slice(0,r),n=t.slice(r+1),e.endsWith("(")&&n.endsWith(")")&&(o=!0,e=e.slice(0,-1),n=n.slice(0,-1))),{pathSegments:this.parseSegments(e),querySegments:n?this.parseQuerySegments(n):[],queryOptional:o,template:t}}parseSegments(t){const e=[];let n=0;for(;n<t.length;){switch(t[n]){case"(":const{segments:o,endIndex:r}=this.parseOptionalGroup(t,n);e.push({type:"optional",segments:o}),n=r+1;break;case":":const{name:s,endIndex:i}=this.parseIdentifier(t,n+1);e.push({type:"param",name:s}),n=i;break;case"*":const{name:a,endIndex:c}=this.parseIdentifier(t,n+1);e.push({type:"splat",name:a}),n=c;break;default:const{value:l,endIndex:u}=this.parseLiteral(t,n);l&&e.push({type:"literal",value:l}),n=u}}return e}parseOptionalGroup(t,e){let n=1,o=e+1;for(;o<t.length&&n>0;)"("===t[o]&&n++,")"===t[o]&&n--,o++;const r=t.slice(e+1,o-1);return{segments:this.parseSegments(r),endIndex:o-1}}parseIdentifier(t,e){let n=e;for(;n<t.length&&/[\w-]/.test(t[n]);)n++;return{name:t.slice(e,n),endIndex:n}}parseLiteral(t,e){let n=e;for(;n<t.length&&!"(:*(".includes(t[n]);)n++;return{value:t.slice(e,n),endIndex:n}}parseQuerySegments(t){let e=t;e.startsWith("(")&&e.endsWith(")")&&(e=e.slice(1,-1));const n=[];let o=0;for(;o<e.length;)if(":"===e[o]){const{name:t,endIndex:r}=this.parseIdentifier(e,o+1);n.push({type:"param",name:t}),o=r}else{const{value:t,endIndex:r}=this.parseQueryLiteral(e,o);t&&n.push({type:"literal",value:t}),o=r}return n}parseQueryLiteral(t,e){let n=e;for(;n<t.length&&":"!==t[n];)n++;return{value:t.slice(e,n),endIndex:n}}getAllParamNames(){const t=new Set,e=n=>{for(const o of n)switch(o.type){case"param":case"splat":t.add(o.name);break;case"optional":e(o.segments)}};return e(this.parsed.pathSegments),e(this.parsed.querySegments),Array.from(t)}canMatchRemainingSegments(t,e,n){let o=e;for(const e of n)if("literal"===e.type){const n=t.indexOf(e.value,o);if(-1===n)return!1;o=n+e.value.length}return!0}match(t){const[e,n]=t.split("?"),o=this.matchPath(e,this.parsed.pathSegments);if(!1===o)return!1;const r=this.matchQuery(n||"",this.parsed.querySegments);if(!1===r)return!1;const s=this.getAllParamNames(),i={};for(const t of s)i[t]=void 0;return Object.assign(i,o,r),i}matchPath(t,e){const n={};let o=0;for(let r=0;r<e.length;r++){const s=e[r],i=e.slice(r+1),a=this.matchSegment(t,o,s,i);if(!1===a)return!1;Object.assign(n,a.params),o=a.nextIndex}return!(o<t.length)&&n}matchSegment(t,e,n,o=[]){switch(n.type){case"literal":return t.slice(e,e+n.value.length)===n.value&&{params:{},nextIndex:e+n.value.length};case"param":{let r=e;const s=o[0];let i,a=["/","?"];if(s&&"literal"===s.type){const n=s.value,o=t.indexOf(n,e);if(-1===o)return!1;r=o}else for(;r<t.length&&!a.includes(t[r]);)r++;if(r===e)return!1;try{i=decodeURIComponent(t.slice(e,r))}catch(n){i=t.slice(e,r)}return!(r<t.length&&"?"===t[r]&&o.length>0)&&{params:{[n.name]:i},nextIndex:r}}case"splat":{let r=t.length;const s=o[0];if(s)switch(s.type){case"literal":if("."===s.value){const n=t.indexOf(".",e);-1!==n&&(r=n)}else{const n=t.lastIndexOf(s.value);-1!==n&&n>=e&&(r=n)}break;case"param":let n=-1;for(let o=t.length-1;o>=e;o--)if("/"===t[o]){n=o;break}-1!==n&&(r=n);break;case"splat":let o=-1;for(let n=t.length-1;n>e;n--)if("/"===t[n]){o=n+1;break}if(-1!==o)r=o;else{const n=t.slice(e).split("/").filter(t=>t);r=n.length>1?e+n.slice(0,-1).join("/").length+1:e}break;case"optional":const i=t=>{for(const e of t){if("literal"===e.type)return e.value;if("optional"===e.type){const t=i(e.segments);if(t)return t}}return null},a=i(s.segments);if(a){const n=t.lastIndexOf(a);-1!==n&&n>=e&&(r=n)}}const i=t.indexOf("?",e);let a;-1!==i&&i<r&&(r=i);try{a=decodeURIComponent(t.slice(e,r))}catch(n){a=t.slice(e,r)}return{params:{[n.name]:a},nextIndex:r}}case"optional":{let r=e,s={},i=!0;for(let e=0;e<n.segments.length;e++){const o=n.segments[e],a=n.segments.slice(e+1),c=this.matchSegment(t,r,o,a);if(!1===c){i=!1;break}Object.assign(s,c.params),r=c.nextIndex}if(i){if(this.canMatchRemainingSegments(t,r,o))return{params:s,nextIndex:r}}return{params:{},nextIndex:e}}default:return!1}}findNextLiteral(t){for(const e of t){if("literal"===e.type)return e;if("optional"===e.type){const t=this.findNextLiteral(e.segments);if(t)return t}}return null}matchQuery(t,e){if(0===e.length)return{};const n={};let o=0;for(const r of e)switch(r.type){case"literal":if(t.slice(o,o+r.value.length)!==r.value)return!1;o+=r.value.length;break;case"param":{let e,s=o;for(;s<t.length&&"&"!==t[s];)s++;if(s===o)return!1;try{e=decodeURIComponent(t.slice(o,s))}catch(n){e=t.slice(o,s)}n[r.name]=e,o=s;break}}return n}reverse(t={}){const e=this.reverseSegments(this.parsed.pathSegments,t);if(!1===e)return!1;let n=e;if(this.parsed.querySegments.length>0){const e=this.reverseSegments(this.parsed.querySegments,t);if(!this.parsed.queryOptional&&!1===e)return!1;e&&""!==e&&(n+="?"+e)}return n}reverseSegments(t,e,n=!1){let o="";for(let r=0;r<t.length;r++){const s=t[r],i=t.slice(r+1);switch(s.type){case"literal":o+=s.value;break;case"param":case"splat":if(!(s.name in e))return!1;o+=String(e[s.name]);break;case"optional":if(this.hasAllParams(s.segments,e,n)||this.hasLaterOptionalGroupNeedingParams(i,e,s.segments)){const t=this.reverseSegments(s.segments,e,!0);if(!1===t)return!1;o+=t}}}return o}hasLaterOptionalGroupNeedingParams(t,e,n){for(const o of t)if("optional"===o.type&&this.hasAnyParamInSegments(o.segments,e))return this.hasOnlyLiteralsAndOptionals(n);return!1}hasOnlyLiteralsAndOptionals(t){for(const e of t)if("param"===e.type||"splat"===e.type)return!1;return!0}hasAllParams(t,e,n=!1){let o=!1,r=!1,s=!1,i=!0;for(const n of t)switch(n.type){case"param":case"splat":i=!1,n.name in e&&void 0!==e[n.name]?o=!0:s=!0}const a=n||o&&!s;for(const n of t)if("optional"===n.type){this.hasAllParams(n.segments,e,a)&&(r=!0)}return!(!o||s)||(!(!r||s)||!(!i||!n))}hasOnlyOptionalMissingParams(t,e){for(const n of t)switch(n.type){case"param":case"splat":if(!(n.name in e))return!1}return!0}hasAnyParamInSegments(t,e){for(const n of t)switch(n.type){case"param":case"splat":if(n.name in e)return!0;break;case"optional":if(this.hasAnyParamInSegments(n.segments,e))return!0}return!1}}function qe(t){const e={};return t.split(";").forEach(t=>{const[n,o]=t.split(":").map(t=>t.trim());n&&o&&(e[n]=o)}),e}var Be,je;function Ve(t,e,n,o){if(t.style.position="absolute",t.style.width="100%",e)return t.style.height="100%",void(t.style.transition=`opacity ${n}ms ease-in-out`);t.style.top="0",t.style.left="0",t.style.transition=`${o} ${n}ms ease-in-out`}function Ue(t){const e=t.window??window,n=t.document??document,o=[];let r,s,i,a=!1,c=[],l=null,u=null;const h=t.context||{},d=new rt(h,[],"",{},t.fetcher);function m(t){if(!l||!u)return null;const e=t.querySelectorAll(l);for(const t of e){if(t[_]===u)return t}return null}function f(t,e,n,c,l,u){switch(o.push({route:new Fe(t),tag:e,transition:n,guards:c,layout:l,placard:u}),a=!1,t){case"/404":r=e;break;case"/403":s=e;break;case"/":i=e}}function p(){const t=new Set;c=o.filter(t=>t.placard).map(t=>{const e=t.placard;return"function"==typeof e?e(h):e}).filter(e=>!t.has(e.name)&&(t.add(e.name),!0))}function g(t,e,n){d[X](h,c,e,n)}function b(){switch(t.type){case"hash":return e.location.hash.slice(1);case"pushstate":return e.location.pathname}}function v(t){let e;if(s)e=n.createElement(s),e[S]=h;else{const t=n.createElement("div");t.className="default-403",t.innerHTML="<h1>403</h1><p>Unauthorized</p>",e=t}t.innerHTML="",t.appendChild(e),l=null,u=null}async function w(t,e,o){if(!!!t)return!0;const r=Array.isArray(t)?t:[t];let s=null,i=null;i=setTimeout(()=>{s=function(){const t=n.createElement("div");return t.setAttribute("data-snice-loading",""),t.innerHTML='\n <style>@keyframes snice-spin{to{transform:rotate(360deg)}}</style>\n <div style="display:flex;align-items:center;justify-content:center;height:100%;min-height:200px">\n <div style="width:32px;height:32px;border:3px solid rgba(128,128,128,0.3);border-top-color:rgba(128,128,128,0.8);border-radius:50%;animation:snice-spin 0.6s linear infinite"></div>\n </div>',t}(),o.appendChild(s)},50);try{for(const t of r){if(!await t(h,e))return v(o),!1}return!0}finally{i&&clearTimeout(i),s&&s.remove()}}async function N(t,e,n,o,r,s,i){const a=o||m(t);if(!a)return;!function(t,e,n){"function"==typeof t.update&&t.update(h,c,e,n)}(a,s,i);const l=a.querySelector('[slot="page"]');if(!(!n||!l))return e.setAttribute("slot","page"),await x(a,l,e,n),void(r&&(t.innerHTML="",t.appendChild(a)));a.querySelectorAll('[slot="page"]').forEach(t=>t.remove()),e.setAttribute("slot","page"),a.appendChild(e),r&&(t.innerHTML="",t.appendChild(a))}async function E(e,o,r,s,i,a){const c=!1===(d=s)?null:d||(t.layout?t.layout:null);var d;const{element:f,needsNewLayout:p}=function(t){if(t===l)return{element:null,needsNewLayout:!1};if(l=t,!!t){const e=Date.now();u=e;const o=n.createElement(t);return o[S]=h,o[_]=e,{element:o,needsNewLayout:!0}}return u=null,{element:null,needsNewLayout:!0}}(c),y=r||t.transition;if(null!==f||null!==m(e))return await N(e,o,y,f,p,i,a),void g(0,i,a);await async function(t,e,n){const o=t.children[0];n&&o?await x(t,o,e,n):(t.innerHTML="",t.appendChild(e))}(e,o,y),g(0,i,a)}async function A(s){const a=n.querySelector(t.target);if(!a)throw new Error(`Target element not found: ${t.target}`);p(),e.scrollTo(0,0);if((""===s?.trim()||"/"===s)&&!!i){const t=o.find(t=>t.route.match("/"));if(!await w(t?.guards,{},a))return;const{element:r,transition:c,layout:l}=function(){const t=n.createElement(i);t[S]=h;const r=e.customElements.get(i),s=r?.[T],a=o.find(t=>t.route.match("/"));return{element:t,transition:s,layout:a?.layout}}();return void await E(a,r,c,l,s,{})}if(!s)return;const c=await async function(t,e){for(const r of o){const o=r.route.match(t);if(!1===o)continue;if(!await w(r.guards,o,e))return{result:je.GUARDS_FAILED};const s=n.createElement(r.tag);s[S]=h,s[V]=d;const i=o;return Object.keys(i).forEach(t=>s.setAttribute(t,i[t])),{result:je.SUCCESS,element:s,transition:r.transition,layout:r.layout,routeParams:i}}return{result:je.NOT_FOUND}}(s,a);if(c.result===je.GUARDS_FAILED)return;if(c.result===je.SUCCESS){const{element:t,transition:e,layout:n,routeParams:o={}}=c;return void await E(a,t,e,n,s,o)}const{element:l,transition:u,layout:m}=function(){if(r){const t=n.createElement(r);t[S]=h;const o=e.customElements.get(r),s=o?.[T];return{element:t,transition:s,layout:void 0}}const t=n.createElement("div");return t.className="default-404",t.innerHTML="<h1>404</h1><p>Page not found</p>",{element:t,transition:void 0,layout:void 0}}();await E(a,l,u,m,s,{})}async function x(t,e,n,o){return async function(t,e,n,o={}){const r=o.outDuration||300,s=o.inDuration||300,i=o.mode||"sequential",a=o.out?qe(o.out):{opacity:"0"},c={opacity:"0"},l=o.in?qe(o.in):{opacity:"1"},u=t.style,h=u.position,d=t.tagName.includes("-")&&t.shadowRoot;d||(u.position="relative");const m=e.hasAttribute("slot")||n.hasAttribute("slot");switch(Ve(e,m,r,"all"),Ve(n,m,s,"all"),Object.assign(n.style,c),t.appendChild(n),n.offsetHeight,i){case Be.SIMULTANEOUS:Object.assign(e.style,a),Object.assign(n.style,l),await new Promise(t=>setTimeout(t,Math.max(r,s)));break;case Be.SEQUENTIAL:Object.assign(e.style,a),await new Promise(t=>setTimeout(t,r)),Object.assign(n.style,l),await new Promise(t=>setTimeout(t,s))}e.remove(),function(t,e){t.style.position="",t.style.width="",t.style.transition="",e?t.style.height="":(t.style.top="",t.style.left="")}(n,m),Object.keys({...c,...l}).forEach(t=>{n.style[t]=""}),d||(u.position=h)}(t,e,n,o)}return{page:function(t){return function(n,o){if(o?.metadata&&o.metadata[y]){n[y]||(n[y]=new Map);for(const[t,e]of o.metadata[y])n[y].set(t,e)}Se(n),n[T]=t.transition;const r=n.prototype.connectedCallback;n.prototype.connectedCallback=function(){this[V]=d,r?.call(this)};const s=n.prototype.disconnectedCallback;return n.prototype.disconnectedCallback=function(){s?.call(this),delete this[S],delete this[V]},e.customElements.get(t.tag)||e.customElements.define(t.tag,n),t.routes.forEach(e=>f(e,t.tag,t.transition,t.guards,t.layout,t.placard)),n}},initialize:function(){if(!n.querySelector(t.target))throw new Error(`Target element not found: ${t.target}`);!a&&(o.sort((t,e)=>e.route.spec.length-t.route.spec.length),a=!0),p(),function(){const o=()=>{n.querySelector(t.target)&&A(b())};switch(t.type){case"hash":e.addEventListener("hashchange",o);break;case"pushstate":e.addEventListener("popstate",o)}}(),A(b())},navigate:A,register:f}}function ze(t,e){return function(n,o){return function(...r){this[I]||(this[I]=new Map);const s=`${t}_${o.name}`;this[I].has(s)||this[I].set(s,{debounceTimeout:null,throttleLastCall:0,throttleTimeout:null});const i=this[I].get(s),a=n.apply(this,r),c=n=>{if(void 0===n&&!1===e?.dispatchOnUndefined)return;const o=new CustomEvent(t,{bubbles:!0,composed:!0,...e,detail:n});this.dispatchEvent(o)},l=t=>{if(e?.debounce)return clearTimeout(i.debounceTimeout),void(i.debounceTimeout=setTimeout(()=>c(t),e.debounce));if(!e?.throttle)return void c(t);const n=Date.now(),o=e.throttle-(n-i.throttleLastCall);if(o<=0)return clearTimeout(i.throttleTimeout),i.throttleLastCall=n,void c(t);i.throttleTimeout||(i.throttleTimeout=setTimeout(()=>{i.throttleLastCall=Date.now(),i.throttleTimeout=null,c(t)},o))};return a instanceof Promise?a.then(t=>(l(t),t)):(l(a),a)}}}function He(t,e,n){const o=[];for(const[r,s]of Object.entries(e)){const e=`@request/${r}`,i=t=>{const e=t,{discovery:o,data:i,payload:a}=e.detail;n?.passive||(e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()),o.resolve(),Promise.resolve().then(()=>s(a)).then(t=>i.resolve(t)).catch(t=>{i.reject(t),console.error(`createRequestHandler: error in "${r}" handler:`,t)})};t.addEventListener(e,i),o.push(()=>t.removeEventListener(e,i))}return()=>{for(const t of o)t();o.length=0}}!function(t){t.SEQUENTIAL="sequential",t.SIMULTANEOUS="simultaneous"}(Be||(Be={})),function(t){t.SUCCESS="success",t.GUARDS_FAILED="guards-failed",t.NOT_FOUND="not-found"}(je||(je={}));let We=!1;function Ke(t){We=t}async function Ge(t,e=500){if(customElements.get(t))return;let n=null;We||(n=setTimeout(()=>{console.warn(`Custom element <${t}> is taking longer than ${e}ms to register. This may indicate a missing import or circular dependency. Set DISABLE_ELEMENT_READY_WARNINGS=true to disable this warning.`)},e));try{await customElements.whenDefined(t)}finally{n&&clearTimeout(n)}}async function Qe(t,e=500){const n=t.tagName.toLowerCase();await Ge(n,e),"ready"in t&&"function"==typeof t.ready?.then&&await t.ready}async function Je(t,e=500){const n=[];if(t instanceof Element&&(t.tagName.includes("-")&&n.push(t),t.shadowRoot)){t.shadowRoot.querySelectorAll("*").forEach(t=>{t.tagName.includes("-")&&n.push(t)})}if(t instanceof DocumentFragment){t.querySelectorAll("*").forEach(t=>{t.tagName.includes("-")&&n.push(t)})}await Promise.all(n.map(t=>Qe(t,e)))}async function*Xe(t){for(;;)await new Promise(e=>{t[F]||(t[F]=[]),t[F].push(e)}),yield}const Ye=e("debounce-timers"),Ze=e("throttle-timers"),tn=e("once-called"),en=e("memoize-cache");function nn(t=300,e={}){const{leading:n=!1,trailing:o=!0,maxWait:r}=e;return function(e,s){const i=s.name;return function(...s){this[Ye]||(this[Ye]={});const a=this[Ye],c=i;a[c]&&clearTimeout(a[c].timeout);const l=Date.now(),u=!a[c],h=u?l:a[c].startTime,d=void 0!==r&&l-h>=r;if(n&&u){const t=e.apply(this,s);return a[c]={timeout:null,startTime:h,lastArgs:s},t}const m=setTimeout(()=>{(o||d)&&e.apply(this,a[c].lastArgs),delete a[c]},d?0:t);a[c]={timeout:m,startTime:h,lastArgs:s}}}}function on(t=300,e={}){const{leading:n=!0,trailing:o=!0}=e;return function(e,r){const s=r.name;return function(...r){this[Ze]||(this[Ze]={});const i=this[Ze],a=s,c=Date.now();if(!i[a])return n&&e.apply(this,r),i[a]={lastInvoke:c,timeout:null,lastArgs:r},void(o&&!n&&(i[a].timeout=setTimeout(()=>{e.apply(this,i[a].lastArgs),delete i[a]},t)));const l=c-i[a].lastInvoke;if(i[a].lastArgs=r,i[a].timeout&&clearTimeout(i[a].timeout),l>=t)return e.apply(this,r),void(i[a].lastInvoke=c);if(o){const n=t-l;i[a].timeout=setTimeout(()=>{e.apply(this,i[a].lastArgs),i[a].lastInvoke=Date.now(),i[a].timeout=null},n)}}}}function rn(t=!0){let e,n=!1;return function(o,r){const s=r.name;return function(...r){return t?(this[tn]||(this[tn]={}),this[tn][s]||(this[tn][s]={called:!0,result:o.apply(this,r)}),this[tn][s].result):(n||(n=!0,e=o.apply(this,r)),e)}}}function sn(t={}){const{keyGenerator:e=(...t)=>JSON.stringify(t),maxSize:n=100,ttl:o}=t;return function(t,r){const s=r.name;return function(...r){this[en]||(this[en]={}),this[en][s]||(this[en][s]=new Map);const i=this[en][s],a=e(...r);if(i.has(a)){const t=i.get(a);if(!(void 0!==o&&Date.now()-t.timestamp>o))return t.value;i.delete(a)}const c=t.apply(this,r);if(i.set(a,{value:c,timestamp:Date.now()}),i.size>n){const t=i.keys().next().value;i.delete(t)}return c}}}function an(t){if(t[Ye]){for(const e in t[Ye])t[Ye][e]?.timeout&&clearTimeout(t[Ye][e].timeout);t[Ye]={}}}function cn(t){if(t[Ze]){for(const e in t[Ze])t[Ze][e]?.timeout&&clearTimeout(t[Ze][e].timeout);t[Ze]={}}}function ln(t,e){t[en]&&(e?delete t[en][e]:t[en]={})}function un(t,e){t[tn]&&(e?delete t[tn][e]:t[tn]={})}class hn{constructor(){this.requestMiddlewares=[],this.responseMiddlewares=[]}use(t,e){"request"!==t?this.responseMiddlewares.push(e):this.requestMiddlewares.push(e)}create(t){const e=this.requestMiddlewares,n=this.responseMiddlewares;return async function(t,o){const r=new Request(t,o);let s=0;const i=async()=>{if(s<e.length){return e[s++].call(this,r,i)}const t=await fetch(r);let o=0;const a=async()=>{if(o<n.length){return n[o++].call(this,t,a)}return t};return a()};return i()}.bind(t)}}
|
|
21
21
|
/*!
|
|
22
|
-
* snice v4.36.
|
|
22
|
+
* snice v4.36.1
|
|
23
23
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
24
24
|
* (c) 2024
|
|
25
25
|
* Released under the MIT License.
|
|
26
26
|
*/
|
|
27
27
|
var dn;"undefined"!=typeof document&&de(),
|
|
28
28
|
/*!
|
|
29
|
-
* snice v4.36.
|
|
29
|
+
* snice v4.36.1
|
|
30
30
|
* A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
|
|
31
31
|
* (c) 2024
|
|
32
32
|
* Released under the MIT License.
|