snice 4.27.0 → 4.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/accordion/snice-accordion.js +1 -1
- package/dist/cdn/accordion/snice-accordion.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 +2 -2
- package/dist/cdn/badge/snice-badge.js.map +1 -1
- package/dist/cdn/badge/snice-badge.min.js +2 -2
- package/dist/cdn/badge/snice-badge.min.js.map +1 -1
- package/dist/cdn/banner/snice-banner.js +1 -1
- package/dist/cdn/banner/snice-banner.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 +11 -10
- package/dist/cdn/button/snice-button.js.map +1 -1
- package/dist/cdn/button/snice-button.min.js +3 -3
- package/dist/cdn/button/snice-button.min.js.map +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/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 +11 -10
- package/dist/cdn/login/snice-login.js.map +1 -1
- package/dist/cdn/login/snice-login.min.js +5 -5
- package/dist/cdn/login/snice-login.min.js.map +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 +2 -2
- package/dist/cdn/runtime/snice-runtime.esm.js +83 -61
- package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.esm.min.js +7 -7
- package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.js +83 -61
- package/dist/cdn/runtime/snice-runtime.js.map +1 -1
- package/dist/cdn/runtime/snice-runtime.min.js +7 -7
- 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 +11 -10
- package/dist/cdn/table/snice-table.js.map +1 -1
- package/dist/cdn/table/snice-table.min.js +73 -73
- package/dist/cdn/table/snice-table.min.js.map +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/components/badge/snice-badge.js +1 -1
- package/dist/components/badge/snice-badge.js.map +1 -1
- package/dist/components/button/snice-button.d.ts +2 -2
- package/dist/components/button/snice-button.js +11 -10
- package/dist/components/button/snice-button.js.map +1 -1
- package/dist/index.cjs +80 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +80 -58
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +80 -58
- package/dist/index.iife.js.map +1 -1
- package/dist/parts.d.ts +9 -7
- 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/package.json +20 -10
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* snice v4.
|
|
2
|
+
* snice v4.28.0
|
|
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.
|
|
8
|
+
* snice v4.27.0
|
|
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"),r=e("is-controller-instance"),o=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"),v=e("pre-init-property-values"),b=e("properties-initialized"),w=e("property-watchers"),S=e("explicitly-set-properties"),T=e("router-context"),N=e("page-transition"),E=e("created-at"),A=e("ready-handlers"),_=e("dispose-handlers"),x=e("moved-handlers"),C=e("adopted-handlers"),O=e("observers"),k=e("setting-from-property"),L=e("moved-timers"),$=e("adopted-timers"),I=e("dispatch-timers"),M=e("render-method"),R=e("render-options"),P=e("render-instance"),D=e("render-timers"),q=e("render-callbacks"),F=e("styles-method"),V=e("styles-applied"),j=e("context-handler"),U=e("navigation-context-instance"),z=e("registered-elements"),B=e("is-updating"),W=e("context-register"),H=e("context-unregister"),G=e("context-notify-element"),Q=e("context-timer"),K=e("context-called"),J=e("context-update");class X{static{this.SEPARATOR=","}static serialize(t){return Array.isArray(t)?t.map(t=>{if("string"==typeof t){if(t.includes(X.SEPARATOR))throw new Error(`SimpleArray strings cannot contain the character "${X.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(X.SEPARATOR):""}static parse(t){return null==t||""===t?[]:t.split(X.SEPARATOR).map(t=>{if(/^-?\d+\.?\d*$/.test(t)){const e=Number(t);if(!isNaN(e))return e}return"true"===t||"false"!==t&&t})}}var Y,Z,tt;const et=Symbol.for("snice:registered-elements-set");let nt=0;class rt{constructor(t={},e=[],n="",r={},o){if(this[Y]=new WeakMap,this[Z]=new Set,this[tt]=!1,this.id=nt++,this.application=t,this.navigation={placards:e,route:n,params:r},o&&"function"==typeof o.create)this.fetch=o.create(this);else{if("function"!=typeof fetch)throw new Error("No fetch implementation available");this.fetch=fetch.bind(this)}}[(Y=z,Z=et,tt=B,W)](t,e){this[z].set(t,e),this[et].add(t)}[H](t){this[z].delete(t),this[et].delete(t)}[J](t,e,n,r){this.application=t,this.navigation.placards=e,this.navigation.route=n,this.navigation.params=r,this.notify()}update(){this.notify()}notify(){if(this[B])return;this[B]=!0;const t=this[et],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[B]=!1}[G](t){const e=this[z].get(t);e&&"function"==typeof t[e]&&t[e](this)}}function ot(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 st(t,e,n,r){switch(e.type||ot(r)){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 X:return X.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 it(t,e){return"string"==typeof t.attribute?t.attribute:e.toLowerCase()}function at(t,e){return t[e]||(t[e]=new Set),t[e]}function ct(t,e){return t[e]||(t[e]={}),t[e]}function lt(t,e,n,r,o){const s=e[w];if(s){if(s.has(n))for(const e of s.get(n))try{e.method.call(t,r,o,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,r,o,n)}catch(t){console.error(`Error in @watch('*') method ${e.methodName}:`,t)}}}function ut(t,e){let n=null;return function(...r){null!==n&&clearTimeout(n),n=setTimeout(()=>{t.apply(this,r),n=null},e)}}function ht(t,e){let n=0,r=null;return function(...o){const s=Date.now(),i=e-(s-n);if(i<=0)return r&&(clearTimeout(r),r=null),n=s,t.apply(this,o);r||(r=setTimeout(()=>{n=Date.now(),r=null,t.apply(this,o)},i))}}const dt=new Map;function mt(t,e,n){let r,o;return"string"==typeof e?(r=e,o=n):(r=void 0,o=e),function(e,n){const s=n.name,i=`__observe_init_${s}`;n.addInitializer(function(){const n=this.constructor;if(n[i])return;n[i]=!0,n[O]||(n[O]=[]);const a=Array.isArray(t)?t:[t];for(const t of a){const[i,...a]=t.split(":"),c=a.join(":");n[O].push({type:i,target:c,selector:r,methodName:s,method:e,options:o})}})}}function ft(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 r of n){const n=r.method.bind(t),o=r.options?.throttle?ht(n,r.options.throttle):n;switch(r.type){case"intersection":pt(t,e,r,o);break;case"resize":yt(t,e,r,o);break;case"media":gt(t,e,r,o);break;case"mutation":vt(t,e,r,o);break;default:console.warn(`Unknown observer type: ${r.type}`)}}}}function pt(t,e,n,r){const o={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===r(e)&&s&&s.unobserve(e.target)}catch(t){console.error(`Error in intersection observer ${n.methodName}:`,t)}},o),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 yt(t,e,n,r){const o=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{r(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:o})}),t[p].observers.push(()=>{s.disconnect()})}function gt(t,e,n,r){const o=n.target;if(!o)return void console.warn("Media query observer requires a query string");let s=dt.get(o);if(!s)try{s=window.matchMedia(o),dt.set(o,s)}catch(t){return void console.error(`Invalid media query: ${o}`,t)}const i=t=>{try{r(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,o){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 o(t);const r=n.options.maxDepth,s=e.shadowRoot||e,i=t.filter(t=>{let e=0,n=t.target;for(;n&&n!==s&&e<r;)n=n.parentNode,e++;return e<r});i.length>0&&o(i)}catch(t){console.error(`Error in mutation observer ${n.methodName}:`,t)}}),h=!0===t[r];(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 bt(t){if(t[p]?.observers){for(const e of t[p].observers)e();t[p].observers=[]}}function wt(t,e){return function(n,o){let s,i,a=0;return async function(...o){const c=async()=>{const s=e?.timeout??12e4,i=e?.discoveryTimeout??50,a=n.apply(this,o),{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[r]&&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:r}=await a.next(n);return r}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,r){const o=r.name,i=`__respond_init_${t}_${o}`;r.addInitializer(function(){const r=this.constructor;r[i]||(r[i]=!0,r[s]||(r[s]=[]),r[s].push({channelName:t,methodName:o,method:n,options:e}))})}}function Tt(t,e){const n=t.constructor[s];if(n){t[p]||(t[p]={events:[],channels:[]});for(const r of n){const n=r.method.bind(t),o=`@request/${r.channelName}`;let s,i,a=0;const c=(t=>r.options?.debounce?(...e)=>new Promise((n,o)=>{clearTimeout(s),s=setTimeout(async()=>{try{n(await t(...e))}catch(t){o(t)}},r.options.debounce)}):r.options?.throttle?(...e)=>{const n=Date.now(),o=r.options.throttle-(n-a);return o<=0?(clearTimeout(i),a=n,t(...e)):i?Promise.resolve(void 0):new Promise((n,r)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{n(await t(...e))}catch(t){r(t)}},o)})}:t)(n),l=t=>{const{data:e,discovery:n,payload:o}=t.detail;t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),n.resolve(),Promise.resolve(c(o)).then(t=>{e.resolve(t)}).catch(t=>{e.reject(t),console.error(`Error in response handler ${r.methodName}:`,t)})};e.addEventListener(o,l),t[p].channels.push(()=>{e.removeEventListener(o,l)})}}}function Nt(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 _t(t,...e){return{_$litType$:Et,strings:t,values:e}}function xt(t,...e){let n=t[0];for(let r=0;r<e.length;r++)n+=String(e[r])+t[r+1];const r={_$litType$:At,cssText:n};if("undefined"!=typeof CSSStyleSheet&&"adoptedStyleSheets"in Document.prototype)try{const t=new CSSStyleSheet;t.replaceSync(n),r.styleSheet=t}catch(t){}return r}function Ct(t){return t&&t._$litType$===Et}const Ot=Symbol.for("snice:nothing"),kt=Symbol.for("snice:unsafe-html");function Lt(t){return{_$litType$:kt,html:t}}const $t=`snice$${Math.random().toFixed(9).slice(2)}$`,It="?"+$t,Mt=`<${It}>`,Rt=new RegExp($t,"g"),Pt=new WeakMap,Dt=Symbol("not-committed"),qt=Symbol.for("snice:no-change"),Ft=t=>null===t||"object"!=typeof t&&"function"!=typeof t;class Vt{constructor(t,e,n){this.parts=[],this.element=e;const r=document.createTreeWalker(e.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT);let o=0;const s=[];let i;for(;null!==(i=r.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($t)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-if",index:o++,element:t}));continue}if("case"===e){const e=t.getAttribute("value");e&&e.includes($t)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-case",index:o++,element:t}));continue}if(t.hasAttributes()){const e=t.attributes,r=[];for(let s=0;s<e.length;s++){const i=e[s],a=i.value;if(a.includes($t)){r.push(i);const e=n[o]||i.name,s=a.split($t),c=s.length-1;e.startsWith("@@")||e.startsWith("@")?(this.parts.push({type:"event",index:o,name:e.slice(1),element:t}),o+=1):e.startsWith(".")?(this.parts.push({type:"property",index:o,name:e.slice(1),element:t}),o+=1):e.startsWith("?")?(this.parts.push({type:"boolean-attribute",index:o,name:e.slice(1),element:t}),o+=1):(this.parts.push({type:"attribute",index:o,name:i.name,element:t,attrStrings:s}),o+=c)}}for(const e of r)t.removeAttribute(e.name)}}else if(i.nodeType===Node.COMMENT_NODE){const t=i;if(t.data===It){const e=t.parentNode,n=document.createComment("");e.insertBefore(n,t.nextSibling),this.parts.push({type:"node",index:o++,startNode:t,endNode:n})}}else if(i.nodeType===Node.TEXT_NODE){const t=i,e=t.data;if(e.includes($t)){const n=t.parentNode,r=e.split(Rt),i=r.length-1;for(let e=0;e<i;e++){n.insertBefore(document.createTextNode(r[e]),t);const s=document.createComment(""),i=document.createComment("");n.insertBefore(s,t),n.insertBefore(i,t),this.parts.push({type:"node",index:o++,startNode:s,endNode:i})}""!==r[i]?t.data=r[i]:s.push(t)}}for(const t of s)t.parentNode?.removeChild(t)}}class jt{constructor(t){this.parts=[],this.fragment=null,this.conditionalParts=[],this.regularParts=[],this.template=function(t){const{strings:e}=t,n=Pt.get(e);if(n)return n;const r=[],o=[];let s=!1,i=!1,a="",c="";for(let t=0;t<e.length;t++){const n=e[t];if(r.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)o.push(c),r.push($t);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(),o.push(c),r.push($t)}else n.match(/<(if|case)\s*$/)?(c="value",o.push("value"),r.push(`value="${$t}"`)):(o.push(""),r.push($t))}else o.push(""),r.push(Mt)}}const l=r.join(""),u=document.createElement("template");u.innerHTML=l;const h=new Vt(t,u,o);return Pt.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 r=t.currentNode,o=e.currentNode;for(;r&&o;)n.set(r,o),r=t.nextNode(),o=e.nextNode();for(let t=0;t<this.template.parts.length;t++){const e=this.template.parts[t];let r;switch(e.type){case"node":const t=n.get(e.startNode),o=n.get(e.endNode);r=new zt(t,o);break;case"attribute":const s=n.get(e.element);r=new Bt(s,e.name,e.attrStrings);break;case"property":const i=n.get(e.element);r=new Wt(i,e.name);break;case"boolean-attribute":const a=n.get(e.element);r=new Ht(a,e.name);break;case"event":const c=n.get(e.element);r=new Gt(c,e.name);break;case"conditional-if":const l=n.get(e.element);r=new Yt(l);break;case"conditional-case":const u=n.get(e.element);r=new Zt(u);break;default:throw new Error(`Unknown part type: ${e.type}`)}this.parts.push(r),r instanceof Yt||r instanceof Zt?this.conditionalParts.push({part:r,index:e.index}):this.regularParts.push({part:r,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 Bt&&void 0!==e.strings?e.commit(t,n):e.commit(t[n])}clear(){for(const t of this.parts)t.clear()}}class Ut{}class zt extends Ut{constructor(t,e){super(),this._committedValue=Dt,this.startNode=t,this.endNode=e}commit(t){if(t!==qt)return t===Ot||null==t||""===t?(this._committedValue!==Ot&&this._clear(),void(this._committedValue=Ot)):void(Ft(t)?t!==this._committedValue&&this._commitText(t):Ct(t)?this._commitTemplateResult(t):!function(t){return t&&t._$litType$===kt}(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!==Dt&&this._committedValue!==Ot&&Ft(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 jt){const n=Pt.get(t.strings);if(n&&e.template===n)return void e.update(t.values)}this._clear();const n=new jt(t),r=n.renderFragment();this._insertBefore(r),n.update(t.values),this._committedValue=n}_commitIterable(t){Array.isArray(this._committedValue)&&this._committedValue[0]instanceof zt||(this._clear(),this._committedValue=[]);const e=this._committedValue;let n=0;for(const r of t){let t;if(n>=e.length){const n=document.createComment(""),r=document.createComment("");this._insertBefore(n),this._insertBefore(r),t=new zt(n,r),e.push(t)}else t=e[n];t.commit(r),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=Ot}clear(){this._clear()}}class Bt extends Ut{constructor(t,e,n){super(),this._committedValue=Dt,this.element=t,this.name=e,n&&(n.length>2||""!==n[0]||""!==n[1])?(this._committedValue=new Array(n.length-1).fill(Dt),this.strings=n):this._committedValue=Dt}commit(t,e=0){let n,r=!1;if(void 0===this.strings){if(t===qt)return;if(r=!Ft(t)||t!==this._committedValue&&t!==qt,!r)return;this._committedValue=t,n=t}else{const o=t,s=this._committedValue;n=this.strings[0];for(let t=0;t<this.strings.length-1;t++){let i=o[e+t];i===qt&&(i=s[t]),r=r||!Ft(i)||i!==s[t],i===Ot?n=Ot:n!==Ot&&(n=n+(i??"")+this.strings[t+1]),s[t]=i}if(!r)return}this._commitValue(n)}_commitValue(t){t===Ot||null==t?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,String(t))}clear(){this.element.removeAttribute(this.name)}}class Wt extends Ut{constructor(t,e){super(),this._committedValue=Dt,this.element=t,this.name=e}commit(t){t!==qt&&t!==this._committedValue&&(this._committedValue=t,this.element[this.name]=t===Ot?void 0:t)}clear(){this.element[this.name]=void 0,this._committedValue=Dt}}class Ht extends Ut{constructor(t,e){super(),this._committedValue=Dt,this.element=t,this.name=e}commit(t){if(t===qt)return;const e=!!t&&t!==Ot;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=Dt}}class Gt extends Ut{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]),r=e.indexOf("."),o=n?e.indexOf(":"):-1,s=r>0&&o>0?Math.min(r,o):Math.max(r,o);if(s>0){const t=e.substring(0,s),n=e.substring(s+1);this.eventName=t,this.keyFilter=Qt(n)}else this.eventName=e}commit(t){if(t===qt)return;if(t===Ot&&(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=r=>{n&&!Jt(r,n)||t.call(e,r)},this.element.addEventListener(this.eventName,this.listener)}clear(){this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null)}}function Qt(t){const e=t.startsWith("~");e&&(t=t.substring(1));const n=t.split("+"),r={key:"",anyModifiers:e};for(const t of n){const e=t.toLowerCase();"ctrl"===e||"control"===e?r.ctrl=!0:"alt"===e?r.alt=!0:"shift"===e?r.shift=!0:"meta"===e||"cmd"===e||"command"===e?r.meta=!0:r.key=Kt(t)}return r}function Kt(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 Jt(t,e){if(t.key!==e.key)return!1;if(e.anyModifiers)return!0;const n=e.ctrl?t.ctrlKey:!t.ctrlKey,r=e.alt?t.altKey:!t.altKey,o=e.shift?t.shiftKey:!t.shiftKey,s=e.meta?t.metaKey:!t.metaKey;return n&&r&&o&&s}const Xt=Symbol("not-set");class Yt extends Ut{constructor(t){super(),this.value=Xt,this.fragment=null,this.ifElement=t,this.ifElement.style.display="contents"}commit(t){const e=Boolean(t);if(this.value!==t)if(this.value=t,e)this.fragment&&this.fragment.hasChildNodes()&&this.ifElement.appendChild(this.fragment);else for(this.fragment||(this.fragment=document.createDocumentFragment());this.ifElement.firstChild;)this.fragment.appendChild(this.ifElement.firstChild)}clear(){for(this.fragment||(this.fragment=document.createDocumentFragment());this.ifElement.firstChild;)this.fragment.appendChild(this.ifElement.firstChild)}}class Zt extends Ut{constructor(t){super(),this.value=Xt,this.childrenMap=new Map,this.fragments=new Map,this.defaultChild=null,this.currentChild=null,this.caseElement=t,this.caseElement.style.display="contents";for(const t of Array.from(this.caseElement.children)){const e=t.tagName.toLowerCase();if("when"===e){t.style.display="contents";const e=t.getAttribute("value")||"";this.childrenMap.set(e,t);const n=document.createDocumentFragment();n.appendChild(t),this.fragments.set(t,n)}else if("default"===e){t.style.display="contents",this.defaultChild=t;const e=document.createDocumentFragment();e.appendChild(t),this.fragments.set(t,e)}}}commit(t){if(this.value===t)return;this.value=t;const e=String(t);if(this.currentChild){const t=this.fragments.get(this.currentChild);t&&!t.hasChildNodes()&&t.appendChild(this.currentChild)}const n=this.childrenMap.get(e)||this.defaultChild;if(n){const t=this.fragments.get(n);t&&t.hasChildNodes()&&this.caseElement.appendChild(t),this.currentChild=n}}clear(){if(this.currentChild){const t=this.fragments.get(this.currentChild);t&&!t.hasChildNodes()&&t.appendChild(this.currentChild),this.currentChild=null}}}const te=e("on-handlers");function ee(t,e,n){let r=null,o={};return"string"==typeof e?(r=e,o=n||{}):e&&"object"==typeof e?o=e:null===e&&n&&(o=n),function(e,n){const s=n.name,i=`__on_init_${s}_${r||""}_${JSON.stringify(t)}`;return n.addInitializer(function(){const n=this.constructor;if(n[i])return;n[i]=!0,n[te]||(n[te]=[]);const a=Array.isArray(t)?t:[t];for(const t of a)n[te].push({eventName:t,selector:r,methodName:s,method:e,options:o})}),e}}function ne(t,e){let n=0;return function(...r){const o=Date.now();o-n>=e&&(n=o,t.apply(this,r))}}const re=new Set(["scroll","focus","blur","load","unload","error","resize","abort","mouseenter","mouseleave","pointerenter","pointerleave"]);function oe(t,e){const n=t.constructor[te];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].events?t[p].events.length>0&&se(t):t[p].events=[]:t[p]={events:[],channels:[],observers:[]};for(const r of n){const n=t[r.methodName];let o=n?n.bind(t):r.method.bind(t);const s=r.options||{},i=["keydown","keyup","keypress"].includes(r.eventName.split(".")[0].split(":")[0]),a=r.eventName.indexOf("."),c=i?r.eventName.indexOf(":"):-1,l=a>0&&c>0?Math.min(a,c):Math.max(a,c),u=l>0?r.eventName.substring(0,l):r.eventName,h=l>0?r.eventName.substring(l+1):null;s.debounce&&s.debounce>0?o=ut(o,s.debounce):s.throttle&&s.throttle>0&&(o=ne(o,s.throttle));let d=null;h&&["keydown","keyup","keypress"].includes(u)&&(d=Qt(h));const m=(t=>d?e=>{Jt(e,d)&&t(e)}:t)(o);if(r.selector){const n=e.shadowRoot||e,o=t=>{const e=t.target;if(e.matches&&e.matches(r.selector)&&e||e.closest&&e.closest(r.selector)||null){s.preventDefault&&t.preventDefault(),s.stopPropagation&&(t.stopPropagation(),t.stopImmediatePropagation());try{m(t)}catch(t){console.error(`Error in event handler ${r.methodName}:`,t)}}},i=re.has(u),a={capture:void 0!==s.capture?s.capture:i,once:s.once||!1,passive:s.passive||!1};n.addEventListener(u,o,a),t[p].events.push({target:n,eventName:u,handler:o,options:a})}else{const n=e.shadowRoot,o=Symbol.for(`snice:event-handled:${r.methodName}`),i=t=>{if(!t[o]){t[o]=!0,s.preventDefault&&t.preventDefault(),s.stopPropagation&&t.stopPropagation();try{m(t)}catch(t){console.error(`Error in event handler ${r.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 se(t){if(t[p]?.events){for(const{target:e,eventName:n,handler:r,options:o}of t[p].events)e.removeEventListener(n,r,o);t[p].events=[]}}class ie{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 ae(t){return function(e,r){const o=globalThis.snice?.controllerRegistry;if(!o)throw new Error("Snice global registry not initialized");return o.set(t,e),e.prototype[n]=!0,e}}async function ce(e,n){const o=e[u],s=e[h],i=e[f];if(void 0!==i&&i!==n)return;if(s===n&&o)return;o&&await le(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 ie;l[r]=!0,l[d]=p,l.element=e;const g=e[T];void 0!==g&&(l[T]=g),e[u]=l,e[h]=n,e[m]=y,await e.ready,await y.runOperation(async()=>{await l.attach(e)}),ft(l,e),Tt(l,e),oe(l,e),e.dispatchEvent(new CustomEvent("controller-attached",{detail:{name:n,controller:l}}))}async function le(t){const e=t[u],n=t[h],r=t[m];e&&(r?await r.runOperation(async()=>{await e.detach(t)}):await e.detach(t),e.element=null,bt(e),Nt(e),se(e),r&&await r.cleanup(),delete e[T],delete t[u],delete t[h],delete t[m],t.dispatchEvent(new CustomEvent("controller-detached",{detail:{name:n,controller:e}})))}function ue(){if(globalThis.sniceNativeControllersInitialized)return;function t(t){if(!(t instanceof HTMLElement))return;if(t.tagName.includes("-"))return;if(t[o])return;const e=t.getAttribute("controller"),n=t[f];if(e!==n){if(!e)return delete t[f],delete t[h],void le(t).catch(t=>{console.error("Failed to detach controller from native element:",t)});t[f]=e,t.ready||(t.ready=Promise.resolve()),n&&le(t).catch(t=>{console.error("Failed to detach old controller from native element:",t)}),ce(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 he=e("context-handlers");function de(t={}){return function(e,n){const r=n.name,o=`__context_init_${r}`;return n.addInitializer(function(){const n=this.constructor;n[o]||(n[o]=!0,n[he]||(n[he]=[]),n[he].push({methodName:r,method:e,options:t}))}),e}}function me(t){const e=t.constructor[he];if(!e||!Array.isArray(e)||0===e.length)return;const n=t[j];if(n){t[U]=n;for(const r of e){const{methodName:e,method:o,options:s}=r,i=`__wrapped_${e}`;t[i]=function(e){if(s.once&&t[K])return;const n=()=>{if(o.call(t,e),s.once){t[K]=!0;const e=t[U];e&&"function"==typeof e[H]&&e[H](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 fe=new class{constructor(){this.pending=new Set,this.scheduled=!1}schedule(t,e){e.sync?ye(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){ye(e,e[R]||{})}}};function pe(t){const e=t[q];if(!e||0===e.length)return;const n=[...e];t[q]=[],n.forEach(t=>t())}function ye(t,e,n){const r=t[M];if(r&&(!e.once||!t[P]))try{const o=void 0!==n?n:r.call(t);if(t.shadowRoot||t.attachShadow({mode:"open"}),!1===e.differential)return"string"!=typeof o?void console.warn("Render method with differential: false must return a string"):(t.shadowRoot.innerHTML=o,void pe(t));if(!Ct(o))return void console.warn("Render method must return html`` template result");let s=t[P];if(s&&s.isSameTemplate(o.strings))return s.update(o.values),void pe(t);s&&(t.shadowRoot.innerHTML=""),s=new jt(o),t[P]=s,t.shadowRoot.appendChild(s.renderFragment()),s.update(o.values),pe(t)}catch(t){console.error("Error rendering element:",t)}}function ge(t,e=!1){const n=t[R]||{};if(!n.once||!t[P])if(e)ye(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(()=>{fe.schedule(t,n)},n.debounce));if(void 0!==n.throttle&&n.throttle>0){t[D]||(t[D]={lastThrottle:0});const e=t[D],r=Date.now();if(0===e.lastThrottle||r-e.lastThrottle>=n.throttle)return e.lastThrottle=r,void fe.schedule(t,n);if(!e.throttleTimer){const o=n.throttle-(r-e.lastThrottle);e.throttleTimer=setTimeout(()=>{e.throttleTimer=null,e.lastThrottle=Date.now(),fe.schedule(t,n)},o)}return}fe.schedule(t,n)}}function ve(t={}){return function(e,n){return n.name,n.addInitializer(function(){this[M]=e,this[R]=t}),function(...t){const n=e.apply(this,t);return ye(this,{},n),n}}}function be(){return function(t,e){return e.addInitializer(function(){this[F]=t}),t}}function we(t){const e=t[F];if(e&&!t[V]){t[V]=!0;try{const r=e.call(t);if(!(n=r)||n._$litType$!==At)return void console.warn("Styles method must return css`` template result");t.shadowRoot||t.attachShadow({mode:"open"});const o=new CSSStyleSheet;if(o.replaceSync("if, case { display: contents; }"),!t.shadowRoot)return;if(r.styleSheet&&"adoptedStyleSheets"in t.shadowRoot)return void(t.shadowRoot.adoptedStyleSheets=[o,r.styleSheet]);const s=document.createElement("style");s.textContent="if, case { display: contents; }\n"+r.cssText,t.shadowRoot.appendChild(s)}catch(t){console.error("Error applying styles:",t)}var n}}function Se(t){t.prototype[o]=!0;const e=t.prototype.connectedCallback,n=t.prototype.disconnectedCallback,r=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=it(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?ce(this,t).catch(e=>{console.error(`Failed to attach controller "${t}":`,e)}):e&&le(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]){oe(this,this),Tt(this,this),me(this);try{ft(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName} on reconnection:`,t)}return void(e&&e.call(this))}this[b]=!0;const n=t[y];if(n)for(const[t,e]of n){if(!1===e.attribute)continue;const n=it(e,t);if(!this.hasAttribute(n))continue;const r=this.getAttribute(n);at(this,S).add(t),e.type===Boolean&&""===r&&this.setAttribute(n,"true"),this[t]=st(r,e)}if(this[v]){for(const[t,e]of Array.from(this[v].entries())){const r=n?.get(t),o=it(r||{},t);this[v].delete(t),this.hasAttribute(o)||(this[t]=e)}delete this[v]}we(this),oe(this,this),Tt(this,this),me(this),this[l]=!0,e&&e.call(this);const r=t[A];await new Promise(t=>queueMicrotask(t)),this[M]&&ge(this,!0);try{ft(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName}:`,t)}if(r)for(const t of r)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[_];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]&&le(this).catch(t=>{console.error("Failed to detach controller:",t)}),se(this),Nt(this),function(t){const e=t.constructor[he];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[H]&&n[H](t),delete t[U],delete t[K]}(this),bt(this)},t.prototype.attributeChangedCallback=function(e,n,o){if(r?.call(this,e,n,o),"controller"===e)return void(this.controller=o);const s=t[y];if(s)for(const[n,r]of s){if(it(r,n).toLowerCase()!==e.toLowerCase())continue;const s=this[g]?.[n],i=st(o,r,s,void 0);if(s===i)break;at(this,S).add(n),ct(this,g)[n]=i,this[k]?.has(e.toLowerCase())||(lt(this,t,n,s,i),this[M]&&this[l]&&ge(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,r){if(n.metadata&&n.metadata[y]){e[y]||(e[y]=new Map);for(const[t,r]of n.metadata[y])e[y].set(t,r)}return r?.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 Ne(t,e){return function(n,r){return Te(t,n,r,e)}}function Ee(t){return function(e,n){return Te(t,e,n)}}function Ae(t){return function(e,n){const r=n.name;return n.metadata||(n.metadata={}),n.metadata[y]||(n.metadata[y]=new Map),n.metadata[y].set(r,t||{}),function(e){const n=this.constructor;n[y]||(n[y]=new Map);const o={...t};if(o.type||void 0===e||(o.type=ot(e)),n[y].set(r,o),!Object.hasOwn(this.constructor.prototype,r)){const t={get(){if(!1===o?.attribute)return this[g]&&r in this[g]?this[g][r]:this[v]?.has(r)?this[v].get(r):e;const t=it(o||{},r),n=this.getAttribute?.(t);if(null!==n)return st(n,o||{},void 0,e);return((o?.type||ot(e))!==Boolean||!this[S]?.has(r))&&(this[v]?.has(r)?this[v].get(r):e)},set(t){const n=this[r];if(n!==t){if(!this[b])return this[v]||(this[v]=new Map),void this[v].set(r,t);if(!1===o?.attribute)ct(this,g)[r]=t;else{const n=it(o,r),s=function(t,e,n){if(null==t||!1===t||e?.type===X&&Array.isArray(t)&&0===t.length)return null;if(e.converter?.toAttribute)return e.converter.toAttribute(t,e.type);switch(e.type||ot(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 X:return Array.isArray(t)?X.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,o,e);at(this,S).add(r),at(this,k).add(n.toLowerCase()),null===s?this.removeAttribute?.(n):this.setAttribute?.(n,s),setTimeout(()=>{this[k]?.delete(n.toLowerCase())},0)}lt(this,this.constructor,r,n,t),this[M]&&this[l]&&ge(this)}},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,r,t)}return ct(this,g)[r]=e,e}}}function _e(t){return!0===t[r]&&t.element?t.element:t}function xe(t,e={}){return function(n,r){const{light:o=!1,shadow:s=!0}=e,i=r.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=_e(this);let n=null;return s&&e.shadowRoot&&(n=e.shadowRoot.querySelector(t)),!n&&o&&(n=e.querySelector(t)),n||null},set(){},configurable:!0,enumerable:!0}),e}}}function Ce(t,e={}){return function(n,r){const{light:o=!1,shadow:s=!0}=e,i=r.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=_e(this),n=[];return s&&e.shadowRoot&&n.push(...e.shadowRoot.querySelectorAll(t)),o&&n.push(...e.querySelectorAll(t)),n},set(){},configurable:!0,enumerable:!0}),e}}}function Oe(...t){return function(e,n){const r=n.name,o=`__watch_init_${r}`;n.addInitializer(function(){const n=this.constructor;if(!n[o]){n[o]=!0,n[w]||(n[w]=new Map);for(const o of t)n[w].has(o)||n[w].set(o,[]),n[w].get(o).push({methodName:r,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[T])return this[T];let t=!0===this[r]&&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[T]=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,r,o){const s=r.name,i=`__${e}_init_${s}`;r.addInitializer(function(){const e=this.constructor;e[i]||(e[i]=!0,e[t]||(e[t]=[]),e[t].push({methodName:s,method:n,...o}))})}function $e(){return function(t,e){Le(A,"ready",t,e)}}function Ie(){return function(t,e){Le(_,"dispose",t,e)}}function Me(t,e,n){return function(r={}){return function(o,s){Le(t,n,o,s,{options:r});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)=>o.apply(this,t);if(r.debounce>0)return clearTimeout(n.debounceTimer),void(n.debounceTimer=setTimeout(()=>s(...t),r.debounce));if(r.throttle>0){const e=Date.now();if(0===n.lastThrottleCall||e-n.lastThrottleCall>=r.throttle)return n.lastThrottleCall=e,s(...t);if(!n.throttleTimer){const o=r.throttle-(e-n.lastThrottleCall);n.throttleTimer=setTimeout(()=>{n.throttleTimer=null,n.lastThrottleCall=Date.now(),s(...t)},o)}return}return s(...t)}}}}const Re=Me(x,L,"moved"),Pe=Me(C,$,"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"),r=e("is-controller-instance"),o=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=e("created-at"),A=e("ready-handlers"),_=e("dispose-handlers"),x=e("moved-handlers"),C=e("adopted-handlers"),O=e("observers"),k=e("setting-from-property"),L=e("moved-timers"),$=e("adopted-timers"),I=e("dispatch-timers"),M=e("render-method"),R=e("render-options"),P=e("render-instance"),D=e("render-timers"),F=e("render-callbacks"),q=e("styles-method"),B=e("styles-applied"),V=e("context-handler"),j=e("navigation-context-instance"),U=e("registered-elements"),z=e("is-updating"),W=e("context-register"),H=e("context-unregister"),K=e("context-notify-element"),G=e("context-timer"),Q=e("context-called"),J=e("context-update");class X{static{this.SEPARATOR=","}static serialize(t){return Array.isArray(t)?t.map(t=>{if("string"==typeof t){if(t.includes(X.SEPARATOR))throw new Error(`SimpleArray strings cannot contain the character "${X.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(X.SEPARATOR):""}static parse(t){return null==t||""===t?[]:t.split(X.SEPARATOR).map(t=>{if(/^-?\d+\.?\d*$/.test(t)){const e=Number(t);if(!isNaN(e))return e}return"true"===t||"false"!==t&&t})}}var Y,Z,tt;const et=Symbol.for("snice:registered-elements-set");let nt=0;class rt{constructor(t={},e=[],n="",r={},o){if(this[Y]=new WeakMap,this[Z]=new Set,this[tt]=!1,this.id=nt++,this.application=t,this.navigation={placards:e,route:n,params:r},o&&"function"==typeof o.create)this.fetch=o.create(this);else{if("function"!=typeof fetch)throw new Error("No fetch implementation available");this.fetch=fetch.bind(this)}}[(Y=U,Z=et,tt=z,W)](t,e){this[U].set(t,e),this[et].add(t)}[H](t){this[U].delete(t),this[et].delete(t)}[J](t,e,n,r){this.application=t,this.navigation.placards=e,this.navigation.route=n,this.navigation.params=r,this.notify()}update(){this.notify()}notify(){if(this[z])return;this[z]=!0;const t=this[et],e=this[U];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[z]=!1}[K](t){const e=this[U].get(t);e&&"function"==typeof t[e]&&t[e](this)}}function ot(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 st(t,e,n,r){switch(e.type||ot(r)){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 X:return X.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 it(t,e){return"string"==typeof t.attribute?t.attribute:e.toLowerCase()}function at(t,e){return t[e]||(t[e]=new Set),t[e]}function ct(t,e){return t[e]||(t[e]={}),t[e]}function lt(t,e,n,r,o){const s=e[w];if(s){if(s.has(n))for(const e of s.get(n))try{e.method.call(t,r,o,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,r,o,n)}catch(t){console.error(`Error in @watch('*') method ${e.methodName}:`,t)}}}function ut(t,e){let n=null;return function(...r){null!==n&&clearTimeout(n),n=setTimeout(()=>{t.apply(this,r),n=null},e)}}function ht(t,e){let n=0,r=null;return function(...o){const s=Date.now(),i=e-(s-n);if(i<=0)return r&&(clearTimeout(r),r=null),n=s,t.apply(this,o);r||(r=setTimeout(()=>{n=Date.now(),r=null,t.apply(this,o)},i))}}const dt=new Map;function mt(t,e,n){let r,o;return"string"==typeof e?(r=e,o=n):(r=void 0,o=e),function(e,n){const s=n.name,i=`__observe_init_${s}`;n.addInitializer(function(){const n=this.constructor;if(n[i])return;n[i]=!0,n[O]||(n[O]=[]);const a=Array.isArray(t)?t:[t];for(const t of a){const[i,...a]=t.split(":"),c=a.join(":");n[O].push({type:i,target:c,selector:r,methodName:s,method:e,options:o})}})}}function ft(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 r of n){const n=r.method.bind(t),o=r.options?.throttle?ht(n,r.options.throttle):n;switch(r.type){case"intersection":pt(t,e,r,o);break;case"resize":yt(t,e,r,o);break;case"media":gt(t,e,r,o);break;case"mutation":bt(t,e,r,o);break;default:console.warn(`Unknown observer type: ${r.type}`)}}}}function pt(t,e,n,r){const o={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===r(e)&&s&&s.unobserve(e.target)}catch(t){console.error(`Error in intersection observer ${n.methodName}:`,t)}},o),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 yt(t,e,n,r){const o=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{r(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:o})}),t[p].observers.push(()=>{s.disconnect()})}function gt(t,e,n,r){const o=n.target;if(!o)return void console.warn("Media query observer requires a query string");let s=dt.get(o);if(!s)try{s=window.matchMedia(o),dt.set(o,s)}catch(t){return void console.error(`Invalid media query: ${o}`,t)}const i=t=>{try{r(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 bt(t,e,n,o){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 o(t);const r=n.options.maxDepth,s=e.shadowRoot||e,i=t.filter(t=>{let e=0,n=t.target;for(;n&&n!==s&&e<r;)n=n.parentNode,e++;return e<r});i.length>0&&o(i)}catch(t){console.error(`Error in mutation observer ${n.methodName}:`,t)}}),h=!0===t[r];(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 vt(t){if(t[p]?.observers){for(const e of t[p].observers)e();t[p].observers=[]}}function wt(t,e){return function(n,o){let s,i,a=0;return async function(...o){const c=async()=>{const s=e?.timeout??12e4,i=e?.discoveryTimeout??50,a=n.apply(this,o),{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[r]&&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:r}=await a.next(n);return r}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 Nt(t,e){return function(n,r){const o=r.name,i=`__respond_init_${t}_${o}`;r.addInitializer(function(){const r=this.constructor;r[i]||(r[i]=!0,r[s]||(r[s]=[]),r[s].push({channelName:t,methodName:o,method:n,options:e}))})}}function St(t,e){const n=t.constructor[s];if(n){t[p]||(t[p]={events:[],channels:[]});for(const r of n){const n=r.method.bind(t),o=`@request/${r.channelName}`;let s,i,a=0;const c=(t=>r.options?.debounce?(...e)=>new Promise((n,o)=>{clearTimeout(s),s=setTimeout(async()=>{try{n(await t(...e))}catch(t){o(t)}},r.options.debounce)}):r.options?.throttle?(...e)=>{const n=Date.now(),o=r.options.throttle-(n-a);return o<=0?(clearTimeout(i),a=n,t(...e)):i?Promise.resolve(void 0):new Promise((n,r)=>{i=setTimeout(async()=>{a=Date.now(),i=null;try{n(await t(...e))}catch(t){r(t)}},o)})}:t)(n),l=t=>{const{data:e,discovery:n,payload:o}=t.detail;t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),n.resolve(),Promise.resolve(c(o)).then(t=>{e.resolve(t)}).catch(t=>{e.reject(t),console.error(`Error in response handler ${r.methodName}:`,t)})};e.addEventListener(o,l),t[p].channels.push(()=>{e.removeEventListener(o,l)})}}}function Tt(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 _t(t,...e){return{_$litType$:Et,strings:t,values:e}}function xt(t,...e){let n=t[0];for(let r=0;r<e.length;r++)n+=String(e[r])+t[r+1];const r={_$litType$:At,cssText:n};if("undefined"!=typeof CSSStyleSheet&&"adoptedStyleSheets"in Document.prototype)try{const t=new CSSStyleSheet;t.replaceSync(n),r.styleSheet=t}catch(t){}return r}function Ct(t){return t&&t._$litType$===Et}const Ot=Symbol.for("snice:nothing"),kt=Symbol.for("snice:unsafe-html");function Lt(t){return{_$litType$:kt,html:t}}const $t=`snice$${Math.random().toFixed(9).slice(2)}$`,It="?"+$t,Mt=`<${It}>`,Rt=new RegExp($t,"g"),Pt=new WeakMap,Dt=Symbol("not-committed"),Ft=Symbol.for("snice:no-change"),qt=t=>null===t||"object"!=typeof t&&"function"!=typeof t;class Bt{constructor(t,e,n){this.parts=[],this.element=e;const r=document.createTreeWalker(e.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT|NodeFilter.SHOW_TEXT);let o=0;const s=[];let i;for(;null!==(i=r.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($t)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-if",index:o++,element:t}));continue}if("case"===e){const e=t.getAttribute("value");e&&e.includes($t)&&(t.removeAttribute("value"),this.parts.push({type:"conditional-case",index:o++,element:t}));continue}if(t.hasAttributes()){const e=t.attributes,r=[];for(let s=0;s<e.length;s++){const i=e[s],a=i.value;if(a.includes($t)){r.push(i);const e=n[o]||i.name,s=a.split($t),c=s.length-1;e.startsWith("@@")||e.startsWith("@")?(this.parts.push({type:"event",index:o,name:e.slice(1),element:t}),o+=1):e.startsWith(".")?(this.parts.push({type:"property",index:o,name:e.slice(1),element:t}),o+=1):e.startsWith("?")?(this.parts.push({type:"boolean-attribute",index:o,name:e.slice(1),element:t}),o+=1):(this.parts.push({type:"attribute",index:o,name:i.name,element:t,attrStrings:s}),o+=c)}}for(const e of r)t.removeAttribute(e.name)}}else if(i.nodeType===Node.COMMENT_NODE){const t=i;if(t.data===It){const e=t.parentNode,n=document.createComment("");e.insertBefore(n,t.nextSibling),this.parts.push({type:"node",index:o++,startNode:t,endNode:n})}}else if(i.nodeType===Node.TEXT_NODE){const t=i,e=t.data;if(e.includes($t)){const n=t.parentNode,r=e.split(Rt),i=r.length-1;for(let e=0;e<i;e++){n.insertBefore(document.createTextNode(r[e]),t);const s=document.createComment(""),i=document.createComment("");n.insertBefore(s,t),n.insertBefore(i,t),this.parts.push({type:"node",index:o++,startNode:s,endNode:i})}""!==r[i]?t.data=r[i]:s.push(t)}}for(const t of s)t.parentNode?.removeChild(t)}}class Vt{constructor(t){this.parts=[],this.fragment=null,this.conditionalParts=[],this.regularParts=[],this.template=function(t){const{strings:e}=t,n=Pt.get(e);if(n)return n;const r=[],o=[];let s=!1,i=!1,a="",c="";for(let t=0;t<e.length;t++){const n=e[t];if(r.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)o.push(c),r.push($t);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(),o.push(c),r.push($t)}else n.match(/<(if|case)\s*$/)?(c="value",o.push("value"),r.push(`value="${$t}"`)):(o.push(""),r.push($t))}else o.push(""),r.push(Mt)}}const l=r.join(""),u=document.createElement("template");u.innerHTML=l;const h=new Bt(t,u,o);return Pt.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 r=t.currentNode,o=e.currentNode;for(;r&&o;)n.set(r,o),r=t.nextNode(),o=e.nextNode();for(let t=0;t<this.template.parts.length;t++){const e=this.template.parts[t];let r;switch(e.type){case"node":const t=n.get(e.startNode),o=n.get(e.endNode);r=new Ut(t,o);break;case"attribute":const s=n.get(e.element);r=new zt(s,e.name,e.attrStrings);break;case"property":const i=n.get(e.element);r=new Wt(i,e.name);break;case"boolean-attribute":const a=n.get(e.element);r=new Ht(a,e.name);break;case"event":const c=n.get(e.element);r=new Kt(c,e.name);break;case"conditional-if":const l=n.get(e.element);r=new Yt(l);break;case"conditional-case":const u=n.get(e.element);r=new Zt(u);break;default:throw new Error(`Unknown part type: ${e.type}`)}this.parts.push(r),r instanceof Yt||r instanceof Zt?this.conditionalParts.push({part:r,index:e.index}):this.regularParts.push({part:r,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 zt&&void 0!==e.strings?e.commit(t,n):e.commit(t[n])}clear(){for(const t of this.parts)t.clear()}}class jt{}class Ut extends jt{constructor(t,e){super(),this._committedValue=Dt,this.startNode=t,this.endNode=e}commit(t){if(t!==Ft)return t===Ot||null==t||""===t?(this._committedValue!==Ot&&this._clear(),void(this._committedValue=Ot)):void(qt(t)?t!==this._committedValue&&this._commitText(t):Ct(t)?this._commitTemplateResult(t):!function(t){return t&&t._$litType$===kt}(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!==Dt&&this._committedValue!==Ot&&qt(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 Vt){const n=Pt.get(t.strings);if(n&&e.template===n)return void e.update(t.values)}this._clear();const n=new Vt(t),r=n.renderFragment();this._insertBefore(r),n.update(t.values),this._committedValue=n}_commitIterable(t){Array.isArray(this._committedValue)&&this._committedValue[0]instanceof Ut||(this._clear(),this._committedValue=[]);const e=this._committedValue;let n=0;for(const r of t){let t;if(n>=e.length){const n=document.createComment(""),r=document.createComment("");this._insertBefore(n),this._insertBefore(r),t=new Ut(n,r),e.push(t)}else t=e[n];t.commit(r),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=Ot}clear(){this._clear()}}class zt extends jt{constructor(t,e,n){super(),this._committedValue=Dt,this.element=t,this.name=e,n&&(n.length>2||""!==n[0]||""!==n[1])?(this._committedValue=new Array(n.length-1).fill(Dt),this.strings=n):this._committedValue=Dt}commit(t,e=0){let n,r=!1;if(void 0===this.strings){if(t===Ft)return;if(r=!qt(t)||t!==this._committedValue&&t!==Ft,!r)return;this._committedValue=t,n=t}else{const o=t,s=this._committedValue;n=this.strings[0];for(let t=0;t<this.strings.length-1;t++){let i=o[e+t];i===Ft&&(i=s[t]),r=r||!qt(i)||i!==s[t],i===Ot?n=Ot:n!==Ot&&(n=n+(i??"")+this.strings[t+1]),s[t]=i}if(!r)return}this._commitValue(n)}_commitValue(t){t===Ot||null==t?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,String(t))}clear(){this.element.removeAttribute(this.name)}}class Wt extends jt{constructor(t,e){super(),this._committedValue=Dt,this.element=t,this.name=e}commit(t){t!==Ft&&t!==this._committedValue&&(this._committedValue=t,this.element[this.name]=t===Ot?void 0:t)}clear(){this.element[this.name]=void 0,this._committedValue=Dt}}class Ht extends jt{constructor(t,e){super(),this._committedValue=Dt,this.element=t,this.name=e}commit(t){if(t===Ft)return;const e=!!t&&t!==Ot;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=Dt}}class Kt extends jt{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]),r=e.indexOf("."),o=n?e.indexOf(":"):-1,s=r>0&&o>0?Math.min(r,o):Math.max(r,o);if(s>0){const t=e.substring(0,s),n=e.substring(s+1);this.eventName=t,this.keyFilter=Gt(n)}else this.eventName=e}commit(t){if(t===Ft)return;if(t===Ot&&(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=r=>{n&&!Jt(r,n)||t.call(e,r)},this.element.addEventListener(this.eventName,this.listener)}clear(){this.listener&&(this.element.removeEventListener(this.eventName,this.listener),this.listener=null)}}function Gt(t){const e=t.startsWith("~");e&&(t=t.substring(1));const n=t.split("+"),r={key:"",anyModifiers:e};for(const t of n){const e=t.toLowerCase();"ctrl"===e||"control"===e?r.ctrl=!0:"alt"===e?r.alt=!0:"shift"===e?r.shift=!0:"meta"===e||"cmd"===e||"command"===e?r.meta=!0:r.key=Qt(t)}return r}function Qt(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 Jt(t,e){if(t.key!==e.key)return!1;if(e.anyModifiers)return!0;const n=e.ctrl?t.ctrlKey:!t.ctrlKey,r=e.alt?t.altKey:!t.altKey,o=e.shift?t.shiftKey:!t.shiftKey,s=e.meta?t.metaKey:!t.metaKey;return n&&r&&o&&s}const Xt=Symbol("not-set");class Yt extends jt{constructor(t){super(),this.value=Xt,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 Zt extends jt{constructor(t){super(),this.value=Xt,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),r=n?this.branches.get(e):this.defaultBranch;this.currentKey=n?e:this.defaultBranch?"__default__":null,r&&r.hasChildNodes()&&this.startNode.parentNode.insertBefore(r,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 te=e("on-handlers");function ee(t,e,n){let r=null,o={};return"string"==typeof e?(r=e,o=n||{}):e&&"object"==typeof e?o=e:null===e&&n&&(o=n),function(e,n){const s=n.name,i=`__on_init_${s}_${r||""}_${JSON.stringify(t)}`;return n.addInitializer(function(){const n=this.constructor;if(n[i])return;n[i]=!0,n[te]||(n[te]=[]);const a=Array.isArray(t)?t:[t];for(const t of a)n[te].push({eventName:t,selector:r,methodName:s,method:e,options:o})}),e}}function ne(t,e){let n=0;return function(...r){const o=Date.now();o-n>=e&&(n=o,t.apply(this,r))}}const re=new Set(["scroll","focus","blur","load","unload","error","resize","abort","mouseenter","mouseleave","pointerenter","pointerleave"]);function oe(t,e){const n=t.constructor[te];if(n&&Array.isArray(n)&&0!==n.length){t[p]?t[p].events?t[p].events.length>0&&se(t):t[p].events=[]:t[p]={events:[],channels:[],observers:[]};for(const r of n){const n=t[r.methodName];let o=n?n.bind(t):r.method.bind(t);const s=r.options||{},i=["keydown","keyup","keypress"].includes(r.eventName.split(".")[0].split(":")[0]),a=r.eventName.indexOf("."),c=i?r.eventName.indexOf(":"):-1,l=a>0&&c>0?Math.min(a,c):Math.max(a,c),u=l>0?r.eventName.substring(0,l):r.eventName,h=l>0?r.eventName.substring(l+1):null;s.debounce&&s.debounce>0?o=ut(o,s.debounce):s.throttle&&s.throttle>0&&(o=ne(o,s.throttle));let d=null;h&&["keydown","keyup","keypress"].includes(u)&&(d=Gt(h));const m=(t=>d?e=>{Jt(e,d)&&t(e)}:t)(o);if(r.selector){const n=e.shadowRoot||e,o=t=>{const e=t.target;if(e.matches&&e.matches(r.selector)&&e||e.closest&&e.closest(r.selector)||null){s.preventDefault&&t.preventDefault(),s.stopPropagation&&(t.stopPropagation(),t.stopImmediatePropagation());try{m(t)}catch(t){console.error(`Error in event handler ${r.methodName}:`,t)}}},i=re.has(u),a={capture:void 0!==s.capture?s.capture:i,once:s.once||!1,passive:s.passive||!1};n.addEventListener(u,o,a),t[p].events.push({target:n,eventName:u,handler:o,options:a})}else{const n=e.shadowRoot,o=Symbol.for(`snice:event-handled:${r.methodName}`),i=t=>{if(!t[o]){t[o]=!0,s.preventDefault&&t.preventDefault(),s.stopPropagation&&t.stopPropagation();try{m(t)}catch(t){console.error(`Error in event handler ${r.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 se(t){if(t[p]?.events){for(const{target:e,eventName:n,handler:r,options:o}of t[p].events)e.removeEventListener(n,r,o);t[p].events=[]}}class ie{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 ae(t){return function(e,r){const o=globalThis.snice?.controllerRegistry;if(!o)throw new Error("Snice global registry not initialized");return o.set(t,e),e.prototype[n]=!0,e}}async function ce(e,n){const o=e[u],s=e[h],i=e[f];if(void 0!==i&&i!==n)return;if(s===n&&o)return;o&&await le(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 ie;l[r]=!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)}),ft(l,e),St(l,e),oe(l,e),e.dispatchEvent(new CustomEvent("controller-attached",{detail:{name:n,controller:l}}))}async function le(t){const e=t[u],n=t[h],r=t[m];e&&(r?await r.runOperation(async()=>{await e.detach(t)}):await e.detach(t),e.element=null,vt(e),Tt(e),se(e),r&&await r.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 ue(){if(globalThis.sniceNativeControllersInitialized)return;function t(t){if(!(t instanceof HTMLElement))return;if(t.tagName.includes("-"))return;if(t[o])return;const e=t.getAttribute("controller"),n=t[f];if(e!==n){if(!e)return delete t[f],delete t[h],void le(t).catch(t=>{console.error("Failed to detach controller from native element:",t)});t[f]=e,t.ready||(t.ready=Promise.resolve()),n&&le(t).catch(t=>{console.error("Failed to detach old controller from native element:",t)}),ce(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 he=e("context-handlers");function de(t={}){return function(e,n){const r=n.name,o=`__context_init_${r}`;return n.addInitializer(function(){const n=this.constructor;n[o]||(n[o]=!0,n[he]||(n[he]=[]),n[he].push({methodName:r,method:e,options:t}))}),e}}function me(t){const e=t.constructor[he];if(!e||!Array.isArray(e)||0===e.length)return;const n=t[V];if(n){t[j]=n;for(const r of e){const{methodName:e,method:o,options:s}=r,i=`__wrapped_${e}`;t[i]=function(e){if(s.once&&t[Q])return;const n=()=>{if(o.call(t,e),s.once){t[Q]=!0;const e=t[j];e&&"function"==typeof e[H]&&e[H](t)}};if(s.debounce)return clearTimeout(t[G]),void(t[G]=setTimeout(n,s.debounce));if(s.throttle){const e=Date.now();return void(e-(t[G]||0)>=s.throttle&&(t[G]=e,n()))}n()},"function"==typeof n[W]&&n[W](t,i)}}}const fe=new class{constructor(){this.pending=new Set,this.scheduled=!1}schedule(t,e){e.sync?ye(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){ye(e,e[R]||{})}}};function pe(t){const e=t[F];if(!e||0===e.length)return;const n=[...e];t[F]=[],n.forEach(t=>t())}function ye(t,e,n){const r=t[M];if(r&&(!e.once||!t[P]))try{const o=void 0!==n?n:r.call(t);if(t.shadowRoot||t.attachShadow({mode:"open"}),!1===e.differential)return"string"!=typeof o?void console.warn("Render method with differential: false must return a string"):(t.shadowRoot.innerHTML=o,void pe(t));if(!Ct(o))return void console.warn("Render method must return html`` template result");let s=t[P];if(s&&s.isSameTemplate(o.strings))return s.update(o.values),void pe(t);s&&(t.shadowRoot.innerHTML=""),s=new Vt(o),t[P]=s,t.shadowRoot.appendChild(s.renderFragment()),s.update(o.values),pe(t)}catch(t){console.error("Error rendering element:",t)}}function ge(t,e=!1){const n=t[R]||{};if(!n.once||!t[P])if(e)ye(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(()=>{fe.schedule(t,n)},n.debounce));if(void 0!==n.throttle&&n.throttle>0){t[D]||(t[D]={lastThrottle:0});const e=t[D],r=Date.now();if(0===e.lastThrottle||r-e.lastThrottle>=n.throttle)return e.lastThrottle=r,void fe.schedule(t,n);if(!e.throttleTimer){const o=n.throttle-(r-e.lastThrottle);e.throttleTimer=setTimeout(()=>{e.throttleTimer=null,e.lastThrottle=Date.now(),fe.schedule(t,n)},o)}return}fe.schedule(t,n)}}function be(t={}){return function(e,n){return n.name,n.addInitializer(function(){this[M]=e,this[R]=t}),function(...t){const n=e.apply(this,t);return ye(this,{},n),n}}}function ve(){return function(t,e){return e.addInitializer(function(){this[q]=t}),t}}function we(t){const e=t[q];if(e&&!t[B]){t[B]=!0;try{const r=e.call(t);if(!(n=r)||n._$litType$!==At)return void console.warn("Styles method must return css`` template result");if(t.shadowRoot||t.attachShadow({mode:"open"}),!t.shadowRoot)return;if(r.styleSheet&&"adoptedStyleSheets"in t.shadowRoot)return void(t.shadowRoot.adoptedStyleSheets=[r.styleSheet]);const o=document.createElement("style");o.textContent=r.cssText,t.shadowRoot.appendChild(o)}catch(t){console.error("Error applying styles:",t)}var n}}function Ne(t){t.prototype[o]=!0;const e=t.prototype.connectedCallback,n=t.prototype.disconnectedCallback,r=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=it(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?ce(this,t).catch(e=>{console.error(`Failed to attach controller "${t}":`,e)}):e&&le(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]){oe(this,this),St(this,this),me(this);try{ft(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=it(e,t);if(!this.hasAttribute(n))continue;const r=this.getAttribute(n);at(this,N).add(t),e.type===Boolean&&""===r&&this.setAttribute(n,"true"),this[t]=st(r,e)}if(this[b]){for(const[t,e]of Array.from(this[b].entries())){const r=n?.get(t),o=it(r||{},t);this[b].delete(t),this.hasAttribute(o)||(this[t]=e)}delete this[b]}we(this),oe(this,this),St(this,this),me(this),this[l]=!0,e&&e.call(this);const r=t[A];await new Promise(t=>queueMicrotask(t)),this[M]&&ge(this,!0);try{ft(this,this)}catch(t){console.error(`Error setting up observers for ${this.tagName}:`,t)}if(r)for(const t of r)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[_];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]&&le(this).catch(t=>{console.error("Failed to detach controller:",t)}),se(this),Tt(this),function(t){const e=t.constructor[he];if(!e||!Array.isArray(e)||0===e.length)return;for(const n of e)n.options.debounce&&t[G]&&(clearTimeout(t[G]),delete t[G]),delete t[`__wrapped_${n.methodName}`];const n=t[j];n&&"function"==typeof n[H]&&n[H](t),delete t[j],delete t[Q]}(this),vt(this)},t.prototype.attributeChangedCallback=function(e,n,o){if(r?.call(this,e,n,o),"controller"===e)return void(this.controller=o);const s=t[y];if(s)for(const[n,r]of s){if(it(r,n).toLowerCase()!==e.toLowerCase())continue;const s=this[g]?.[n],i=st(o,r,s,void 0);if(s===i)break;at(this,N).add(n),ct(this,g)[n]=i,this[k]?.has(e.toLowerCase())||(lt(this,t,n,s,i),this[M]&&this[l]&&ge(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 Se(t,e,n,r){if(n.metadata&&n.metadata[y]){e[y]||(e[y]=new Map);for(const[t,r]of n.metadata[y])e[y].set(t,r)}return r?.formAssociated&&(e.formAssociated=!0),Ne(e),customElements.get(t)?(globalThis.SNICE_DEBUG&&console.warn(`[snice] "${t}" is already registered. Skipping.`),e):(customElements.define(t,e),e)}function Te(t,e){return function(n,r){return Se(t,n,r,e)}}function Ee(t){return function(e,n){return Se(t,e,n)}}function Ae(t){return function(e,n){const r=n.name;return n.metadata||(n.metadata={}),n.metadata[y]||(n.metadata[y]=new Map),n.metadata[y].set(r,t||{}),function(e){const n=this.constructor;n[y]||(n[y]=new Map);const o={...t};if(o.type||void 0===e||(o.type=ot(e)),n[y].set(r,o),!Object.hasOwn(this.constructor.prototype,r)){const t={get(){if(!1===o?.attribute)return this[g]&&r in this[g]?this[g][r]:this[b]?.has(r)?this[b].get(r):e;const t=it(o||{},r),n=this.getAttribute?.(t);if(null!==n)return st(n,o||{},void 0,e);return((o?.type||ot(e))!==Boolean||!this[N]?.has(r))&&(this[b]?.has(r)?this[b].get(r):e)},set(t){const n=this[r];if(n!==t){if(!this[v])return this[b]||(this[b]=new Map),void this[b].set(r,t);if(!1===o?.attribute)ct(this,g)[r]=t;else{const n=it(o,r),s=function(t,e,n){if(null==t||!1===t||e?.type===X&&Array.isArray(t)&&0===t.length)return null;if(e.converter?.toAttribute)return e.converter.toAttribute(t,e.type);switch(e.type||ot(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 X:return Array.isArray(t)?X.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,o,e);at(this,N).add(r),at(this,k).add(n.toLowerCase()),null===s?this.removeAttribute?.(n):this.setAttribute?.(n,s),setTimeout(()=>{this[k]?.delete(n.toLowerCase())},0)}lt(this,this.constructor,r,n,t),this[M]&&this[l]&&ge(this)}},configurable:!0,enumerable:!0};Object.defineProperty(this.constructor.prototype,r,t)}return ct(this,g)[r]=e,e}}}function _e(t){return!0===t[r]&&t.element?t.element:t}function xe(t,e={}){return function(n,r){const{light:o=!1,shadow:s=!0}=e,i=r.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=_e(this);let n=null;return s&&e.shadowRoot&&(n=e.shadowRoot.querySelector(t)),!n&&o&&(n=e.querySelector(t)),n||null},set(){},configurable:!0,enumerable:!0}),e}}}function Ce(t,e={}){return function(n,r){const{light:o=!1,shadow:s=!0}=e,i=r.name;return function(e){return Object.hasOwn(this.constructor.prototype,i)||Object.defineProperty(this.constructor.prototype,i,{get(){const e=_e(this),n=[];return s&&e.shadowRoot&&n.push(...e.shadowRoot.querySelectorAll(t)),o&&n.push(...e.querySelectorAll(t)),n},set(){},configurable:!0,enumerable:!0}),e}}}function Oe(...t){return function(e,n){const r=n.name,o=`__watch_init_${r}`;n.addInitializer(function(){const n=this.constructor;if(!n[o]){n[o]=!0,n[w]||(n[w]=new Map);for(const o of t)n[w].has(o)||n[w].set(o,[]),n[w].get(o).push({methodName:r,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[r]&&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,r,o){const s=r.name,i=`__${e}_init_${s}`;r.addInitializer(function(){const e=this.constructor;e[i]||(e[i]=!0,e[t]||(e[t]=[]),e[t].push({methodName:s,method:n,...o}))})}function $e(){return function(t,e){Le(A,"ready",t,e)}}function Ie(){return function(t,e){Le(_,"dispose",t,e)}}function Me(t,e,n){return function(r={}){return function(o,s){Le(t,n,o,s,{options:r});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)=>o.apply(this,t);if(r.debounce>0)return clearTimeout(n.debounceTimer),void(n.debounceTimer=setTimeout(()=>s(...t),r.debounce));if(r.throttle>0){const e=Date.now();if(0===n.lastThrottleCall||e-n.lastThrottleCall>=r.throttle)return n.lastThrottleCall=e,s(...t);if(!n.throttleTimer){const o=r.throttle-(e-n.lastThrottleCall);n.throttleTimer=setTimeout(()=>{n.throttleTimer=null,n.lastThrottleCall=Date.now(),s(...t)},o)}return}return s(...t)}}}}const Re=Me(x,L,"moved"),Pe=Me(C,$,"adopted");
|
|
14
14
|
/*!
|
|
15
15
|
* pica-route v1.1.2
|
|
16
16
|
* A pure URL pattern matching library compatible with route-parser API
|
|
17
17
|
* (c) 2024
|
|
18
18
|
* Released under the MIT License.
|
|
19
19
|
*/
|
|
20
|
-
class De{constructor(t){this.parsed=this.parsePattern(t)}get spec(){return this.parsed.template}parsePattern(t){let e=t,n="",r=!1;const o=t.indexOf("?");return-1!==o&&(e=t.slice(0,o),n=t.slice(o+1),e.endsWith("(")&&n.endsWith(")")&&(r=!0,e=e.slice(0,-1),n=n.slice(0,-1))),{pathSegments:this.parseSegments(e),querySegments:n?this.parseQuerySegments(n):[],queryOptional:r,template:t}}parseSegments(t){const e=[];let n=0;for(;n<t.length;){switch(t[n]){case"(":const{segments:r,endIndex:o}=this.parseOptionalGroup(t,n);e.push({type:"optional",segments:r}),n=o+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,r=e+1;for(;r<t.length&&n>0;)"("===t[r]&&n++,")"===t[r]&&n--,r++;const o=t.slice(e+1,r-1);return{segments:this.parseSegments(o),endIndex:r-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 r=0;for(;r<e.length;)if(":"===e[r]){const{name:t,endIndex:o}=this.parseIdentifier(e,r+1);n.push({type:"param",name:t}),r=o}else{const{value:t,endIndex:o}=this.parseQueryLiteral(e,r);t&&n.push({type:"literal",value:t}),r=o}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 r of n)switch(r.type){case"param":case"splat":t.add(r.name);break;case"optional":e(r.segments)}};return e(this.parsed.pathSegments),e(this.parsed.querySegments),Array.from(t)}canMatchRemainingSegments(t,e,n){let r=e;for(const e of n)if("literal"===e.type){const n=t.indexOf(e.value,r);if(-1===n)return!1;r=n+e.value.length}return!0}match(t){const[e,n]=t.split("?"),r=this.matchPath(e,this.parsed.pathSegments);if(!1===r)return!1;const o=this.matchQuery(n||"",this.parsed.querySegments);if(!1===o)return!1;const s=this.getAllParamNames(),i={};for(const t of s)i[t]=void 0;return Object.assign(i,r,o),i}matchPath(t,e){const n={};let r=0;for(let o=0;o<e.length;o++){const s=e[o],i=e.slice(o+1),a=this.matchSegment(t,r,s,i);if(!1===a)return!1;Object.assign(n,a.params),r=a.nextIndex}return!(r<t.length)&&n}matchSegment(t,e,n,r=[]){switch(n.type){case"literal":return t.slice(e,e+n.value.length)===n.value&&{params:{},nextIndex:e+n.value.length};case"param":{let o=e;const s=r[0];let i,a=["/","?"];if(s&&"literal"===s.type){const n=s.value,r=t.indexOf(n,e);if(-1===r)return!1;o=r}else for(;o<t.length&&!a.includes(t[o]);)o++;if(o===e)return!1;try{i=decodeURIComponent(t.slice(e,o))}catch(n){i=t.slice(e,o)}return!(o<t.length&&"?"===t[o]&&r.length>0)&&{params:{[n.name]:i},nextIndex:o}}case"splat":{let o=t.length;const s=r[0];if(s)switch(s.type){case"literal":if("."===s.value){const n=t.indexOf(".",e);-1!==n&&(o=n)}else{const n=t.lastIndexOf(s.value);-1!==n&&n>=e&&(o=n)}break;case"param":let n=-1;for(let r=t.length-1;r>=e;r--)if("/"===t[r]){n=r;break}-1!==n&&(o=n);break;case"splat":let r=-1;for(let n=t.length-1;n>e;n--)if("/"===t[n]){r=n+1;break}if(-1!==r)o=r;else{const n=t.slice(e).split("/").filter(t=>t);o=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&&(o=n)}}const i=t.indexOf("?",e);let a;-1!==i&&i<o&&(o=i);try{a=decodeURIComponent(t.slice(e,o))}catch(n){a=t.slice(e,o)}return{params:{[n.name]:a},nextIndex:o}}case"optional":{let o=e,s={},i=!0;for(let e=0;e<n.segments.length;e++){const r=n.segments[e],a=n.segments.slice(e+1),c=this.matchSegment(t,o,r,a);if(!1===c){i=!1;break}Object.assign(s,c.params),o=c.nextIndex}if(i){if(this.canMatchRemainingSegments(t,o,r))return{params:s,nextIndex:o}}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 r=0;for(const o of e)switch(o.type){case"literal":if(t.slice(r,r+o.value.length)!==o.value)return!1;r+=o.value.length;break;case"param":{let e,s=r;for(;s<t.length&&"&"!==t[s];)s++;if(s===r)return!1;try{e=decodeURIComponent(t.slice(r,s))}catch(n){e=t.slice(r,s)}n[o.name]=e,r=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 r="";for(let o=0;o<t.length;o++){const s=t[o],i=t.slice(o+1);switch(s.type){case"literal":r+=s.value;break;case"param":case"splat":if(!(s.name in e))return!1;r+=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;r+=t}}}return r}hasLaterOptionalGroupNeedingParams(t,e,n){for(const r of t)if("optional"===r.type&&this.hasAnyParamInSegments(r.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 r=!1,o=!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]?r=!0:s=!0}const a=n||r&&!s;for(const n of t)if("optional"===n.type){this.hasAllParams(n.segments,e,a)&&(o=!0)}return!(!r||s)||(!(!o||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,r]=t.split(":").map(t=>t.trim());n&&r&&(e[n]=r)}),e}var Fe,Ve;function je(t,e,n,r){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=`${r} ${n}ms ease-in-out`}function Ue(t){const e=t.window??window,n=t.document??document,r=[];let o,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[E]===u)return t}return null}function f(t,e,n,c,l,u){switch(r.push({route:new De(t),tag:e,transition:n,guards:c,layout:l,placard:u}),a=!1,t){case"/404":o=e;break;case"/403":s=e;break;case"/":i=e}}function p(){const t=new Set;c=r.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[J](h,c,e,n)}function v(){switch(t.type){case"hash":return e.location.hash.slice(1);case"pushstate":return e.location.pathname}}function b(t){let e;if(s)e=n.createElement(s),e[T]=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}function w(t,e,n){if(!!!t)return!0;const r=Array.isArray(t)?t:[t];for(const t of r){if(!t(h,e))return b(n),!1}return!0}async function S(t,e,n,r,o,s,i){const a=r||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(o&&(t.innerHTML="",t.appendChild(a)));a.querySelectorAll('[slot="page"]').forEach(t=>t.remove()),e.setAttribute("slot","page"),a.appendChild(e),o&&(t.innerHTML="",t.appendChild(a))}async function A(e,r,o,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 r=n.createElement(t);return r[T]=h,r[E]=e,{element:r,needsNewLayout:!0}}return u=null,{element:null,needsNewLayout:!0}}(c),y=o||t.transition;if(null!==f||null!==m(e))return await S(e,r,y,f,p,i,a),void g(0,i,a);await async function(t,e,n){const r=t.children[0];n&&r?await x(t,r,e,n):(t.innerHTML="",t.appendChild(e))}(e,r,y),g(0,i,a)}async function _(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=r.find(t=>t.route.match("/"));if(!w(t?.guards,{},a))return;const{element:o,transition:c,layout:l}=function(){const t=n.createElement(i);t[T]=h;const o=e.customElements.get(i),s=o?.[N],a=r.find(t=>t.route.match("/"));return{element:t,transition:s,layout:a?.layout}}();return void await A(a,o,c,l,s,{})}if(!s)return;const c=function(t,e){for(const o of r){const r=o.route.match(t);if(!1===r)continue;if(!w(o.guards,r,e))return{result:Ve.GUARDS_FAILED};const s=n.createElement(o.tag);s[T]=h,s[j]=d;const i=r;return Object.keys(i).forEach(t=>s.setAttribute(t,i[t])),{result:Ve.SUCCESS,element:s,transition:o.transition,layout:o.layout,routeParams:i}}return{result:Ve.NOT_FOUND}}(s,a);if(c.result===Ve.GUARDS_FAILED)return;if(c.result===Ve.SUCCESS){const{element:t,transition:e,layout:n,routeParams:r={}}=c;return void await A(a,t,e,n,s,r)}const{element:l,transition:u,layout:m}=function(){if(o){const t=n.createElement(o);t[T]=h;const r=e.customElements.get(o),s=r?.[N];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 A(a,l,u,m,s,{})}async function x(t,e,n,r){return async function(t,e,n,r={}){const o=r.outDuration||300,s=r.inDuration||300,i=r.mode||"sequential",a=r.out?qe(r.out):{opacity:"0"},c={opacity:"0"},l=r.in?qe(r.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(je(e,m,o,"all"),je(n,m,s,"all"),Object.assign(n.style,c),t.appendChild(n),n.offsetHeight,i){case Fe.SIMULTANEOUS:Object.assign(e.style,a),Object.assign(n.style,l),await new Promise(t=>setTimeout(t,Math.max(o,s)));break;case Fe.SEQUENTIAL:Object.assign(e.style,a),await new Promise(t=>setTimeout(t,o)),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,r)}return{page:function(t){return function(n,r){if(r?.metadata&&r.metadata[y]){n[y]||(n[y]=new Map);for(const[t,e]of r.metadata[y])n[y].set(t,e)}Se(n),n[N]=t.transition;const o=n.prototype.connectedCallback;n.prototype.connectedCallback=function(){this[j]=d,o?.call(this)};const s=n.prototype.disconnectedCallback;return n.prototype.disconnectedCallback=function(){s?.call(this),delete this[T],delete this[j]},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&&(r.sort((t,e)=>e.route.spec.length-t.route.spec.length),a=!0),p(),function(){const r=()=>{n.querySelector(t.target)&&_(v())};switch(t.type){case"hash":e.addEventListener("hashchange",r);break;case"pushstate":e.addEventListener("popstate",r)}}(),_(v())},navigate:_,register:f}}function ze(t,e){return function(n,r){return function(...o){this[I]||(this[I]=new Map);const s=`${t}_${r.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,o),c=n=>{if(void 0===n&&!1===e?.dispatchOnUndefined)return;const r=new CustomEvent(t,{bubbles:!0,composed:!0,...e,detail:n});this.dispatchEvent(r)},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(),r=e.throttle-(n-i.throttleLastCall);if(r<=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)},r))};return a instanceof Promise?a.then(t=>(l(t),t)):(l(a),a)}}}!function(t){t.SEQUENTIAL="sequential",t.SIMULTANEOUS="simultaneous"}(Fe||(Fe={})),function(t){t.SUCCESS="success",t.GUARDS_FAILED="guards-failed",t.NOT_FOUND="not-found"}(Ve||(Ve={}));let Be=!1;function We(t){Be=t}async function He(t,e=500){if(customElements.get(t))return;let n=null;Be||(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 Ge(t,e=500){const n=t.tagName.toLowerCase();await He(n,e),"ready"in t&&"function"==typeof t.ready?.then&&await t.ready}async function Qe(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=>Ge(t,e)))}async function*Ke(t){for(;;)await new Promise(e=>{t[q]||(t[q]=[]),t[q].push(e)}),yield}const Je=e("debounce-timers"),Xe=e("throttle-timers"),Ye=e("once-called"),Ze=e("memoize-cache");function tn(t=300,e={}){const{leading:n=!1,trailing:r=!0,maxWait:o}=e;return function(e,s){const i=s.name;return function(...s){this[Je]||(this[Je]={});const a=this[Je],c=i;a[c]&&clearTimeout(a[c].timeout);const l=Date.now(),u=!a[c],h=u?l:a[c].startTime,d=void 0!==o&&l-h>=o;if(n&&u){const t=e.apply(this,s);return a[c]={timeout:null,startTime:h,lastArgs:s},t}const m=setTimeout(()=>{(r||d)&&e.apply(this,a[c].lastArgs),delete a[c]},d?0:t);a[c]={timeout:m,startTime:h,lastArgs:s}}}}function en(t=300,e={}){const{leading:n=!0,trailing:r=!0}=e;return function(e,o){const s=o.name;return function(...o){this[Xe]||(this[Xe]={});const i=this[Xe],a=s,c=Date.now();if(!i[a])return n&&e.apply(this,o),i[a]={lastInvoke:c,timeout:null,lastArgs:o},void(r&&!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=o,i[a].timeout&&clearTimeout(i[a].timeout),l>=t)return e.apply(this,o),void(i[a].lastInvoke=c);if(r){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 nn(t=!0){let e,n=!1;return function(r,o){const s=o.name;return function(...o){return t?(this[Ye]||(this[Ye]={}),this[Ye][s]||(this[Ye][s]={called:!0,result:r.apply(this,o)}),this[Ye][s].result):(n||(n=!0,e=r.apply(this,o)),e)}}}function rn(t={}){const{keyGenerator:e=(...t)=>JSON.stringify(t),maxSize:n=100,ttl:r}=t;return function(t,o){const s=o.name;return function(...o){this[Ze]||(this[Ze]={}),this[Ze][s]||(this[Ze][s]=new Map);const i=this[Ze][s],a=e(...o);if(i.has(a)){const t=i.get(a);if(!(void 0!==r&&Date.now()-t.timestamp>r))return t.value;i.delete(a)}const c=t.apply(this,o);if(i.set(a,{value:c,timestamp:Date.now()}),i.size>n){const t=i.keys().next().value;i.delete(t)}return c}}}function on(t){if(t[Je]){for(const e in t[Je])t[Je][e]?.timeout&&clearTimeout(t[Je][e].timeout);t[Je]={}}}function sn(t){if(t[Xe]){for(const e in t[Xe])t[Xe][e]?.timeout&&clearTimeout(t[Xe][e].timeout);t[Xe]={}}}function an(t,e){t[Ze]&&(e?delete t[Ze][e]:t[Ze]={})}function cn(t,e){t[Ye]&&(e?delete t[Ye][e]:t[Ye]={})}class ln{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,r){const o=new Request(t,r);let s=0;const i=async()=>{if(s<e.length){return e[s++].call(this,o,i)}const t=await fetch(o);let r=0;const a=async()=>{if(r<n.length){return n[r++].call(this,t,a)}return t};return a()};return i()}.bind(t)}}
|
|
20
|
+
class De{constructor(t){this.parsed=this.parsePattern(t)}get spec(){return this.parsed.template}parsePattern(t){let e=t,n="",r=!1;const o=t.indexOf("?");return-1!==o&&(e=t.slice(0,o),n=t.slice(o+1),e.endsWith("(")&&n.endsWith(")")&&(r=!0,e=e.slice(0,-1),n=n.slice(0,-1))),{pathSegments:this.parseSegments(e),querySegments:n?this.parseQuerySegments(n):[],queryOptional:r,template:t}}parseSegments(t){const e=[];let n=0;for(;n<t.length;){switch(t[n]){case"(":const{segments:r,endIndex:o}=this.parseOptionalGroup(t,n);e.push({type:"optional",segments:r}),n=o+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,r=e+1;for(;r<t.length&&n>0;)"("===t[r]&&n++,")"===t[r]&&n--,r++;const o=t.slice(e+1,r-1);return{segments:this.parseSegments(o),endIndex:r-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 r=0;for(;r<e.length;)if(":"===e[r]){const{name:t,endIndex:o}=this.parseIdentifier(e,r+1);n.push({type:"param",name:t}),r=o}else{const{value:t,endIndex:o}=this.parseQueryLiteral(e,r);t&&n.push({type:"literal",value:t}),r=o}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 r of n)switch(r.type){case"param":case"splat":t.add(r.name);break;case"optional":e(r.segments)}};return e(this.parsed.pathSegments),e(this.parsed.querySegments),Array.from(t)}canMatchRemainingSegments(t,e,n){let r=e;for(const e of n)if("literal"===e.type){const n=t.indexOf(e.value,r);if(-1===n)return!1;r=n+e.value.length}return!0}match(t){const[e,n]=t.split("?"),r=this.matchPath(e,this.parsed.pathSegments);if(!1===r)return!1;const o=this.matchQuery(n||"",this.parsed.querySegments);if(!1===o)return!1;const s=this.getAllParamNames(),i={};for(const t of s)i[t]=void 0;return Object.assign(i,r,o),i}matchPath(t,e){const n={};let r=0;for(let o=0;o<e.length;o++){const s=e[o],i=e.slice(o+1),a=this.matchSegment(t,r,s,i);if(!1===a)return!1;Object.assign(n,a.params),r=a.nextIndex}return!(r<t.length)&&n}matchSegment(t,e,n,r=[]){switch(n.type){case"literal":return t.slice(e,e+n.value.length)===n.value&&{params:{},nextIndex:e+n.value.length};case"param":{let o=e;const s=r[0];let i,a=["/","?"];if(s&&"literal"===s.type){const n=s.value,r=t.indexOf(n,e);if(-1===r)return!1;o=r}else for(;o<t.length&&!a.includes(t[o]);)o++;if(o===e)return!1;try{i=decodeURIComponent(t.slice(e,o))}catch(n){i=t.slice(e,o)}return!(o<t.length&&"?"===t[o]&&r.length>0)&&{params:{[n.name]:i},nextIndex:o}}case"splat":{let o=t.length;const s=r[0];if(s)switch(s.type){case"literal":if("."===s.value){const n=t.indexOf(".",e);-1!==n&&(o=n)}else{const n=t.lastIndexOf(s.value);-1!==n&&n>=e&&(o=n)}break;case"param":let n=-1;for(let r=t.length-1;r>=e;r--)if("/"===t[r]){n=r;break}-1!==n&&(o=n);break;case"splat":let r=-1;for(let n=t.length-1;n>e;n--)if("/"===t[n]){r=n+1;break}if(-1!==r)o=r;else{const n=t.slice(e).split("/").filter(t=>t);o=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&&(o=n)}}const i=t.indexOf("?",e);let a;-1!==i&&i<o&&(o=i);try{a=decodeURIComponent(t.slice(e,o))}catch(n){a=t.slice(e,o)}return{params:{[n.name]:a},nextIndex:o}}case"optional":{let o=e,s={},i=!0;for(let e=0;e<n.segments.length;e++){const r=n.segments[e],a=n.segments.slice(e+1),c=this.matchSegment(t,o,r,a);if(!1===c){i=!1;break}Object.assign(s,c.params),o=c.nextIndex}if(i){if(this.canMatchRemainingSegments(t,o,r))return{params:s,nextIndex:o}}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 r=0;for(const o of e)switch(o.type){case"literal":if(t.slice(r,r+o.value.length)!==o.value)return!1;r+=o.value.length;break;case"param":{let e,s=r;for(;s<t.length&&"&"!==t[s];)s++;if(s===r)return!1;try{e=decodeURIComponent(t.slice(r,s))}catch(n){e=t.slice(r,s)}n[o.name]=e,r=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 r="";for(let o=0;o<t.length;o++){const s=t[o],i=t.slice(o+1);switch(s.type){case"literal":r+=s.value;break;case"param":case"splat":if(!(s.name in e))return!1;r+=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;r+=t}}}return r}hasLaterOptionalGroupNeedingParams(t,e,n){for(const r of t)if("optional"===r.type&&this.hasAnyParamInSegments(r.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 r=!1,o=!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]?r=!0:s=!0}const a=n||r&&!s;for(const n of t)if("optional"===n.type){this.hasAllParams(n.segments,e,a)&&(o=!0)}return!(!r||s)||(!(!o||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 Fe(t){const e={};return t.split(";").forEach(t=>{const[n,r]=t.split(":").map(t=>t.trim());n&&r&&(e[n]=r)}),e}var qe,Be;function Ve(t,e,n,r){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=`${r} ${n}ms ease-in-out`}function je(t){const e=t.window??window,n=t.document??document,r=[];let o,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[E]===u)return t}return null}function f(t,e,n,c,l,u){switch(r.push({route:new De(t),tag:e,transition:n,guards:c,layout:l,placard:u}),a=!1,t){case"/404":o=e;break;case"/403":s=e;break;case"/":i=e}}function p(){const t=new Set;c=r.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[J](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}function w(t,e,n){if(!!!t)return!0;const r=Array.isArray(t)?t:[t];for(const t of r){if(!t(h,e))return v(n),!1}return!0}async function N(t,e,n,r,o,s,i){const a=r||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(o&&(t.innerHTML="",t.appendChild(a)));a.querySelectorAll('[slot="page"]').forEach(t=>t.remove()),e.setAttribute("slot","page"),a.appendChild(e),o&&(t.innerHTML="",t.appendChild(a))}async function A(e,r,o,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 r=n.createElement(t);return r[S]=h,r[E]=e,{element:r,needsNewLayout:!0}}return u=null,{element:null,needsNewLayout:!0}}(c),y=o||t.transition;if(null!==f||null!==m(e))return await N(e,r,y,f,p,i,a),void g(0,i,a);await async function(t,e,n){const r=t.children[0];n&&r?await x(t,r,e,n):(t.innerHTML="",t.appendChild(e))}(e,r,y),g(0,i,a)}async function _(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=r.find(t=>t.route.match("/"));if(!w(t?.guards,{},a))return;const{element:o,transition:c,layout:l}=function(){const t=n.createElement(i);t[S]=h;const o=e.customElements.get(i),s=o?.[T],a=r.find(t=>t.route.match("/"));return{element:t,transition:s,layout:a?.layout}}();return void await A(a,o,c,l,s,{})}if(!s)return;const c=function(t,e){for(const o of r){const r=o.route.match(t);if(!1===r)continue;if(!w(o.guards,r,e))return{result:Be.GUARDS_FAILED};const s=n.createElement(o.tag);s[S]=h,s[V]=d;const i=r;return Object.keys(i).forEach(t=>s.setAttribute(t,i[t])),{result:Be.SUCCESS,element:s,transition:o.transition,layout:o.layout,routeParams:i}}return{result:Be.NOT_FOUND}}(s,a);if(c.result===Be.GUARDS_FAILED)return;if(c.result===Be.SUCCESS){const{element:t,transition:e,layout:n,routeParams:r={}}=c;return void await A(a,t,e,n,s,r)}const{element:l,transition:u,layout:m}=function(){if(o){const t=n.createElement(o);t[S]=h;const r=e.customElements.get(o),s=r?.[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 A(a,l,u,m,s,{})}async function x(t,e,n,r){return async function(t,e,n,r={}){const o=r.outDuration||300,s=r.inDuration||300,i=r.mode||"sequential",a=r.out?Fe(r.out):{opacity:"0"},c={opacity:"0"},l=r.in?Fe(r.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,o,"all"),Ve(n,m,s,"all"),Object.assign(n.style,c),t.appendChild(n),n.offsetHeight,i){case qe.SIMULTANEOUS:Object.assign(e.style,a),Object.assign(n.style,l),await new Promise(t=>setTimeout(t,Math.max(o,s)));break;case qe.SEQUENTIAL:Object.assign(e.style,a),await new Promise(t=>setTimeout(t,o)),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,r)}return{page:function(t){return function(n,r){if(r?.metadata&&r.metadata[y]){n[y]||(n[y]=new Map);for(const[t,e]of r.metadata[y])n[y].set(t,e)}Ne(n),n[T]=t.transition;const o=n.prototype.connectedCallback;n.prototype.connectedCallback=function(){this[V]=d,o?.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&&(r.sort((t,e)=>e.route.spec.length-t.route.spec.length),a=!0),p(),function(){const r=()=>{n.querySelector(t.target)&&_(b())};switch(t.type){case"hash":e.addEventListener("hashchange",r);break;case"pushstate":e.addEventListener("popstate",r)}}(),_(b())},navigate:_,register:f}}function Ue(t,e){return function(n,r){return function(...o){this[I]||(this[I]=new Map);const s=`${t}_${r.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,o),c=n=>{if(void 0===n&&!1===e?.dispatchOnUndefined)return;const r=new CustomEvent(t,{bubbles:!0,composed:!0,...e,detail:n});this.dispatchEvent(r)},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(),r=e.throttle-(n-i.throttleLastCall);if(r<=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)},r))};return a instanceof Promise?a.then(t=>(l(t),t)):(l(a),a)}}}!function(t){t.SEQUENTIAL="sequential",t.SIMULTANEOUS="simultaneous"}(qe||(qe={})),function(t){t.SUCCESS="success",t.GUARDS_FAILED="guards-failed",t.NOT_FOUND="not-found"}(Be||(Be={}));let ze=!1;function We(t){ze=t}async function He(t,e=500){if(customElements.get(t))return;let n=null;ze||(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 Ke(t,e=500){const n=t.tagName.toLowerCase();await He(n,e),"ready"in t&&"function"==typeof t.ready?.then&&await t.ready}async function Ge(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=>Ke(t,e)))}async function*Qe(t){for(;;)await new Promise(e=>{t[F]||(t[F]=[]),t[F].push(e)}),yield}const Je=e("debounce-timers"),Xe=e("throttle-timers"),Ye=e("once-called"),Ze=e("memoize-cache");function tn(t=300,e={}){const{leading:n=!1,trailing:r=!0,maxWait:o}=e;return function(e,s){const i=s.name;return function(...s){this[Je]||(this[Je]={});const a=this[Je],c=i;a[c]&&clearTimeout(a[c].timeout);const l=Date.now(),u=!a[c],h=u?l:a[c].startTime,d=void 0!==o&&l-h>=o;if(n&&u){const t=e.apply(this,s);return a[c]={timeout:null,startTime:h,lastArgs:s},t}const m=setTimeout(()=>{(r||d)&&e.apply(this,a[c].lastArgs),delete a[c]},d?0:t);a[c]={timeout:m,startTime:h,lastArgs:s}}}}function en(t=300,e={}){const{leading:n=!0,trailing:r=!0}=e;return function(e,o){const s=o.name;return function(...o){this[Xe]||(this[Xe]={});const i=this[Xe],a=s,c=Date.now();if(!i[a])return n&&e.apply(this,o),i[a]={lastInvoke:c,timeout:null,lastArgs:o},void(r&&!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=o,i[a].timeout&&clearTimeout(i[a].timeout),l>=t)return e.apply(this,o),void(i[a].lastInvoke=c);if(r){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 nn(t=!0){let e,n=!1;return function(r,o){const s=o.name;return function(...o){return t?(this[Ye]||(this[Ye]={}),this[Ye][s]||(this[Ye][s]={called:!0,result:r.apply(this,o)}),this[Ye][s].result):(n||(n=!0,e=r.apply(this,o)),e)}}}function rn(t={}){const{keyGenerator:e=(...t)=>JSON.stringify(t),maxSize:n=100,ttl:r}=t;return function(t,o){const s=o.name;return function(...o){this[Ze]||(this[Ze]={}),this[Ze][s]||(this[Ze][s]=new Map);const i=this[Ze][s],a=e(...o);if(i.has(a)){const t=i.get(a);if(!(void 0!==r&&Date.now()-t.timestamp>r))return t.value;i.delete(a)}const c=t.apply(this,o);if(i.set(a,{value:c,timestamp:Date.now()}),i.size>n){const t=i.keys().next().value;i.delete(t)}return c}}}function on(t){if(t[Je]){for(const e in t[Je])t[Je][e]?.timeout&&clearTimeout(t[Je][e].timeout);t[Je]={}}}function sn(t){if(t[Xe]){for(const e in t[Xe])t[Xe][e]?.timeout&&clearTimeout(t[Xe][e].timeout);t[Xe]={}}}function an(t,e){t[Ze]&&(e?delete t[Ze][e]:t[Ze]={})}function cn(t,e){t[Ye]&&(e?delete t[Ye][e]:t[Ye]={})}class ln{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,r){const o=new Request(t,r);let s=0;const i=async()=>{if(s<e.length){return e[s++].call(this,o,i)}const t=await fetch(o);let r=0;const a=async()=>{if(r<n.length){return n[r++].call(this,t,a)}return t};return a()};return i()}.bind(t)}}
|
|
21
21
|
/*!
|
|
22
|
-
* snice v4.
|
|
22
|
+
* snice v4.27.0
|
|
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 un;"undefined"!=typeof document&&ue(),
|
|
28
28
|
/*!
|
|
29
|
-
* snice v4.
|
|
29
|
+
* snice v4.27.0
|
|
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.
|
|
33
33
|
*/
|
|
34
|
-
globalThis.snice||(globalThis.snice={controllerRegistry:new Map,controllerIdCounter:0}),function(t){t.SEQUENTIAL="sequential",t.SIMULTANEOUS="simultaneous"}(un||(un={}));export{rt as Context,ln as ContextAwareFetcher,r as IS_CONTROLLER_INSTANCE,
|
|
34
|
+
globalThis.snice||(globalThis.snice={controllerRegistry:new Map,controllerIdCounter:0}),function(t){t.SEQUENTIAL="sequential",t.SIMULTANEOUS="simultaneous"}(un||(un={}));export{rt as Context,ln as ContextAwareFetcher,r as IS_CONTROLLER_INSTANCE,je as Router,X as SimpleArray,Pe as adopted,Ne as applyElementFunctionality,on as clearDebounceTimers,an as clearMemoizeCache,sn as clearThrottleTimers,de as context,ke as contextProperty,ae as controller,xt as css,tn as debounce,Ue as dispatch,Ie as dispose,Te as element,e as getSymbol,_t as html,Ee as layout,rn as memoize,Re as moved,Ft as noChange,Ot as nothing,mt as observe,ee as on,nn as once,Ae as property,xe as query,Ce as queryAll,$e as ready,be as render,wt as request,cn as resetOnce,Nt as respond,We as setDisableElementReadyWarnings,ve as styles,en as throttle,Qe as trackRenders,Lt as unsafeHTML,ue as useNativeElementControllers,Ge as waitForAllCustomElements,He as waitForElementDefined,Ke as waitForElementReady,Oe as watch};
|
|
35
35
|
//# sourceMappingURL=snice-runtime.esm.min.js.map
|