@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,397 @@
|
|
|
1
|
+
import {
|
|
2
|
+
computed,
|
|
3
|
+
hasInjectionContext,
|
|
4
|
+
readonly,
|
|
5
|
+
shallowRef,
|
|
6
|
+
toValue,
|
|
7
|
+
unref,
|
|
8
|
+
watchPostEffect,
|
|
9
|
+
} from "vue";
|
|
10
|
+
import type { ComputedRef, MaybeRef, MaybeRefOrGetter, ShallowRef } from "vue";
|
|
11
|
+
|
|
12
|
+
import { tryOnScopeDispose } from "./scope.ts";
|
|
13
|
+
import type { TimeoutScheduler } from "./timeout-scheduler.ts";
|
|
14
|
+
|
|
15
|
+
/** Priorities defined by the Prioritized Task Scheduling API. */
|
|
16
|
+
export type SchedulerTaskPriority = "user-blocking" | "user-visible" | "background";
|
|
17
|
+
|
|
18
|
+
/** Options passed to {@link SchedulerHost.postTask}. */
|
|
19
|
+
export interface SchedulerPostTaskInit {
|
|
20
|
+
/** Fixed task priority; overrides the signal's priority. */
|
|
21
|
+
readonly priority?: SchedulerTaskPriority;
|
|
22
|
+
/** Delay before the task is queued, in milliseconds. */
|
|
23
|
+
readonly delay?: number;
|
|
24
|
+
/** Aborts the task (a `TaskSignal` also carries a mutable priority). */
|
|
25
|
+
readonly signal?: AbortSignal;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Minimal `scheduler` global. */
|
|
29
|
+
export interface SchedulerHost {
|
|
30
|
+
/** Queue `callback`; resolves with its result, rejects with the abort reason. */
|
|
31
|
+
postTask<Result>(
|
|
32
|
+
callback: () => Result | PromiseLike<Result>,
|
|
33
|
+
options?: SchedulerPostTaskInit,
|
|
34
|
+
): Promise<Result>;
|
|
35
|
+
/** Yield to the event loop, continuing with inherited priority. */
|
|
36
|
+
yield?(): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Minimal `TaskController` instance. */
|
|
40
|
+
export interface TaskControllerLike {
|
|
41
|
+
/** Signal handed to `postTask`. */
|
|
42
|
+
readonly signal: AbortSignal;
|
|
43
|
+
/** Abort every task using this controller's signal. */
|
|
44
|
+
abort(reason?: unknown): void;
|
|
45
|
+
/** Change the priority of every task using this controller's signal. */
|
|
46
|
+
setPriority(priority: SchedulerTaskPriority): void;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Minimal `TaskController` constructor. */
|
|
50
|
+
export type TaskControllerHost = new (init?: {
|
|
51
|
+
readonly priority?: SchedulerTaskPriority;
|
|
52
|
+
}) => TaskControllerLike;
|
|
53
|
+
|
|
54
|
+
/** Options for {@link useSchedulerPostTask}. */
|
|
55
|
+
export interface UseSchedulerPostTaskOptions {
|
|
56
|
+
/**
|
|
57
|
+
* Prioritized Task Scheduling capability for alternate runtimes and tests.
|
|
58
|
+
*
|
|
59
|
+
* @default window.scheduler when it implements postTask
|
|
60
|
+
*/
|
|
61
|
+
readonly scheduler?: MaybeRefOrGetter<SchedulerHost | null | undefined>;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* `TaskController` constructor. A ref (not a getter) because the host is a
|
|
65
|
+
* constructor function. Without it tasks use a plain `AbortController`
|
|
66
|
+
* and receive the priority explicitly, so `setPriority` cannot re-prioritize
|
|
67
|
+
* them.
|
|
68
|
+
*
|
|
69
|
+
* @default window.TaskController when it exists
|
|
70
|
+
*/
|
|
71
|
+
readonly TaskController?: MaybeRef<TaskControllerHost | null | undefined>;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Timers used when `scheduler` is missing. Without timers (server
|
|
75
|
+
* rendering) `postTask` rejects.
|
|
76
|
+
*
|
|
77
|
+
* @default window.setTimeout and window.clearTimeout when a window exists
|
|
78
|
+
*/
|
|
79
|
+
readonly timers?: MaybeRefOrGetter<TimeoutScheduler | null | undefined>;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Initial priority of tasks posted without an explicit priority.
|
|
83
|
+
*
|
|
84
|
+
* @default "user-visible"
|
|
85
|
+
*/
|
|
86
|
+
readonly priority?: SchedulerTaskPriority;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Per-call options of {@link SchedulerPostTaskControls.postTask}. */
|
|
90
|
+
export interface PostTaskCallOptions {
|
|
91
|
+
/**
|
|
92
|
+
* Fixed priority for this task; `setPriority` no longer affects it.
|
|
93
|
+
*
|
|
94
|
+
* @default the composable priority
|
|
95
|
+
*/
|
|
96
|
+
readonly priority?: SchedulerTaskPriority;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Delay before the task is queued, in milliseconds.
|
|
100
|
+
*
|
|
101
|
+
* @default 0
|
|
102
|
+
*/
|
|
103
|
+
readonly delay?: number;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Aborts this task only.
|
|
107
|
+
*
|
|
108
|
+
* @default undefined
|
|
109
|
+
*/
|
|
110
|
+
readonly signal?: AbortSignal;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Reactive state and actions returned by {@link useSchedulerPostTask}. */
|
|
114
|
+
export interface SchedulerPostTaskControls {
|
|
115
|
+
/** Whether the native `scheduler.postTask` API is available. */
|
|
116
|
+
readonly supported: ComputedRef<boolean>;
|
|
117
|
+
|
|
118
|
+
/** Priority applied to tasks posted without an explicit priority. */
|
|
119
|
+
readonly priority: Readonly<ShallowRef<SchedulerTaskPriority>>;
|
|
120
|
+
|
|
121
|
+
/** Number of posted tasks that have not settled. */
|
|
122
|
+
readonly pending: Readonly<ShallowRef<number>>;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Post a task.
|
|
126
|
+
*
|
|
127
|
+
* @param callback Task body; may return a value or a promise.
|
|
128
|
+
* @param options Priority, delay and abort signal.
|
|
129
|
+
* @default options {}
|
|
130
|
+
* @returns The callback result; rejects with the abort reason when
|
|
131
|
+
* aborted, or with `[VIZE_COMPOSE_POST_TASK_UNAVAILABLE]` when neither the
|
|
132
|
+
* scheduler nor timers exist (server rendering).
|
|
133
|
+
*/
|
|
134
|
+
readonly postTask: <Result>(
|
|
135
|
+
callback: () => Result | PromiseLike<Result>,
|
|
136
|
+
options?: PostTaskCallOptions,
|
|
137
|
+
) => Promise<Result>;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Re-prioritize the composable and every pending task without a fixed priority.
|
|
141
|
+
*
|
|
142
|
+
* @param priority New priority.
|
|
143
|
+
*/
|
|
144
|
+
readonly setPriority: (priority: SchedulerTaskPriority) => void;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Abort every pending task of this composable.
|
|
148
|
+
*
|
|
149
|
+
* @param reason Rejection reason (an AbortError by default).
|
|
150
|
+
*/
|
|
151
|
+
readonly abort: (reason?: unknown) => void;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Yield to the event loop: `scheduler.yield()`, else a zero-delay timer,
|
|
155
|
+
* else a resolved promise.
|
|
156
|
+
*
|
|
157
|
+
* @returns Resolves when the continuation may run.
|
|
158
|
+
*/
|
|
159
|
+
readonly yield: () => Promise<void>;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
interface PendingTask {
|
|
163
|
+
readonly controller: TaskControllerLike | AbortController;
|
|
164
|
+
readonly fixed: boolean;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const PRIORITIES: readonly string[] = ["user-blocking", "user-visible", "background"];
|
|
168
|
+
|
|
169
|
+
function isScheduler(candidate: unknown): candidate is SchedulerHost {
|
|
170
|
+
return (
|
|
171
|
+
typeof candidate === "object" &&
|
|
172
|
+
candidate !== null &&
|
|
173
|
+
typeof Reflect.get(candidate, "postTask") === "function"
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function isTaskControllerHost(candidate: unknown): candidate is TaskControllerHost {
|
|
178
|
+
return typeof candidate === "function";
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function isTaskController(
|
|
182
|
+
controller: TaskControllerLike | AbortController,
|
|
183
|
+
): controller is TaskControllerLike {
|
|
184
|
+
return "setPriority" in controller && typeof controller.setPriority === "function";
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function browserGlobal(name: string): unknown {
|
|
188
|
+
return typeof window === "undefined" ? undefined : Reflect.get(window, name);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
function browserTimers(): TimeoutScheduler | undefined {
|
|
192
|
+
if (typeof window === "undefined") return undefined;
|
|
193
|
+
const target = window;
|
|
194
|
+
return {
|
|
195
|
+
setTimeout: (callback, delayMs) => target.setTimeout(callback, delayMs),
|
|
196
|
+
clearTimeout: (handle) => {
|
|
197
|
+
if (typeof handle === "number") target.clearTimeout(handle);
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function validatePriority(priority: SchedulerTaskPriority | undefined): void {
|
|
203
|
+
if (priority !== undefined && !PRIORITIES.includes(priority)) {
|
|
204
|
+
throw new TypeError(
|
|
205
|
+
`[VIZE_COMPOSE_POST_TASK_INVALID_PRIORITY] priority must be one of ${PRIORITIES.join(", ")}, received ${String(priority)}`,
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Post prioritized tasks with the Prioritized Task Scheduling API.
|
|
212
|
+
*
|
|
213
|
+
* Every task gets its own controller (a `TaskController` when available),
|
|
214
|
+
* so `setPriority` re-prioritizes pending tasks and `abort` rejects them;
|
|
215
|
+
* pending tasks are aborted when the owning reactive scope stops (their
|
|
216
|
+
* promises reject with an AbortError; outside a scope the caller owns
|
|
217
|
+
* `abort()`).
|
|
218
|
+
*
|
|
219
|
+
* Fallback without `scheduler`: tasks run from `setTimeout(delay)` in
|
|
220
|
+
* timer (FIFO) order. Priorities are ignored, so a later "user-blocking"
|
|
221
|
+
* task does not overtake an earlier "background" one, and tasks do not
|
|
222
|
+
* yield to rendering or input the way native tasks do.
|
|
223
|
+
*
|
|
224
|
+
* Server rendering: nothing is scheduled, `supported` is false and
|
|
225
|
+
* `postTask` rejects.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```ts
|
|
229
|
+
* const { postTask } = useSchedulerPostTask();
|
|
230
|
+
* const total = await postTask(() => expensiveSum(rows), { priority: "background" });
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* @param options Hosts and the initial priority.
|
|
234
|
+
* @default options {}
|
|
235
|
+
* @returns Task state and actions.
|
|
236
|
+
*/
|
|
237
|
+
export function useSchedulerPostTask(
|
|
238
|
+
options: UseSchedulerPostTaskOptions = {},
|
|
239
|
+
): SchedulerPostTaskControls {
|
|
240
|
+
validatePriority(options.priority);
|
|
241
|
+
const priority = shallowRef<SchedulerTaskPriority>(options.priority ?? "user-visible");
|
|
242
|
+
const pending = shallowRef(0);
|
|
243
|
+
const tasks = new Set<PendingTask>();
|
|
244
|
+
|
|
245
|
+
// Inside a component the host resolves only after mount (a post-flush
|
|
246
|
+
// job), so a hydrating client first renders the same unsupported state as
|
|
247
|
+
// the server. Outside components it resolves immediately.
|
|
248
|
+
const hydrated = shallowRef(!hasInjectionContext());
|
|
249
|
+
if (!hydrated.value) {
|
|
250
|
+
watchPostEffect(() => {
|
|
251
|
+
hydrated.value = true;
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
const resolveScheduler = (): SchedulerHost | undefined => {
|
|
255
|
+
if (!hydrated.value) return undefined;
|
|
256
|
+
const candidate: unknown =
|
|
257
|
+
options.scheduler === undefined ? browserGlobal("scheduler") : toValue(options.scheduler);
|
|
258
|
+
return isScheduler(candidate) ? candidate : undefined;
|
|
259
|
+
};
|
|
260
|
+
const resolveTaskController = (): TaskControllerHost | undefined => {
|
|
261
|
+
if (!hydrated.value) return undefined;
|
|
262
|
+
const candidate: unknown =
|
|
263
|
+
options.TaskController === undefined
|
|
264
|
+
? browserGlobal("TaskController")
|
|
265
|
+
: unref(options.TaskController);
|
|
266
|
+
return isTaskControllerHost(candidate) ? candidate : undefined;
|
|
267
|
+
};
|
|
268
|
+
const resolveTimers = (): TimeoutScheduler | undefined =>
|
|
269
|
+
options.timers === undefined ? browserTimers() : (toValue(options.timers) ?? undefined);
|
|
270
|
+
|
|
271
|
+
const postTask = <Result>(
|
|
272
|
+
callback: () => Result | PromiseLike<Result>,
|
|
273
|
+
callOptions: PostTaskCallOptions = {},
|
|
274
|
+
): Promise<Result> => {
|
|
275
|
+
const { delay, signal } = callOptions;
|
|
276
|
+
validatePriority(callOptions.priority);
|
|
277
|
+
if (delay !== undefined && (!Number.isFinite(delay) || delay < 0)) {
|
|
278
|
+
throw new RangeError(
|
|
279
|
+
`[VIZE_COMPOSE_POST_TASK_INVALID_DELAY] delay must be a finite, non-negative number, received ${String(delay)}`,
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
const scheduler = resolveScheduler();
|
|
283
|
+
const timers = scheduler ? undefined : resolveTimers();
|
|
284
|
+
if (!scheduler && !timers) {
|
|
285
|
+
return Promise.reject(
|
|
286
|
+
new Error(
|
|
287
|
+
"[VIZE_COMPOSE_POST_TASK_UNAVAILABLE] neither scheduler.postTask nor timers are available",
|
|
288
|
+
),
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
const TaskController = resolveTaskController();
|
|
293
|
+
const taskPriority = callOptions.priority ?? priority.value;
|
|
294
|
+
const controller = TaskController
|
|
295
|
+
? new TaskController({ priority: taskPriority })
|
|
296
|
+
: new AbortController();
|
|
297
|
+
const task: PendingTask = { controller, fixed: callOptions.priority !== undefined };
|
|
298
|
+
const forwardAbort = (): void => controller.abort(signal?.reason);
|
|
299
|
+
if (signal?.aborted) forwardAbort();
|
|
300
|
+
else signal?.addEventListener("abort", forwardAbort, { once: true });
|
|
301
|
+
tasks.add(task);
|
|
302
|
+
pending.value = tasks.size;
|
|
303
|
+
|
|
304
|
+
let result: Promise<Result>;
|
|
305
|
+
if (scheduler) {
|
|
306
|
+
const explicitPriority = task.fixed || !TaskController ? { priority: taskPriority } : {};
|
|
307
|
+
try {
|
|
308
|
+
result = scheduler.postTask(callback, {
|
|
309
|
+
signal: controller.signal,
|
|
310
|
+
...explicitPriority,
|
|
311
|
+
...(delay === undefined ? {} : { delay }),
|
|
312
|
+
});
|
|
313
|
+
} catch (cause) {
|
|
314
|
+
signal?.removeEventListener("abort", forwardAbort);
|
|
315
|
+
tasks.delete(task);
|
|
316
|
+
pending.value = tasks.size;
|
|
317
|
+
return Promise.reject(cause);
|
|
318
|
+
}
|
|
319
|
+
} else {
|
|
320
|
+
result = new Promise<Result>((resolve, reject) => {
|
|
321
|
+
const taskSignal = controller.signal;
|
|
322
|
+
if (taskSignal.aborted) {
|
|
323
|
+
reject(taskSignal.reason);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
const onAbort = (): void => {
|
|
327
|
+
timers?.clearTimeout(handle);
|
|
328
|
+
reject(taskSignal.reason);
|
|
329
|
+
};
|
|
330
|
+
const handle = timers?.setTimeout(() => {
|
|
331
|
+
taskSignal.removeEventListener("abort", onAbort);
|
|
332
|
+
try {
|
|
333
|
+
resolve(callback());
|
|
334
|
+
} catch (cause) {
|
|
335
|
+
reject(cause);
|
|
336
|
+
}
|
|
337
|
+
}, delay ?? 0);
|
|
338
|
+
taskSignal.addEventListener("abort", onAbort, { once: true });
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const settle = (): void => {
|
|
343
|
+
signal?.removeEventListener("abort", forwardAbort);
|
|
344
|
+
tasks.delete(task);
|
|
345
|
+
pending.value = tasks.size;
|
|
346
|
+
};
|
|
347
|
+
return result.then(
|
|
348
|
+
(value) => {
|
|
349
|
+
settle();
|
|
350
|
+
return value;
|
|
351
|
+
},
|
|
352
|
+
(cause: unknown) => {
|
|
353
|
+
settle();
|
|
354
|
+
throw cause;
|
|
355
|
+
},
|
|
356
|
+
);
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
const setPriority = (next: SchedulerTaskPriority): void => {
|
|
360
|
+
validatePriority(next);
|
|
361
|
+
priority.value = next;
|
|
362
|
+
for (const task of tasks) {
|
|
363
|
+
if (task.fixed || !isTaskController(task.controller)) continue;
|
|
364
|
+
try {
|
|
365
|
+
task.controller.setPriority(next);
|
|
366
|
+
} catch {
|
|
367
|
+
// NotAllowedError: a priority change is already being dispatched.
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
const abort = (reason?: unknown): void => {
|
|
373
|
+
for (const task of Array.from(tasks)) task.controller.abort(reason);
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
const yieldTask = (): Promise<void> => {
|
|
377
|
+
const scheduler = resolveScheduler();
|
|
378
|
+
if (scheduler?.yield) return scheduler.yield();
|
|
379
|
+
const timers = resolveTimers();
|
|
380
|
+
if (!timers) return Promise.resolve();
|
|
381
|
+
return new Promise((resolve) => {
|
|
382
|
+
timers.setTimeout(resolve, 0);
|
|
383
|
+
});
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
tryOnScopeDispose(() => abort());
|
|
387
|
+
|
|
388
|
+
return {
|
|
389
|
+
supported: computed(() => resolveScheduler() !== undefined),
|
|
390
|
+
priority: readonly(priority),
|
|
391
|
+
pending: readonly(pending),
|
|
392
|
+
postTask,
|
|
393
|
+
setPriority,
|
|
394
|
+
abort,
|
|
395
|
+
yield: yieldTask,
|
|
396
|
+
};
|
|
397
|
+
}
|