@vizejs/composable 0.426.2 → 0.427.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/abort-signal.d.mts +1 -1
- package/dist/active-element.d.mts +37 -0
- package/dist/active-element.mjs +56 -0
- package/dist/animate.d.mts +114 -0
- package/dist/animate.mjs +157 -0
- package/dist/battery.d.mts +61 -0
- package/dist/battery.mjs +90 -0
- package/dist/breakpoints.d.mts +82 -0
- package/dist/breakpoints.mjs +91 -0
- package/dist/catalog-BeTXFKxF.d.mts +4188 -0
- package/dist/catalog-r4Z5nptX.mjs +5144 -0
- package/dist/catalog.d.mts +1 -1
- package/dist/catalog.mjs +1 -1
- package/dist/color-mode.d.mts +131 -0
- package/dist/color-mode.mjs +133 -0
- package/dist/computed-async.d.mts +63 -0
- package/dist/computed-async.mjs +43 -0
- package/dist/computed-with-control.d.mts +44 -0
- package/dist/computed-with-control.mjs +54 -0
- package/dist/create-event-hook.d.mts +77 -0
- package/dist/create-event-hook.mjs +66 -0
- package/dist/create-global-state.d.mts +24 -0
- package/dist/create-global-state.mjs +34 -0
- package/dist/create-injection-state.d.mts +51 -0
- package/dist/create-injection-state.mjs +19 -0
- package/dist/create-shared-composable.d.mts +38 -0
- package/dist/create-shared-composable.mjs +54 -0
- package/dist/device-motion.d.mts +71 -0
- package/dist/device-motion.mjs +75 -0
- package/dist/device-orientation.d.mts +82 -0
- package/dist/device-orientation.mjs +86 -0
- package/dist/device-pixel-ratio.d.mts +45 -0
- package/dist/device-pixel-ratio.mjs +50 -0
- package/dist/document-visibility.mjs +6 -2
- package/dist/draggable.d.mts +121 -0
- package/dist/draggable.mjs +153 -0
- package/dist/element-bounding.d.mts +87 -0
- package/dist/element-bounding.mjs +95 -0
- package/dist/element-by-point.d.mts +70 -0
- package/dist/element-by-point.mjs +69 -0
- package/dist/element-hover.d.mts +42 -0
- package/dist/element-hover.mjs +70 -0
- package/dist/element-ref.d.mts +34 -0
- package/dist/element-ref.mjs +23 -0
- package/dist/element-target-Crpxl4D9.d.mts +60 -0
- package/dist/element-target.d.mts +2 -0
- package/dist/element-target.mjs +58 -0
- package/dist/event-listener.mjs +7 -3
- package/dist/focus.d.mts +69 -0
- package/dist/focus.mjs +124 -0
- package/dist/fps.d.mts +59 -0
- package/dist/fps.mjs +64 -0
- package/dist/geolocation.d.mts +98 -0
- package/dist/geolocation.mjs +86 -0
- package/dist/i18n.d.mts +237 -0
- package/dist/i18n.mjs +215 -0
- package/dist/icu-message.d.mts +235 -0
- package/dist/icu-message.mjs +343 -0
- package/dist/idle.d.mts +79 -0
- package/dist/idle.mjs +90 -0
- package/dist/index.d.mts +172 -6
- package/dist/index.mjs +173 -7
- package/dist/infinite-scroll.d.mts +56 -0
- package/dist/infinite-scroll.mjs +72 -0
- package/dist/intersection-observer.d.mts +122 -0
- package/dist/intersection-observer.mjs +117 -0
- package/dist/magic-keys.d.mts +121 -0
- package/dist/magic-keys.mjs +163 -0
- package/dist/math.d.mts +96 -0
- package/dist/math.mjs +84 -0
- package/dist/media-query.d.mts +3 -1
- package/dist/media-query.mjs +5 -3
- package/dist/mouse-in-element.d.mts +49 -0
- package/dist/mouse-in-element.mjs +66 -0
- package/dist/mouse.d.mts +77 -0
- package/dist/mouse.mjs +100 -0
- package/dist/mutation-observer.d.mts +98 -0
- package/dist/mutation-observer.mjs +69 -0
- package/dist/network.d.mts +96 -0
- package/dist/network.mjs +117 -0
- package/dist/on-click-outside.d.mts +69 -0
- package/dist/on-click-outside.mjs +115 -0
- package/dist/on-key-stroke.d.mts +71 -0
- package/dist/on-key-stroke.mjs +79 -0
- package/dist/on-long-press.d.mts +82 -0
- package/dist/on-long-press.mjs +105 -0
- package/dist/on-start-typing.d.mts +44 -0
- package/dist/on-start-typing.mjs +61 -0
- package/dist/page-leave.d.mts +26 -0
- package/dist/page-leave.mjs +40 -0
- package/dist/parent-element.d.mts +16 -0
- package/dist/parent-element.mjs +27 -0
- package/dist/pinch.d.mts +73 -0
- package/dist/pinch.mjs +138 -0
- package/dist/pointer-lock.d.mts +79 -0
- package/dist/pointer-lock.mjs +126 -0
- package/dist/pointer.d.mts +78 -0
- package/dist/pointer.mjs +95 -0
- package/dist/preferences.d.mts +55 -0
- package/dist/preferences.mjs +63 -0
- package/dist/preferred-languages.d.mts +43 -0
- package/dist/preferred-languages.mjs +44 -0
- package/dist/reactify.d.mts +28 -0
- package/dist/reactify.mjs +7 -0
- package/dist/ref-auto-reset.d.mts +47 -0
- package/dist/ref-auto-reset.mjs +70 -0
- package/dist/ref-debounced.d.mts +29 -0
- package/dist/ref-debounced.mjs +29 -0
- package/dist/ref-default.d.mts +27 -0
- package/dist/ref-default.mjs +33 -0
- package/dist/resize-observer.d.mts +96 -0
- package/dist/resize-observer.mjs +111 -0
- package/dist/resolver.d.mts +124 -0
- package/dist/resolver.mjs +138 -0
- package/dist/retry-async.d.mts +2 -2
- package/dist/retry-delay-DYsdq4SE.d.mts +73 -0
- package/dist/retry-delay.d.mts +1 -72
- package/dist/screen-orientation.d.mts +77 -0
- package/dist/screen-orientation.mjs +74 -0
- package/dist/scroll-lock.d.mts +37 -0
- package/dist/scroll-lock.mjs +50 -0
- package/dist/scroll.d.mts +158 -0
- package/dist/scroll.mjs +172 -0
- package/dist/standard-schema-DmNgFVK5.d.mts +107 -0
- package/dist/standard-schema.d.mts +2 -0
- package/dist/standard-schema.mjs +60 -0
- package/dist/swipe.d.mts +125 -0
- package/dist/swipe.mjs +225 -0
- package/dist/sync-ref.d.mts +80 -0
- package/dist/sync-ref.mjs +43 -0
- package/dist/text-selection.d.mts +46 -0
- package/dist/text-selection.mjs +62 -0
- package/dist/textarea-autosize.d.mts +58 -0
- package/dist/textarea-autosize.mjs +54 -0
- package/dist/timeout-scheduler-CI8RVLZs.d.mts +18 -0
- package/dist/timeout-scheduler.d.mts +1 -17
- package/dist/to-reactive.d.mts +26 -0
- package/dist/to-reactive.mjs +46 -0
- package/dist/transition.d.mts +125 -0
- package/dist/transition.mjs +266 -0
- package/dist/until.d.mts +177 -0
- package/dist/until.mjs +111 -0
- package/dist/use-array.d.mts +112 -0
- package/dist/use-array.mjs +90 -0
- package/dist/use-async-queue.d.mts +109 -0
- package/dist/use-async-queue.mjs +96 -0
- package/dist/use-async-state.d.mts +86 -0
- package/dist/use-async-state.mjs +41 -0
- package/dist/use-barcode-detector.d.mts +159 -0
- package/dist/use-barcode-detector.mjs +143 -0
- package/dist/use-bluetooth.d.mts +164 -0
- package/dist/use-bluetooth.mjs +183 -0
- package/dist/use-broadcast-channel.d.mts +115 -0
- package/dist/use-broadcast-channel.mjs +121 -0
- package/dist/use-builtin-ai.d.mts +342 -0
- package/dist/use-builtin-ai.mjs +261 -0
- package/dist/use-clipboard.d.mts +169 -0
- package/dist/use-clipboard.mjs +226 -0
- package/dist/use-compression-stream.d.mts +173 -0
- package/dist/use-compression-stream.mjs +166 -0
- package/dist/use-confirm-dialog.d.mts +70 -0
- package/dist/use-confirm-dialog.mjs +57 -0
- package/dist/use-contact-picker.d.mts +117 -0
- package/dist/use-contact-picker.mjs +103 -0
- package/dist/use-cookie.d.mts +196 -0
- package/dist/use-cookie.mjs +259 -0
- package/dist/use-countdown.d.mts +85 -0
- package/dist/use-countdown.mjs +74 -0
- package/dist/use-css-var.d.mts +96 -0
- package/dist/use-css-var.mjs +104 -0
- package/dist/use-cycle-list.d.mts +76 -0
- package/dist/use-cycle-list.mjs +39 -0
- package/dist/use-date-format.d.mts +103 -0
- package/dist/use-date-format.mjs +147 -0
- package/dist/use-date-time-format.d.mts +75 -0
- package/dist/use-date-time-format.mjs +53 -0
- package/dist/use-debounced.d.mts +1 -1
- package/dist/use-display-media.d.mts +62 -0
- package/dist/use-display-media.mjs +46 -0
- package/dist/use-display-names.d.mts +75 -0
- package/dist/use-display-names.mjs +52 -0
- package/dist/use-document-title.d.mts +88 -0
- package/dist/use-document-title.mjs +100 -0
- package/dist/use-drop-zone.d.mts +128 -0
- package/dist/use-drop-zone.mjs +154 -0
- package/dist/use-event-source.d.mts +184 -0
- package/dist/use-event-source.mjs +226 -0
- package/dist/use-eye-dropper.d.mts +79 -0
- package/dist/use-eye-dropper.mjs +68 -0
- package/dist/use-favicon.d.mts +78 -0
- package/dist/use-favicon.mjs +68 -0
- package/dist/use-fetch.d.mts +230 -0
- package/dist/use-fetch.mjs +263 -0
- package/dist/use-field.d.mts +107 -0
- package/dist/use-field.mjs +117 -0
- package/dist/use-file-dialog.d.mts +139 -0
- package/dist/use-file-dialog.mjs +101 -0
- package/dist/use-file-system-access.d.mts +184 -0
- package/dist/use-file-system-access.mjs +151 -0
- package/dist/use-form-field-props.d.mts +235 -0
- package/dist/use-form-field-props.mjs +164 -0
- package/dist/use-form.d.mts +324 -0
- package/dist/use-form.mjs +482 -0
- package/dist/use-fullscreen.d.mts +104 -0
- package/dist/use-fullscreen.mjs +95 -0
- package/dist/use-gamepad.d.mts +242 -0
- package/dist/use-gamepad.mjs +218 -0
- package/dist/use-hid.d.mts +160 -0
- package/dist/use-hid.mjs +156 -0
- package/dist/use-id-generator.d.mts +44 -0
- package/dist/use-id-generator.mjs +38 -0
- package/dist/use-image.d.mts +125 -0
- package/dist/use-image.mjs +109 -0
- package/dist/use-indexed-db.d.mts +207 -0
- package/dist/use-indexed-db.mjs +251 -0
- package/dist/use-interval-BA55gTHT.d.mts +140 -0
- package/dist/use-interval.d.mts +2 -0
- package/dist/use-interval.mjs +100 -0
- package/dist/use-list-format.d.mts +60 -0
- package/dist/use-list-format.mjs +40 -0
- package/dist/use-machine.d.mts +90 -0
- package/dist/use-machine.mjs +78 -0
- package/dist/use-map.d.mts +90 -0
- package/dist/use-map.mjs +70 -0
- package/dist/use-media-controls.d.mts +198 -0
- package/dist/use-media-controls.mjs +264 -0
- package/dist/use-memoize.d.mts +73 -0
- package/dist/use-memoize.mjs +28 -0
- package/dist/use-mounted.d.mts +24 -0
- package/dist/use-mounted.mjs +29 -0
- package/dist/use-navigation-api.d.mts +360 -0
- package/dist/use-navigation-api.mjs +231 -0
- package/dist/use-notification.d.mts +139 -0
- package/dist/use-notification.mjs +131 -0
- package/dist/use-now.d.mts +137 -0
- package/dist/use-now.mjs +44 -0
- package/dist/use-number-format.d.mts +73 -0
- package/dist/use-number-format.mjs +58 -0
- package/dist/use-object-url.d.mts +47 -0
- package/dist/use-object-url.mjs +54 -0
- package/dist/use-offset-pagination.d.mts +91 -0
- package/dist/use-offset-pagination.mjs +80 -0
- package/dist/use-payment-request.d.mts +239 -0
- package/dist/use-payment-request.mjs +206 -0
- package/dist/use-performance-observer.d.mts +285 -0
- package/dist/use-performance-observer.mjs +132 -0
- package/dist/use-permission.d.mts +99 -0
- package/dist/use-permission.mjs +92 -0
- package/dist/use-plural-rules.d.mts +79 -0
- package/dist/use-plural-rules.mjs +59 -0
- package/dist/use-push-subscription.d.mts +154 -0
- package/dist/use-push-subscription.mjs +146 -0
- package/dist/use-queue.d.mts +89 -0
- package/dist/use-queue.mjs +116 -0
- package/dist/use-raf-fn.d.mts +87 -0
- package/dist/use-raf-fn.mjs +99 -0
- package/dist/use-relative-time-format.d.mts +111 -0
- package/dist/use-relative-time-format.mjs +119 -0
- package/dist/use-request-idle-callback.d.mts +122 -0
- package/dist/use-request-idle-callback.mjs +147 -0
- package/dist/use-route-query.d.mts +149 -0
- package/dist/use-route-query.mjs +86 -0
- package/dist/use-scheduler-post-task.d.mts +156 -0
- package/dist/use-scheduler-post-task.mjs +182 -0
- package/dist/use-screen-details.d.mts +205 -0
- package/dist/use-screen-details.mjs +188 -0
- package/dist/use-script-tag.d.mts +162 -0
- package/dist/use-script-tag.mjs +171 -0
- package/dist/use-segmenter.d.mts +78 -0
- package/dist/use-segmenter.mjs +66 -0
- package/dist/use-selection.d.mts +125 -0
- package/dist/use-selection.mjs +77 -0
- package/dist/use-serial.d.mts +165 -0
- package/dist/use-serial.mjs +205 -0
- package/dist/use-service-worker.d.mts +177 -0
- package/dist/use-service-worker.mjs +178 -0
- package/dist/use-set.d.mts +96 -0
- package/dist/use-set.mjs +74 -0
- package/dist/use-share.d.mts +92 -0
- package/dist/use-share.mjs +99 -0
- package/dist/use-sorted-locale.d.mts +62 -0
- package/dist/use-sorted-locale.mjs +52 -0
- package/dist/use-sorted.d.mts +29 -0
- package/dist/use-sorted.mjs +14 -0
- package/dist/use-speech-recognition.d.mts +150 -0
- package/dist/use-speech-recognition.mjs +168 -0
- package/dist/use-speech-synthesis.d.mts +148 -0
- package/dist/use-speech-synthesis.mjs +152 -0
- package/dist/use-stack.d.mts +83 -0
- package/dist/use-stack.mjs +93 -0
- package/dist/use-stepper.d.mts +79 -0
- package/dist/use-stepper.mjs +52 -0
- package/dist/use-storage-estimate.d.mts +151 -0
- package/dist/use-storage-estimate.mjs +170 -0
- package/dist/use-storage.d.mts +214 -0
- package/dist/use-storage.mjs +415 -0
- package/dist/use-style-tag.d.mts +102 -0
- package/dist/use-style-tag.mjs +91 -0
- package/dist/use-supported.d.mts +23 -0
- package/dist/use-supported.mjs +26 -0
- package/dist/use-throttled.d.mts +1 -1
- package/dist/use-time-ago.d.mts +163 -0
- package/dist/use-time-ago.mjs +95 -0
- package/dist/use-timeout.d.mts +122 -0
- package/dist/use-timeout.mjs +65 -0
- package/dist/use-url-hash.d.mts +88 -0
- package/dist/use-url-hash.mjs +145 -0
- package/dist/use-url-search-params.d.mts +223 -0
- package/dist/use-url-search-params.mjs +295 -0
- package/dist/use-usb.d.mts +212 -0
- package/dist/use-usb.mjs +137 -0
- package/dist/use-user-activation.d.mts +83 -0
- package/dist/use-user-activation.mjs +113 -0
- package/dist/use-user-media.d.mts +194 -0
- package/dist/use-user-media.mjs +214 -0
- package/dist/use-v-model.d.mts +113 -0
- package/dist/use-v-model.mjs +40 -0
- package/dist/use-vibrate.d.mts +81 -0
- package/dist/use-vibrate.mjs +90 -0
- package/dist/use-view-transition.d.mts +106 -0
- package/dist/use-view-transition.mjs +101 -0
- package/dist/use-visual-viewport.d.mts +105 -0
- package/dist/use-visual-viewport.mjs +104 -0
- package/dist/use-wake-lock.d.mts +96 -0
- package/dist/use-wake-lock.mjs +106 -0
- package/dist/use-web-authn.d.mts +404 -0
- package/dist/use-web-authn.mjs +323 -0
- package/dist/use-web-locks.d.mts +180 -0
- package/dist/use-web-locks.mjs +136 -0
- package/dist/use-web-midi.d.mts +148 -0
- package/dist/use-web-midi.mjs +140 -0
- package/dist/use-web-vitals.d.mts +142 -0
- package/dist/use-web-vitals.mjs +248 -0
- package/dist/use-websocket.d.mts +218 -0
- package/dist/use-websocket.mjs +257 -0
- package/dist/use-worker-fn.d.mts +119 -0
- package/dist/use-worker-fn.mjs +162 -0
- package/dist/virtual-list.d.mts +105 -0
- package/dist/virtual-list.mjs +128 -0
- package/dist/watch-debounced.d.mts +84 -0
- package/dist/watch-debounced.mjs +84 -0
- package/dist/watch-ignorable.d.mts +47 -0
- package/dist/watch-ignorable.mjs +61 -0
- package/dist/watch-once.d.mts +29 -0
- package/dist/watch-once.mjs +10 -0
- package/dist/watch-pausable.d.mts +51 -0
- package/dist/watch-pausable.mjs +23 -0
- package/dist/watch-source.d.mts +29 -0
- package/dist/watch-source.mjs +1 -0
- package/dist/watch-throttled.d.mts +70 -0
- package/dist/watch-throttled.mjs +94 -0
- package/dist/whenever.d.mts +39 -0
- package/dist/whenever.mjs +41 -0
- package/dist/window-size.d.mts +87 -0
- package/dist/window-size.mjs +65 -0
- package/package.json +846 -5
- package/registry/files/abort-signal.ts +292 -0
- package/registry/files/active-element.ts +93 -0
- package/registry/files/animate.ts +322 -0
- package/registry/files/async-resource.ts +190 -0
- package/registry/files/battery.ts +166 -0
- package/registry/files/breakpoints.ts +166 -0
- package/registry/files/capability.ts +171 -0
- package/registry/files/color-mode.ts +274 -0
- package/registry/files/computed-async.ts +123 -0
- package/registry/files/computed-with-control.ts +80 -0
- package/registry/files/create-event-hook.ts +139 -0
- package/registry/files/create-global-state.ts +34 -0
- package/registry/files/create-injection-state.ts +75 -0
- package/registry/files/create-shared-composable.ts +74 -0
- package/registry/files/device-motion.ts +152 -0
- package/registry/files/device-orientation.ts +168 -0
- package/registry/files/device-pixel-ratio.ts +100 -0
- package/registry/files/disposal-scope.ts +201 -0
- package/registry/files/document-visibility.ts +152 -0
- package/registry/files/draggable.ts +273 -0
- package/registry/files/element-bounding.ts +175 -0
- package/registry/files/element-by-point.ts +149 -0
- package/registry/files/element-hover.ts +104 -0
- package/registry/files/element-ref.ts +58 -0
- package/registry/files/element-target.ts +99 -0
- package/registry/files/event-listener.ts +188 -0
- package/registry/files/focus.ts +181 -0
- package/registry/files/fps.ts +133 -0
- package/registry/files/geolocation.ts +214 -0
- package/registry/files/i18n.ts +524 -0
- package/registry/files/icu-message.ts +701 -0
- package/registry/files/idle.ts +176 -0
- package/registry/files/infinite-scroll.ts +135 -0
- package/registry/files/intersection-observer.ts +261 -0
- package/registry/files/locale.ts +148 -0
- package/registry/files/magic-keys.ts +298 -0
- package/registry/files/math.ts +175 -0
- package/registry/files/media-query.ts +102 -0
- package/registry/files/mouse-in-element.ts +107 -0
- package/registry/files/mouse.ts +167 -0
- package/registry/files/mutation-observer.ts +183 -0
- package/registry/files/network.ts +229 -0
- package/registry/files/on-click-outside.ts +178 -0
- package/registry/files/on-key-stroke.ts +135 -0
- package/registry/files/on-long-press.ts +188 -0
- package/registry/files/on-start-typing.ts +88 -0
- package/registry/files/page-leave.ts +57 -0
- package/registry/files/parent-element.ts +29 -0
- package/registry/files/pinch.ts +187 -0
- package/registry/files/pointer-lock.ts +232 -0
- package/registry/files/pointer.ts +153 -0
- package/registry/files/preferences.ts +98 -0
- package/registry/files/preferred-languages.ts +88 -0
- package/registry/files/reactify.ts +39 -0
- package/registry/files/ref-auto-reset.ts +102 -0
- package/registry/files/ref-debounced.ts +34 -0
- package/registry/files/ref-default.ts +35 -0
- package/registry/files/resize-observer.ts +220 -0
- package/registry/files/retry-async.ts +261 -0
- package/registry/files/retry-delay.ts +132 -0
- package/registry/files/scope.ts +21 -0
- package/registry/files/screen-orientation.ts +165 -0
- package/registry/files/scroll-lock.ts +80 -0
- package/registry/files/scroll.ts +338 -0
- package/registry/files/standard-schema.ts +163 -0
- package/registry/files/swipe.ts +321 -0
- package/registry/files/sync-ref.ts +166 -0
- package/registry/files/temporal.ts +182 -0
- package/registry/files/text-selection.ts +110 -0
- package/registry/files/textarea-autosize.ts +114 -0
- package/registry/files/timeout-scheduler.ts +16 -0
- package/registry/files/to-reactive.ts +44 -0
- package/registry/files/transition.ts +271 -0
- package/registry/files/until.ts +352 -0
- package/registry/files/use-array.ts +201 -0
- package/registry/files/use-async-queue.ts +278 -0
- package/registry/files/use-async-state.ts +139 -0
- package/registry/files/use-barcode-detector.ts +321 -0
- package/registry/files/use-bluetooth.ts +409 -0
- package/registry/files/use-broadcast-channel.ts +250 -0
- package/registry/files/use-builtin-ai.ts +674 -0
- package/registry/files/use-clipboard.ts +425 -0
- package/registry/files/use-compression-stream.ts +364 -0
- package/registry/files/use-confirm-dialog.ts +137 -0
- package/registry/files/use-contact-picker.ts +246 -0
- package/registry/files/use-cookie.ts +500 -0
- package/registry/files/use-countdown.ts +161 -0
- package/registry/files/use-counter.ts +147 -0
- package/registry/files/use-css-var.ts +191 -0
- package/registry/files/use-cycle-list.ts +136 -0
- package/registry/files/use-date-format.ts +281 -0
- package/registry/files/use-date-time-format.ts +113 -0
- package/registry/files/use-debounced.ts +163 -0
- package/registry/files/use-display-media.ts +89 -0
- package/registry/files/use-display-names.ts +122 -0
- package/registry/files/use-document-title.ts +196 -0
- package/registry/files/use-drop-zone.ts +287 -0
- package/registry/files/use-event-source.ts +470 -0
- package/registry/files/use-eye-dropper.ts +134 -0
- package/registry/files/use-favicon.ts +140 -0
- package/registry/files/use-fetch.ts +578 -0
- package/registry/files/use-field.ts +247 -0
- package/registry/files/use-file-dialog.ts +257 -0
- package/registry/files/use-file-system-access.ts +383 -0
- package/registry/files/use-form-field-props.ts +381 -0
- package/registry/files/use-form.ts +980 -0
- package/registry/files/use-fullscreen.ts +214 -0
- package/registry/files/use-gamepad.ts +463 -0
- package/registry/files/use-hid.ts +359 -0
- package/registry/files/use-history.ts +231 -0
- package/registry/files/use-id-generator.ts +61 -0
- package/registry/files/use-image.ts +253 -0
- package/registry/files/use-indexed-db.ts +508 -0
- package/registry/files/use-interval.ts +253 -0
- package/registry/files/use-list-format.ts +85 -0
- package/registry/files/use-machine.ts +171 -0
- package/registry/files/use-map.ts +145 -0
- package/registry/files/use-media-controls.ts +545 -0
- package/registry/files/use-memoize.ts +118 -0
- package/registry/files/use-mounted.ts +30 -0
- package/registry/files/use-navigation-api.ts +641 -0
- package/registry/files/use-notification.ts +285 -0
- package/registry/files/use-now.ts +194 -0
- package/registry/files/use-number-format.ts +120 -0
- package/registry/files/use-object-url.ts +87 -0
- package/registry/files/use-offset-pagination.ts +168 -0
- package/registry/files/use-payment-request.ts +465 -0
- package/registry/files/use-performance-observer.ts +469 -0
- package/registry/files/use-permission.ts +220 -0
- package/registry/files/use-plural-rules.ts +134 -0
- package/registry/files/use-previous.ts +62 -0
- package/registry/files/use-push-subscription.ts +352 -0
- package/registry/files/use-queue.ts +197 -0
- package/registry/files/use-raf-fn.ts +176 -0
- package/registry/files/use-relative-time-format.ts +201 -0
- package/registry/files/use-request-idle-callback.ts +278 -0
- package/registry/files/use-route-query.ts +300 -0
- package/registry/files/use-scheduler-post-task.ts +397 -0
- package/registry/files/use-screen-details.ts +393 -0
- package/registry/files/use-script-tag.ts +341 -0
- package/registry/files/use-segmenter.ts +147 -0
- package/registry/files/use-selection.ts +233 -0
- package/registry/files/use-serial.ts +404 -0
- package/registry/files/use-service-worker.ts +413 -0
- package/registry/files/use-set.ts +154 -0
- package/registry/files/use-share.ts +168 -0
- package/registry/files/use-sorted-locale.ts +130 -0
- package/registry/files/use-sorted.ts +49 -0
- package/registry/files/use-speech-recognition.ts +357 -0
- package/registry/files/use-speech-synthesis.ts +333 -0
- package/registry/files/use-stack.ts +164 -0
- package/registry/files/use-stepper.ts +166 -0
- package/registry/files/use-storage-estimate.ts +352 -0
- package/registry/files/use-storage.ts +635 -0
- package/registry/files/use-style-tag.ts +200 -0
- package/registry/files/use-supported.ts +26 -0
- package/registry/files/use-throttled.ts +215 -0
- package/registry/files/use-time-ago.ts +276 -0
- package/registry/files/use-timeout.ts +218 -0
- package/registry/files/use-toggle.ts +54 -0
- package/registry/files/use-url-hash.ts +280 -0
- package/registry/files/use-url-search-params.ts +497 -0
- package/registry/files/use-usb.ts +395 -0
- package/registry/files/use-user-activation.ts +215 -0
- package/registry/files/use-user-media.ts +422 -0
- package/registry/files/use-v-model.ts +210 -0
- package/registry/files/use-vibrate.ts +174 -0
- package/registry/files/use-view-transition.ts +229 -0
- package/registry/files/use-visual-viewport.ts +228 -0
- package/registry/files/use-wake-lock.ts +206 -0
- package/registry/files/use-web-authn.ts +793 -0
- package/registry/files/use-web-locks.ts +363 -0
- package/registry/files/use-web-midi.ts +306 -0
- package/registry/files/use-web-vitals.ts +409 -0
- package/registry/files/use-websocket.ts +553 -0
- package/registry/files/use-worker-fn.ts +306 -0
- package/registry/files/virtual-list.ts +230 -0
- package/registry/files/watch-debounced.ts +206 -0
- package/registry/files/watch-ignorable.ts +128 -0
- package/registry/files/watch-once.ts +46 -0
- package/registry/files/watch-pausable.ts +93 -0
- package/registry/files/watch-source.ts +51 -0
- package/registry/files/watch-throttled.ts +201 -0
- package/registry/files/whenever.ts +70 -0
- package/registry/files/window-size.ts +151 -0
- package/registry/registry.json +5792 -0
- package/dist/catalog-D2AL3xYl.d.mts +0 -523
- package/dist/catalog-D5SYCsgW.mjs +0 -549
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
|
|
2
|
+
import { ComputedRef, MaybeRefOrGetter, ShallowRef } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/use-request-idle-callback.d.ts
|
|
5
|
+
/** Deadline handed to idle callbacks. */
|
|
6
|
+
interface IdleDeadlineLike {
|
|
7
|
+
/** Whether the callback runs because its `timeout` elapsed. */
|
|
8
|
+
readonly didTimeout: boolean;
|
|
9
|
+
/** Milliseconds left in the current idle period. */
|
|
10
|
+
timeRemaining(): number;
|
|
11
|
+
}
|
|
12
|
+
/** Minimal `requestIdleCallback` capability. */
|
|
13
|
+
interface IdleCallbackHost {
|
|
14
|
+
/** Schedule `callback` for the next idle period. */
|
|
15
|
+
requestIdleCallback(callback: (deadline: IdleDeadlineLike) => void, options?: {
|
|
16
|
+
readonly timeout?: number;
|
|
17
|
+
}): number;
|
|
18
|
+
/** Cancel a scheduled callback. */
|
|
19
|
+
cancelIdleCallback(handle: number): void;
|
|
20
|
+
}
|
|
21
|
+
/** Scheduling options shared by {@link useRequestIdleCallback} and {@link idle}. */
|
|
22
|
+
interface IdleSchedulingOptions {
|
|
23
|
+
/**
|
|
24
|
+
* `requestIdleCallback` capability for alternate runtimes and tests.
|
|
25
|
+
*
|
|
26
|
+
* @default window when it implements requestIdleCallback
|
|
27
|
+
*/
|
|
28
|
+
readonly host?: MaybeRefOrGetter<IdleCallbackHost | null | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* Timers used by the fallback when `host` is missing. Without timers
|
|
31
|
+
* (server rendering) nothing is scheduled.
|
|
32
|
+
*
|
|
33
|
+
* @default window.setTimeout and window.clearTimeout when a window exists
|
|
34
|
+
*/
|
|
35
|
+
readonly timers?: MaybeRefOrGetter<TimeoutScheduler | null | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Run the callback after this many milliseconds even when the browser is
|
|
38
|
+
* never idle (`deadline.didTimeout` is then true).
|
|
39
|
+
*
|
|
40
|
+
* @default undefined (no timeout)
|
|
41
|
+
*/
|
|
42
|
+
readonly timeout?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Clock used by the fallback deadline, in milliseconds.
|
|
45
|
+
*
|
|
46
|
+
* @default Date.now
|
|
47
|
+
*/
|
|
48
|
+
readonly now?: () => number;
|
|
49
|
+
}
|
|
50
|
+
/** Options for {@link useRequestIdleCallback}. */
|
|
51
|
+
interface UseRequestIdleCallbackOptions extends IdleSchedulingOptions {
|
|
52
|
+
/**
|
|
53
|
+
* Schedule the callback as soon as the composable is created.
|
|
54
|
+
*
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
57
|
+
readonly immediate?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/** Options for {@link idle}. */
|
|
60
|
+
interface IdleOptions extends IdleSchedulingOptions {
|
|
61
|
+
/**
|
|
62
|
+
* Cancels the wait; the promise rejects with `signal.reason`.
|
|
63
|
+
*
|
|
64
|
+
* @default undefined
|
|
65
|
+
*/
|
|
66
|
+
readonly signal?: AbortSignal;
|
|
67
|
+
}
|
|
68
|
+
/** Reactive state and actions returned by {@link useRequestIdleCallback}. */
|
|
69
|
+
interface RequestIdleCallbackControls {
|
|
70
|
+
/** Whether the native `requestIdleCallback` API is available. */
|
|
71
|
+
readonly supported: ComputedRef<boolean>;
|
|
72
|
+
/** Whether a callback is scheduled and has not run yet. */
|
|
73
|
+
readonly isPending: Readonly<ShallowRef<boolean>>;
|
|
74
|
+
/** Schedule the callback, replacing a pending one. No-op on the server. */
|
|
75
|
+
readonly start: () => void;
|
|
76
|
+
/** Cancel the pending callback. Repeated calls are safe. */
|
|
77
|
+
readonly cancel: () => void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Run a callback in the next idle period with `requestIdleCallback`.
|
|
81
|
+
*
|
|
82
|
+
* When the API is missing, a `setTimeout` fallback fabricates a deadline
|
|
83
|
+
* with a 50 ms budget and `didTimeout: false`. The pending callback is
|
|
84
|
+
* cancelled when the owning reactive scope stops; outside a scope the
|
|
85
|
+
* caller owns `cancel()`.
|
|
86
|
+
*
|
|
87
|
+
* Server rendering: nothing is scheduled, `isPending` and `supported` are
|
|
88
|
+
* false. Inside a component the first callback is scheduled after mounting,
|
|
89
|
+
* so hydration renders the server state first.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* const { start } = useRequestIdleCallback((deadline) => {
|
|
94
|
+
* while (deadline.timeRemaining() > 1 && queue.length) queue.shift()?.();
|
|
95
|
+
* }, { timeout: 2000, immediate: false });
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @param callback Receives the idle deadline.
|
|
99
|
+
* @param options Hosts, timeout and start policy.
|
|
100
|
+
* @default options {}
|
|
101
|
+
* @returns Scheduling state and actions.
|
|
102
|
+
*/
|
|
103
|
+
declare function useRequestIdleCallback(callback: (deadline: IdleDeadlineLike) => void, options?: UseRequestIdleCallbackOptions): RequestIdleCallbackControls;
|
|
104
|
+
/**
|
|
105
|
+
* Resolve in the next idle period (or after `timeout`).
|
|
106
|
+
*
|
|
107
|
+
* Uses the same hosts and fallback as {@link useRequestIdleCallback}. When
|
|
108
|
+
* neither an idle host nor timers resolve (server rendering) it resolves on
|
|
109
|
+
* the next microtask with an exhausted deadline instead of hanging.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* await idle({ timeout: 1000 });
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @param options Hosts, timeout and abort signal.
|
|
117
|
+
* @default options {}
|
|
118
|
+
* @returns The idle deadline; rejects with `signal.reason` when aborted.
|
|
119
|
+
*/
|
|
120
|
+
declare function idle(options?: IdleOptions): Promise<IdleDeadlineLike>;
|
|
121
|
+
//#endregion
|
|
122
|
+
export { IdleCallbackHost, IdleDeadlineLike, IdleOptions, IdleSchedulingOptions, RequestIdleCallbackControls, UseRequestIdleCallbackOptions, idle, useRequestIdleCallback };
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { tryOnScopeDispose } from "./scope.mjs";
|
|
2
|
+
import { computed, hasInjectionContext, readonly, shallowRef, toValue, watch, watchPostEffect } from "vue";
|
|
3
|
+
//#region src/use-request-idle-callback.ts
|
|
4
|
+
/** Idle period length fabricated by the fallback, in milliseconds (the spec maximum). */
|
|
5
|
+
const FALLBACK_IDLE_PERIOD = 50;
|
|
6
|
+
function browserIdleHost() {
|
|
7
|
+
return typeof window !== "undefined" && typeof window.requestIdleCallback === "function" ? window : void 0;
|
|
8
|
+
}
|
|
9
|
+
function browserTimers() {
|
|
10
|
+
if (typeof window === "undefined") return void 0;
|
|
11
|
+
const target = window;
|
|
12
|
+
return {
|
|
13
|
+
setTimeout: (callback, delayMs) => target.setTimeout(callback, delayMs),
|
|
14
|
+
clearTimeout: (handle) => {
|
|
15
|
+
if (typeof handle === "number") target.clearTimeout(handle);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function validateTimeout(timeout) {
|
|
20
|
+
if (timeout !== void 0 && (!Number.isFinite(timeout) || timeout < 0)) throw new RangeError(`[VIZE_COMPOSE_IDLE_CALLBACK_INVALID_TIMEOUT] timeout must be a finite, non-negative number, received ${String(timeout)}`);
|
|
21
|
+
}
|
|
22
|
+
/** Schedule once; returns a canceller, or undefined when nothing could be scheduled. */
|
|
23
|
+
function scheduleIdle(options, callback) {
|
|
24
|
+
const host = options.host === void 0 ? browserIdleHost() : toValue(options.host);
|
|
25
|
+
if (host) {
|
|
26
|
+
const handle = host.requestIdleCallback(callback, options.timeout === void 0 ? void 0 : { timeout: options.timeout });
|
|
27
|
+
return () => host.cancelIdleCallback(handle);
|
|
28
|
+
}
|
|
29
|
+
const timers = options.timers === void 0 ? browserTimers() : toValue(options.timers);
|
|
30
|
+
if (!timers) return void 0;
|
|
31
|
+
const now = options.now ?? Date.now;
|
|
32
|
+
const handle = timers.setTimeout(() => {
|
|
33
|
+
const start = now();
|
|
34
|
+
callback({
|
|
35
|
+
didTimeout: false,
|
|
36
|
+
timeRemaining: () => Math.max(0, FALLBACK_IDLE_PERIOD - (now() - start))
|
|
37
|
+
});
|
|
38
|
+
}, 1);
|
|
39
|
+
return () => timers.clearTimeout(handle);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run a callback in the next idle period with `requestIdleCallback`.
|
|
43
|
+
*
|
|
44
|
+
* When the API is missing, a `setTimeout` fallback fabricates a deadline
|
|
45
|
+
* with a 50 ms budget and `didTimeout: false`. The pending callback is
|
|
46
|
+
* cancelled when the owning reactive scope stops; outside a scope the
|
|
47
|
+
* caller owns `cancel()`.
|
|
48
|
+
*
|
|
49
|
+
* Server rendering: nothing is scheduled, `isPending` and `supported` are
|
|
50
|
+
* false. Inside a component the first callback is scheduled after mounting,
|
|
51
|
+
* so hydration renders the server state first.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* const { start } = useRequestIdleCallback((deadline) => {
|
|
56
|
+
* while (deadline.timeRemaining() > 1 && queue.length) queue.shift()?.();
|
|
57
|
+
* }, { timeout: 2000, immediate: false });
|
|
58
|
+
* ```
|
|
59
|
+
*
|
|
60
|
+
* @param callback Receives the idle deadline.
|
|
61
|
+
* @param options Hosts, timeout and start policy.
|
|
62
|
+
* @default options {}
|
|
63
|
+
* @returns Scheduling state and actions.
|
|
64
|
+
*/
|
|
65
|
+
function useRequestIdleCallback(callback, options = {}) {
|
|
66
|
+
validateTimeout(options.timeout);
|
|
67
|
+
const isPending = shallowRef(false);
|
|
68
|
+
let cancelPending;
|
|
69
|
+
const cancel = () => {
|
|
70
|
+
cancelPending?.();
|
|
71
|
+
cancelPending = void 0;
|
|
72
|
+
isPending.value = false;
|
|
73
|
+
};
|
|
74
|
+
const start = () => {
|
|
75
|
+
cancel();
|
|
76
|
+
cancelPending = scheduleIdle(options, (deadline) => {
|
|
77
|
+
cancelPending = void 0;
|
|
78
|
+
isPending.value = false;
|
|
79
|
+
callback(deadline);
|
|
80
|
+
});
|
|
81
|
+
isPending.value = cancelPending !== void 0;
|
|
82
|
+
};
|
|
83
|
+
const hydrated = shallowRef(!hasInjectionContext());
|
|
84
|
+
if (hydrated.value) {
|
|
85
|
+
if (options.immediate ?? true) start();
|
|
86
|
+
} else {
|
|
87
|
+
const stopReady = watch(hydrated, (ready) => {
|
|
88
|
+
if (!ready) return;
|
|
89
|
+
stopReady();
|
|
90
|
+
if (options.immediate ?? true) start();
|
|
91
|
+
}, { flush: "sync" });
|
|
92
|
+
watchPostEffect(() => {
|
|
93
|
+
hydrated.value = true;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
tryOnScopeDispose(cancel);
|
|
97
|
+
return {
|
|
98
|
+
supported: computed(() => hydrated.value && (options.host === void 0 ? browserIdleHost() !== void 0 : Boolean(toValue(options.host)))),
|
|
99
|
+
isPending: readonly(isPending),
|
|
100
|
+
start,
|
|
101
|
+
cancel
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolve in the next idle period (or after `timeout`).
|
|
106
|
+
*
|
|
107
|
+
* Uses the same hosts and fallback as {@link useRequestIdleCallback}. When
|
|
108
|
+
* neither an idle host nor timers resolve (server rendering) it resolves on
|
|
109
|
+
* the next microtask with an exhausted deadline instead of hanging.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* await idle({ timeout: 1000 });
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @param options Hosts, timeout and abort signal.
|
|
117
|
+
* @default options {}
|
|
118
|
+
* @returns The idle deadline; rejects with `signal.reason` when aborted.
|
|
119
|
+
*/
|
|
120
|
+
function idle(options = {}) {
|
|
121
|
+
validateTimeout(options.timeout);
|
|
122
|
+
const { signal } = options;
|
|
123
|
+
return new Promise((resolve, reject) => {
|
|
124
|
+
if (signal?.aborted) {
|
|
125
|
+
reject(signal.reason);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const onAbort = () => {
|
|
129
|
+
cancel?.();
|
|
130
|
+
reject(signal?.reason);
|
|
131
|
+
};
|
|
132
|
+
const cancel = scheduleIdle(options, (deadline) => {
|
|
133
|
+
signal?.removeEventListener("abort", onAbort);
|
|
134
|
+
resolve(deadline);
|
|
135
|
+
});
|
|
136
|
+
if (!cancel) {
|
|
137
|
+
resolve({
|
|
138
|
+
didTimeout: false,
|
|
139
|
+
timeRemaining: () => 0
|
|
140
|
+
});
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
//#endregion
|
|
147
|
+
export { idle, useRequestIdleCallback };
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { ComputedRef, MaybeRefOrGetter, WritableComputedRef } from "vue";
|
|
2
|
+
|
|
3
|
+
//#region src/use-route-query.d.ts
|
|
4
|
+
/** Raw query value: repeated keys become arrays, absent keys are `undefined`. */
|
|
5
|
+
type RawQueryValue = string | readonly string[] | undefined;
|
|
6
|
+
/** Query record as produced by `@vizejs/router` (`RouteMatch["query"]`). */
|
|
7
|
+
type RouteQueryRecord = Readonly<Record<string, string | readonly string[]>>;
|
|
8
|
+
/**
|
|
9
|
+
* Structural subset of a matched route. `@vizejs/router`'s `RouteMatch`
|
|
10
|
+
* satisfies it, so its inferred `params` type flows through without this
|
|
11
|
+
* package depending on the router.
|
|
12
|
+
*/
|
|
13
|
+
interface RouteLocationLike {
|
|
14
|
+
/** Decoded path params. */
|
|
15
|
+
readonly params: object;
|
|
16
|
+
/** Parsed query. */
|
|
17
|
+
readonly query: RouteQueryRecord;
|
|
18
|
+
}
|
|
19
|
+
/** Converts a raw query value; `undefined` selects the default. */
|
|
20
|
+
type QueryParser<Value> = (raw: RawQueryValue) => Value | undefined;
|
|
21
|
+
/** Converts a value back to a raw query value; `undefined` removes the key. */
|
|
22
|
+
type QuerySerializer<Value> = (value: Value) => string | readonly string[] | undefined;
|
|
23
|
+
/** Built-in {@link QueryParser}s. */
|
|
24
|
+
declare const queryParsers: {
|
|
25
|
+
/** First value as a string. */readonly string: (raw: RawQueryValue) => string | undefined; /** First value as a finite number. */
|
|
26
|
+
readonly number: (raw: RawQueryValue) => number | undefined; /** First value as a safe integer. */
|
|
27
|
+
readonly integer: (raw: RawQueryValue) => number | undefined; /** `"true"`/`"1"`/`""` (present flag) → `true`, `"false"`/`"0"` → `false`. */
|
|
28
|
+
readonly boolean: (raw: RawQueryValue) => boolean | undefined; /** Every value as a string array. */
|
|
29
|
+
readonly array: (raw: RawQueryValue) => string[] | undefined;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Parser accepting only the given literal values.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* useRouteQuery(route, "sort", { parse: oneOf(["new", "top"]), default: "new" });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @param values Allowed values.
|
|
40
|
+
* @returns A parser narrowing to the literal union.
|
|
41
|
+
*/
|
|
42
|
+
declare function oneOf<const Values extends readonly string[]>(values: Values): QueryParser<Values[number]>;
|
|
43
|
+
/** Options for {@link useRouteQuery}. */
|
|
44
|
+
interface UseRouteQueryOptions<Value> {
|
|
45
|
+
/**
|
|
46
|
+
* Converts the raw value.
|
|
47
|
+
*
|
|
48
|
+
* @default queryParsers.string
|
|
49
|
+
*/
|
|
50
|
+
readonly parse?: QueryParser<Value>;
|
|
51
|
+
/**
|
|
52
|
+
* Converts a written value back into the query.
|
|
53
|
+
*
|
|
54
|
+
* @default strings and string arrays unchanged, other values via `String`
|
|
55
|
+
*/
|
|
56
|
+
readonly serialize?: QuerySerializer<Value>;
|
|
57
|
+
/**
|
|
58
|
+
* Performs the navigation for a write, receiving the complete next query.
|
|
59
|
+
* Without it the returned ref is read-only.
|
|
60
|
+
*
|
|
61
|
+
* @default undefined
|
|
62
|
+
*/
|
|
63
|
+
readonly navigate?: (query: RouteQueryRecord) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Remove the key instead of writing it when the value equals the default.
|
|
66
|
+
*
|
|
67
|
+
* @default true
|
|
68
|
+
*/
|
|
69
|
+
readonly omitDefault?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/** Options of a string query parameter (no parser). */
|
|
72
|
+
type StringQueryOptions = Omit<UseRouteQueryOptions<string>, "parse"> & {
|
|
73
|
+
/** Must be omitted: string parameters use {@link queryParsers.string}. */readonly parse?: undefined;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Typed, optionally writable view of one query parameter.
|
|
77
|
+
*
|
|
78
|
+
* The value type is inferred from `parse` and `default`: with a default the
|
|
79
|
+
* ref never holds `undefined`. Pass `navigate` to make the ref writable;
|
|
80
|
+
* writes build the next query (keeping every other key), drop the key when
|
|
81
|
+
* the value equals the default, and hand it to `navigate`, which is where
|
|
82
|
+
* the router integration pushes or replaces the URL. Works with any route
|
|
83
|
+
* object exposing `query`, including `@vizejs/router`'s `RouteMatch`.
|
|
84
|
+
* Pure derived state: SSR-safe and hydration-stable (it reads the matched
|
|
85
|
+
* route only).
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const page = useRouteQuery(match, "page", {
|
|
90
|
+
* parse: queryParsers.integer,
|
|
91
|
+
* default: 1,
|
|
92
|
+
* navigate: (query) => navigateTo(router.resolve(match.value.name, match.value.params, { query })),
|
|
93
|
+
* });
|
|
94
|
+
* page.value += 1;
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* @param route Reactive matched route.
|
|
98
|
+
* @param key Query key.
|
|
99
|
+
* @param options Parser, default, serializer, and navigation.
|
|
100
|
+
* @default options {}
|
|
101
|
+
* @returns A computed ref (writable when `navigate` is given).
|
|
102
|
+
*/
|
|
103
|
+
declare function useRouteQuery(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: StringQueryOptions & {
|
|
104
|
+
readonly default: string;
|
|
105
|
+
readonly navigate: (query: RouteQueryRecord) => void;
|
|
106
|
+
}): WritableComputedRef<string>;
|
|
107
|
+
declare function useRouteQuery(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: StringQueryOptions & {
|
|
108
|
+
readonly navigate: (query: RouteQueryRecord) => void;
|
|
109
|
+
}): WritableComputedRef<string | undefined, string | undefined>;
|
|
110
|
+
declare function useRouteQuery(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: StringQueryOptions & {
|
|
111
|
+
readonly default: string;
|
|
112
|
+
}): ComputedRef<string>;
|
|
113
|
+
declare function useRouteQuery(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options?: StringQueryOptions): ComputedRef<string | undefined>;
|
|
114
|
+
declare function useRouteQuery<Value>(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: UseRouteQueryOptions<Value> & {
|
|
115
|
+
readonly default: NoInfer<Value>;
|
|
116
|
+
readonly navigate: (query: RouteQueryRecord) => void;
|
|
117
|
+
}): WritableComputedRef<Value>;
|
|
118
|
+
declare function useRouteQuery<Value>(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: UseRouteQueryOptions<Value> & {
|
|
119
|
+
readonly navigate: (query: RouteQueryRecord) => void;
|
|
120
|
+
}): WritableComputedRef<Value | undefined, Value | undefined>;
|
|
121
|
+
declare function useRouteQuery<Value>(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: UseRouteQueryOptions<Value> & {
|
|
122
|
+
readonly default: NoInfer<Value>;
|
|
123
|
+
}): ComputedRef<Value>;
|
|
124
|
+
declare function useRouteQuery<Value>(route: MaybeRefOrGetter<RouteLocationLike>, key: string, options: UseRouteQueryOptions<Value>): ComputedRef<Value | undefined>;
|
|
125
|
+
/** Params object of a route location. */
|
|
126
|
+
type RouteParamsOf<Route extends RouteLocationLike> = Route["params"];
|
|
127
|
+
/**
|
|
128
|
+
* Typed view of the matched route's path params.
|
|
129
|
+
*
|
|
130
|
+
* Without a key, returns all params (typed from the route table when the
|
|
131
|
+
* route comes from `@vizejs/router`). With a key, returns that param; with
|
|
132
|
+
* a parser, the parsed value. Pure derived state: SSR-safe.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* const params = useRouteParams(match); // ComputedRef<{ readonly id: string }>
|
|
137
|
+
* const id = useRouteParams(match, "id", Number); // ComputedRef<number>
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @param route Reactive matched route.
|
|
141
|
+
* @param key Param name.
|
|
142
|
+
* @param parse Converts the raw param.
|
|
143
|
+
* @returns Computed params, param, or parsed param.
|
|
144
|
+
*/
|
|
145
|
+
declare function useRouteParams<Route extends RouteLocationLike>(route: MaybeRefOrGetter<Route>): ComputedRef<RouteParamsOf<Route>>;
|
|
146
|
+
declare function useRouteParams<Route extends RouteLocationLike, Key extends keyof Route["params"]>(route: MaybeRefOrGetter<Route>, key: Key): ComputedRef<Route["params"][Key]>;
|
|
147
|
+
declare function useRouteParams<Route extends RouteLocationLike, Key extends keyof Route["params"], Value>(route: MaybeRefOrGetter<Route>, key: Key, parse: (raw: Route["params"][Key]) => Value): ComputedRef<Value>;
|
|
148
|
+
//#endregion
|
|
149
|
+
export { QueryParser, QuerySerializer, RawQueryValue, RouteLocationLike, RouteParamsOf, RouteQueryRecord, StringQueryOptions, UseRouteQueryOptions, oneOf, queryParsers, useRouteParams, useRouteQuery };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { computed, toValue } from "vue";
|
|
2
|
+
//#region src/use-route-query.ts
|
|
3
|
+
/** Built-in {@link QueryParser}s. */
|
|
4
|
+
const queryParsers = {
|
|
5
|
+
/** First value as a string. */
|
|
6
|
+
string: (raw) => typeof raw === "string" ? raw : raw?.[0],
|
|
7
|
+
/** First value as a finite number. */
|
|
8
|
+
number: (raw) => {
|
|
9
|
+
const text = typeof raw === "string" ? raw : raw?.[0];
|
|
10
|
+
if (text === void 0 || text.trim() === "") return void 0;
|
|
11
|
+
const value = Number(text);
|
|
12
|
+
return Number.isFinite(value) ? value : void 0;
|
|
13
|
+
},
|
|
14
|
+
/** First value as a safe integer. */
|
|
15
|
+
integer: (raw) => {
|
|
16
|
+
const text = typeof raw === "string" ? raw : raw?.[0];
|
|
17
|
+
return text !== void 0 && /^-?\d+$/.test(text) && Number.isSafeInteger(Number(text)) ? Number(text) : void 0;
|
|
18
|
+
},
|
|
19
|
+
/** `"true"`/`"1"`/`""` (present flag) → `true`, `"false"`/`"0"` → `false`. */
|
|
20
|
+
boolean: (raw) => {
|
|
21
|
+
const text = typeof raw === "string" ? raw : raw?.[0];
|
|
22
|
+
if (text === void 0) return void 0;
|
|
23
|
+
if (text === "true" || text === "1" || text === "") return true;
|
|
24
|
+
if (text === "false" || text === "0") return false;
|
|
25
|
+
},
|
|
26
|
+
/** Every value as a string array. */
|
|
27
|
+
array: (raw) => raw === void 0 ? void 0 : typeof raw === "string" ? [raw] : [...raw]
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Parser accepting only the given literal values.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* useRouteQuery(route, "sort", { parse: oneOf(["new", "top"]), default: "new" });
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @param values Allowed values.
|
|
38
|
+
* @returns A parser narrowing to the literal union.
|
|
39
|
+
*/
|
|
40
|
+
function oneOf(values) {
|
|
41
|
+
const allowed = new Set(values);
|
|
42
|
+
const isAllowed = (text) => allowed.has(text);
|
|
43
|
+
return (raw) => {
|
|
44
|
+
const text = typeof raw === "string" ? raw : raw?.[0];
|
|
45
|
+
return text !== void 0 && isAllowed(text) ? text : void 0;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function defaultSerialize(value) {
|
|
49
|
+
if (value === void 0 || value === null) return void 0;
|
|
50
|
+
if (typeof value === "string") return value;
|
|
51
|
+
if (Array.isArray(value)) return value.map((item) => typeof item === "string" ? item : JSON.stringify(item));
|
|
52
|
+
return typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" ? value.toString() : JSON.stringify(value);
|
|
53
|
+
}
|
|
54
|
+
function sameRaw(left, right) {
|
|
55
|
+
if (typeof left === "string" || typeof right === "string" || !left || !right) return left === right;
|
|
56
|
+
return left.length === right.length && left.every((item, index) => item === right[index]);
|
|
57
|
+
}
|
|
58
|
+
function useRouteQuery(route, key, options = {}) {
|
|
59
|
+
const parse = options.parse ?? queryParsers.string;
|
|
60
|
+
const read = () => parse(toValue(route).query[key]) ?? options.default;
|
|
61
|
+
const navigate = options.navigate;
|
|
62
|
+
if (navigate === void 0) return computed(read);
|
|
63
|
+
const serialize = (value) => options.serialize === void 0 ? defaultSerialize(value) : options.serialize(value);
|
|
64
|
+
return computed({
|
|
65
|
+
get: read,
|
|
66
|
+
set: (value) => {
|
|
67
|
+
const current = toValue(route).query;
|
|
68
|
+
const raw = (options.omitDefault ?? true) && "default" in options && sameRaw(serialize(value), serialize(options.default)) ? void 0 : serialize(value);
|
|
69
|
+
if (sameRaw(raw, current[key])) return;
|
|
70
|
+
const next = { ...current };
|
|
71
|
+
if (raw === void 0) Reflect.deleteProperty(next, key);
|
|
72
|
+
else next[key] = raw;
|
|
73
|
+
navigate(next);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function useRouteParams(route, ...args) {
|
|
78
|
+
return computed(() => {
|
|
79
|
+
const { params } = toValue(route);
|
|
80
|
+
if (args.length === 0) return params;
|
|
81
|
+
const raw = Reflect.get(params, args[0]);
|
|
82
|
+
return args.length === 2 ? args[1](raw) : raw;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
//#endregion
|
|
86
|
+
export { oneOf, queryParsers, useRouteParams, useRouteQuery };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { t as TimeoutScheduler } from "./timeout-scheduler-CI8RVLZs.mjs";
|
|
2
|
+
import { ComputedRef, MaybeRef, MaybeRefOrGetter, ShallowRef } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/use-scheduler-post-task.d.ts
|
|
5
|
+
/** Priorities defined by the Prioritized Task Scheduling API. */
|
|
6
|
+
type SchedulerTaskPriority = "user-blocking" | "user-visible" | "background";
|
|
7
|
+
/** Options passed to {@link SchedulerHost.postTask}. */
|
|
8
|
+
interface SchedulerPostTaskInit {
|
|
9
|
+
/** Fixed task priority; overrides the signal's priority. */
|
|
10
|
+
readonly priority?: SchedulerTaskPriority;
|
|
11
|
+
/** Delay before the task is queued, in milliseconds. */
|
|
12
|
+
readonly delay?: number;
|
|
13
|
+
/** Aborts the task (a `TaskSignal` also carries a mutable priority). */
|
|
14
|
+
readonly signal?: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
/** Minimal `scheduler` global. */
|
|
17
|
+
interface SchedulerHost {
|
|
18
|
+
/** Queue `callback`; resolves with its result, rejects with the abort reason. */
|
|
19
|
+
postTask<Result>(callback: () => Result | PromiseLike<Result>, options?: SchedulerPostTaskInit): Promise<Result>;
|
|
20
|
+
/** Yield to the event loop, continuing with inherited priority. */
|
|
21
|
+
yield?(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/** Minimal `TaskController` instance. */
|
|
24
|
+
interface TaskControllerLike {
|
|
25
|
+
/** Signal handed to `postTask`. */
|
|
26
|
+
readonly signal: AbortSignal;
|
|
27
|
+
/** Abort every task using this controller's signal. */
|
|
28
|
+
abort(reason?: unknown): void;
|
|
29
|
+
/** Change the priority of every task using this controller's signal. */
|
|
30
|
+
setPriority(priority: SchedulerTaskPriority): void;
|
|
31
|
+
}
|
|
32
|
+
/** Minimal `TaskController` constructor. */
|
|
33
|
+
type TaskControllerHost = new (init?: {
|
|
34
|
+
readonly priority?: SchedulerTaskPriority;
|
|
35
|
+
}) => TaskControllerLike;
|
|
36
|
+
/** Options for {@link useSchedulerPostTask}. */
|
|
37
|
+
interface UseSchedulerPostTaskOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Prioritized Task Scheduling capability for alternate runtimes and tests.
|
|
40
|
+
*
|
|
41
|
+
* @default window.scheduler when it implements postTask
|
|
42
|
+
*/
|
|
43
|
+
readonly scheduler?: MaybeRefOrGetter<SchedulerHost | null | undefined>;
|
|
44
|
+
/**
|
|
45
|
+
* `TaskController` constructor. A ref (not a getter) because the host is a
|
|
46
|
+
* constructor function. Without it tasks use a plain `AbortController`
|
|
47
|
+
* and receive the priority explicitly, so `setPriority` cannot re-prioritize
|
|
48
|
+
* them.
|
|
49
|
+
*
|
|
50
|
+
* @default window.TaskController when it exists
|
|
51
|
+
*/
|
|
52
|
+
readonly TaskController?: MaybeRef<TaskControllerHost | null | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* Timers used when `scheduler` is missing. Without timers (server
|
|
55
|
+
* rendering) `postTask` rejects.
|
|
56
|
+
*
|
|
57
|
+
* @default window.setTimeout and window.clearTimeout when a window exists
|
|
58
|
+
*/
|
|
59
|
+
readonly timers?: MaybeRefOrGetter<TimeoutScheduler | null | undefined>;
|
|
60
|
+
/**
|
|
61
|
+
* Initial priority of tasks posted without an explicit priority.
|
|
62
|
+
*
|
|
63
|
+
* @default "user-visible"
|
|
64
|
+
*/
|
|
65
|
+
readonly priority?: SchedulerTaskPriority;
|
|
66
|
+
}
|
|
67
|
+
/** Per-call options of {@link SchedulerPostTaskControls.postTask}. */
|
|
68
|
+
interface PostTaskCallOptions {
|
|
69
|
+
/**
|
|
70
|
+
* Fixed priority for this task; `setPriority` no longer affects it.
|
|
71
|
+
*
|
|
72
|
+
* @default the composable priority
|
|
73
|
+
*/
|
|
74
|
+
readonly priority?: SchedulerTaskPriority;
|
|
75
|
+
/**
|
|
76
|
+
* Delay before the task is queued, in milliseconds.
|
|
77
|
+
*
|
|
78
|
+
* @default 0
|
|
79
|
+
*/
|
|
80
|
+
readonly delay?: number;
|
|
81
|
+
/**
|
|
82
|
+
* Aborts this task only.
|
|
83
|
+
*
|
|
84
|
+
* @default undefined
|
|
85
|
+
*/
|
|
86
|
+
readonly signal?: AbortSignal;
|
|
87
|
+
}
|
|
88
|
+
/** Reactive state and actions returned by {@link useSchedulerPostTask}. */
|
|
89
|
+
interface SchedulerPostTaskControls {
|
|
90
|
+
/** Whether the native `scheduler.postTask` API is available. */
|
|
91
|
+
readonly supported: ComputedRef<boolean>;
|
|
92
|
+
/** Priority applied to tasks posted without an explicit priority. */
|
|
93
|
+
readonly priority: Readonly<ShallowRef<SchedulerTaskPriority>>;
|
|
94
|
+
/** Number of posted tasks that have not settled. */
|
|
95
|
+
readonly pending: Readonly<ShallowRef<number>>;
|
|
96
|
+
/**
|
|
97
|
+
* Post a task.
|
|
98
|
+
*
|
|
99
|
+
* @param callback Task body; may return a value or a promise.
|
|
100
|
+
* @param options Priority, delay and abort signal.
|
|
101
|
+
* @default options {}
|
|
102
|
+
* @returns The callback result; rejects with the abort reason when
|
|
103
|
+
* aborted, or with `[VIZE_COMPOSE_POST_TASK_UNAVAILABLE]` when neither the
|
|
104
|
+
* scheduler nor timers exist (server rendering).
|
|
105
|
+
*/
|
|
106
|
+
readonly postTask: <Result>(callback: () => Result | PromiseLike<Result>, options?: PostTaskCallOptions) => Promise<Result>;
|
|
107
|
+
/**
|
|
108
|
+
* Re-prioritize the composable and every pending task without a fixed priority.
|
|
109
|
+
*
|
|
110
|
+
* @param priority New priority.
|
|
111
|
+
*/
|
|
112
|
+
readonly setPriority: (priority: SchedulerTaskPriority) => void;
|
|
113
|
+
/**
|
|
114
|
+
* Abort every pending task of this composable.
|
|
115
|
+
*
|
|
116
|
+
* @param reason Rejection reason (an AbortError by default).
|
|
117
|
+
*/
|
|
118
|
+
readonly abort: (reason?: unknown) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Yield to the event loop: `scheduler.yield()`, else a zero-delay timer,
|
|
121
|
+
* else a resolved promise.
|
|
122
|
+
*
|
|
123
|
+
* @returns Resolves when the continuation may run.
|
|
124
|
+
*/
|
|
125
|
+
readonly yield: () => Promise<void>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Post prioritized tasks with the Prioritized Task Scheduling API.
|
|
129
|
+
*
|
|
130
|
+
* Every task gets its own controller (a `TaskController` when available),
|
|
131
|
+
* so `setPriority` re-prioritizes pending tasks and `abort` rejects them;
|
|
132
|
+
* pending tasks are aborted when the owning reactive scope stops (their
|
|
133
|
+
* promises reject with an AbortError; outside a scope the caller owns
|
|
134
|
+
* `abort()`).
|
|
135
|
+
*
|
|
136
|
+
* Fallback without `scheduler`: tasks run from `setTimeout(delay)` in
|
|
137
|
+
* timer (FIFO) order. Priorities are ignored, so a later "user-blocking"
|
|
138
|
+
* task does not overtake an earlier "background" one, and tasks do not
|
|
139
|
+
* yield to rendering or input the way native tasks do.
|
|
140
|
+
*
|
|
141
|
+
* Server rendering: nothing is scheduled, `supported` is false and
|
|
142
|
+
* `postTask` rejects.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* const { postTask } = useSchedulerPostTask();
|
|
147
|
+
* const total = await postTask(() => expensiveSum(rows), { priority: "background" });
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @param options Hosts and the initial priority.
|
|
151
|
+
* @default options {}
|
|
152
|
+
* @returns Task state and actions.
|
|
153
|
+
*/
|
|
154
|
+
declare function useSchedulerPostTask(options?: UseSchedulerPostTaskOptions): SchedulerPostTaskControls;
|
|
155
|
+
//#endregion
|
|
156
|
+
export { PostTaskCallOptions, SchedulerHost, SchedulerPostTaskControls, SchedulerPostTaskInit, SchedulerTaskPriority, TaskControllerHost, TaskControllerLike, UseSchedulerPostTaskOptions, useSchedulerPostTask };
|