@vizejs/composable 0.426.3 → 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,393 @@
|
|
|
1
|
+
import {
|
|
2
|
+
computed,
|
|
3
|
+
hasInjectionContext,
|
|
4
|
+
readonly,
|
|
5
|
+
ref,
|
|
6
|
+
shallowRef,
|
|
7
|
+
toValue,
|
|
8
|
+
watch,
|
|
9
|
+
watchPostEffect,
|
|
10
|
+
} from "vue";
|
|
11
|
+
import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from "vue";
|
|
12
|
+
|
|
13
|
+
import { tryOnScopeDispose } from "./scope.ts";
|
|
14
|
+
|
|
15
|
+
/** Available (work) area of a screen in multi-screen coordinates. */
|
|
16
|
+
export interface ScreenArea {
|
|
17
|
+
/** Left edge of the available area. */
|
|
18
|
+
readonly availLeft: number;
|
|
19
|
+
/** Top edge of the available area. */
|
|
20
|
+
readonly availTop: number;
|
|
21
|
+
/** Width of the available area. */
|
|
22
|
+
readonly availWidth: number;
|
|
23
|
+
/** Height of the available area. */
|
|
24
|
+
readonly availHeight: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Plain snapshot of a `ScreenDetailed`. */
|
|
28
|
+
export interface ScreenSnapshot extends ScreenArea {
|
|
29
|
+
/** Human-readable label, possibly empty. */
|
|
30
|
+
readonly label: string;
|
|
31
|
+
/** Left edge in multi-screen coordinates. */
|
|
32
|
+
readonly left: number;
|
|
33
|
+
/** Top edge in multi-screen coordinates. */
|
|
34
|
+
readonly top: number;
|
|
35
|
+
/** Full width. */
|
|
36
|
+
readonly width: number;
|
|
37
|
+
/** Full height. */
|
|
38
|
+
readonly height: number;
|
|
39
|
+
/** Device pixel ratio. */
|
|
40
|
+
readonly devicePixelRatio: number;
|
|
41
|
+
/** Color depth in bits. */
|
|
42
|
+
readonly colorDepth: number;
|
|
43
|
+
/** Whether this is the primary screen. */
|
|
44
|
+
readonly isPrimary: boolean;
|
|
45
|
+
/** Whether this screen is built into the device. */
|
|
46
|
+
readonly isInternal: boolean;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Minimal `ScreenDetailed`. */
|
|
50
|
+
export interface ScreenDetailedLike extends ScreenSnapshot, EventTarget {}
|
|
51
|
+
|
|
52
|
+
/** Minimal `ScreenDetails`. */
|
|
53
|
+
export interface ScreenDetailsLike extends EventTarget {
|
|
54
|
+
/** Every connected screen. */
|
|
55
|
+
readonly screens: readonly ScreenDetailedLike[];
|
|
56
|
+
/** Screen hosting the current window. */
|
|
57
|
+
readonly currentScreen: ScreenDetailedLike;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Capabilities used by {@link useScreenDetails}. */
|
|
61
|
+
export interface ScreenDetailsHost {
|
|
62
|
+
/** Window Management entry point (permission-gated). */
|
|
63
|
+
getScreenDetails?(): Promise<ScreenDetailsLike>;
|
|
64
|
+
/**
|
|
65
|
+
* `window.screen`. Its `isExtended` flag is read and, when it is an
|
|
66
|
+
* `EventTarget`, its `change` event refreshes the flag.
|
|
67
|
+
*/
|
|
68
|
+
readonly screen?: object | null;
|
|
69
|
+
/** `window.open`, used by `openOnScreen`. */
|
|
70
|
+
open?(url: string, target: string, features: string): Window | null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Options for {@link useScreenDetails}. */
|
|
74
|
+
export interface UseScreenDetailsOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Window Management capability for alternate runtimes and tests.
|
|
77
|
+
*
|
|
78
|
+
* @default window
|
|
79
|
+
*/
|
|
80
|
+
readonly host?: MaybeRefOrGetter<ScreenDetailsHost | null | undefined>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Desired window geometry relative to a screen's available area. */
|
|
84
|
+
export interface WindowPlacementOptions {
|
|
85
|
+
/**
|
|
86
|
+
* Window width, clamped to the available width.
|
|
87
|
+
*
|
|
88
|
+
* @default the available width
|
|
89
|
+
*/
|
|
90
|
+
readonly width?: number;
|
|
91
|
+
/**
|
|
92
|
+
* Window height, clamped to the available height.
|
|
93
|
+
*
|
|
94
|
+
* @default the available height
|
|
95
|
+
*/
|
|
96
|
+
readonly height?: number;
|
|
97
|
+
/**
|
|
98
|
+
* Offset from the available area's left edge.
|
|
99
|
+
*
|
|
100
|
+
* @default centered horizontally
|
|
101
|
+
*/
|
|
102
|
+
readonly left?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Offset from the available area's top edge.
|
|
105
|
+
*
|
|
106
|
+
* @default centered vertically
|
|
107
|
+
*/
|
|
108
|
+
readonly top?: number;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** Absolute window geometry for `window.open` features or `moveTo`/`resizeTo`. */
|
|
112
|
+
export interface WindowPlacement {
|
|
113
|
+
/** Absolute left. */
|
|
114
|
+
readonly left: number;
|
|
115
|
+
/** Absolute top. */
|
|
116
|
+
readonly top: number;
|
|
117
|
+
/** Width. */
|
|
118
|
+
readonly width: number;
|
|
119
|
+
/** Height. */
|
|
120
|
+
readonly height: number;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** Options of {@link ScreenDetailsControls.openOnScreen}. */
|
|
124
|
+
export interface OpenOnScreenOptions extends WindowPlacementOptions {
|
|
125
|
+
/**
|
|
126
|
+
* Browsing context name.
|
|
127
|
+
*
|
|
128
|
+
* @default "_blank"
|
|
129
|
+
*/
|
|
130
|
+
readonly target?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Extra comma-separated window features, for example `"popup"`.
|
|
133
|
+
*
|
|
134
|
+
* @default ""
|
|
135
|
+
*/
|
|
136
|
+
readonly features?: string;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** Discriminated outcome of {@link ScreenDetailsControls.request}. */
|
|
140
|
+
export type ScreenDetailsResult =
|
|
141
|
+
| {
|
|
142
|
+
/** Permission granted; state is live. */
|
|
143
|
+
readonly status: "granted";
|
|
144
|
+
/** Screen snapshots. */
|
|
145
|
+
readonly screens: readonly ScreenSnapshot[];
|
|
146
|
+
}
|
|
147
|
+
| {
|
|
148
|
+
/** `denied`: permission refused; `unsupported`: no API; `failed`: anything else. */
|
|
149
|
+
readonly status: "denied" | "unsupported" | "failed";
|
|
150
|
+
/** Error thrown by the host, when one was thrown. */
|
|
151
|
+
readonly error: unknown;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/** Reactive state and actions returned by {@link useScreenDetails}. */
|
|
155
|
+
export interface ScreenDetailsControls {
|
|
156
|
+
/** Whether the Window Management API is available. */
|
|
157
|
+
readonly supported: ComputedRef<boolean>;
|
|
158
|
+
/** Whether the window spans a multi-screen setup (`screen.isExtended`). */
|
|
159
|
+
readonly isExtended: Readonly<Ref<boolean>>;
|
|
160
|
+
/** Snapshots of every screen, empty until `request` succeeds. */
|
|
161
|
+
readonly screens: Readonly<ShallowRef<readonly ScreenSnapshot[]>>;
|
|
162
|
+
/** Snapshot of the current screen, once granted. */
|
|
163
|
+
readonly currentScreen: Readonly<ShallowRef<ScreenSnapshot | undefined>>;
|
|
164
|
+
/** Whether `request` is in progress. */
|
|
165
|
+
readonly pending: Readonly<Ref<boolean>>;
|
|
166
|
+
/** Most recent request failure, cleared on success. */
|
|
167
|
+
readonly error: Readonly<ShallowRef<unknown>>;
|
|
168
|
+
/**
|
|
169
|
+
* Request screen details (prompts for the window-management permission).
|
|
170
|
+
*
|
|
171
|
+
* @returns The discriminated outcome; never rejects.
|
|
172
|
+
*/
|
|
173
|
+
readonly request: () => Promise<ScreenDetailsResult>;
|
|
174
|
+
/**
|
|
175
|
+
* Open a window placed on `screen`.
|
|
176
|
+
*
|
|
177
|
+
* @param url URL to open.
|
|
178
|
+
* @param screen Target screen (a snapshot or any {@link ScreenArea}).
|
|
179
|
+
* @param options Placement, target name, and extra features.
|
|
180
|
+
* @returns The opened window, or `null` when blocked or unsupported.
|
|
181
|
+
*/
|
|
182
|
+
readonly openOnScreen: (
|
|
183
|
+
url: string,
|
|
184
|
+
screen: ScreenArea,
|
|
185
|
+
options?: OpenOnScreenOptions,
|
|
186
|
+
) => Window | null;
|
|
187
|
+
/** Remove every listener. Idempotent. */
|
|
188
|
+
readonly stop: () => void;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Snapshot a `ScreenDetailed` into a plain object.
|
|
193
|
+
*
|
|
194
|
+
* @param screen Screen to copy.
|
|
195
|
+
* @returns Plain snapshot.
|
|
196
|
+
*/
|
|
197
|
+
export function snapshotScreen(screen: ScreenSnapshot): ScreenSnapshot {
|
|
198
|
+
return {
|
|
199
|
+
label: screen.label,
|
|
200
|
+
left: screen.left,
|
|
201
|
+
top: screen.top,
|
|
202
|
+
width: screen.width,
|
|
203
|
+
height: screen.height,
|
|
204
|
+
availLeft: screen.availLeft,
|
|
205
|
+
availTop: screen.availTop,
|
|
206
|
+
availWidth: screen.availWidth,
|
|
207
|
+
availHeight: screen.availHeight,
|
|
208
|
+
devicePixelRatio: screen.devicePixelRatio,
|
|
209
|
+
colorDepth: screen.colorDepth,
|
|
210
|
+
isPrimary: screen.isPrimary,
|
|
211
|
+
isInternal: screen.isInternal,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Compute absolute window geometry inside a screen's available area.
|
|
217
|
+
*
|
|
218
|
+
* Sizes are clamped to the available area; omitted offsets center the window.
|
|
219
|
+
*
|
|
220
|
+
* @param screen Target screen area.
|
|
221
|
+
* @param placement Desired size and offsets.
|
|
222
|
+
* @default placement {}
|
|
223
|
+
* @throws `RangeError` tagged `VIZE_COMPOSE_SCREEN_DETAILS_INVALID_PLACEMENT` for negative or non-finite values.
|
|
224
|
+
* @returns Absolute placement.
|
|
225
|
+
*/
|
|
226
|
+
export function placeWindow(
|
|
227
|
+
screen: ScreenArea,
|
|
228
|
+
placement: WindowPlacementOptions = {},
|
|
229
|
+
): WindowPlacement {
|
|
230
|
+
for (const value of [placement.width, placement.height, placement.left, placement.top]) {
|
|
231
|
+
if (value !== undefined && (!Number.isFinite(value) || value < 0)) {
|
|
232
|
+
throw new RangeError(
|
|
233
|
+
`[VIZE_COMPOSE_SCREEN_DETAILS_INVALID_PLACEMENT] placement values must be finite and non-negative; received ${String(value)}`,
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
const width = Math.round(Math.min(placement.width ?? screen.availWidth, screen.availWidth));
|
|
238
|
+
const height = Math.round(Math.min(placement.height ?? screen.availHeight, screen.availHeight));
|
|
239
|
+
const left = placement.left ?? (screen.availWidth - width) / 2;
|
|
240
|
+
const top = placement.top ?? (screen.availHeight - height) / 2;
|
|
241
|
+
return {
|
|
242
|
+
left: Math.round(screen.availLeft + Math.min(left, screen.availWidth - width)),
|
|
243
|
+
top: Math.round(screen.availTop + Math.min(top, screen.availHeight - height)),
|
|
244
|
+
width,
|
|
245
|
+
height,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function browserHost(): ScreenDetailsHost | undefined {
|
|
250
|
+
return typeof window === "undefined" ? undefined : window;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function errorName(error: unknown): unknown {
|
|
254
|
+
return typeof error === "object" && error !== null && "name" in error ? error.name : undefined;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Enumerate and target multiple screens with the Window Management API.
|
|
259
|
+
*
|
|
260
|
+
* `isExtended` is live from `window.screen`. `request()` asks for the
|
|
261
|
+
* window-management permission; once granted, `screens` and
|
|
262
|
+
* `currentScreen` stay current through `screenschange`,
|
|
263
|
+
* `currentscreenchange`, and per-screen `change` events. `openOnScreen`
|
|
264
|
+
* opens a window placed with {@link placeWindow}. Listeners are removed when
|
|
265
|
+
* the owning reactive scope stops; outside a scope call `stop()`.
|
|
266
|
+
*
|
|
267
|
+
* Server rendering: nothing is requested, `supported` and `isExtended` are
|
|
268
|
+
* false and `screens` is empty.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```ts
|
|
272
|
+
* const { request, screens, openOnScreen } = useScreenDetails();
|
|
273
|
+
* await request();
|
|
274
|
+
* const external = screens.value.find((screen) => !screen.isPrimary);
|
|
275
|
+
* if (external) openOnScreen("/slides", external, { features: "popup" });
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @param options Capability host.
|
|
279
|
+
* @default options {}
|
|
280
|
+
* @returns Screen state and actions.
|
|
281
|
+
*/
|
|
282
|
+
export function useScreenDetails(options: UseScreenDetailsOptions = {}): ScreenDetailsControls {
|
|
283
|
+
const isExtended = ref(false);
|
|
284
|
+
const screens = shallowRef<readonly ScreenSnapshot[]>([]);
|
|
285
|
+
const currentScreen = shallowRef<ScreenSnapshot | undefined>(undefined);
|
|
286
|
+
const pending = ref(false);
|
|
287
|
+
const error = shallowRef<unknown>(undefined);
|
|
288
|
+
let unbind: (() => void) | undefined;
|
|
289
|
+
let stopped = false;
|
|
290
|
+
|
|
291
|
+
// Inside a component the host resolves only after mount (a post-flush
|
|
292
|
+
// job), so a hydrating client first renders the same unsupported state as
|
|
293
|
+
// the server. Outside components it resolves immediately.
|
|
294
|
+
const hydrated = shallowRef(!hasInjectionContext());
|
|
295
|
+
if (!hydrated.value) {
|
|
296
|
+
watchPostEffect(() => {
|
|
297
|
+
hydrated.value = true;
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
const resolveHost = (): ScreenDetailsHost | undefined =>
|
|
301
|
+
!hydrated.value
|
|
302
|
+
? undefined
|
|
303
|
+
: options.host === undefined
|
|
304
|
+
? browserHost()
|
|
305
|
+
: (toValue(options.host) ?? undefined);
|
|
306
|
+
|
|
307
|
+
const bind = (details: ScreenDetailsLike): void => {
|
|
308
|
+
unbind?.();
|
|
309
|
+
let watched: readonly ScreenDetailedLike[] = [];
|
|
310
|
+
const sync = (): void => {
|
|
311
|
+
for (const screen of watched) screen.removeEventListener("change", sync);
|
|
312
|
+
watched = details.screens;
|
|
313
|
+
for (const screen of watched) screen.addEventListener("change", sync);
|
|
314
|
+
screens.value = watched.map(snapshotScreen);
|
|
315
|
+
currentScreen.value = snapshotScreen(details.currentScreen);
|
|
316
|
+
};
|
|
317
|
+
sync();
|
|
318
|
+
details.addEventListener("screenschange", sync);
|
|
319
|
+
details.addEventListener("currentscreenchange", sync);
|
|
320
|
+
unbind = () => {
|
|
321
|
+
for (const screen of watched) screen.removeEventListener("change", sync);
|
|
322
|
+
details.removeEventListener("screenschange", sync);
|
|
323
|
+
details.removeEventListener("currentscreenchange", sync);
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
const request = async (): Promise<ScreenDetailsResult> => {
|
|
328
|
+
const host = resolveHost();
|
|
329
|
+
if (!host?.getScreenDetails) return { status: "unsupported", error: undefined };
|
|
330
|
+
pending.value = true;
|
|
331
|
+
try {
|
|
332
|
+
const details = await host.getScreenDetails();
|
|
333
|
+
if (stopped) return { status: "failed", error: undefined };
|
|
334
|
+
bind(details);
|
|
335
|
+
error.value = undefined;
|
|
336
|
+
return { status: "granted", screens: screens.value };
|
|
337
|
+
} catch (cause) {
|
|
338
|
+
error.value = cause;
|
|
339
|
+
return { status: errorName(cause) === "NotAllowedError" ? "denied" : "failed", error: cause };
|
|
340
|
+
} finally {
|
|
341
|
+
pending.value = false;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
const openOnScreen = (
|
|
346
|
+
url: string,
|
|
347
|
+
screen: ScreenArea,
|
|
348
|
+
openOptions: OpenOnScreenOptions = {},
|
|
349
|
+
): Window | null => {
|
|
350
|
+
const host = resolveHost();
|
|
351
|
+
if (!host?.open) return null;
|
|
352
|
+
const { left, top, width, height } = placeWindow(screen, openOptions);
|
|
353
|
+
const features = [`left=${left},top=${top},width=${width},height=${height}`];
|
|
354
|
+
if (openOptions.features) features.push(openOptions.features);
|
|
355
|
+
return host.open(url, openOptions.target ?? "_blank", features.join(","));
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
const stopWatch = watch(
|
|
359
|
+
() => resolveHost()?.screen ?? undefined,
|
|
360
|
+
(screen, _previous, onCleanup) => {
|
|
361
|
+
const sync = (): void => {
|
|
362
|
+
isExtended.value =
|
|
363
|
+
screen !== undefined && "isExtended" in screen && screen.isExtended === true;
|
|
364
|
+
};
|
|
365
|
+
sync();
|
|
366
|
+
if (!(screen instanceof EventTarget)) return;
|
|
367
|
+
screen.addEventListener("change", sync);
|
|
368
|
+
onCleanup(() => screen.removeEventListener("change", sync));
|
|
369
|
+
},
|
|
370
|
+
{ immediate: true, flush: "sync" },
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
const stop = (): void => {
|
|
374
|
+
stopped = true;
|
|
375
|
+
stopWatch();
|
|
376
|
+
unbind?.();
|
|
377
|
+
unbind = undefined;
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
tryOnScopeDispose(stop);
|
|
381
|
+
|
|
382
|
+
return {
|
|
383
|
+
supported: computed(() => typeof resolveHost()?.getScreenDetails === "function"),
|
|
384
|
+
isExtended: readonly(isExtended),
|
|
385
|
+
screens: readonly(screens),
|
|
386
|
+
currentScreen: readonly(currentScreen),
|
|
387
|
+
pending: readonly(pending),
|
|
388
|
+
error: readonly(error),
|
|
389
|
+
request,
|
|
390
|
+
openOnScreen,
|
|
391
|
+
stop,
|
|
392
|
+
};
|
|
393
|
+
}
|