@pibbl/core 0.0.1
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/LICENSE.txt +19 -0
- package/README.md +76 -0
- package/THIRD_PARTY_NOTICES.txt +205 -0
- package/dist/features/particles/index.d.ts +7 -0
- package/dist/features/particles/index.js +26 -0
- package/dist/features/particles/index.js.map +7 -0
- package/dist/features/particles/index.mjs +1 -0
- package/dist/features/particles/lib/canvas/birth-ledger.d.ts +69 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js +752 -0
- package/dist/features/particles/lib/canvas/birth-ledger.js.map +7 -0
- package/dist/features/particles/lib/canvas/component.d.ts +14 -0
- package/dist/features/particles/lib/canvas/component.js +249 -0
- package/dist/features/particles/lib/canvas/component.js.map +7 -0
- package/dist/features/particles/lib/canvas/executor.d.ts +31 -0
- package/dist/features/particles/lib/canvas/executor.js +537 -0
- package/dist/features/particles/lib/canvas/executor.js.map +7 -0
- package/dist/features/particles/lib/canvas/primitive.d.ts +14 -0
- package/dist/features/particles/lib/canvas/primitive.js +50 -0
- package/dist/features/particles/lib/canvas/primitive.js.map +7 -0
- package/dist/features/particles/lib/canvas/raster-cache.d.ts +13 -0
- package/dist/features/particles/lib/canvas/raster-cache.js +106 -0
- package/dist/features/particles/lib/canvas/raster-cache.js.map +7 -0
- package/dist/features/particles/lib/color.d.ts +7 -0
- package/dist/features/particles/lib/color.js +159 -0
- package/dist/features/particles/lib/color.js.map +7 -0
- package/dist/features/particles/lib/compiler.d.ts +134 -0
- package/dist/features/particles/lib/compiler.js +443 -0
- package/dist/features/particles/lib/compiler.js.map +7 -0
- package/dist/features/particles/lib/curve.d.ts +19 -0
- package/dist/features/particles/lib/curve.js +129 -0
- package/dist/features/particles/lib/curve.js.map +7 -0
- package/dist/features/particles/lib/definition-records.d.ts +58 -0
- package/dist/features/particles/lib/definition-records.js +500 -0
- package/dist/features/particles/lib/definition-records.js.map +7 -0
- package/dist/features/particles/lib/definition.d.ts +18 -0
- package/dist/features/particles/lib/definition.js +602 -0
- package/dist/features/particles/lib/definition.js.map +7 -0
- package/dist/features/particles/lib/emission.d.ts +54 -0
- package/dist/features/particles/lib/emission.js +184 -0
- package/dist/features/particles/lib/emission.js.map +7 -0
- package/dist/features/particles/lib/flow/field.d.ts +81 -0
- package/dist/features/particles/lib/flow/field.js +585 -0
- package/dist/features/particles/lib/flow/field.js.map +7 -0
- package/dist/features/particles/lib/flow/hook.d.ts +158 -0
- package/dist/features/particles/lib/flow/hook.js +215 -0
- package/dist/features/particles/lib/flow/hook.js.map +7 -0
- package/dist/features/particles/lib/flow/population.d.ts +25 -0
- package/dist/features/particles/lib/flow/population.js +104 -0
- package/dist/features/particles/lib/flow/population.js.map +7 -0
- package/dist/features/particles/lib/particle.d.ts +113 -0
- package/dist/features/particles/lib/particle.js +192 -0
- package/dist/features/particles/lib/particle.js.map +7 -0
- package/dist/features/particles/lib/random.d.ts +16 -0
- package/dist/features/particles/lib/random.js +61 -0
- package/dist/features/particles/lib/random.js.map +7 -0
- package/dist/features/particles/lib/sample.d.ts +32 -0
- package/dist/features/particles/lib/sample.js +397 -0
- package/dist/features/particles/lib/sample.js.map +7 -0
- package/dist/features/particles/lib/signal-inputs.d.ts +6 -0
- package/dist/features/particles/lib/signal-inputs.js +41 -0
- package/dist/features/particles/lib/signal-inputs.js.map +7 -0
- package/dist/features/particles/lib/system/binding.d.ts +59 -0
- package/dist/features/particles/lib/system/binding.js +122 -0
- package/dist/features/particles/lib/system/binding.js.map +7 -0
- package/dist/features/particles/lib/system/controller.d.ts +58 -0
- package/dist/features/particles/lib/system/controller.js +1446 -0
- package/dist/features/particles/lib/system/controller.js.map +7 -0
- package/dist/features/particles/lib/system/hook.d.ts +13 -0
- package/dist/features/particles/lib/system/hook.js +52 -0
- package/dist/features/particles/lib/system/hook.js.map +7 -0
- package/dist/features/particles/lib/system/ownership.d.ts +26 -0
- package/dist/features/particles/lib/system/ownership.js +128 -0
- package/dist/features/particles/lib/system/ownership.js.map +7 -0
- package/dist/features/particles/lib/types.d.ts +983 -0
- package/dist/features/physics/2d-geometry.d.ts +216 -0
- package/dist/features/physics/2d-geometry.js +59 -0
- package/dist/features/physics/2d-geometry.js.map +7 -0
- package/dist/features/physics/2d-geometry.mjs +1 -0
- package/dist/features/physics/2d-testing.d.ts +80 -0
- package/dist/features/physics/2d-testing.js +141 -0
- package/dist/features/physics/2d-testing.js.map +7 -0
- package/dist/features/physics/2d-testing.mjs +1 -0
- package/dist/features/physics/2d.d.ts +165 -0
- package/dist/features/physics/2d.js +119 -0
- package/dist/features/physics/2d.js.map +7 -0
- package/dist/features/physics/2d.mjs +1 -0
- package/dist/features/physics/lib/2d/canvas/components.d.ts +46 -0
- package/dist/features/physics/lib/2d/canvas/components.js +212 -0
- package/dist/features/physics/lib/2d/canvas/components.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/custom.d.ts +24 -0
- package/dist/features/physics/lib/2d/canvas/custom.js +45 -0
- package/dist/features/physics/lib/2d/canvas/custom.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/debug.d.ts +23 -0
- package/dist/features/physics/lib/2d/canvas/debug.js +53 -0
- package/dist/features/physics/lib/2d/canvas/debug.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/inference.d.ts +9 -0
- package/dist/features/physics/lib/2d/canvas/inference.js +704 -0
- package/dist/features/physics/lib/2d/canvas/inference.js.map +7 -0
- package/dist/features/physics/lib/2d/canvas/presentation.d.ts +11 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js +169 -0
- package/dist/features/physics/lib/2d/canvas/presentation.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/analytic.d.ts +15 -0
- package/dist/features/physics/lib/2d/collision/analytic.js +151 -0
- package/dist/features/physics/lib/2d/collision/analytic.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/casts.d.ts +37 -0
- package/dist/features/physics/lib/2d/collision/casts.js +631 -0
- package/dist/features/physics/lib/2d/collision/casts.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/epa.d.ts +21 -0
- package/dist/features/physics/lib/2d/collision/epa.js +102 -0
- package/dist/features/physics/lib/2d/collision/epa.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/gjk.d.ts +28 -0
- package/dist/features/physics/lib/2d/collision/gjk.js +233 -0
- package/dist/features/physics/lib/2d/collision/gjk.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/manifold.d.ts +35 -0
- package/dist/features/physics/lib/2d/collision/manifold.js +238 -0
- package/dist/features/physics/lib/2d/collision/manifold.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/pairs.d.ts +10 -0
- package/dist/features/physics/lib/2d/collision/pairs.js +285 -0
- package/dist/features/physics/lib/2d/collision/pairs.js.map +7 -0
- package/dist/features/physics/lib/2d/collision/support.d.ts +20 -0
- package/dist/features/physics/lib/2d/collision/support.js +155 -0
- package/dist/features/physics/lib/2d/collision/support.js.map +7 -0
- package/dist/features/physics/lib/2d/inspection-types.d.ts +159 -0
- package/dist/features/physics/lib/2d/math.d.ts +27 -0
- package/dist/features/physics/lib/2d/math.js +314 -0
- package/dist/features/physics/lib/2d/math.js.map +7 -0
- package/dist/features/physics/lib/2d/numeric-policy.d.ts +24 -0
- package/dist/features/physics/lib/2d/numeric-policy.js +51 -0
- package/dist/features/physics/lib/2d/numeric-policy.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.d.ts +148 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js +305 -0
- package/dist/features/physics/lib/2d/runtime/body-handle.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/context.d.ts +9 -0
- package/dist/features/physics/lib/2d/runtime/context.js +57 -0
- package/dist/features/physics/lib/2d/runtime/context.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/controller.d.ts +106 -0
- package/dist/features/physics/lib/2d/runtime/controller.js +1317 -0
- package/dist/features/physics/lib/2d/runtime/controller.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.d.ts +153 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js +526 -0
- package/dist/features/physics/lib/2d/runtime/descriptors.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/events.d.ts +56 -0
- package/dist/features/physics/lib/2d/runtime/events.js +153 -0
- package/dist/features/physics/lib/2d/runtime/events.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.d.ts +22 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js +192 -0
- package/dist/features/physics/lib/2d/runtime/obstacles.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/ownership.d.ts +41 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js +46 -0
- package/dist/features/physics/lib/2d/runtime/ownership.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/trace.d.ts +32 -0
- package/dist/features/physics/lib/2d/runtime/trace.js +22 -0
- package/dist/features/physics/lib/2d/runtime/trace.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-component.d.ts +18 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js +41 -0
- package/dist/features/physics/lib/2d/runtime/world-component.js.map +7 -0
- package/dist/features/physics/lib/2d/runtime/world-props.d.ts +16 -0
- package/dist/features/physics/lib/2d/shape-records.d.ts +60 -0
- package/dist/features/physics/lib/2d/shape-records.js +26 -0
- package/dist/features/physics/lib/2d/shape-records.js.map +7 -0
- package/dist/features/physics/lib/2d/shapes.d.ts +191 -0
- package/dist/features/physics/lib/2d/shapes.js +543 -0
- package/dist/features/physics/lib/2d/shapes.js.map +7 -0
- package/dist/features/physics/lib/2d/types.d.ts +713 -0
- package/dist/features/physics/lib/2d/types.js +1 -0
- package/dist/features/physics/lib/2d/types.js.map +7 -0
- package/dist/features/physics/lib/2d/world/broad-phase.d.ts +77 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js +762 -0
- package/dist/features/physics/lib/2d/world/broad-phase.js.map +7 -0
- package/dist/features/physics/lib/2d/world/ccd.d.ts +19 -0
- package/dist/features/physics/lib/2d/world/ccd.js +265 -0
- package/dist/features/physics/lib/2d/world/ccd.js.map +7 -0
- package/dist/features/physics/lib/2d/world/contact-cache.d.ts +81 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js +497 -0
- package/dist/features/physics/lib/2d/world/contact-cache.js.map +7 -0
- package/dist/features/physics/lib/2d/world/integrator.d.ts +11 -0
- package/dist/features/physics/lib/2d/world/integrator.js +99 -0
- package/dist/features/physics/lib/2d/world/integrator.js.map +7 -0
- package/dist/features/physics/lib/2d/world/queries.d.ts +62 -0
- package/dist/features/physics/lib/2d/world/queries.js +424 -0
- package/dist/features/physics/lib/2d/world/queries.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js +7054 -0
- package/dist/features/physics/lib/2d/world/rapier-engine.js.map +7 -0
- package/dist/features/physics/lib/2d/world/rapier.d.ts +50 -0
- package/dist/features/physics/lib/2d/world/rapier.js +655 -0
- package/dist/features/physics/lib/2d/world/rapier.js.map +7 -0
- package/dist/features/physics/lib/2d/world/solver.d.ts +58 -0
- package/dist/features/physics/lib/2d/world/solver.js +660 -0
- package/dist/features/physics/lib/2d/world/solver.js.map +7 -0
- package/dist/features/physics/lib/2d/world/storage.d.ts +96 -0
- package/dist/features/physics/lib/2d/world/storage.js +371 -0
- package/dist/features/physics/lib/2d/world/storage.js.map +7 -0
- package/dist/features/physics/lib/2d/world/world.d.ts +265 -0
- package/dist/features/physics/lib/2d/world/world.js +1713 -0
- package/dist/features/physics/lib/2d/world/world.js.map +7 -0
- package/dist/features/physics/lib/shared/signal-inputs.d.ts +5 -0
- package/dist/features/physics/lib/shared/signal-inputs.js +20 -0
- package/dist/features/physics/lib/shared/signal-inputs.js.map +7 -0
- package/dist/features/physics/lib/shared/validation.d.ts +5 -0
- package/dist/features/physics/lib/shared/validation.js +48 -0
- package/dist/features/physics/lib/shared/validation.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.js +23 -0
- package/dist/features/sprites/formats/aseprite.js.map +7 -0
- package/dist/features/sprites/formats/aseprite.mjs +1 -0
- package/dist/features/sprites/formats/texture-packer.js +14 -0
- package/dist/features/sprites/formats/texture-packer.js.map +7 -0
- package/dist/features/sprites/formats/texture-packer.mjs +1 -0
- package/dist/features/sprites/index.js +9 -0
- package/dist/features/sprites/index.js.map +7 -0
- package/dist/features/sprites/index.mjs +1 -0
- package/dist/features/sprites/loader.js +63 -0
- package/dist/features/sprites/loader.js.map +7 -0
- package/dist/features/sprites/model.js +64 -0
- package/dist/features/sprites/model.js.map +7 -0
- package/dist/features/sprites/sprite.js +31 -0
- package/dist/features/sprites/sprite.js.map +7 -0
- package/dist/features/textures/index.d.ts +22 -0
- package/dist/features/textures/index.js +31 -0
- package/dist/features/textures/index.js.map +7 -0
- package/dist/features/textures/index.mjs +1 -0
- package/dist/features/textures/lib/definitions.d.ts +117 -0
- package/dist/features/textures/lib/definitions.js +179 -0
- package/dist/features/textures/lib/definitions.js.map +7 -0
- package/dist/features/textures/lib/electric-boundary.d.ts +3 -0
- package/dist/features/textures/lib/electric-boundary.js +11 -0
- package/dist/features/textures/lib/electric-boundary.js.map +7 -0
- package/dist/features/textures/lib/electric-shared.d.ts +69 -0
- package/dist/features/textures/lib/electric-shared.js +43 -0
- package/dist/features/textures/lib/electric-shared.js.map +7 -0
- package/dist/features/textures/lib/electric-sources.d.ts +50 -0
- package/dist/features/textures/lib/electric-sources.js +43 -0
- package/dist/features/textures/lib/electric-sources.js.map +7 -0
- package/dist/features/textures/lib/lightning.d.ts +72 -0
- package/dist/features/textures/lib/lightning.js +139 -0
- package/dist/features/textures/lib/lightning.js.map +7 -0
- package/dist/features/textures/lib/material-field.d.ts +12 -0
- package/dist/features/textures/lib/material-field.js +31 -0
- package/dist/features/textures/lib/material-field.js.map +7 -0
- package/dist/features/textures/lib/palette.d.ts +45 -0
- package/dist/features/textures/lib/palette.js +52 -0
- package/dist/features/textures/lib/palette.js.map +7 -0
- package/dist/features/textures/lib/presentation.d.ts +54 -0
- package/dist/features/textures/lib/presentation.js +83 -0
- package/dist/features/textures/lib/presentation.js.map +7 -0
- package/dist/features/textures/lib/procedural-texture.d.ts +44 -0
- package/dist/features/textures/lib/procedural-texture.js +110 -0
- package/dist/features/textures/lib/procedural-texture.js.map +7 -0
- package/dist/features/textures/lib/rain-drops.d.ts +96 -0
- package/dist/features/textures/lib/rain-drops.js +322 -0
- package/dist/features/textures/lib/rain-drops.js.map +7 -0
- package/dist/features/textures/lib/reaction-diffusion.d.ts +67 -0
- package/dist/features/textures/lib/reaction-diffusion.js +210 -0
- package/dist/features/textures/lib/reaction-diffusion.js.map +7 -0
- package/dist/features/textures/lib/simulation.d.ts +16 -0
- package/dist/features/textures/lib/simulation.js +85 -0
- package/dist/features/textures/lib/simulation.js.map +7 -0
- package/dist/features/textures/lib/tendrils.d.ts +57 -0
- package/dist/features/textures/lib/tendrils.js +216 -0
- package/dist/features/textures/lib/tendrils.js.map +7 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/cellular-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/electric.d.ts +88 -0
- package/dist/features/textures/lib/wasm/electric.js +299 -0
- package/dist/features/textures/lib/wasm/electric.js.map +7 -0
- package/dist/features/textures/lib/wasm/ink-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/ink-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/lightning-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/marble-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/marble-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/memory.d.ts +31 -0
- package/dist/features/textures/lib/wasm/memory.js +103 -0
- package/dist/features/textures/lib/wasm/memory.js.map +7 -0
- package/dist/features/textures/lib/wasm/paper-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/paper-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/tendrils-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-surface-bytes.js.map +7 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.d.ts +1 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js +5 -0
- package/dist/features/textures/lib/wasm/water-waves-bytes.js.map +7 -0
- package/dist/features/textures/lib/water-surface.d.ts +92 -0
- package/dist/features/textures/lib/water-surface.js +378 -0
- package/dist/features/textures/lib/water-surface.js.map +7 -0
- package/dist/features/textures/lib/water-waves.d.ts +60 -0
- package/dist/features/textures/lib/water-waves.js +154 -0
- package/dist/features/textures/lib/water-waves.js.map +7 -0
- package/dist/features/viz/index.d.ts +28 -0
- package/dist/features/viz/index.js +45 -0
- package/dist/features/viz/index.js.map +7 -0
- package/dist/features/viz/index.mjs +1 -0
- package/dist/features/viz/lib/anchored-layout.d.ts +104 -0
- package/dist/features/viz/lib/anchored-layout.js +166 -0
- package/dist/features/viz/lib/anchored-layout.js.map +7 -0
- package/dist/features/viz/lib/axis.d.ts +10 -0
- package/dist/features/viz/lib/axis.js +116 -0
- package/dist/features/viz/lib/axis.js.map +7 -0
- package/dist/features/viz/lib/band-scale.d.ts +3 -0
- package/dist/features/viz/lib/band-scale.js +57 -0
- package/dist/features/viz/lib/band-scale.js.map +7 -0
- package/dist/features/viz/lib/bar-fill.d.ts +16 -0
- package/dist/features/viz/lib/bar-fill.js +53 -0
- package/dist/features/viz/lib/bar-fill.js.map +7 -0
- package/dist/features/viz/lib/bar-series.d.ts +150 -0
- package/dist/features/viz/lib/bar-series.js +152 -0
- package/dist/features/viz/lib/bar-series.js.map +7 -0
- package/dist/features/viz/lib/hover-card.d.ts +92 -0
- package/dist/features/viz/lib/hover-card.js +146 -0
- package/dist/features/viz/lib/hover-card.js.map +7 -0
- package/dist/features/viz/lib/hover-data.d.ts +12 -0
- package/dist/features/viz/lib/hover-data.js +50 -0
- package/dist/features/viz/lib/hover-data.js.map +7 -0
- package/dist/features/viz/lib/hover-placement.d.ts +46 -0
- package/dist/features/viz/lib/hover-placement.js +51 -0
- package/dist/features/viz/lib/hover-placement.js.map +7 -0
- package/dist/features/viz/lib/hover-queries.d.ts +60 -0
- package/dist/features/viz/lib/hover-queries.js +185 -0
- package/dist/features/viz/lib/hover-queries.js.map +7 -0
- package/dist/features/viz/lib/hover-types.d.ts +277 -0
- package/dist/features/viz/lib/layout-pie.d.ts +13 -0
- package/dist/features/viz/lib/layout-pie.js +159 -0
- package/dist/features/viz/lib/layout-pie.js.map +7 -0
- package/dist/features/viz/lib/line-series.d.ts +11 -0
- package/dist/features/viz/lib/line-series.js +89 -0
- package/dist/features/viz/lib/line-series.js.map +7 -0
- package/dist/features/viz/lib/linear-scale.d.ts +3 -0
- package/dist/features/viz/lib/linear-scale.js +70 -0
- package/dist/features/viz/lib/linear-scale.js.map +7 -0
- package/dist/features/viz/lib/nearest.d.ts +82 -0
- package/dist/features/viz/lib/nearest.js +51 -0
- package/dist/features/viz/lib/nearest.js.map +7 -0
- package/dist/features/viz/lib/paint.d.ts +2 -0
- package/dist/features/viz/lib/paint.js +17 -0
- package/dist/features/viz/lib/paint.js.map +7 -0
- package/dist/features/viz/lib/pie-layout.d.ts +31 -0
- package/dist/features/viz/lib/pie-layout.js +324 -0
- package/dist/features/viz/lib/pie-layout.js.map +7 -0
- package/dist/features/viz/lib/pie-slices.d.ts +51 -0
- package/dist/features/viz/lib/pie-slices.js +50 -0
- package/dist/features/viz/lib/pie-slices.js.map +7 -0
- package/dist/features/viz/lib/pie-types.d.ts +215 -0
- package/dist/features/viz/lib/plot-series.d.ts +13 -0
- package/dist/features/viz/lib/plot-series.js +53 -0
- package/dist/features/viz/lib/plot-series.js.map +7 -0
- package/dist/features/viz/lib/plot-types.d.ts +63 -0
- package/dist/features/viz/lib/point-data.d.ts +5 -0
- package/dist/features/viz/lib/point-data.js +17 -0
- package/dist/features/viz/lib/point-data.js.map +7 -0
- package/dist/features/viz/lib/point-geometry.d.ts +2 -0
- package/dist/features/viz/lib/point-geometry.js +24 -0
- package/dist/features/viz/lib/point-geometry.js.map +7 -0
- package/dist/features/viz/lib/point-series.d.ts +11 -0
- package/dist/features/viz/lib/point-series.js +118 -0
- package/dist/features/viz/lib/point-series.js.map +7 -0
- package/dist/features/viz/lib/point-types.d.ts +94 -0
- package/dist/features/viz/lib/scale-adjust.d.ts +11 -0
- package/dist/features/viz/lib/scale-adjust.js +25 -0
- package/dist/features/viz/lib/scale-adjust.js.map +7 -0
- package/dist/features/viz/lib/scale-context.d.ts +8 -0
- package/dist/features/viz/lib/scale-context.js +61 -0
- package/dist/features/viz/lib/scale-context.js.map +7 -0
- package/dist/features/viz/lib/scale.d.ts +11 -0
- package/dist/features/viz/lib/scale.js +80 -0
- package/dist/features/viz/lib/scale.js.map +7 -0
- package/dist/features/viz/lib/types.d.ts +414 -0
- package/dist/features/viz/lib/use-scale.d.ts +20 -0
- package/dist/features/viz/lib/use-scale.js +10 -0
- package/dist/features/viz/lib/use-scale.js.map +7 -0
- package/dist/filters/displacement-gpu.d.ts +38 -0
- package/dist/filters/displacement-gpu.js +243 -0
- package/dist/filters/displacement-gpu.js.map +7 -0
- package/dist/filters/displacement-math.d.ts +5 -0
- package/dist/filters/displacement-math.js +22 -0
- package/dist/filters/displacement-math.js.map +7 -0
- package/dist/filters/displacement.d.ts +13 -0
- package/dist/filters/displacement.js +65 -0
- package/dist/filters/displacement.js.map +7 -0
- package/dist/filters/filter-executor.d.ts +21 -0
- package/dist/filters/filter-executor.js +120 -0
- package/dist/filters/filter-executor.js.map +7 -0
- package/dist/filters/native-canvas-filter.d.ts +4 -0
- package/dist/filters/native-canvas-filter.js +105 -0
- package/dist/filters/native-canvas-filter.js.map +7 -0
- package/dist/filters/native-color.d.ts +2 -0
- package/dist/filters/native-color.js +200 -0
- package/dist/filters/native-color.js.map +7 -0
- package/dist/filters/native-operations.d.ts +8 -0
- package/dist/filters/native-operations.js +7 -0
- package/dist/filters/native-operations.js.map +7 -0
- package/dist/filters/native.d.ts +113 -0
- package/dist/filters/native.js +115 -0
- package/dist/filters/native.js.map +7 -0
- package/dist/filters/reflected-light.d.ts +12 -0
- package/dist/filters/reflected-light.js +93 -0
- package/dist/filters/reflected-light.js.map +7 -0
- package/dist/filters/reflection-gpu.d.ts +58 -0
- package/dist/filters/reflection-gpu.js +266 -0
- package/dist/filters/reflection-gpu.js.map +7 -0
- package/dist/filters/render-displacement-boundary.d.ts +12 -0
- package/dist/filters/render-displacement-boundary.js +116 -0
- package/dist/filters/render-displacement-boundary.js.map +7 -0
- package/dist/filters/render-reflection-boundary.d.ts +15 -0
- package/dist/filters/render-reflection-boundary.js +127 -0
- package/dist/filters/render-reflection-boundary.js.map +7 -0
- package/dist/filters.d.ts +5 -0
- package/dist/filters.js +29 -0
- package/dist/filters.js.map +7 -0
- package/dist/filters.mjs +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.js +300 -0
- package/dist/index.js.map +7 -0
- package/dist/index.mjs +1 -0
- package/dist/internal.d.ts +160 -0
- package/dist/internal.js +320 -0
- package/dist/internal.js.map +7 -0
- package/dist/internal.mjs +1 -0
- package/dist/jsx-dev-runtime.d.ts +35 -0
- package/dist/jsx-dev-runtime.js +6 -0
- package/dist/jsx-dev-runtime.js.map +7 -0
- package/dist/jsx-dev-runtime.mjs +1 -0
- package/dist/jsx-runtime.d.ts +35 -0
- package/dist/jsx-runtime.js +7 -0
- package/dist/jsx-runtime.js.map +7 -0
- package/dist/jsx-runtime.mjs +1 -0
- package/dist/lib/animation/definition.d.ts +140 -0
- package/dist/lib/animation/definition.js +605 -0
- package/dist/lib/animation/definition.js.map +7 -0
- package/dist/lib/animation/easing.d.ts +55 -0
- package/dist/lib/animation/easing.js +112 -0
- package/dist/lib/animation/easing.js.map +7 -0
- package/dist/lib/animation/evaluate.d.ts +118 -0
- package/dist/lib/animation/evaluate.js +2398 -0
- package/dist/lib/animation/evaluate.js.map +7 -0
- package/dist/lib/animation/playback.d.ts +30 -0
- package/dist/lib/animation/playback.js +932 -0
- package/dist/lib/animation/playback.js.map +7 -0
- package/dist/lib/animation/program.d.ts +145 -0
- package/dist/lib/animation/program.js +741 -0
- package/dist/lib/animation/program.js.map +7 -0
- package/dist/lib/animation/spring.d.ts +30 -0
- package/dist/lib/animation/spring.js +324 -0
- package/dist/lib/animation/spring.js.map +7 -0
- package/dist/lib/animation/types.d.ts +418 -0
- package/dist/lib/animation/writer-leases.d.ts +47 -0
- package/dist/lib/animation/writer-leases.js +314 -0
- package/dist/lib/animation/writer-leases.js.map +7 -0
- package/dist/lib/backend/canvas-2d-backend.d.ts +4 -0
- package/dist/lib/backend/canvas-2d-backend.js +97 -0
- package/dist/lib/backend/canvas-2d-backend.js.map +7 -0
- package/dist/lib/backend/types.d.ts +309 -0
- package/dist/lib/backend/types.js +26 -0
- package/dist/lib/backend/types.js.map +7 -0
- package/dist/lib/components/arc-geometry.d.ts +4 -0
- package/dist/lib/components/arc-geometry.js +46 -0
- package/dist/lib/components/arc-geometry.js.map +7 -0
- package/dist/lib/components/arc.d.ts +55 -0
- package/dist/lib/components/arc.js +91 -0
- package/dist/lib/components/arc.js.map +7 -0
- package/dist/lib/components/circle.d.ts +49 -0
- package/dist/lib/components/circle.js +46 -0
- package/dist/lib/components/circle.js.map +7 -0
- package/dist/lib/components/clip.d.ts +43 -0
- package/dist/lib/components/clip.js +24 -0
- package/dist/lib/components/clip.js.map +7 -0
- package/dist/lib/components/ellipse.d.ts +53 -0
- package/dist/lib/components/ellipse.js +59 -0
- package/dist/lib/components/ellipse.js.map +7 -0
- package/dist/lib/components/g.d.ts +56 -0
- package/dist/lib/components/g.js +24 -0
- package/dist/lib/components/g.js.map +7 -0
- package/dist/lib/components/horizontal-line.d.ts +56 -0
- package/dist/lib/components/horizontal-line.js +71 -0
- package/dist/lib/components/horizontal-line.js.map +7 -0
- package/dist/lib/components/html-box.d.ts +16 -0
- package/dist/lib/components/html-box.js +57 -0
- package/dist/lib/components/html-box.js.map +7 -0
- package/dist/lib/components/img.d.ts +24 -0
- package/dist/lib/components/img.js +150 -0
- package/dist/lib/components/img.js.map +7 -0
- package/dist/lib/components/layer-node-equality.d.ts +65 -0
- package/dist/lib/components/layer-node-equality.js +91 -0
- package/dist/lib/components/layer-node-equality.js.map +7 -0
- package/dist/lib/components/layer.d.ts +34 -0
- package/dist/lib/components/layer.js +172 -0
- package/dist/lib/components/layer.js.map +7 -0
- package/dist/lib/components/line.d.ts +51 -0
- package/dist/lib/components/line.js +76 -0
- package/dist/lib/components/line.js.map +7 -0
- package/dist/lib/components/path.d.ts +28 -0
- package/dist/lib/components/path.js +47 -0
- package/dist/lib/components/path.js.map +7 -0
- package/dist/lib/components/polygon.d.ts +45 -0
- package/dist/lib/components/polygon.js +93 -0
- package/dist/lib/components/polygon.js.map +7 -0
- package/dist/lib/components/rect.d.ts +24 -0
- package/dist/lib/components/rect.js +83 -0
- package/dist/lib/components/rect.js.map +7 -0
- package/dist/lib/components/regular-polygon.d.ts +102 -0
- package/dist/lib/components/regular-polygon.js +112 -0
- package/dist/lib/components/regular-polygon.js.map +7 -0
- package/dist/lib/components/rounded-corner-style.d.ts +7 -0
- package/dist/lib/components/rounded-corner-style.js +40 -0
- package/dist/lib/components/rounded-corner-style.js.map +7 -0
- package/dist/lib/components/shape-style.d.ts +7 -0
- package/dist/lib/components/shape-style.js +52 -0
- package/dist/lib/components/shape-style.js.map +7 -0
- package/dist/lib/components/star.d.ts +56 -0
- package/dist/lib/components/star.js +98 -0
- package/dist/lib/components/star.js.map +7 -0
- package/dist/lib/components/structural-events.d.ts +10 -0
- package/dist/lib/components/structural-events.js +8 -0
- package/dist/lib/components/structural-events.js.map +7 -0
- package/dist/lib/components/svg-path.d.ts +23 -0
- package/dist/lib/components/svg-path.js +25 -0
- package/dist/lib/components/svg-path.js.map +7 -0
- package/dist/lib/components/text-layout.d.ts +31 -0
- package/dist/lib/components/text-layout.js +139 -0
- package/dist/lib/components/text-layout.js.map +7 -0
- package/dist/lib/components/text.d.ts +29 -0
- package/dist/lib/components/text.js +174 -0
- package/dist/lib/components/text.js.map +7 -0
- package/dist/lib/components/vertical-line.d.ts +57 -0
- package/dist/lib/components/vertical-line.js +71 -0
- package/dist/lib/components/vertical-line.js.map +7 -0
- package/dist/lib/components/wedge.d.ts +55 -0
- package/dist/lib/components/wedge.js +93 -0
- package/dist/lib/components/wedge.js.map +7 -0
- package/dist/lib/define-primitive.d.ts +82 -0
- package/dist/lib/define-primitive.js +85 -0
- package/dist/lib/define-primitive.js.map +7 -0
- package/dist/lib/development.d.ts +2 -0
- package/dist/lib/development.js +5 -0
- package/dist/lib/development.js.map +7 -0
- package/dist/lib/element/children.d.ts +16 -0
- package/dist/lib/element/children.js +333 -0
- package/dist/lib/element/children.js.map +7 -0
- package/dist/lib/element/create-element.d.ts +34 -0
- package/dist/lib/element/create-element.js +75 -0
- package/dist/lib/element/create-element.js.map +7 -0
- package/dist/lib/element/fragment.d.ts +15 -0
- package/dist/lib/element/fragment.js +11 -0
- package/dist/lib/element/fragment.js.map +7 -0
- package/dist/lib/element/jsx-runtime.d.ts +48 -0
- package/dist/lib/element/jsx-runtime.js +16 -0
- package/dist/lib/element/jsx-runtime.js.map +7 -0
- package/dist/lib/element/metadata.d.ts +96 -0
- package/dist/lib/element/metadata.js +160 -0
- package/dist/lib/element/metadata.js.map +7 -0
- package/dist/lib/element/resolve-primitive-inputs.d.ts +12 -0
- package/dist/lib/element/resolve-primitive-inputs.js +83 -0
- package/dist/lib/element/resolve-primitive-inputs.js.map +7 -0
- package/dist/lib/element/types.d.ts +123 -0
- package/dist/lib/element-enhancers.d.ts +134 -0
- package/dist/lib/element-enhancers.js +193 -0
- package/dist/lib/element-enhancers.js.map +7 -0
- package/dist/lib/events/adapters/clipboard.d.ts +9 -0
- package/dist/lib/events/adapters/clipboard.js +23 -0
- package/dist/lib/events/adapters/clipboard.js.map +7 -0
- package/dist/lib/events/adapters/drag.d.ts +12 -0
- package/dist/lib/events/adapters/drag.js +29 -0
- package/dist/lib/events/adapters/drag.js.map +7 -0
- package/dist/lib/events/adapters/editing.d.ts +15 -0
- package/dist/lib/events/adapters/editing.js +41 -0
- package/dist/lib/events/adapters/editing.js.map +7 -0
- package/dist/lib/events/adapters/keyboard-focus.d.ts +12 -0
- package/dist/lib/events/adapters/keyboard-focus.js +36 -0
- package/dist/lib/events/adapters/keyboard-focus.js.map +7 -0
- package/dist/lib/events/adapters/mouse.d.ts +17 -0
- package/dist/lib/events/adapters/mouse.js +32 -0
- package/dist/lib/events/adapters/mouse.js.map +7 -0
- package/dist/lib/events/adapters/pointer.d.ts +19 -0
- package/dist/lib/events/adapters/pointer.js +40 -0
- package/dist/lib/events/adapters/pointer.js.map +7 -0
- package/dist/lib/events/adapters/touch.d.ts +16 -0
- package/dist/lib/events/adapters/touch.js +36 -0
- package/dist/lib/events/adapters/touch.js.map +7 -0
- package/dist/lib/events/adapters/wheel.d.ts +10 -0
- package/dist/lib/events/adapters/wheel.js +16 -0
- package/dist/lib/events/adapters/wheel.js.map +7 -0
- package/dist/lib/events/boundary-transitions.d.ts +9 -0
- package/dist/lib/events/boundary-transitions.js +16 -0
- package/dist/lib/events/boundary-transitions.js.map +7 -0
- package/dist/lib/events/dispatch.d.ts +21 -0
- package/dist/lib/events/dispatch.js +1078 -0
- package/dist/lib/events/dispatch.js.map +7 -0
- package/dist/lib/events/event-definitions.d.ts +23 -0
- package/dist/lib/events/event-definitions.js +74 -0
- package/dist/lib/events/event-definitions.js.map +7 -0
- package/dist/lib/events/event-facade.d.ts +19 -0
- package/dist/lib/events/event-facade.js +188 -0
- package/dist/lib/events/event-facade.js.map +7 -0
- package/dist/lib/events/event-path.d.ts +3 -0
- package/dist/lib/events/event-path.js +43 -0
- package/dist/lib/events/event-path.js.map +7 -0
- package/dist/lib/events/hit-test.d.ts +13 -0
- package/dist/lib/events/hit-test.js +135 -0
- package/dist/lib/events/hit-test.js.map +7 -0
- package/dist/lib/events/native-listener-hub.d.ts +10 -0
- package/dist/lib/events/native-listener-hub.js +72 -0
- package/dist/lib/events/native-listener-hub.js.map +7 -0
- package/dist/lib/events/paint-entry.d.ts +66 -0
- package/dist/lib/events/paint-entry.js +30 -0
- package/dist/lib/events/paint-entry.js.map +7 -0
- package/dist/lib/events/pointer-capture.d.ts +23 -0
- package/dist/lib/events/pointer-capture.js +339 -0
- package/dist/lib/events/pointer-capture.js.map +7 -0
- package/dist/lib/events/propagation.d.ts +7 -0
- package/dist/lib/events/propagation.js +56 -0
- package/dist/lib/events/propagation.js.map +7 -0
- package/dist/lib/events/registrations.d.ts +120 -0
- package/dist/lib/events/registrations.js +397 -0
- package/dist/lib/events/registrations.js.map +7 -0
- package/dist/lib/events/resolver-input.d.ts +25 -0
- package/dist/lib/events/resolver-input.js +62 -0
- package/dist/lib/events/resolver-input.js.map +7 -0
- package/dist/lib/events/types.d.ts +596 -0
- package/dist/lib/execute-render.d.ts +9 -0
- package/dist/lib/execute-render.js +195 -0
- package/dist/lib/execute-render.js.map +7 -0
- package/dist/lib/filter/canvas-state.d.ts +2 -0
- package/dist/lib/filter/canvas-state.js +31 -0
- package/dist/lib/filter/canvas-state.js.map +7 -0
- package/dist/lib/filter/filter-region.d.ts +33 -0
- package/dist/lib/filter/filter-region.js +291 -0
- package/dist/lib/filter/filter-region.js.map +7 -0
- package/dist/lib/filter/filter-surface-pool.d.ts +38 -0
- package/dist/lib/filter/filter-surface-pool.js +252 -0
- package/dist/lib/filter/filter-surface-pool.js.map +7 -0
- package/dist/lib/filter/render-filter-boundary.d.ts +14 -0
- package/dist/lib/filter/render-filter-boundary.js +211 -0
- package/dist/lib/filter/render-filter-boundary.js.map +7 -0
- package/dist/lib/focus/directional-navigation.d.ts +12 -0
- package/dist/lib/focus/directional-navigation.js +86 -0
- package/dist/lib/focus/directional-navigation.js.map +7 -0
- package/dist/lib/focus/dom-focus-host.d.ts +13 -0
- package/dist/lib/focus/dom-focus-host.js +352 -0
- package/dist/lib/focus/dom-focus-host.js.map +7 -0
- package/dist/lib/focus/dom-tab-stops.d.ts +3 -0
- package/dist/lib/focus/dom-tab-stops.js +71 -0
- package/dist/lib/focus/dom-tab-stops.js.map +7 -0
- package/dist/lib/focus/focus-events.d.ts +4 -0
- package/dist/lib/focus/focus-events.js +78 -0
- package/dist/lib/focus/focus-events.js.map +7 -0
- package/dist/lib/focus/focus-manager.d.ts +121 -0
- package/dist/lib/focus/focus-manager.js +1131 -0
- package/dist/lib/focus/focus-manager.js.map +7 -0
- package/dist/lib/focus/geometry.d.ts +4 -0
- package/dist/lib/focus/geometry.js +64 -0
- package/dist/lib/focus/geometry.js.map +7 -0
- package/dist/lib/focus/html-focus-region.d.ts +27 -0
- package/dist/lib/focus/keyboard-defaults.d.ts +7 -0
- package/dist/lib/focus/keyboard-defaults.js +110 -0
- package/dist/lib/focus/keyboard-defaults.js.map +7 -0
- package/dist/lib/focus/policy-components.d.ts +45 -0
- package/dist/lib/focus/policy-components.js +94 -0
- package/dist/lib/focus/policy-components.js.map +7 -0
- package/dist/lib/focus/types.d.ts +37 -0
- package/dist/lib/focus/types.js +7 -0
- package/dist/lib/focus/types.js.map +7 -0
- package/dist/lib/geometry/circle.d.ts +22 -0
- package/dist/lib/geometry/circle.js +13 -0
- package/dist/lib/geometry/circle.js.map +7 -0
- package/dist/lib/geometry/circular-sweep.d.ts +54 -0
- package/dist/lib/geometry/circular-sweep.js +95 -0
- package/dist/lib/geometry/circular-sweep.js.map +7 -0
- package/dist/lib/geometry/ellipse.d.ts +26 -0
- package/dist/lib/geometry/ellipse.js +17 -0
- package/dist/lib/geometry/ellipse.js.map +7 -0
- package/dist/lib/geometry/line.d.ts +20 -0
- package/dist/lib/geometry/line.js +15 -0
- package/dist/lib/geometry/line.js.map +7 -0
- package/dist/lib/geometry/path-arc.d.ts +25 -0
- package/dist/lib/geometry/path-arc.js +57 -0
- package/dist/lib/geometry/path-arc.js.map +7 -0
- package/dist/lib/geometry/path-bend-guide.d.ts +31 -0
- package/dist/lib/geometry/path-bend-guide.js +282 -0
- package/dist/lib/geometry/path-bend-guide.js.map +7 -0
- package/dist/lib/geometry/path-bend-spans.d.ts +31 -0
- package/dist/lib/geometry/path-bend-spans.js +109 -0
- package/dist/lib/geometry/path-bend-spans.js.map +7 -0
- package/dist/lib/geometry/path-bending.d.ts +90 -0
- package/dist/lib/geometry/path-bending.js +202 -0
- package/dist/lib/geometry/path-bending.js.map +7 -0
- package/dist/lib/geometry/path-conversion.d.ts +19 -0
- package/dist/lib/geometry/path-conversion.js +114 -0
- package/dist/lib/geometry/path-conversion.js.map +7 -0
- package/dist/lib/geometry/path-geometry.d.ts +218 -0
- package/dist/lib/geometry/path-geometry.js +557 -0
- package/dist/lib/geometry/path-geometry.js.map +7 -0
- package/dist/lib/geometry/path-radial.d.ts +15 -0
- package/dist/lib/geometry/path-radial.js +107 -0
- package/dist/lib/geometry/path-radial.js.map +7 -0
- package/dist/lib/geometry/path-transforms.d.ts +233 -0
- package/dist/lib/geometry/path-transforms.js +478 -0
- package/dist/lib/geometry/path-transforms.js.map +7 -0
- package/dist/lib/geometry/path-utilities.d.ts +78 -0
- package/dist/lib/geometry/path-utilities.js +341 -0
- package/dist/lib/geometry/path-utilities.js.map +7 -0
- package/dist/lib/geometry/path-wang.d.ts +18 -0
- package/dist/lib/geometry/path-wang.js +136 -0
- package/dist/lib/geometry/path-wang.js.map +7 -0
- package/dist/lib/geometry/path-warp-bezier.d.ts +17 -0
- package/dist/lib/geometry/path-warp-bezier.js +109 -0
- package/dist/lib/geometry/path-warp-bezier.js.map +7 -0
- package/dist/lib/geometry/path-warp.d.ts +27 -0
- package/dist/lib/geometry/path-warp.js +165 -0
- package/dist/lib/geometry/path-warp.js.map +7 -0
- package/dist/lib/geometry/polygon.d.ts +21 -0
- package/dist/lib/geometry/polygon.js +12 -0
- package/dist/lib/geometry/polygon.js.map +7 -0
- package/dist/lib/geometry/rectangle.d.ts +38 -0
- package/dist/lib/geometry/rectangle.js +22 -0
- package/dist/lib/geometry/rectangle.js.map +7 -0
- package/dist/lib/geometry/regular-polygon.d.ts +88 -0
- package/dist/lib/geometry/regular-polygon.js +67 -0
- package/dist/lib/geometry/regular-polygon.js.map +7 -0
- package/dist/lib/geometry/resolve-path.d.ts +4 -0
- package/dist/lib/geometry/resolve-path.js +16 -0
- package/dist/lib/geometry/resolve-path.js.map +7 -0
- package/dist/lib/geometry/rounded-corners.d.ts +28 -0
- package/dist/lib/geometry/rounded-corners.js +118 -0
- package/dist/lib/geometry/rounded-corners.js.map +7 -0
- package/dist/lib/geometry/star.d.ts +39 -0
- package/dist/lib/geometry/star.js +90 -0
- package/dist/lib/geometry/star.js.map +7 -0
- package/dist/lib/geometry/svg-path.d.ts +21 -0
- package/dist/lib/geometry/svg-path.js +7 -0
- package/dist/lib/geometry/svg-path.js.map +7 -0
- package/dist/lib/geometry/transform-bend.d.ts +46 -0
- package/dist/lib/geometry/transform-bend.js +219 -0
- package/dist/lib/geometry/transform-bend.js.map +7 -0
- package/dist/lib/geometry/transform-guide.d.ts +57 -0
- package/dist/lib/geometry/transform-guide.js +157 -0
- package/dist/lib/geometry/transform-guide.js.map +7 -0
- package/dist/lib/geometry/transform-math.d.ts +21 -0
- package/dist/lib/geometry/transform-math.js +91 -0
- package/dist/lib/geometry/transform-math.js.map +7 -0
- package/dist/lib/geometry/transform-mesh.d.ts +39 -0
- package/dist/lib/geometry/transform-mesh.js +129 -0
- package/dist/lib/geometry/transform-mesh.js.map +7 -0
- package/dist/lib/geometry/validation.d.ts +6 -0
- package/dist/lib/geometry/validation.js +42 -0
- package/dist/lib/geometry/validation.js.map +7 -0
- package/dist/lib/global-state.d.ts +63 -0
- package/dist/lib/global-state.js +176 -0
- package/dist/lib/global-state.js.map +7 -0
- package/dist/lib/hooks/hook-slot.d.ts +30 -0
- package/dist/lib/hooks/hook-slot.js +66 -0
- package/dist/lib/hooks/hook-slot.js.map +7 -0
- package/dist/lib/hooks/use-animated-value.d.ts +24 -0
- package/dist/lib/hooks/use-animated-value.js +169 -0
- package/dist/lib/hooks/use-animated-value.js.map +7 -0
- package/dist/lib/hooks/use-canvas-context.d.ts +10 -0
- package/dist/lib/hooks/use-canvas-context.js +13 -0
- package/dist/lib/hooks/use-canvas-context.js.map +7 -0
- package/dist/lib/hooks/use-computed.d.ts +13 -0
- package/dist/lib/hooks/use-computed.js +91 -0
- package/dist/lib/hooks/use-computed.js.map +7 -0
- package/dist/lib/hooks/use-const.d.ts +10 -0
- package/dist/lib/hooks/use-const.js +15 -0
- package/dist/lib/hooks/use-const.js.map +7 -0
- package/dist/lib/hooks/use-cursor.d.ts +16 -0
- package/dist/lib/hooks/use-cursor.js +51 -0
- package/dist/lib/hooks/use-cursor.js.map +7 -0
- package/dist/lib/hooks/use-event-listener.d.ts +10 -0
- package/dist/lib/hooks/use-event-listener.js +24 -0
- package/dist/lib/hooks/use-event-listener.js.map +7 -0
- package/dist/lib/hooks/use-event-target.d.ts +14 -0
- package/dist/lib/hooks/use-event-target.js +30 -0
- package/dist/lib/hooks/use-event-target.js.map +7 -0
- package/dist/lib/hooks/use-layout-box.d.ts +9 -0
- package/dist/lib/hooks/use-layout-box.js +8 -0
- package/dist/lib/hooks/use-layout-box.js.map +7 -0
- package/dist/lib/hooks/use-line-path.d.ts +14 -0
- package/dist/lib/hooks/use-line-path.js +13 -0
- package/dist/lib/hooks/use-line-path.js.map +7 -0
- package/dist/lib/hooks/use-paint-target.d.ts +3 -0
- package/dist/lib/hooks/use-paint-target.js +34 -0
- package/dist/lib/hooks/use-paint-target.js.map +7 -0
- package/dist/lib/hooks/use-playback.d.ts +21 -0
- package/dist/lib/hooks/use-playback.js +87 -0
- package/dist/lib/hooks/use-playback.js.map +7 -0
- package/dist/lib/hooks/use-reaction.d.ts +19 -0
- package/dist/lib/hooks/use-reaction.js +245 -0
- package/dist/lib/hooks/use-reaction.js.map +7 -0
- package/dist/lib/hooks/use-rect-path.d.ts +20 -0
- package/dist/lib/hooks/use-rect-path.js +25 -0
- package/dist/lib/hooks/use-rect-path.js.map +7 -0
- package/dist/lib/hooks/use-ref.d.ts +17 -0
- package/dist/lib/hooks/use-ref.js +8 -0
- package/dist/lib/hooks/use-ref.js.map +7 -0
- package/dist/lib/hooks/use-region.d.ts +11 -0
- package/dist/lib/hooks/use-region.js +34 -0
- package/dist/lib/hooks/use-region.js.map +7 -0
- package/dist/lib/hooks/use-signal.d.ts +12 -0
- package/dist/lib/hooks/use-signal.js +12 -0
- package/dist/lib/hooks/use-signal.js.map +7 -0
- package/dist/lib/hooks/use-svg-path.d.ts +11 -0
- package/dist/lib/hooks/use-svg-path.js +13 -0
- package/dist/lib/hooks/use-svg-path.js.map +7 -0
- package/dist/lib/hooks/use-value-memo-slot.d.ts +12 -0
- package/dist/lib/hooks/use-value-memo-slot.js +45 -0
- package/dist/lib/hooks/use-value-memo-slot.js.map +7 -0
- package/dist/lib/hooks/use-visibility-transition.d.ts +103 -0
- package/dist/lib/hooks/use-visibility-transition.js +195 -0
- package/dist/lib/hooks/use-visibility-transition.js.map +7 -0
- package/dist/lib/html/html-service.d.ts +30 -0
- package/dist/lib/html/html-service.js +281 -0
- package/dist/lib/html/html-service.js.map +7 -0
- package/dist/lib/html/overlay-config.d.ts +3 -0
- package/dist/lib/html/overlay-config.js +37 -0
- package/dist/lib/html/overlay-config.js.map +7 -0
- package/dist/lib/html/portable-clips.d.ts +4 -0
- package/dist/lib/html/portable-clips.js +20 -0
- package/dist/lib/html/portable-clips.js.map +7 -0
- package/dist/lib/html/types.d.ts +110 -0
- package/dist/lib/layout/absolute.d.ts +57 -0
- package/dist/lib/layout/absolute.js +348 -0
- package/dist/lib/layout/absolute.js.map +7 -0
- package/dist/lib/layout/box.d.ts +19 -0
- package/dist/lib/layout/box.js +209 -0
- package/dist/lib/layout/box.js.map +7 -0
- package/dist/lib/layout/context.d.ts +13 -0
- package/dist/lib/layout/context.js +42 -0
- package/dist/lib/layout/context.js.map +7 -0
- package/dist/lib/layout/diagnostics.d.ts +15 -0
- package/dist/lib/layout/diagnostics.js +30 -0
- package/dist/lib/layout/diagnostics.js.map +7 -0
- package/dist/lib/layout/flex.d.ts +64 -0
- package/dist/lib/layout/flex.js +803 -0
- package/dist/lib/layout/flex.js.map +7 -0
- package/dist/lib/layout/flow.d.ts +53 -0
- package/dist/lib/layout/flow.js +400 -0
- package/dist/lib/layout/flow.js.map +7 -0
- package/dist/lib/layout/grid.d.ts +64 -0
- package/dist/lib/layout/grid.js +597 -0
- package/dist/lib/layout/grid.js.map +7 -0
- package/dist/lib/layout/measure.d.ts +19 -0
- package/dist/lib/layout/measure.js +144 -0
- package/dist/lib/layout/measure.js.map +7 -0
- package/dist/lib/layout/overlay.d.ts +42 -0
- package/dist/lib/layout/overlay.js +151 -0
- package/dist/lib/layout/overlay.js.map +7 -0
- package/dist/lib/layout/place-child.d.ts +12 -0
- package/dist/lib/layout/place-child.js +72 -0
- package/dist/lib/layout/place-child.js.map +7 -0
- package/dist/lib/layout/positioning-diagnostics.d.ts +3 -0
- package/dist/lib/layout/positioning-diagnostics.js +15 -0
- package/dist/lib/layout/positioning-diagnostics.js.map +7 -0
- package/dist/lib/layout/types.d.ts +78 -0
- package/dist/lib/manipulation/controller-types.d.ts +299 -0
- package/dist/lib/manipulation/controller.d.ts +57 -0
- package/dist/lib/manipulation/controller.js +464 -0
- package/dist/lib/manipulation/controller.js.map +7 -0
- package/dist/lib/manipulation/coordinates.d.ts +9 -0
- package/dist/lib/manipulation/coordinates.js +55 -0
- package/dist/lib/manipulation/coordinates.js.map +7 -0
- package/dist/lib/manipulation/degrees.d.ts +10 -0
- package/dist/lib/manipulation/degrees.js +9 -0
- package/dist/lib/manipulation/degrees.js.map +7 -0
- package/dist/lib/manipulation/frame.d.ts +24 -0
- package/dist/lib/manipulation/frame.js +101 -0
- package/dist/lib/manipulation/frame.js.map +7 -0
- package/dist/lib/manipulation/geometry.d.ts +4 -0
- package/dist/lib/manipulation/geometry.js +26 -0
- package/dist/lib/manipulation/geometry.js.map +7 -0
- package/dist/lib/manipulation/handles.d.ts +298 -0
- package/dist/lib/manipulation/handles.js +598 -0
- package/dist/lib/manipulation/handles.js.map +7 -0
- package/dist/lib/manipulation/manipulable.d.ts +65 -0
- package/dist/lib/manipulation/manipulable.js +47 -0
- package/dist/lib/manipulation/manipulable.js.map +7 -0
- package/dist/lib/manipulation/ownership.d.ts +15 -0
- package/dist/lib/manipulation/ownership.js +80 -0
- package/dist/lib/manipulation/ownership.js.map +7 -0
- package/dist/lib/manipulation/snap.d.ts +6 -0
- package/dist/lib/manipulation/snap.js +40 -0
- package/dist/lib/manipulation/snap.js.map +7 -0
- package/dist/lib/manipulation/solve.d.ts +2 -0
- package/dist/lib/manipulation/solve.js +563 -0
- package/dist/lib/manipulation/solve.js.map +7 -0
- package/dist/lib/manipulation/types.d.ts +178 -0
- package/dist/lib/mount-pibbl.d.ts +25 -0
- package/dist/lib/mount-pibbl.js +278 -0
- package/dist/lib/mount-pibbl.js.map +7 -0
- package/dist/lib/optional-services.d.ts +8 -0
- package/dist/lib/optional-services.js +11 -0
- package/dist/lib/optional-services.js.map +7 -0
- package/dist/lib/pibbl.d.ts +17 -0
- package/dist/lib/pibbl.js +21 -0
- package/dist/lib/pibbl.js.map +7 -0
- package/dist/lib/primitive-presentation.d.ts +24 -0
- package/dist/lib/primitive-presentation.js +102 -0
- package/dist/lib/primitive-presentation.js.map +7 -0
- package/dist/lib/render-layer/controller.d.ts +67 -0
- package/dist/lib/render-layer/controller.js +603 -0
- package/dist/lib/render-layer/controller.js.map +7 -0
- package/dist/lib/render-layer/define-render-layer.d.ts +17 -0
- package/dist/lib/render-layer/define-render-layer.js +90 -0
- package/dist/lib/render-layer/define-render-layer.js.map +7 -0
- package/dist/lib/render-layer/types.d.ts +315 -0
- package/dist/lib/render-target.d.ts +27 -0
- package/dist/lib/render-target.js +118 -0
- package/dist/lib/render-target.js.map +7 -0
- package/dist/lib/render-transaction.d.ts +10 -0
- package/dist/lib/render-transaction.js +46 -0
- package/dist/lib/render-transaction.js.map +7 -0
- package/dist/lib/render.d.ts +3 -0
- package/dist/lib/render.js +385 -0
- package/dist/lib/render.js.map +7 -0
- package/dist/lib/scheduler/realm-scheduler.d.ts +52 -0
- package/dist/lib/scheduler/realm-scheduler.js +964 -0
- package/dist/lib/scheduler/realm-scheduler.js.map +7 -0
- package/dist/lib/scheduler/renderer-participant.d.ts +257 -0
- package/dist/lib/scheduler/renderer-participant.js +216 -0
- package/dist/lib/scheduler/renderer-participant.js.map +7 -0
- package/dist/lib/scheduler/simulation-participant.d.ts +103 -0
- package/dist/lib/scheduler/simulation-participant.js +229 -0
- package/dist/lib/scheduler/simulation-participant.js.map +7 -0
- package/dist/lib/scheduler/testing.d.ts +56 -0
- package/dist/lib/scheduler/testing.js +71 -0
- package/dist/lib/scheduler/testing.js.map +7 -0
- package/dist/lib/scheduler/types.d.ts +103 -0
- package/dist/lib/signals/edge.d.ts +44 -0
- package/dist/lib/signals/edge.js +245 -0
- package/dist/lib/signals/edge.js.map +7 -0
- package/dist/lib/signals/graph.d.ts +220 -0
- package/dist/lib/signals/graph.js +1035 -0
- package/dist/lib/signals/graph.js.map +7 -0
- package/dist/lib/signals/input-provision.d.ts +3 -0
- package/dist/lib/signals/input-provision.js +67 -0
- package/dist/lib/signals/input-provision.js.map +7 -0
- package/dist/lib/signals/render-consumer.d.ts +21 -0
- package/dist/lib/signals/render-consumer.js +218 -0
- package/dist/lib/signals/render-consumer.js.map +7 -0
- package/dist/lib/signals/resolve-signal-value.d.ts +10 -0
- package/dist/lib/signals/resolve-signal-value.js +17 -0
- package/dist/lib/signals/resolve-signal-value.js.map +7 -0
- package/dist/lib/signals/types.d.ts +80 -0
- package/dist/lib/style/diagnostics.d.ts +83 -0
- package/dist/lib/style/diagnostics.js +63 -0
- package/dist/lib/style/diagnostics.js.map +7 -0
- package/dist/lib/style/empty-style.d.ts +3 -0
- package/dist/lib/style/empty-style.js +5 -0
- package/dist/lib/style/empty-style.js.map +7 -0
- package/dist/lib/style/filter-types.d.ts +243 -0
- package/dist/lib/style/filter-types.js +5 -0
- package/dist/lib/style/filter-types.js.map +7 -0
- package/dist/lib/style/filter.d.ts +7 -0
- package/dist/lib/style/filter.js +50 -0
- package/dist/lib/style/filter.js.map +7 -0
- package/dist/lib/style/normalize.d.ts +18 -0
- package/dist/lib/style/normalize.js +50 -0
- package/dist/lib/style/normalize.js.map +7 -0
- package/dist/lib/style/positioning.d.ts +32 -0
- package/dist/lib/style/positioning.js +81 -0
- package/dist/lib/style/positioning.js.map +7 -0
- package/dist/lib/style/resolve-built-in.d.ts +6 -0
- package/dist/lib/style/resolve-built-in.js +58 -0
- package/dist/lib/style/resolve-built-in.js.map +7 -0
- package/dist/lib/style/resolve-dispatch.d.ts +20 -0
- package/dist/lib/style/resolve-dispatch.js +167 -0
- package/dist/lib/style/resolve-dispatch.js.map +7 -0
- package/dist/lib/style/resolve-length.d.ts +16 -0
- package/dist/lib/style/resolve-length.js +54 -0
- package/dist/lib/style/resolve-length.js.map +7 -0
- package/dist/lib/style/responsive.d.ts +31 -0
- package/dist/lib/style/responsive.js +172 -0
- package/dist/lib/style/responsive.js.map +7 -0
- package/dist/lib/style/types.d.ts +338 -0
- package/dist/lib/surface/resolve-surface.d.ts +4 -0
- package/dist/lib/surface/resolve-surface.js +184 -0
- package/dist/lib/surface/resolve-surface.js.map +7 -0
- package/dist/lib/surface/root-surface.d.ts +7 -0
- package/dist/lib/surface/root-surface.js +171 -0
- package/dist/lib/surface/root-surface.js.map +7 -0
- package/dist/lib/surface/transform.d.ts +4 -0
- package/dist/lib/surface/transform.js +16 -0
- package/dist/lib/surface/transform.js.map +7 -0
- package/dist/lib/surface/types.d.ts +132 -0
- package/dist/lib/teardowns.d.ts +14 -0
- package/dist/lib/teardowns.js +50 -0
- package/dist/lib/teardowns.js.map +7 -0
- package/dist/lib/textures/texture-protocol.d.ts +124 -0
- package/dist/lib/textures/texture-protocol.js +40 -0
- package/dist/lib/textures/texture-protocol.js.map +7 -0
- package/dist/lib/textures/texture.d.ts +170 -0
- package/dist/lib/textures/texture.js +385 -0
- package/dist/lib/textures/texture.js.map +7 -0
- package/dist/lib/transitions/bifrost.d.ts +47 -0
- package/dist/lib/transitions/bifrost.js +91 -0
- package/dist/lib/transitions/bifrost.js.map +7 -0
- package/dist/lib/transitions/binding.d.ts +14 -0
- package/dist/lib/transitions/binding.js +35 -0
- package/dist/lib/transitions/binding.js.map +7 -0
- package/dist/lib/transitions/capture.d.ts +21 -0
- package/dist/lib/transitions/capture.js +91 -0
- package/dist/lib/transitions/capture.js.map +7 -0
- package/dist/lib/transitions/common.d.ts +130 -0
- package/dist/lib/transitions/common.js +57 -0
- package/dist/lib/transitions/common.js.map +7 -0
- package/dist/lib/transitions/define-transition.d.ts +64 -0
- package/dist/lib/transitions/define-transition.js +31 -0
- package/dist/lib/transitions/define-transition.js.map +7 -0
- package/dist/lib/transitions/embers-physics.d.ts +114 -0
- package/dist/lib/transitions/embers-physics.js +161 -0
- package/dist/lib/transitions/embers-physics.js.map +7 -0
- package/dist/lib/transitions/embers.d.ts +67 -0
- package/dist/lib/transitions/embers.js +196 -0
- package/dist/lib/transitions/embers.js.map +7 -0
- package/dist/lib/transitions/fade.d.ts +41 -0
- package/dist/lib/transitions/fade.js +31 -0
- package/dist/lib/transitions/fade.js.map +7 -0
- package/dist/lib/transitions/hologram.d.ts +47 -0
- package/dist/lib/transitions/hologram.js +94 -0
- package/dist/lib/transitions/hologram.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js +5 -0
- package/dist/lib/transitions/wasm/bifrost-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.d.ts +1 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js +27 -0
- package/dist/lib/transitions/wasm/bifrost-kernel.js.map +7 -0
- package/dist/lib/transitions/wasm/embers-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/embers-bytes.js +5 -0
- package/dist/lib/transitions/wasm/embers-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/hologram-bytes.d.ts +1 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js +5 -0
- package/dist/lib/transitions/wasm/hologram-bytes.js.map +7 -0
- package/dist/lib/transitions/wasm/kernel.d.ts +7 -0
- package/dist/lib/transitions/wasm/kernel.js +26 -0
- package/dist/lib/transitions/wasm/kernel.js.map +7 -0
- package/dist/lib/types.d.ts +570 -0
- package/dist/lib/update.d.ts +8 -0
- package/dist/lib/update.js +20 -0
- package/dist/lib/update.js.map +7 -0
- package/dist/lib/util/get-2d-context.d.ts +2 -0
- package/dist/lib/util/get-2d-context.js +11 -0
- package/dist/lib/util/get-2d-context.js.map +7 -0
- package/dist/lib/util/get-mouse-coordinates.d.ts +2 -0
- package/dist/lib/util/get-mouse-coordinates.js +32 -0
- package/dist/lib/util/get-mouse-coordinates.js.map +7 -0
- package/dist/lib/util/is-hit.d.ts +11 -0
- package/dist/lib/util/is-hit.js +52 -0
- package/dist/lib/util/is-hit.js.map +7 -0
- package/dist/lib/util/is-transparent.d.ts +1 -0
- package/dist/lib/util/is-transparent.js +8 -0
- package/dist/lib/util/is-transparent.js.map +7 -0
- package/dist/lib/util/pixel-grid-adjustments.d.ts +8 -0
- package/dist/lib/util/pixel-grid-adjustments.js +28 -0
- package/dist/lib/util/pixel-grid-adjustments.js.map +7 -0
- package/dist/lib/util/push-clipping-path.d.ts +6 -0
- package/dist/lib/util/push-clipping-path.js +28 -0
- package/dist/lib/util/push-clipping-path.js.map +7 -0
- package/dist/lib/util/wire-common-events.d.ts +2 -0
- package/dist/lib/util/wire-common-events.js +15 -0
- package/dist/lib/util/wire-common-events.js.map +7 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +7 -0
- package/dist/types.mjs +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/events/dispatch.ts"],
|
|
4
|
+
"sourcesContent": ["import { getInteractionRoot } from '../global-state.js';\nimport { batch } from '../signals/graph.js';\nimport type {\n PibblCursorDefault,\n PibblEventRoot,\n PibblFocusPressDefaultInput,\n PibblFocusTouchDefaultContact,\n PibblFocusTouchDefaultInput,\n PibblInstance,\n PibblInteractionActivation,\n PibblInteractionRegion,\n} from '../types.js';\nimport {\n adaptClipboardEvent,\n isNativeClipboardEventType,\n type PibblAdaptedClipboardEvent,\n} from './adapters/clipboard.js';\nimport {\n adaptDragEvent,\n isNativeDragEventType,\n type PibblAdaptedDragEvent,\n} from './adapters/drag.js';\nimport {\n adaptEditingEvent,\n isNativeEditingEventType,\n type PibblAdaptedEditingEvent,\n} from './adapters/editing.js';\nimport {\n adaptKeyboardFocusEvent,\n isNativeKeyboardFocusEventType,\n type PibblAdaptedKeyboardFocusEvent,\n} from './adapters/keyboard-focus.js';\nimport {\n adaptMouseEvent,\n isNativeMouseEventType,\n type PibblAdaptedMouseEvent,\n} from './adapters/mouse.js';\nimport {\n adaptPointerEvent,\n isNativePointerEventType,\n type PibblAdaptedPointerEvent,\n} from './adapters/pointer.js';\nimport {\n adaptTouchEvent,\n isNativeTouchEventType,\n type PibblAdaptedTouchContact,\n type PibblAdaptedTouchEvent,\n} from './adapters/touch.js';\nimport {\n adaptWheelEvent,\n isNativeWheelEventType,\n type PibblAdaptedWheelEvent,\n} from './adapters/wheel.js';\nimport { planBoundaryTransitions } from './boundary-transitions.js';\nimport type { PibblOriginalEvent } from './event-facade.js';\nimport { buildEventPath } from './event-path.js';\nimport {\n resolveCoordinateOutput,\n resolveCoordinateTarget,\n} from './hit-test.js';\nimport { PibblHitDisposition } from \"./paint-entry.js\";\nimport {\n dispatchCapturedResolverInput,\n dispatchResolvedInput,\n getResolverPointerCapture,\n type PibblResolverInputType,\n} from \"./resolver-input.js\";\nimport { dispatchEventPath } from './propagation.js';\nimport {\n activateLogicalPointerCapture,\n cancelLogicalPointerCapture,\n consumeLogicalPointerCaptureLoss,\n getLogicalPointerCapture,\n processPendingLogicalPointerCapture,\n} from './pointer-capture.js';\nimport {\n releaseTarget,\n type PibblEventNode,\n type PibblEventTargetRegistration,\n} from './registrations.js';\nimport type { PibblEvent, PibblEventMap, PibblEventType } from './types.js';\n\ninterface CursorDefaultOwnership {\n readonly root: PibblInstance;\n readonly releases: readonly (() => void)[];\n}\n\nconst cursorDefaultOwnership = new WeakMap<\n PibblCursorDefault,\n CursorDefaultOwnership\n>();\nconst pointerHoverTargets = new WeakMap<\n PibblEventRoot,\n Map<number, PibblEventNode>\n>();\nconst touchTargets = new WeakMap<\n PibblEventRoot,\n Map<number, PibblEventNode>\n>();\nconst dragHoverTargets = new WeakMap<PibblEventRoot, PibblEventNode>();\n\ninterface ManipulationPointerPress {\n readonly path: readonly PibblEventNode[] | undefined;\n}\n\ninterface PendingManipulationActivation {\n readonly pointerPress: ManipulationPointerPress | undefined;\n readonly mouseDown: PibblInteractionActivation | undefined;\n}\n\nconst manipulationPointerPresses = new WeakMap<\n PibblInstance,\n Map<number, ManipulationPointerPress>\n>();\nconst pendingManipulationActivations = new WeakMap<\n PibblInstance,\n Map<number, PendingManipulationActivation>\n>();\nconst manipulationActivationRoots = new WeakSet<PibblInstance>();\n\n/**\n * Prevents a manipulation gesture from becoming a Canvas activation. This is\n * deliberately an internal controller seam: applications continue to receive\n * ordinary pointer and mouse events through the public event surface.\n */\nexport function suppressManipulationActivation(\n instance: PibblInstance,\n pointerId: number,\n): void {\n const root = getInteractionRoot(instance);\n retainManipulationActivationState(root);\n let pending = pendingManipulationActivations.get(root);\n if (!pending) {\n pending = new Map();\n pendingManipulationActivations.set(root, pending);\n }\n pending.set(pointerId, Object.freeze({\n pointerPress: manipulationPointerPresses.get(root)?.get(pointerId),\n mouseDown: root.interaction.primaryDown,\n }));\n}\n\nexport type PibblNativeEventRoute =\n | 'clipboard'\n | 'drag'\n | 'editing'\n | 'keyboard-focus'\n | 'mouse'\n | 'pointer'\n | 'touch'\n | 'wheel';\n\nexport function dispatchNativeEvent(\n instance: PibblInstance,\n type: PibblEventType,\n nativeEvent: Event,\n): void {\n const root = getInteractionRoot(instance);\n batch(() => {\n dispatchClassifiedNativeEvent(root, type, nativeEvent);\n dispatchObservers(root.eventRoot.observers.get(type), nativeEvent);\n });\n}\n\nexport function dispatchToLogicalTarget<K extends PibblEventType>(\n type: K,\n target: PibblEventNode,\n originalEvent: PibblOriginalEvent<K>,\n relatedTarget: PibblEventNode | null = null,\n sourceEvent?: Event,\n): PibblEventMap[K] | undefined {\n if (!target.live) return undefined;\n return batch(() =>\n dispatchEventPath({\n type,\n target,\n relatedTarget,\n originalEvent,\n sourceEvent,\n })\n );\n}\n\nexport function classifyNativeEventType(\n type: PibblEventType,\n): PibblNativeEventRoute {\n switch (type) {\n case 'pointerover':\n case 'pointerenter':\n case 'pointerdown':\n case 'pointermove':\n case 'pointerrawupdate':\n case 'pointerup':\n case 'pointercancel':\n case 'pointerout':\n case 'pointerleave':\n case 'gotpointercapture':\n case 'lostpointercapture':\n return 'pointer';\n case 'click':\n case 'dblclick':\n case 'auxclick':\n case 'contextmenu':\n case 'mouseover':\n case 'mouseenter':\n case 'mousedown':\n case 'mousemove':\n case 'mouseup':\n case 'mouseout':\n case 'mouseleave':\n return 'mouse';\n case 'touchstart':\n case 'touchmove':\n case 'touchend':\n case 'touchcancel':\n return 'touch';\n case 'wheel':\n return 'wheel';\n case 'keydown':\n case 'keyup':\n case 'focus':\n case 'blur':\n case 'focusin':\n case 'focusout':\n return 'keyboard-focus';\n case 'beforeinput':\n case 'input':\n case 'change':\n case 'compositionstart':\n case 'compositionupdate':\n case 'compositionend':\n case 'select':\n case 'selectionchange':\n return 'editing';\n case 'copy':\n case 'cut':\n case 'paste':\n return 'clipboard';\n case 'dragstart':\n case 'drag':\n case 'dragend':\n case 'dragenter':\n case 'dragleave':\n case 'dragover':\n case 'drop':\n return 'drag';\n }\n return assertNever(type);\n}\n\nfunction dispatchClassifiedNativeEvent(\n root: PibblInstance,\n type: PibblEventType,\n nativeEvent: Event,\n): void {\n const route = classifyNativeEventType(type);\n switch (route) {\n case 'pointer': {\n if (!isNativePointerEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptPointerEvent(root, type, nativeEvent);\n if (input) dispatchPointerEvent(root, input);\n return;\n }\n case 'mouse': {\n if (!isNativeMouseEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptMouseEvent(root, type, nativeEvent);\n if (input) dispatchMouseEvent(root, input);\n return;\n }\n case 'touch': {\n if (!isNativeTouchEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptTouchEvent(root, type, nativeEvent);\n if (input) dispatchTouchEvent(root, input);\n return;\n }\n case 'wheel': {\n if (!isNativeWheelEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptWheelEvent(root, nativeEvent);\n if (input) dispatchWheelEvent(root, input);\n return;\n }\n case 'keyboard-focus': {\n if (!isNativeKeyboardFocusEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptKeyboardFocusEvent(type, nativeEvent);\n if (input) dispatchFocusedNativeEvent(root, input);\n return;\n }\n case 'editing': {\n if (!isNativeEditingEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptEditingEvent(type, nativeEvent);\n if (input) dispatchFocusedNativeEvent(root, input);\n return;\n }\n case 'clipboard': {\n if (!isNativeClipboardEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptClipboardEvent(type, nativeEvent);\n if (input) dispatchFocusedNativeEvent(root, input);\n return;\n }\n case 'drag': {\n if (!isNativeDragEventType(type)) {\n throw nativeRouteMismatch(type, route);\n }\n const input = adaptDragEvent(root, type, nativeEvent);\n if (input) dispatchDragEvent(root, input);\n return;\n }\n }\n return assertNever(route);\n}\n\ntype PibblAdaptedFocusedEvent =\n | PibblAdaptedClipboardEvent\n | PibblAdaptedEditingEvent\n | PibblAdaptedKeyboardFocusEvent;\n\nfunction dispatchFocusedNativeEvent(\n root: PibblInstance,\n input: PibblAdaptedFocusedEvent,\n): void {\n const installedPolicy = root.eventRoot.focusPolicy;\n const policy = installedPolicy?.beforeNativeDispatch ?\n installedPolicy.beforeNativeDispatch(input.type, input.originalEvent) :\n installedPolicy;\n const target = policy?.resolveKeyboardTarget();\n if (!policy || !target || !isLiveNode(root, target)) return;\n\n const event = dispatchToLogicalTarget(\n input.type,\n target,\n input.originalEvent as PibblOriginalEvent<typeof input.type>,\n );\n if (\n (input.type === 'keydown' || input.type === 'keyup') &&\n event &&\n isLiveNode(root, target) &&\n root.eventRoot.focusPolicy === policy &&\n policy.resolveKeyboardTarget() === target\n ) {\n policy.afterDispatch(event);\n }\n}\n\nfunction nativeRouteMismatch(\n type: PibblEventType,\n route: PibblNativeEventRoute,\n): Error {\n return new Error(`Pibbl event ${type} is not valid for the ${route} route.`);\n}\n\n/** Clears dispatch-owned references before a logical node becomes dead. */\nexport function releaseEventNodeState(\n instance: PibblInstance,\n node: PibblEventNode,\n): void {\n const root = getInteractionRoot(instance);\n releasePointerHoverTarget(root.eventRoot, node);\n releaseTouchTarget(root.eventRoot, node);\n releaseDragHoverTarget(root.eventRoot, node);\n const interaction = root.interaction;\n if (node.kind === 'target' && interaction.hoveredRegion === node) {\n const canvas = interaction.pointerCanvas;\n interaction.hoveredRegion = undefined;\n releaseCursor(root);\n if (canvas) applyCursor(root, undefined, canvas);\n }\n interaction.primaryDown = removeActivationNode(\n interaction.primaryDown,\n node,\n );\n interaction.primaryUp = removeActivationNode(interaction.primaryUp, node);\n removeActivationNodeFromMap(interaction.auxiliaryDown, node);\n removeActivationNodeFromMap(interaction.auxiliaryUp, node);\n if (interaction.clickStreakTarget === node) {\n interaction.clickStreakTarget = undefined;\n interaction.clickStreak = 0;\n }\n}\n\nexport function removeInteractionRegion(\n _instance: PibblInstance,\n region: PibblInteractionRegion,\n): void {\n releaseTarget(region);\n}\n\nexport function refreshInteractionCursor(\n instance: PibblInstance,\n region: PibblInteractionRegion,\n): void {\n const root = getInteractionRoot(instance);\n if (\n root.interaction.hoveredRegion === region &&\n root.interaction.pointerCanvas\n ) {\n applyCursor(root, region, root.interaction.pointerCanvas);\n }\n}\n\nexport function updateCursorDefault(\n instance: PibblInstance,\n cursorDefault: PibblCursorDefault,\n): void {\n const root = getInteractionRoot(instance);\n const existing = cursorDefaultOwnership.get(cursorDefault);\n if (existing?.root === root) return;\n releaseCursorDefaultOwnership(cursorDefault);\n const hub = root.eventRoot.nativeListeners;\n if (!hub) return;\n cursorDefaultOwnership.set(cursorDefault, {\n root,\n releases: [hub.acquire('mousemove'), hub.acquire('mouseout')],\n });\n}\n\nexport function removeCursorDefault(\n instance: PibblInstance,\n cursorDefault: PibblCursorDefault,\n): void {\n releaseCursorDefaultOwnership(cursorDefault);\n const root = getInteractionRoot(instance);\n root.cursorDefaults.delete(cursorDefault);\n if (root.interaction.cursorDefault === cursorDefault) {\n const canvas = root.interaction.pointerCanvas;\n releaseCursor(root);\n if (canvas) applyCursor(root, root.interaction.hoveredRegion, canvas);\n }\n}\n\nexport function refreshCursorDefault(instance: PibblInstance): void {\n const root = getInteractionRoot(instance);\n const canvas = root.interaction.pointerCanvas;\n if (canvas) applyCursor(root, root.interaction.hoveredRegion, canvas);\n}\n\nfunction dispatchPointerEvent(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n if (\n input.type !== 'gotpointercapture' &&\n input.type !== 'lostpointercapture'\n ) {\n processPendingLogicalPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n target => dispatchPointerNode('lostpointercapture', target, input),\n target => dispatchPointerNode('gotpointercapture', target, input),\n );\n }\n switch (input.type) {\n case 'pointerover':\n dispatchPointerBoundaryEntry(root, input);\n return;\n case 'pointermove':\n dispatchPointerMove(root, input);\n return;\n case 'pointerout':\n dispatchRootPointerOut(root, input);\n return;\n case 'pointerdown':\n case 'pointerrawupdate':\n dispatchPointerCoordinateEvent(root, input);\n return;\n case 'pointerup':\n dispatchPointerCoordinateEvent(root, input);\n deleteManipulationPointerPress(root, input.originalEvent.pointerId);\n return;\n case 'pointercancel':\n dispatchPointerCancel(root, input);\n deleteManipulationPointerPress(root, input.originalEvent.pointerId);\n return;\n case 'gotpointercapture':\n dispatchGotPointerCapture(root, input);\n return;\n case 'lostpointercapture':\n dispatchLostPointerCapture(root, input);\n return;\n case 'pointerenter':\n case 'pointerleave':\n // Logical boundary events are derived from pointer-specific paths.\n return;\n }\n}\n\nfunction dispatchPointerBoundaryEntry(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const pointerId = input.originalEvent.pointerId;\n const previous = livePointerHover(root, pointerId);\n const next = resolvePointerTarget(root, input);\n if (previous === next) return;\n dispatchPointerTransition(root, previous, next, input, false);\n}\n\nfunction dispatchPointerMove(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const pointerId = input.originalEvent.pointerId;\n const previous = livePointerHover(root, pointerId);\n const next = resolvePointerTarget(root, input, true);\n if (previous === next) {\n if (next) dispatchPointerNode('pointermove', next, input);\n return;\n }\n dispatchPointerTransition(root, previous, next, input, true);\n}\n\nfunction dispatchRootPointerOut(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const pointerId = input.originalEvent.pointerId;\n const previous = livePointerHover(root, pointerId);\n dispatchPointerTransition(root, previous, undefined, input, false);\n}\n\nfunction dispatchPointerTransition(\n root: PibblInstance,\n previous: PibblEventNode | undefined,\n next: PibblEventNode | undefined,\n input: PibblAdaptedPointerEvent,\n dispatchMove: boolean,\n): void {\n const pointerId = input.originalEvent.pointerId;\n const oldPath = previous ? buildEventPath(previous) : [];\n const newPath = next ? buildEventPath(next) : [];\n const plan = planBoundaryTransitions(oldPath, newPath);\n const oldLeaf = oldPath.at(-1);\n const newLeaf = newPath.at(-1);\n\n deletePointerHover(root.eventRoot, pointerId);\n if (oldLeaf?.live) {\n dispatchPointerNode('pointerout', oldLeaf, input, newLeaf ?? null);\n }\n for (const node of plan.exited) {\n if (node.live) {\n dispatchPointerNode('pointerleave', node, input, newLeaf ?? null);\n }\n }\n\n const liveNext = next && isLiveNode(root, next) ? next : undefined;\n if (!liveNext) return;\n\n setPointerHover(root.eventRoot, pointerId, liveNext);\n dispatchPointerNode('pointerover', liveNext, input, oldLeaf ?? null);\n if (!isLiveNode(root, liveNext)) return;\n for (const node of plan.entered) {\n if (!isLiveNode(root, liveNext)) return;\n if (node.live) {\n dispatchPointerNode('pointerenter', node, input, oldLeaf ?? null);\n }\n }\n if (dispatchMove && isLiveNode(root, liveNext)) {\n dispatchPointerNode('pointermove', liveNext, input);\n }\n}\n\nfunction dispatchPointerCoordinateEvent(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const policy = root.eventRoot.focusPolicy;\n const logicalCapture = getLogicalPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n // Capture controls event routing, but a primary press still focuses the\n // target under the pointer. Avoid the extra hit test for captured moves.\n const coordinateTarget = !logicalCapture || input.press ?\n input.type === \"pointerdown\" || input.type === \"pointerup\" ||\n input.type === \"pointercancel\" ?\n resolvePointerInputTarget(root, input) :\n resolveCoordinateTarget(root.eventRoot, input) : undefined;\n const target = logicalCapture ?? coordinateTarget;\n if (input.type === 'pointerdown') {\n recordManipulationPointerPress(root, input.originalEvent.pointerId, coordinateTarget);\n }\n const event = target ? dispatchPointerNode(input.type, target, input) : undefined;\n if (input.press) {\n dispatchPressDefault(root, policy, {\n source: 'pointer',\n target: coordinateTarget,\n event,\n originalEvent: input.originalEvent,\n x: input.press.x,\n y: input.press.y,\n pointerId: input.press.pointerId,\n pointerType: input.press.pointerType,\n });\n }\n}\n\nfunction dispatchPointerCancel(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n dispatchPointerCoordinateEvent(root, input);\n cancelLogicalPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n}\n\nfunction dispatchGotPointerCapture(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const target = activateLogicalPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n if (target) dispatchPointerNode('gotpointercapture', target, input);\n}\n\nfunction dispatchLostPointerCapture(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): void {\n const target = consumeLogicalPointerCaptureLoss(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n if (target) dispatchPointerNode('lostpointercapture', target, input);\n}\n\nfunction resolvePointerTarget(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n deliverInput = false,\n): PibblEventNode | undefined {\n const logicalCapture = getLogicalPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n if (logicalCapture) return logicalCapture;\n const resolverCapture = getResolverPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n if (resolverCapture) {\n if (deliverInput && input.type === \"pointermove\") {\n dispatchCapturedResolverInput(\n resolverCapture,\n \"pointermove\",\n input,\n input.originalEvent,\n );\n }\n return undefined;\n }\n return deliverInput && input.type === \"pointermove\" ?\n resolveCoordinateInputTarget(root, input, \"pointermove\") :\n resolveCoordinateTarget(root.eventRoot, input);\n}\n\nfunction resolvePointerInputTarget(\n root: PibblInstance,\n input: PibblAdaptedPointerEvent,\n): PibblEventTargetRegistration | undefined {\n const type = input.type as \"pointerdown\" | \"pointerup\" | \"pointercancel\";\n const captured = getResolverPointerCapture(\n root.eventRoot,\n input.originalEvent.pointerId,\n );\n if (captured && (type === \"pointerup\" || type === \"pointercancel\")) {\n dispatchCapturedResolverInput(captured, type, input, input.originalEvent);\n return undefined;\n }\n return resolveCoordinateInputTarget(root, input, type);\n}\n\nfunction dispatchPointerNode(\n type: PibblAdaptedPointerEvent['type'],\n target: PibblEventNode,\n input: PibblAdaptedPointerEvent,\n relatedTarget: PibblEventNode | null = null,\n): PibblEvent | undefined {\n if (!target.live) return undefined;\n return dispatchEventPath({\n type,\n target,\n relatedTarget,\n originalEvent: input.originalEvent,\n x: input.x,\n y: input.y,\n });\n}\n\nfunction livePointerHover(\n root: PibblInstance,\n pointerId: number,\n): PibblEventNode | undefined {\n const targets = pointerHoverTargets.get(root.eventRoot);\n const target = targets?.get(pointerId);\n if (!target || isLiveNode(root, target)) return target;\n targets?.delete(pointerId);\n if (targets?.size === 0) pointerHoverTargets.delete(root.eventRoot);\n return undefined;\n}\n\nfunction setPointerHover(\n eventRoot: PibblEventRoot,\n pointerId: number,\n target: PibblEventNode,\n): void {\n let targets = pointerHoverTargets.get(eventRoot);\n if (!targets) {\n targets = new Map();\n pointerHoverTargets.set(eventRoot, targets);\n }\n targets.set(pointerId, target);\n}\n\nfunction deletePointerHover(\n eventRoot: PibblEventRoot,\n pointerId: number,\n): void {\n const targets = pointerHoverTargets.get(eventRoot);\n targets?.delete(pointerId);\n if (targets?.size === 0) pointerHoverTargets.delete(eventRoot);\n}\n\nfunction releasePointerHoverTarget(\n eventRoot: PibblEventRoot,\n target: PibblEventNode,\n): void {\n const targets = pointerHoverTargets.get(eventRoot);\n if (!targets) return;\n for (const [pointerId, hovered] of targets) {\n if (hovered === target) targets.delete(pointerId);\n }\n if (targets.size === 0) pointerHoverTargets.delete(eventRoot);\n}\n\nfunction dispatchTouchEvent(\n root: PibblInstance,\n input: PibblAdaptedTouchEvent,\n): void {\n const policy = root.eventRoot.focusPolicy;\n const groups = new Map<PibblEventNode, PibblAdaptedTouchContact[]>();\n const defaultContacts: PibblFocusTouchDefaultContact[] = [];\n for (const contact of input.changedContacts) {\n const identifier = contact.touch.identifier;\n let target: PibblEventNode | undefined;\n if (input.type === 'touchstart') {\n target = resolveCoordinateTarget(root.eventRoot, contact);\n if (target) setTouchTarget(root.eventRoot, identifier, target);\n else deleteTouchTarget(root.eventRoot, identifier);\n } else {\n target = liveTouchTarget(root, identifier);\n }\n defaultContacts.push({\n identifier,\n target: target?.kind === 'target' ? target : undefined,\n x: contact.x,\n y: contact.y,\n });\n\n if (target) {\n const contacts = groups.get(target);\n if (contacts) contacts.push(contact);\n else groups.set(target, [contact]);\n }\n if (input.type === 'touchend' || input.type === 'touchcancel') {\n deleteTouchTarget(root.eventRoot, identifier);\n }\n }\n\n for (const [target, contacts] of groups) {\n if (!isLiveNode(root, target)) continue;\n const first = contacts[0];\n dispatchEventPath({\n type: input.type,\n target,\n originalEvent: input.originalEvent,\n x: first.x,\n y: first.y,\n });\n }\n\n dispatchTouchDefault(root, policy, {\n type: input.type,\n changedContacts: Object.freeze(defaultContacts),\n activeIdentifiers: Object.freeze(\n Array.from(input.originalEvent.touches, touch => touch.identifier),\n ),\n originalEvent: input.originalEvent,\n });\n}\n\nfunction liveTouchTarget(\n root: PibblInstance,\n identifier: number,\n): PibblEventNode | undefined {\n const target = touchTargets.get(root.eventRoot)?.get(identifier);\n if (!target || isLiveNode(root, target)) return target;\n deleteTouchTarget(root.eventRoot, identifier);\n return undefined;\n}\n\nfunction setTouchTarget(\n eventRoot: PibblEventRoot,\n identifier: number,\n target: PibblEventNode,\n): void {\n let targets = touchTargets.get(eventRoot);\n if (!targets) {\n targets = new Map();\n touchTargets.set(eventRoot, targets);\n }\n targets.set(identifier, target);\n}\n\nfunction deleteTouchTarget(\n eventRoot: PibblEventRoot,\n identifier: number,\n): void {\n const targets = touchTargets.get(eventRoot);\n targets?.delete(identifier);\n if (targets?.size === 0) touchTargets.delete(eventRoot);\n}\n\nfunction releaseTouchTarget(\n eventRoot: PibblEventRoot,\n target: PibblEventNode,\n): void {\n const targets = touchTargets.get(eventRoot);\n if (!targets) return;\n for (const [identifier, owner] of targets) {\n if (owner === target) targets.delete(identifier);\n }\n if (targets.size === 0) touchTargets.delete(eventRoot);\n}\n\nfunction dispatchWheelEvent(\n root: PibblInstance,\n input: PibblAdaptedWheelEvent,\n): void {\n const target = resolveCoordinateInputTarget(root, input, \"wheel\");\n if (!target) return;\n dispatchEventPath({\n type: 'wheel',\n target,\n originalEvent: input.originalEvent,\n x: input.x,\n y: input.y,\n });\n}\n\nfunction dispatchDragEvent(\n root: PibblInstance,\n input: PibblAdaptedDragEvent,\n): void {\n switch (input.type) {\n case 'dragenter':\n reconcileDragTarget(root, input);\n return;\n case 'dragover': {\n const target = reconcileDragTarget(root, input);\n if (target) dispatchDragNode('dragover', target, input);\n return;\n }\n case 'dragleave':\n dispatchDragTransition(\n root,\n liveDragHover(root),\n undefined,\n input,\n );\n return;\n case 'drop': {\n const target = reconcileDragTarget(root, input);\n if (target) dispatchDragNode('drop', target, input);\n dragHoverTargets.delete(root.eventRoot);\n return;\n }\n case 'dragend':\n dispatchDragCoordinateEvent(root, input);\n dragHoverTargets.delete(root.eventRoot);\n return;\n case 'dragstart':\n case 'drag':\n dispatchDragCoordinateEvent(root, input);\n return;\n }\n return assertNever(input.type);\n}\n\nfunction reconcileDragTarget(\n root: PibblInstance,\n input: PibblAdaptedDragEvent,\n): PibblEventNode | undefined {\n const previous = liveDragHover(root);\n const next = resolveCoordinateTarget(root.eventRoot, input);\n if (previous === next) return next;\n return dispatchDragTransition(root, previous, next, input);\n}\n\nfunction dispatchDragTransition(\n root: PibblInstance,\n previous: PibblEventNode | undefined,\n next: PibblEventNode | undefined,\n input: PibblAdaptedDragEvent,\n): PibblEventNode | undefined {\n const oldPath = previous ? buildEventPath(previous) : [];\n const newPath = next ? buildEventPath(next) : [];\n const plan = planBoundaryTransitions(oldPath, newPath);\n const oldLeaf = oldPath.at(-1);\n const newLeaf = newPath.at(-1);\n\n dragHoverTargets.delete(root.eventRoot);\n for (const node of plan.exited) {\n if (node.live) {\n dispatchDragNode('dragleave', node, input, newLeaf ?? null);\n }\n }\n\n const liveNext = next && isLiveNode(root, next) ? next : undefined;\n if (!liveNext) return undefined;\n dragHoverTargets.set(root.eventRoot, liveNext);\n for (const node of plan.entered) {\n if (!isLiveNode(root, liveNext)) {\n dragHoverTargets.delete(root.eventRoot);\n return undefined;\n }\n if (node.live) {\n dispatchDragNode('dragenter', node, input, oldLeaf ?? null);\n }\n }\n return isLiveNode(root, liveNext) ? liveNext : undefined;\n}\n\nfunction dispatchDragCoordinateEvent(\n root: PibblInstance,\n input: PibblAdaptedDragEvent,\n): void {\n const target = resolveCoordinateTarget(root.eventRoot, input);\n if (target) dispatchDragNode(input.type, target, input);\n}\n\nfunction dispatchDragNode(\n type: PibblAdaptedDragEvent['type'],\n target: PibblEventNode,\n input: PibblAdaptedDragEvent,\n relatedTarget: PibblEventNode | null = null,\n): void {\n if (!target.live) return;\n dispatchEventPath({\n type,\n target,\n relatedTarget,\n originalEvent: input.originalEvent,\n x: input.x,\n y: input.y,\n });\n}\n\nfunction liveDragHover(root: PibblInstance): PibblEventNode | undefined {\n const target = dragHoverTargets.get(root.eventRoot);\n if (!target || isLiveNode(root, target)) return target;\n dragHoverTargets.delete(root.eventRoot);\n return undefined;\n}\n\nfunction releaseDragHoverTarget(\n eventRoot: PibblEventRoot,\n target: PibblEventNode,\n): void {\n if (dragHoverTargets.get(eventRoot) === target) {\n dragHoverTargets.delete(eventRoot);\n }\n}\n\nfunction dispatchMouseEvent(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n switch (input.type) {\n case 'mousemove':\n dispatchMouseMove(root, input);\n return;\n case 'mouseout':\n dispatchRootMouseOut(root, input);\n return;\n case 'mousedown':\n case 'mouseup':\n dispatchMouseButton(root, input);\n return;\n case 'click':\n case 'auxclick':\n dispatchActivation(root, input, input.type);\n return;\n case 'dblclick':\n dispatchDoubleClick(root, input);\n return;\n case 'contextmenu':\n dispatchCoordinateEvent(root, input);\n return;\n case 'mouseover':\n case 'mouseenter':\n case 'mouseleave':\n // Logical boundary events are synthesized from movement and root exit.\n return;\n }\n}\n\nfunction dispatchMouseMove(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n const canvas = root.eventRoot.canvas;\n if (!canvas) return;\n root.interaction.pointerCanvas = canvas;\n const previous = liveTarget(root, root.interaction.hoveredRegion);\n const next = resolveCoordinateTarget(root.eventRoot, input);\n if (previous === next) {\n applyCursor(root, next, canvas);\n if (next) dispatchMouseNode('mousemove', next, input);\n return;\n }\n dispatchMouseTransition(root, previous, next, input, canvas);\n}\n\nfunction dispatchRootMouseOut(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n const previous = liveTarget(root, root.interaction.hoveredRegion);\n root.interaction.pointerCanvas = undefined;\n dispatchMouseTransition(root, previous, undefined, input, undefined);\n}\n\nfunction dispatchMouseTransition(\n root: PibblInstance,\n previous: PibblEventTargetRegistration | undefined,\n next: PibblEventTargetRegistration | undefined,\n input: PibblAdaptedMouseEvent,\n pointerCanvas: HTMLCanvasElement | undefined,\n): void {\n const oldPath = previous ? buildEventPath(previous) : [];\n const newPath = next ? buildEventPath(next) : [];\n const plan = planBoundaryTransitions(oldPath, newPath);\n const oldLeaf = oldPath.at(-1);\n const newLeaf = newPath.at(-1);\n\n root.interaction.hoveredRegion = undefined;\n releaseCursor(root);\n if (oldLeaf?.live) {\n dispatchMouseNode('mouseout', oldLeaf, input, newLeaf ?? null);\n }\n for (const node of plan.exited) {\n if (node.live) dispatchMouseNode('mouseleave', node, input, newLeaf ?? null);\n }\n\n const liveNext = liveTarget(root, next);\n if (!liveNext) {\n if (pointerCanvas) applyCursor(root, undefined, pointerCanvas);\n return;\n }\n\n root.interaction.hoveredRegion = liveNext;\n if (pointerCanvas) applyCursor(root, liveNext, pointerCanvas);\n dispatchMouseNode('mouseover', liveNext, input, oldLeaf ?? null);\n if (!liveTarget(root, liveNext)) return;\n for (const node of plan.entered) {\n if (!liveTarget(root, liveNext)) return;\n if (node.live) dispatchMouseNode('mouseenter', node, input, oldLeaf ?? null);\n }\n if (liveTarget(root, liveNext)) {\n dispatchMouseNode('mousemove', liveNext, input);\n }\n}\n\nfunction dispatchMouseButton(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n const policy = root.eventRoot.focusPolicy;\n const target = resolveCoordinateTarget(root.eventRoot, input);\n const path = target ? buildEventPath(target) : undefined;\n const activation = path ? Object.freeze({\n button: input.originalEvent.button,\n path,\n }) : undefined;\n const button = input.originalEvent.button;\n if (input.type === 'mousedown') {\n if (button === 0) {\n root.interaction.primaryDown = activation;\n root.interaction.primaryUp = undefined;\n } else {\n updateActivationMap(root.interaction.auxiliaryDown, button, activation);\n root.interaction.auxiliaryUp.delete(button);\n }\n } else {\n if (button === 0) {\n root.interaction.primaryUp = activation;\n } else {\n updateActivationMap(root.interaction.auxiliaryUp, button, activation);\n }\n }\n const event = target ? dispatchMouseNode(input.type, target, input) : undefined;\n if (input.press) {\n dispatchPressDefault(root, policy, {\n source: 'mouse',\n target,\n event,\n originalEvent: input.originalEvent,\n x: input.press.x,\n y: input.press.y,\n });\n }\n}\n\nfunction dispatchActivation(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n type: 'click' | 'auxclick',\n): void {\n const interaction = root.interaction;\n const button = input.originalEvent.button;\n const down = type === 'click' ?\n interaction.primaryDown :\n interaction.auxiliaryDown.get(button);\n const up = type === 'click' ?\n interaction.primaryUp :\n interaction.auxiliaryUp.get(button);\n const target = activationTarget(\n root,\n down,\n up,\n button,\n type,\n );\n if (type === 'click') {\n interaction.primaryDown = undefined;\n interaction.primaryUp = undefined;\n } else {\n interaction.auxiliaryDown.delete(button);\n interaction.auxiliaryUp.delete(button);\n }\n\n const coordinateTarget = type === \"click\" ?\n resolveCoordinateInputTarget(root, input, \"click\") :\n resolveCoordinateTarget(root.eventRoot, input);\n if (\n type === 'click' &&\n consumeManipulationActivation(root, down, up, coordinateTarget, input.originalEvent)\n ) {\n resetClickStreak(root);\n return;\n }\n if (\n !target ||\n !coordinateTarget ||\n !buildEventPath(coordinateTarget).includes(target)\n ) {\n if (type === 'click') resetClickStreak(root);\n return;\n }\n\n dispatchMouseNode(type, target, input);\n if (type !== 'click') return;\n if (!isLiveNode(root, target)) {\n resetClickStreak(root);\n return;\n }\n if (interaction.clickStreakTarget === target) {\n interaction.clickStreak++;\n } else {\n interaction.clickStreakTarget = target;\n interaction.clickStreak = 1;\n }\n}\n\nfunction dispatchDoubleClick(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n const target = root.interaction.clickStreakTarget;\n if (\n !target ||\n root.interaction.clickStreak < 2 ||\n !isLiveNode(root, target)\n ) {\n return;\n }\n if (!coordinatePathIncludes(root, input, target)) return;\n dispatchMouseNode('dblclick', target, input);\n}\n\nfunction coordinatePathIncludes(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n node: PibblEventNode,\n): boolean {\n const coordinateTarget = resolveCoordinateTarget(root.eventRoot, input);\n return Boolean(\n coordinateTarget && buildEventPath(coordinateTarget).includes(node),\n );\n}\n\nfunction dispatchCoordinateEvent(\n root: PibblInstance,\n input: PibblAdaptedMouseEvent,\n): void {\n const target = input.type === \"contextmenu\" ?\n resolveCoordinateInputTarget(root, input, \"contextmenu\") :\n resolveCoordinateTarget(root.eventRoot, input);\n if (target) dispatchMouseNode(input.type, target, input);\n}\n\nfunction resolveCoordinateInputTarget(\n root: PibblInstance,\n point: Readonly<{ x: number; y: number }> & {\n readonly originalEvent: PointerEvent | WheelEvent | MouseEvent;\n },\n type: PibblResolverInputType,\n): PibblEventTargetRegistration | undefined {\n const output = resolveCoordinateOutput(root.eventRoot, point);\n dispatchResolvedInput(output, type, point, point.originalEvent);\n return output.disposition === PibblHitDisposition.Target ?\n output.target ?? undefined :\n undefined;\n}\n\nfunction dispatchMouseNode(\n type: PibblAdaptedMouseEvent['type'],\n target: PibblEventNode,\n input: PibblAdaptedMouseEvent,\n relatedTarget: PibblEventNode | null = null,\n): PibblEvent | undefined {\n if (!target.live) return undefined;\n return dispatchEventPath({\n type,\n target,\n relatedTarget,\n originalEvent: input.originalEvent,\n x: input.x,\n y: input.y,\n });\n}\n\nfunction dispatchPressDefault(\n root: PibblInstance,\n policy: PibblEventRoot['focusPolicy'],\n input: PibblFocusPressDefaultInput,\n): void {\n if (\n policy &&\n root.eventRoot.focusPolicy === policy &&\n policy.afterPressDispatch\n ) {\n policy.afterPressDispatch(input);\n }\n}\n\nfunction dispatchTouchDefault(\n root: PibblInstance,\n policy: PibblEventRoot['focusPolicy'],\n input: PibblFocusTouchDefaultInput,\n): void {\n if (\n policy &&\n root.eventRoot.focusPolicy === policy &&\n policy.afterTouchDispatch\n ) {\n policy.afterTouchDispatch(input);\n }\n}\n\nfunction activationTarget(\n root: PibblInstance,\n down: PibblInteractionActivation | undefined,\n up: PibblInteractionActivation | undefined,\n button: number,\n type: 'click' | 'auxclick',\n): PibblEventNode | undefined {\n if (\n !down ||\n !up ||\n down.button !== button ||\n up.button !== button ||\n (type === 'click' ? button !== 0 : button === 0)\n ) {\n return undefined;\n }\n const upNodes = new Set(up.path);\n for (let index = down.path.length - 1; index >= 0; index--) {\n const node = down.path[index];\n if (upNodes.has(node) && isLiveNode(root, node)) return node;\n }\n return undefined;\n}\n\nfunction isLiveNode(root: PibblInstance, node: PibblEventNode): boolean {\n if (!node.live || node.owner.eventRoot !== root.eventRoot) return false;\n if (node.kind === 'target') return root.eventRoot.targets.has(node);\n return root.eventRoot.listenersByComponent.get(node.component.id)?.has(node) ??\n false;\n}\n\nfunction liveTarget(\n root: PibblInstance,\n target: PibblEventTargetRegistration | undefined,\n): PibblEventTargetRegistration | undefined {\n return target && isLiveNode(root, target) ? target : undefined;\n}\n\nfunction removeActivationNode(\n activation: PibblInteractionActivation | undefined,\n node: PibblEventNode,\n): PibblInteractionActivation | undefined {\n if (!activation?.path.includes(node)) return activation;\n if (node.kind === 'target') return undefined;\n const path = activation.path.filter(candidate => candidate !== node);\n return path.length > 0 ? Object.freeze({ ...activation, path }) : undefined;\n}\n\nfunction removeActivationNodeFromMap(\n activations: Map<number, PibblInteractionActivation>,\n node: PibblEventNode,\n): void {\n for (const [button, activation] of activations) {\n updateActivationMap(\n activations,\n button,\n removeActivationNode(activation, node),\n );\n }\n}\n\nfunction updateActivationMap(\n activations: Map<number, PibblInteractionActivation>,\n button: number,\n activation: PibblInteractionActivation | undefined,\n): void {\n if (activation) activations.set(button, activation);\n else activations.delete(button);\n}\n\nfunction resetClickStreak(root: PibblInstance): void {\n root.interaction.clickStreakTarget = undefined;\n root.interaction.clickStreak = 0;\n}\n\nfunction recordManipulationPointerPress(\n root: PibblInstance,\n pointerId: number,\n target: PibblEventNode | undefined,\n): void {\n retainManipulationActivationState(root);\n pendingManipulationActivations.get(root)?.delete(pointerId);\n const press = Object.freeze({\n path: target ? Object.freeze(buildEventPath(target)) : undefined,\n });\n let presses = manipulationPointerPresses.get(root);\n if (!presses) {\n presses = new Map();\n manipulationPointerPresses.set(root, presses);\n }\n presses.set(pointerId, press);\n}\n\nfunction deleteManipulationPointerPress(\n root: PibblInstance,\n pointerId: number,\n): void {\n const presses = manipulationPointerPresses.get(root);\n if (!presses) return;\n presses.delete(pointerId);\n if (presses.size === 0) manipulationPointerPresses.delete(root);\n}\n\nfunction retainManipulationActivationState(root: PibblInstance): void {\n if (manipulationActivationRoots.has(root)) return;\n manipulationActivationRoots.add(root);\n root.mainTeardowns.add(() => {\n manipulationPointerPresses.delete(root);\n pendingManipulationActivations.delete(root);\n manipulationActivationRoots.delete(root);\n });\n}\n\nfunction consumeManipulationActivation(\n root: PibblInstance,\n down: PibblInteractionActivation | undefined,\n up: PibblInteractionActivation | undefined,\n coordinateTarget: PibblEventNode | undefined,\n nativeEvent: MouseEvent,\n): boolean {\n const pending = pendingManipulationActivations.get(root);\n if (!pending) return false;\n const pointerId = clickPointerId(nativeEvent);\n if (pointerId !== undefined) {\n const activation = pending.get(pointerId);\n if (!activation || !matchesManipulationActivation(activation, down, up, coordinateTarget)) {\n return false;\n }\n deletePendingManipulationActivation(root, pending, pointerId);\n return true;\n }\n\n let match: number | undefined;\n for (const [candidatePointerId, activation] of pending) {\n if (!matchesManipulationActivation(activation, down, up, coordinateTarget)) continue;\n if (match !== undefined) return false;\n match = candidatePointerId;\n }\n if (match === undefined) return false;\n deletePendingManipulationActivation(root, pending, match);\n return true;\n}\n\nfunction clickPointerId(nativeEvent: MouseEvent): number | undefined {\n const pointerId = Reflect.get(nativeEvent, 'pointerId');\n return typeof pointerId === 'number' && Number.isFinite(pointerId) ?\n pointerId :\n undefined;\n}\n\nfunction deletePendingManipulationActivation(\n root: PibblInstance,\n pending: Map<number, PendingManipulationActivation>,\n pointerId: number,\n): void {\n pending.delete(pointerId);\n if (pending.size === 0) pendingManipulationActivations.delete(root);\n}\n\nfunction matchesManipulationActivation(\n activation: PendingManipulationActivation,\n down: PibblInteractionActivation | undefined,\n up: PibblInteractionActivation | undefined,\n coordinateTarget: PibblEventNode | undefined,\n): boolean {\n if (activation.mouseDown && activation.mouseDown === down) return true;\n const pointerPath = activation.pointerPress?.path;\n const pressTarget = pointerPath?.at(-1);\n if (!pressTarget || !coordinateTarget) return false;\n const coordinatePath = buildEventPath(coordinateTarget);\n if (!coordinatePath.includes(pressTarget)) return false;\n return (!down || down.path.includes(pressTarget)) &&\n (!up || up.path.includes(pressTarget));\n}\n\nfunction dispatchObservers(\n observers: Set<(event: Event) => void> | undefined,\n event: Event,\n): void {\n if (!observers) return;\n for (const observer of Array.from(observers)) {\n if (!observers.has(observer)) continue;\n try {\n observer(event);\n } catch (error) {\n try {\n globalThis.reportError(error);\n } catch {\n // Reporting cannot suppress later Canvas observers.\n }\n }\n }\n}\n\nfunction releaseCursorDefaultOwnership(cursorDefault: PibblCursorDefault): void {\n const ownership = cursorDefaultOwnership.get(cursorDefault);\n if (!ownership) return;\n cursorDefaultOwnership.delete(cursorDefault);\n for (const release of ownership.releases) release();\n}\n\nfunction applyCursor(\n instance: PibblInstance,\n region: PibblInteractionRegion | undefined,\n canvas: HTMLCanvasElement,\n): void {\n const interaction = instance.interaction;\n const cursorDefault = region?.cursor ? undefined : lastCursorDefault(instance);\n const style = region?.cursor ?? cursorDefault?.style;\n if (\n interaction.cursorRegion === region &&\n interaction.cursorDefault === cursorDefault &&\n interaction.cursorCanvas === canvas &&\n interaction.cursorStyle === canvas.style.cursor &&\n style === interaction.cursorStyle\n ) {\n return;\n }\n\n releaseCursor(instance);\n if (style && !canvas.style.cursor) {\n canvas.style.cursor = style;\n if (canvas.style.cursor) {\n interaction.cursorRegion = region;\n interaction.cursorDefault = cursorDefault;\n interaction.cursorCanvas = canvas;\n interaction.cursorStyle = canvas.style.cursor;\n }\n }\n}\n\nfunction lastCursorDefault(instance: PibblInstance): PibblCursorDefault | undefined {\n return Array.from(instance.cursorDefaults).at(-1);\n}\n\nfunction releaseCursor(instance: PibblInstance): void {\n const interaction = instance.interaction;\n const { cursorCanvas, cursorStyle } = interaction;\n if (cursorCanvas && cursorStyle && cursorCanvas.style.cursor === cursorStyle) {\n cursorCanvas.style.removeProperty('cursor');\n }\n interaction.cursorRegion = undefined;\n interaction.cursorDefault = undefined;\n interaction.cursorCanvas = undefined;\n interaction.cursorStyle = undefined;\n}\n\nfunction assertNever(value: never): never {\n throw new Error(`Unhandled Pibbl event route: ${String(value)}`);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PibblEventCapturePropName, PibblEventHandlers, PibblEventPropName, PibblEventType } from './types.js';
|
|
2
|
+
export interface PibblEventDefinition {
|
|
3
|
+
readonly type: PibblEventType;
|
|
4
|
+
readonly prop: PibblEventPropName;
|
|
5
|
+
readonly captureProp: PibblEventCapturePropName;
|
|
6
|
+
readonly family: 'pointer' | 'mouse' | 'touch' | 'wheel' | 'keyboard' | 'focus' | 'input' | 'composition' | 'clipboard' | 'drag';
|
|
7
|
+
readonly bubbles: boolean;
|
|
8
|
+
readonly cancelable: boolean;
|
|
9
|
+
readonly coordinate: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const PIBBL_EVENT_DEFINITIONS: readonly PibblEventDefinition[];
|
|
12
|
+
export declare const PIBBL_EVENT_TYPES: readonly (keyof import("@pibbl/core").PibblEventMap)[];
|
|
13
|
+
/**
|
|
14
|
+
* Returns whether an object supplies any supported Pibbl event callback.
|
|
15
|
+
*
|
|
16
|
+
* @param handlers - Object that may contain Pibbl event handler properties. See
|
|
17
|
+
* {@link PibblEventHandlers} .
|
|
18
|
+
* @returns Whether at least one Pibbl event handler is present.
|
|
19
|
+
*
|
|
20
|
+
* @see {@link PibblEventHandlers}
|
|
21
|
+
*/
|
|
22
|
+
export declare function hasPibblEventHandler(handlers: Readonly<Record<PropertyKey, unknown>> | PibblEventHandlers): boolean;
|
|
23
|
+
export declare function getPibblEventDefinition(type: PibblEventType): PibblEventDefinition | undefined;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const PIBBL_EVENT_DEFINITIONS = Object.freeze([
|
|
2
|
+
{ type: "pointerover", prop: "onPointerOver", captureProp: "onPointerOverCapture", family: "pointer", bubbles: true, cancelable: true, coordinate: true },
|
|
3
|
+
{ type: "pointerenter", prop: "onPointerEnter", captureProp: "onPointerEnterCapture", family: "pointer", bubbles: false, cancelable: false, coordinate: true },
|
|
4
|
+
{ type: "pointerdown", prop: "onPointerDown", captureProp: "onPointerDownCapture", family: "pointer", bubbles: true, cancelable: true, coordinate: true },
|
|
5
|
+
{ type: "pointermove", prop: "onPointerMove", captureProp: "onPointerMoveCapture", family: "pointer", bubbles: true, cancelable: true, coordinate: true },
|
|
6
|
+
{ type: "pointerrawupdate", prop: "onPointerRawUpdate", captureProp: "onPointerRawUpdateCapture", family: "pointer", bubbles: true, cancelable: false, coordinate: true },
|
|
7
|
+
{ type: "pointerup", prop: "onPointerUp", captureProp: "onPointerUpCapture", family: "pointer", bubbles: true, cancelable: true, coordinate: true },
|
|
8
|
+
{ type: "pointercancel", prop: "onPointerCancel", captureProp: "onPointerCancelCapture", family: "pointer", bubbles: true, cancelable: false, coordinate: true },
|
|
9
|
+
{ type: "pointerout", prop: "onPointerOut", captureProp: "onPointerOutCapture", family: "pointer", bubbles: true, cancelable: true, coordinate: true },
|
|
10
|
+
{ type: "pointerleave", prop: "onPointerLeave", captureProp: "onPointerLeaveCapture", family: "pointer", bubbles: false, cancelable: false, coordinate: true },
|
|
11
|
+
{ type: "gotpointercapture", prop: "onGotPointerCapture", captureProp: "onGotPointerCaptureCapture", family: "pointer", bubbles: true, cancelable: false, coordinate: true },
|
|
12
|
+
{ type: "lostpointercapture", prop: "onLostPointerCapture", captureProp: "onLostPointerCaptureCapture", family: "pointer", bubbles: true, cancelable: false, coordinate: true },
|
|
13
|
+
{ type: "click", prop: "onClick", captureProp: "onClickCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
14
|
+
{ type: "dblclick", prop: "onDblClick", captureProp: "onDblClickCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
15
|
+
{ type: "auxclick", prop: "onAuxClick", captureProp: "onAuxClickCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
16
|
+
{ type: "contextmenu", prop: "onContextMenu", captureProp: "onContextMenuCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
17
|
+
{ type: "mouseover", prop: "onMouseOver", captureProp: "onMouseOverCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
18
|
+
{ type: "mouseenter", prop: "onMouseEnter", captureProp: "onMouseEnterCapture", family: "mouse", bubbles: false, cancelable: false, coordinate: true },
|
|
19
|
+
{ type: "mousedown", prop: "onMouseDown", captureProp: "onMouseDownCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
20
|
+
{ type: "mousemove", prop: "onMouseMove", captureProp: "onMouseMoveCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
21
|
+
{ type: "mouseup", prop: "onMouseUp", captureProp: "onMouseUpCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
22
|
+
{ type: "mouseout", prop: "onMouseOut", captureProp: "onMouseOutCapture", family: "mouse", bubbles: true, cancelable: true, coordinate: true },
|
|
23
|
+
{ type: "mouseleave", prop: "onMouseLeave", captureProp: "onMouseLeaveCapture", family: "mouse", bubbles: false, cancelable: false, coordinate: true },
|
|
24
|
+
{ type: "touchstart", prop: "onTouchStart", captureProp: "onTouchStartCapture", family: "touch", bubbles: true, cancelable: true, coordinate: true },
|
|
25
|
+
{ type: "touchmove", prop: "onTouchMove", captureProp: "onTouchMoveCapture", family: "touch", bubbles: true, cancelable: true, coordinate: true },
|
|
26
|
+
{ type: "touchend", prop: "onTouchEnd", captureProp: "onTouchEndCapture", family: "touch", bubbles: true, cancelable: true, coordinate: true },
|
|
27
|
+
{ type: "touchcancel", prop: "onTouchCancel", captureProp: "onTouchCancelCapture", family: "touch", bubbles: true, cancelable: false, coordinate: true },
|
|
28
|
+
{ type: "wheel", prop: "onWheel", captureProp: "onWheelCapture", family: "wheel", bubbles: true, cancelable: true, coordinate: true },
|
|
29
|
+
{ type: "keydown", prop: "onKeyDown", captureProp: "onKeyDownCapture", family: "keyboard", bubbles: true, cancelable: true, coordinate: false },
|
|
30
|
+
{ type: "keyup", prop: "onKeyUp", captureProp: "onKeyUpCapture", family: "keyboard", bubbles: true, cancelable: true, coordinate: false },
|
|
31
|
+
{ type: "focus", prop: "onFocus", captureProp: "onFocusCapture", family: "focus", bubbles: false, cancelable: false, coordinate: false },
|
|
32
|
+
{ type: "blur", prop: "onBlur", captureProp: "onBlurCapture", family: "focus", bubbles: false, cancelable: false, coordinate: false },
|
|
33
|
+
{ type: "focusin", prop: "onFocusIn", captureProp: "onFocusInCapture", family: "focus", bubbles: true, cancelable: false, coordinate: false },
|
|
34
|
+
{ type: "focusout", prop: "onFocusOut", captureProp: "onFocusOutCapture", family: "focus", bubbles: true, cancelable: false, coordinate: false },
|
|
35
|
+
{ type: "beforeinput", prop: "onBeforeInput", captureProp: "onBeforeInputCapture", family: "input", bubbles: true, cancelable: true, coordinate: false },
|
|
36
|
+
{ type: "input", prop: "onInput", captureProp: "onInputCapture", family: "input", bubbles: true, cancelable: false, coordinate: false },
|
|
37
|
+
{ type: "change", prop: "onChange", captureProp: "onChangeCapture", family: "input", bubbles: true, cancelable: false, coordinate: false },
|
|
38
|
+
{ type: "compositionstart", prop: "onCompositionStart", captureProp: "onCompositionStartCapture", family: "composition", bubbles: true, cancelable: true, coordinate: false },
|
|
39
|
+
{ type: "compositionupdate", prop: "onCompositionUpdate", captureProp: "onCompositionUpdateCapture", family: "composition", bubbles: true, cancelable: false, coordinate: false },
|
|
40
|
+
{ type: "compositionend", prop: "onCompositionEnd", captureProp: "onCompositionEndCapture", family: "composition", bubbles: true, cancelable: false, coordinate: false },
|
|
41
|
+
{ type: "select", prop: "onSelect", captureProp: "onSelectCapture", family: "input", bubbles: true, cancelable: false, coordinate: false },
|
|
42
|
+
{ type: "selectionchange", prop: "onSelectionChange", captureProp: "onSelectionChangeCapture", family: "input", bubbles: false, cancelable: false, coordinate: false },
|
|
43
|
+
{ type: "copy", prop: "onCopy", captureProp: "onCopyCapture", family: "clipboard", bubbles: true, cancelable: true, coordinate: false },
|
|
44
|
+
{ type: "cut", prop: "onCut", captureProp: "onCutCapture", family: "clipboard", bubbles: true, cancelable: true, coordinate: false },
|
|
45
|
+
{ type: "paste", prop: "onPaste", captureProp: "onPasteCapture", family: "clipboard", bubbles: true, cancelable: true, coordinate: false },
|
|
46
|
+
{ type: "dragstart", prop: "onDragStart", captureProp: "onDragStartCapture", family: "drag", bubbles: true, cancelable: true, coordinate: true },
|
|
47
|
+
{ type: "drag", prop: "onDrag", captureProp: "onDragCapture", family: "drag", bubbles: true, cancelable: true, coordinate: true },
|
|
48
|
+
{ type: "dragend", prop: "onDragEnd", captureProp: "onDragEndCapture", family: "drag", bubbles: true, cancelable: false, coordinate: true },
|
|
49
|
+
{ type: "dragenter", prop: "onDragEnter", captureProp: "onDragEnterCapture", family: "drag", bubbles: true, cancelable: true, coordinate: true },
|
|
50
|
+
{ type: "dragleave", prop: "onDragLeave", captureProp: "onDragLeaveCapture", family: "drag", bubbles: true, cancelable: false, coordinate: true },
|
|
51
|
+
{ type: "dragover", prop: "onDragOver", captureProp: "onDragOverCapture", family: "drag", bubbles: true, cancelable: true, coordinate: true },
|
|
52
|
+
{ type: "drop", prop: "onDrop", captureProp: "onDropCapture", family: "drag", bubbles: true, cancelable: true, coordinate: true }
|
|
53
|
+
]);
|
|
54
|
+
const PIBBL_EVENT_TYPES = Object.freeze(
|
|
55
|
+
PIBBL_EVENT_DEFINITIONS.map((definition) => definition.type)
|
|
56
|
+
);
|
|
57
|
+
function hasPibblEventHandler(handlers) {
|
|
58
|
+
return PIBBL_EVENT_DEFINITIONS.some(
|
|
59
|
+
(definition) => typeof handlers[definition.prop] === "function" || typeof handlers[definition.captureProp] === "function"
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
const definitionsByType = new Map(
|
|
63
|
+
PIBBL_EVENT_DEFINITIONS.map((definition) => [definition.type, definition])
|
|
64
|
+
);
|
|
65
|
+
function getPibblEventDefinition(type) {
|
|
66
|
+
return definitionsByType.get(type);
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
PIBBL_EVENT_DEFINITIONS,
|
|
70
|
+
PIBBL_EVENT_TYPES,
|
|
71
|
+
getPibblEventDefinition,
|
|
72
|
+
hasPibblEventHandler
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=event-definitions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/events/event-definitions.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n PibblEventCapturePropName,\n PibblEventHandlers,\n PibblEventPropName,\n PibblEventType,\n} from './types.js';\n\nexport interface PibblEventDefinition {\n readonly type: PibblEventType;\n readonly prop: PibblEventPropName;\n readonly captureProp: PibblEventCapturePropName;\n readonly family:\n | 'pointer'\n | 'mouse'\n | 'touch'\n | 'wheel'\n | 'keyboard'\n | 'focus'\n | 'input'\n | 'composition'\n | 'clipboard'\n | 'drag';\n readonly bubbles: boolean;\n readonly cancelable: boolean;\n readonly coordinate: boolean;\n}\n\nexport const PIBBL_EVENT_DEFINITIONS = Object.freeze([\n { type: 'pointerover', prop: 'onPointerOver', captureProp: 'onPointerOverCapture', family: 'pointer', bubbles: true, cancelable: true, coordinate: true },\n { type: 'pointerenter', prop: 'onPointerEnter', captureProp: 'onPointerEnterCapture', family: 'pointer', bubbles: false, cancelable: false, coordinate: true },\n { type: 'pointerdown', prop: 'onPointerDown', captureProp: 'onPointerDownCapture', family: 'pointer', bubbles: true, cancelable: true, coordinate: true },\n { type: 'pointermove', prop: 'onPointerMove', captureProp: 'onPointerMoveCapture', family: 'pointer', bubbles: true, cancelable: true, coordinate: true },\n { type: 'pointerrawupdate', prop: 'onPointerRawUpdate', captureProp: 'onPointerRawUpdateCapture', family: 'pointer', bubbles: true, cancelable: false, coordinate: true },\n { type: 'pointerup', prop: 'onPointerUp', captureProp: 'onPointerUpCapture', family: 'pointer', bubbles: true, cancelable: true, coordinate: true },\n { type: 'pointercancel', prop: 'onPointerCancel', captureProp: 'onPointerCancelCapture', family: 'pointer', bubbles: true, cancelable: false, coordinate: true },\n { type: 'pointerout', prop: 'onPointerOut', captureProp: 'onPointerOutCapture', family: 'pointer', bubbles: true, cancelable: true, coordinate: true },\n { type: 'pointerleave', prop: 'onPointerLeave', captureProp: 'onPointerLeaveCapture', family: 'pointer', bubbles: false, cancelable: false, coordinate: true },\n { type: 'gotpointercapture', prop: 'onGotPointerCapture', captureProp: 'onGotPointerCaptureCapture', family: 'pointer', bubbles: true, cancelable: false, coordinate: true },\n { type: 'lostpointercapture', prop: 'onLostPointerCapture', captureProp: 'onLostPointerCaptureCapture', family: 'pointer', bubbles: true, cancelable: false, coordinate: true },\n { type: 'click', prop: 'onClick', captureProp: 'onClickCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'dblclick', prop: 'onDblClick', captureProp: 'onDblClickCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'auxclick', prop: 'onAuxClick', captureProp: 'onAuxClickCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'contextmenu', prop: 'onContextMenu', captureProp: 'onContextMenuCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mouseover', prop: 'onMouseOver', captureProp: 'onMouseOverCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mouseenter', prop: 'onMouseEnter', captureProp: 'onMouseEnterCapture', family: 'mouse', bubbles: false, cancelable: false, coordinate: true },\n { type: 'mousedown', prop: 'onMouseDown', captureProp: 'onMouseDownCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mousemove', prop: 'onMouseMove', captureProp: 'onMouseMoveCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mouseup', prop: 'onMouseUp', captureProp: 'onMouseUpCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mouseout', prop: 'onMouseOut', captureProp: 'onMouseOutCapture', family: 'mouse', bubbles: true, cancelable: true, coordinate: true },\n { type: 'mouseleave', prop: 'onMouseLeave', captureProp: 'onMouseLeaveCapture', family: 'mouse', bubbles: false, cancelable: false, coordinate: true },\n { type: 'touchstart', prop: 'onTouchStart', captureProp: 'onTouchStartCapture', family: 'touch', bubbles: true, cancelable: true, coordinate: true },\n { type: 'touchmove', prop: 'onTouchMove', captureProp: 'onTouchMoveCapture', family: 'touch', bubbles: true, cancelable: true, coordinate: true },\n { type: 'touchend', prop: 'onTouchEnd', captureProp: 'onTouchEndCapture', family: 'touch', bubbles: true, cancelable: true, coordinate: true },\n { type: 'touchcancel', prop: 'onTouchCancel', captureProp: 'onTouchCancelCapture', family: 'touch', bubbles: true, cancelable: false, coordinate: true },\n { type: 'wheel', prop: 'onWheel', captureProp: 'onWheelCapture', family: 'wheel', bubbles: true, cancelable: true, coordinate: true },\n { type: 'keydown', prop: 'onKeyDown', captureProp: 'onKeyDownCapture', family: 'keyboard', bubbles: true, cancelable: true, coordinate: false },\n { type: 'keyup', prop: 'onKeyUp', captureProp: 'onKeyUpCapture', family: 'keyboard', bubbles: true, cancelable: true, coordinate: false },\n { type: 'focus', prop: 'onFocus', captureProp: 'onFocusCapture', family: 'focus', bubbles: false, cancelable: false, coordinate: false },\n { type: 'blur', prop: 'onBlur', captureProp: 'onBlurCapture', family: 'focus', bubbles: false, cancelable: false, coordinate: false },\n { type: 'focusin', prop: 'onFocusIn', captureProp: 'onFocusInCapture', family: 'focus', bubbles: true, cancelable: false, coordinate: false },\n { type: 'focusout', prop: 'onFocusOut', captureProp: 'onFocusOutCapture', family: 'focus', bubbles: true, cancelable: false, coordinate: false },\n { type: 'beforeinput', prop: 'onBeforeInput', captureProp: 'onBeforeInputCapture', family: 'input', bubbles: true, cancelable: true, coordinate: false },\n { type: 'input', prop: 'onInput', captureProp: 'onInputCapture', family: 'input', bubbles: true, cancelable: false, coordinate: false },\n { type: 'change', prop: 'onChange', captureProp: 'onChangeCapture', family: 'input', bubbles: true, cancelable: false, coordinate: false },\n { type: 'compositionstart', prop: 'onCompositionStart', captureProp: 'onCompositionStartCapture', family: 'composition', bubbles: true, cancelable: true, coordinate: false },\n { type: 'compositionupdate', prop: 'onCompositionUpdate', captureProp: 'onCompositionUpdateCapture', family: 'composition', bubbles: true, cancelable: false, coordinate: false },\n { type: 'compositionend', prop: 'onCompositionEnd', captureProp: 'onCompositionEndCapture', family: 'composition', bubbles: true, cancelable: false, coordinate: false },\n { type: 'select', prop: 'onSelect', captureProp: 'onSelectCapture', family: 'input', bubbles: true, cancelable: false, coordinate: false },\n { type: 'selectionchange', prop: 'onSelectionChange', captureProp: 'onSelectionChangeCapture', family: 'input', bubbles: false, cancelable: false, coordinate: false },\n { type: 'copy', prop: 'onCopy', captureProp: 'onCopyCapture', family: 'clipboard', bubbles: true, cancelable: true, coordinate: false },\n { type: 'cut', prop: 'onCut', captureProp: 'onCutCapture', family: 'clipboard', bubbles: true, cancelable: true, coordinate: false },\n { type: 'paste', prop: 'onPaste', captureProp: 'onPasteCapture', family: 'clipboard', bubbles: true, cancelable: true, coordinate: false },\n { type: 'dragstart', prop: 'onDragStart', captureProp: 'onDragStartCapture', family: 'drag', bubbles: true, cancelable: true, coordinate: true },\n { type: 'drag', prop: 'onDrag', captureProp: 'onDragCapture', family: 'drag', bubbles: true, cancelable: true, coordinate: true },\n { type: 'dragend', prop: 'onDragEnd', captureProp: 'onDragEndCapture', family: 'drag', bubbles: true, cancelable: false, coordinate: true },\n { type: 'dragenter', prop: 'onDragEnter', captureProp: 'onDragEnterCapture', family: 'drag', bubbles: true, cancelable: true, coordinate: true },\n { type: 'dragleave', prop: 'onDragLeave', captureProp: 'onDragLeaveCapture', family: 'drag', bubbles: true, cancelable: false, coordinate: true },\n { type: 'dragover', prop: 'onDragOver', captureProp: 'onDragOverCapture', family: 'drag', bubbles: true, cancelable: true, coordinate: true },\n { type: 'drop', prop: 'onDrop', captureProp: 'onDropCapture', family: 'drag', bubbles: true, cancelable: true, coordinate: true },\n]) as readonly PibblEventDefinition[];\n\nexport const PIBBL_EVENT_TYPES = Object.freeze(\n PIBBL_EVENT_DEFINITIONS.map(definition => definition.type),\n);\n\n/**\n * Returns whether an object supplies any supported Pibbl event callback.\n *\n * @param handlers - Object that may contain Pibbl event handler properties. See\n * {@link PibblEventHandlers} .\n * @returns Whether at least one Pibbl event handler is present.\n *\n * @see {@link PibblEventHandlers}\n */\nexport function hasPibblEventHandler(\n handlers: Readonly<Record<PropertyKey, unknown>> | PibblEventHandlers,\n): boolean {\n return PIBBL_EVENT_DEFINITIONS.some(\n definition =>\n typeof handlers[definition.prop] === 'function' ||\n typeof handlers[definition.captureProp] === 'function',\n );\n}\n\nconst definitionsByType = new Map<PibblEventType, PibblEventDefinition>(\n PIBBL_EVENT_DEFINITIONS.map(definition => [definition.type, definition]),\n);\n\nexport function getPibblEventDefinition(\n type: PibblEventType,\n): PibblEventDefinition | undefined {\n return definitionsByType.get(type);\n}\n"],
|
|
5
|
+
"mappings": "AA2BO,MAAM,0BAA0B,OAAO,OAAO;AAAA,EACnD,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,WAAW,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACxJ,EAAE,MAAM,gBAAgB,MAAM,kBAAkB,aAAa,yBAAyB,QAAQ,WAAW,SAAS,OAAO,YAAY,OAAO,YAAY,KAAK;AAAA,EAC7J,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,WAAW,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACxJ,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,WAAW,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACxJ,EAAE,MAAM,oBAAoB,MAAM,sBAAsB,aAAa,6BAA6B,QAAQ,WAAW,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EACxK,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,WAAW,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAClJ,EAAE,MAAM,iBAAiB,MAAM,mBAAmB,aAAa,0BAA0B,QAAQ,WAAW,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAC/J,EAAE,MAAM,cAAc,MAAM,gBAAgB,aAAa,uBAAuB,QAAQ,WAAW,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACrJ,EAAE,MAAM,gBAAgB,MAAM,kBAAkB,aAAa,yBAAyB,QAAQ,WAAW,SAAS,OAAO,YAAY,OAAO,YAAY,KAAK;AAAA,EAC7J,EAAE,MAAM,qBAAqB,MAAM,uBAAuB,aAAa,8BAA8B,QAAQ,WAAW,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAC3K,EAAE,MAAM,sBAAsB,MAAM,wBAAwB,aAAa,+BAA+B,QAAQ,WAAW,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAC9K,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACpI,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC7I,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC7I,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACtJ,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAChJ,EAAE,MAAM,cAAc,MAAM,gBAAgB,aAAa,uBAAuB,QAAQ,SAAS,SAAS,OAAO,YAAY,OAAO,YAAY,KAAK;AAAA,EACrJ,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAChJ,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAChJ,EAAE,MAAM,WAAW,MAAM,aAAa,aAAa,oBAAoB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC1I,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC7I,EAAE,MAAM,cAAc,MAAM,gBAAgB,aAAa,uBAAuB,QAAQ,SAAS,SAAS,OAAO,YAAY,OAAO,YAAY,KAAK;AAAA,EACrJ,EAAE,MAAM,cAAc,MAAM,gBAAgB,aAAa,uBAAuB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACnJ,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAChJ,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC7I,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EACvJ,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EACpI,EAAE,MAAM,WAAW,MAAM,aAAa,aAAa,oBAAoB,QAAQ,YAAY,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EAC9I,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,YAAY,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EACxI,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,SAAS,SAAS,OAAO,YAAY,OAAO,YAAY,MAAM;AAAA,EACvI,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,QAAQ,SAAS,SAAS,OAAO,YAAY,OAAO,YAAY,MAAM;AAAA,EACpI,EAAE,MAAM,WAAW,MAAM,aAAa,aAAa,oBAAoB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EAC5I,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EAC/I,EAAE,MAAM,eAAe,MAAM,iBAAiB,aAAa,wBAAwB,QAAQ,SAAS,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EACvJ,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EACtI,EAAE,MAAM,UAAU,MAAM,YAAY,aAAa,mBAAmB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EACzI,EAAE,MAAM,oBAAoB,MAAM,sBAAsB,aAAa,6BAA6B,QAAQ,eAAe,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EAC5K,EAAE,MAAM,qBAAqB,MAAM,uBAAuB,aAAa,8BAA8B,QAAQ,eAAe,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EAChL,EAAE,MAAM,kBAAkB,MAAM,oBAAoB,aAAa,2BAA2B,QAAQ,eAAe,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EACvK,EAAE,MAAM,UAAU,MAAM,YAAY,aAAa,mBAAmB,QAAQ,SAAS,SAAS,MAAM,YAAY,OAAO,YAAY,MAAM;AAAA,EACzI,EAAE,MAAM,mBAAmB,MAAM,qBAAqB,aAAa,4BAA4B,QAAQ,SAAS,SAAS,OAAO,YAAY,OAAO,YAAY,MAAM;AAAA,EACrK,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,QAAQ,aAAa,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EACtI,EAAE,MAAM,OAAO,MAAM,SAAS,aAAa,gBAAgB,QAAQ,aAAa,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EACnI,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,kBAAkB,QAAQ,aAAa,SAAS,MAAM,YAAY,MAAM,YAAY,MAAM;AAAA,EACzI,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,QAAQ,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC/I,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,QAAQ,QAAQ,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAChI,EAAE,MAAM,WAAW,MAAM,aAAa,aAAa,oBAAoB,QAAQ,QAAQ,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAC1I,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,QAAQ,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC/I,EAAE,MAAM,aAAa,MAAM,eAAe,aAAa,sBAAsB,QAAQ,QAAQ,SAAS,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAChJ,EAAE,MAAM,YAAY,MAAM,cAAc,aAAa,qBAAqB,QAAQ,QAAQ,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAAA,EAC5I,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,QAAQ,QAAQ,SAAS,MAAM,YAAY,MAAM,YAAY,KAAK;AAClI,CAAC;AAEM,MAAM,oBAAoB,OAAO;AAAA,EACtC,wBAAwB,IAAI,gBAAc,WAAW,IAAI;AAC3D;AAWO,SAAS,qBACd,UACS;AACT,SAAO,wBAAwB;AAAA,IAC7B,gBACE,OAAO,SAAS,WAAW,IAAI,MAAM,cACrC,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,EAChD;AACF;AAEA,MAAM,oBAAoB,IAAI;AAAA,EAC5B,wBAAwB,IAAI,gBAAc,CAAC,WAAW,MAAM,UAAU,CAAC;AACzE;AAEO,SAAS,wBACd,MACkC;AAClC,SAAO,kBAAkB,IAAI,IAAI;AACnC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PibblEventNode } from './registrations.js';
|
|
2
|
+
import type { PibblEvent, PibblEventMap, PibblEventPhase, PibblEventTarget, PibblEventType } from './types.js';
|
|
3
|
+
export type PibblOriginalEvent<K extends PibblEventType> = PibblEventMap[K] extends PibblEvent<infer TOriginal> ? TOriginal : Event;
|
|
4
|
+
export interface CreatePibblEventInput<K extends PibblEventType> {
|
|
5
|
+
readonly type: K;
|
|
6
|
+
readonly target: PibblEventNode;
|
|
7
|
+
readonly path: readonly PibblEventNode[];
|
|
8
|
+
readonly relatedTarget?: PibblEventNode | null;
|
|
9
|
+
readonly originalEvent: PibblOriginalEvent<K>;
|
|
10
|
+
readonly sourceEvent?: Event;
|
|
11
|
+
/** Root-logical coordinate supplied by the family adapter. */
|
|
12
|
+
readonly x?: number;
|
|
13
|
+
/** Root-logical coordinate supplied by the family adapter. */
|
|
14
|
+
readonly y?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function createPibblEvent<K extends PibblEventType>(input: CreatePibblEventInput<K>): PibblEventMap[K];
|
|
17
|
+
export declare function setPibblEventInvocation(event: PibblEvent, currentTarget: PibblEventTarget, eventPhase: PibblEventPhase): void;
|
|
18
|
+
export declare function isPibblPropagationStopped(event: PibblEvent): boolean;
|
|
19
|
+
export declare function isPibblImmediatePropagationStopped(event: PibblEvent): boolean;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getPibblEventDefinition
|
|
3
|
+
} from "./event-definitions.js";
|
|
4
|
+
const states = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
function createPibblEvent(input) {
|
|
6
|
+
const definition = requiredDefinition(input.type);
|
|
7
|
+
const originalEvent = input.originalEvent;
|
|
8
|
+
const cancelable = definition.cancelable && originalEvent.cancelable;
|
|
9
|
+
const publicPath = Object.freeze(
|
|
10
|
+
input.path.map((node) => node.publicTarget)
|
|
11
|
+
);
|
|
12
|
+
const state = {
|
|
13
|
+
currentTarget: input.target.publicTarget,
|
|
14
|
+
eventPhase: 2,
|
|
15
|
+
defaultPrevented: cancelable && originalEvent.defaultPrevented,
|
|
16
|
+
propagationStopped: false,
|
|
17
|
+
immediatePropagationStopped: false
|
|
18
|
+
};
|
|
19
|
+
const facade = {
|
|
20
|
+
type: input.type,
|
|
21
|
+
target: input.target.publicTarget,
|
|
22
|
+
relatedTarget: input.relatedTarget?.publicTarget ?? null,
|
|
23
|
+
bubbles: definition.bubbles,
|
|
24
|
+
cancelable,
|
|
25
|
+
timeStamp: originalEvent.timeStamp,
|
|
26
|
+
originalEvent,
|
|
27
|
+
sourceEvent: input.sourceEvent,
|
|
28
|
+
get currentTarget() {
|
|
29
|
+
return state.currentTarget;
|
|
30
|
+
},
|
|
31
|
+
get eventPhase() {
|
|
32
|
+
return state.eventPhase;
|
|
33
|
+
},
|
|
34
|
+
get defaultPrevented() {
|
|
35
|
+
return state.defaultPrevented;
|
|
36
|
+
},
|
|
37
|
+
composedPath() {
|
|
38
|
+
return publicPath;
|
|
39
|
+
},
|
|
40
|
+
preventDefault() {
|
|
41
|
+
if (!cancelable) return;
|
|
42
|
+
state.defaultPrevented = true;
|
|
43
|
+
originalEvent.preventDefault();
|
|
44
|
+
},
|
|
45
|
+
stopPropagation() {
|
|
46
|
+
state.propagationStopped = true;
|
|
47
|
+
originalEvent.stopPropagation();
|
|
48
|
+
},
|
|
49
|
+
stopImmediatePropagation() {
|
|
50
|
+
state.propagationStopped = true;
|
|
51
|
+
state.immediatePropagationStopped = true;
|
|
52
|
+
originalEvent.stopImmediatePropagation();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
states.set(facade, state);
|
|
56
|
+
projectFamilyFields(facade, definition, input);
|
|
57
|
+
return facade;
|
|
58
|
+
}
|
|
59
|
+
function setPibblEventInvocation(event, currentTarget, eventPhase) {
|
|
60
|
+
const state = requiredState(event);
|
|
61
|
+
state.currentTarget = currentTarget;
|
|
62
|
+
state.eventPhase = eventPhase;
|
|
63
|
+
}
|
|
64
|
+
function isPibblPropagationStopped(event) {
|
|
65
|
+
return requiredState(event).propagationStopped;
|
|
66
|
+
}
|
|
67
|
+
function isPibblImmediatePropagationStopped(event) {
|
|
68
|
+
return requiredState(event).immediatePropagationStopped;
|
|
69
|
+
}
|
|
70
|
+
function requiredState(event) {
|
|
71
|
+
const state = states.get(event);
|
|
72
|
+
if (!state) throw new Error("Pibbl event facade state is unavailable.");
|
|
73
|
+
return state;
|
|
74
|
+
}
|
|
75
|
+
function requiredDefinition(type) {
|
|
76
|
+
const definition = getPibblEventDefinition(type);
|
|
77
|
+
if (!definition) throw new Error(`Unsupported Pibbl event type: ${type}`);
|
|
78
|
+
return definition;
|
|
79
|
+
}
|
|
80
|
+
function projectFamilyFields(facade, definition, input) {
|
|
81
|
+
const original = input.originalEvent;
|
|
82
|
+
if (definition.coordinate) {
|
|
83
|
+
Object.assign(facade, { x: input.x ?? 0, y: input.y ?? 0 });
|
|
84
|
+
}
|
|
85
|
+
switch (definition.family) {
|
|
86
|
+
case "pointer":
|
|
87
|
+
projectMouseFields(facade, original);
|
|
88
|
+
Object.assign(facade, pick(original, [
|
|
89
|
+
"pointerId",
|
|
90
|
+
"width",
|
|
91
|
+
"height",
|
|
92
|
+
"pressure",
|
|
93
|
+
"tangentialPressure",
|
|
94
|
+
"tiltX",
|
|
95
|
+
"tiltY",
|
|
96
|
+
"twist",
|
|
97
|
+
"pointerType",
|
|
98
|
+
"isPrimary"
|
|
99
|
+
]));
|
|
100
|
+
break;
|
|
101
|
+
case "mouse":
|
|
102
|
+
projectMouseFields(facade, original);
|
|
103
|
+
break;
|
|
104
|
+
case "touch":
|
|
105
|
+
projectModifierFields(facade, original);
|
|
106
|
+
Object.assign(facade, pick(original, [
|
|
107
|
+
"touches",
|
|
108
|
+
"targetTouches",
|
|
109
|
+
"changedTouches"
|
|
110
|
+
]));
|
|
111
|
+
break;
|
|
112
|
+
case "wheel":
|
|
113
|
+
projectMouseFields(facade, original);
|
|
114
|
+
Object.assign(facade, pick(original, [
|
|
115
|
+
"deltaX",
|
|
116
|
+
"deltaY",
|
|
117
|
+
"deltaZ",
|
|
118
|
+
"deltaMode"
|
|
119
|
+
]));
|
|
120
|
+
break;
|
|
121
|
+
case "keyboard":
|
|
122
|
+
projectModifierFields(facade, original);
|
|
123
|
+
Object.assign(facade, pick(original, [
|
|
124
|
+
"key",
|
|
125
|
+
"code",
|
|
126
|
+
"location",
|
|
127
|
+
"repeat",
|
|
128
|
+
"isComposing"
|
|
129
|
+
]));
|
|
130
|
+
break;
|
|
131
|
+
case "input":
|
|
132
|
+
if (definition.type === "beforeinput" || definition.type === "input") {
|
|
133
|
+
Object.assign(facade, pick(original, [
|
|
134
|
+
"data",
|
|
135
|
+
"dataTransfer",
|
|
136
|
+
"inputType",
|
|
137
|
+
"isComposing"
|
|
138
|
+
]));
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
case "composition":
|
|
142
|
+
Object.assign(facade, pick(original, ["data"]));
|
|
143
|
+
break;
|
|
144
|
+
case "clipboard":
|
|
145
|
+
Object.assign(facade, pick(original, ["clipboardData"]));
|
|
146
|
+
break;
|
|
147
|
+
case "drag":
|
|
148
|
+
projectMouseFields(facade, original);
|
|
149
|
+
Object.assign(facade, pick(original, ["dataTransfer"]));
|
|
150
|
+
break;
|
|
151
|
+
case "focus":
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function projectMouseFields(facade, original) {
|
|
156
|
+
projectModifierFields(facade, original);
|
|
157
|
+
Object.assign(facade, pick(original, [
|
|
158
|
+
"clientX",
|
|
159
|
+
"clientY",
|
|
160
|
+
"screenX",
|
|
161
|
+
"screenY",
|
|
162
|
+
"movementX",
|
|
163
|
+
"movementY",
|
|
164
|
+
"button",
|
|
165
|
+
"buttons",
|
|
166
|
+
"detail"
|
|
167
|
+
]));
|
|
168
|
+
}
|
|
169
|
+
function projectModifierFields(facade, original) {
|
|
170
|
+
Object.assign(facade, pick(original, [
|
|
171
|
+
"altKey",
|
|
172
|
+
"ctrlKey",
|
|
173
|
+
"metaKey",
|
|
174
|
+
"shiftKey"
|
|
175
|
+
]));
|
|
176
|
+
}
|
|
177
|
+
function pick(value, keys) {
|
|
178
|
+
const result = {};
|
|
179
|
+
for (const key of keys) result[key] = value[key];
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
export {
|
|
183
|
+
createPibblEvent,
|
|
184
|
+
isPibblImmediatePropagationStopped,
|
|
185
|
+
isPibblPropagationStopped,
|
|
186
|
+
setPibblEventInvocation
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=event-facade.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/events/event-facade.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n getPibblEventDefinition,\n type PibblEventDefinition,\n} from './event-definitions.js';\nimport type { PibblEventNode } from './registrations.js';\nimport type {\n PibblEvent,\n PibblEventMap,\n PibblEventPhase,\n PibblEventTarget,\n PibblEventType,\n} from './types.js';\n\nexport type PibblOriginalEvent<K extends PibblEventType> =\n PibblEventMap[K] extends PibblEvent<infer TOriginal> ? TOriginal : Event;\n\nexport interface CreatePibblEventInput<K extends PibblEventType> {\n readonly type: K;\n readonly target: PibblEventNode;\n readonly path: readonly PibblEventNode[];\n readonly relatedTarget?: PibblEventNode | null;\n readonly originalEvent: PibblOriginalEvent<K>;\n readonly sourceEvent?: Event;\n /** Root-logical coordinate supplied by the family adapter. */\n readonly x?: number;\n /** Root-logical coordinate supplied by the family adapter. */\n readonly y?: number;\n}\n\ninterface PibblEventFacadeState {\n currentTarget: PibblEventTarget;\n eventPhase: PibblEventPhase;\n defaultPrevented: boolean;\n propagationStopped: boolean;\n immediatePropagationStopped: boolean;\n}\n\nconst states = new WeakMap<object, PibblEventFacadeState>();\n\nexport function createPibblEvent<K extends PibblEventType>(\n input: CreatePibblEventInput<K>,\n): PibblEventMap[K] {\n const definition = requiredDefinition(input.type);\n const originalEvent = input.originalEvent;\n const cancelable = definition.cancelable && originalEvent.cancelable;\n const publicPath = Object.freeze(\n input.path.map(node => node.publicTarget),\n );\n const state: PibblEventFacadeState = {\n currentTarget: input.target.publicTarget,\n eventPhase: 2,\n defaultPrevented: cancelable && originalEvent.defaultPrevented,\n propagationStopped: false,\n immediatePropagationStopped: false,\n };\n const facade = {\n type: input.type,\n target: input.target.publicTarget,\n relatedTarget: input.relatedTarget?.publicTarget ?? null,\n bubbles: definition.bubbles,\n cancelable,\n timeStamp: originalEvent.timeStamp,\n originalEvent,\n sourceEvent: input.sourceEvent,\n get currentTarget() {\n return state.currentTarget;\n },\n get eventPhase() {\n return state.eventPhase;\n },\n get defaultPrevented() {\n return state.defaultPrevented;\n },\n composedPath() {\n return publicPath;\n },\n preventDefault() {\n if (!cancelable) return;\n state.defaultPrevented = true;\n originalEvent.preventDefault();\n },\n stopPropagation() {\n state.propagationStopped = true;\n originalEvent.stopPropagation();\n },\n stopImmediatePropagation() {\n state.propagationStopped = true;\n state.immediatePropagationStopped = true;\n originalEvent.stopImmediatePropagation();\n },\n } as PibblEvent & Record<string, unknown>;\n states.set(facade, state);\n projectFamilyFields(facade, definition, input);\n return facade as unknown as PibblEventMap[K];\n}\n\nexport function setPibblEventInvocation(\n event: PibblEvent,\n currentTarget: PibblEventTarget,\n eventPhase: PibblEventPhase,\n): void {\n const state = requiredState(event);\n state.currentTarget = currentTarget;\n state.eventPhase = eventPhase;\n}\n\nexport function isPibblPropagationStopped(event: PibblEvent): boolean {\n return requiredState(event).propagationStopped;\n}\n\nexport function isPibblImmediatePropagationStopped(event: PibblEvent): boolean {\n return requiredState(event).immediatePropagationStopped;\n}\n\nfunction requiredState(event: PibblEvent): PibblEventFacadeState {\n const state = states.get(event);\n if (!state) throw new Error('Pibbl event facade state is unavailable.');\n return state;\n}\n\nfunction requiredDefinition(type: PibblEventType): PibblEventDefinition {\n const definition = getPibblEventDefinition(type);\n if (!definition) throw new Error(`Unsupported Pibbl event type: ${type}`);\n return definition;\n}\n\nfunction projectFamilyFields<K extends PibblEventType>(\n facade: PibblEvent & Record<string, unknown>,\n definition: PibblEventDefinition,\n input: CreatePibblEventInput<K>,\n): void {\n const original: unknown = input.originalEvent;\n if (definition.coordinate) {\n Object.assign(facade, { x: input.x ?? 0, y: input.y ?? 0 });\n }\n\n switch (definition.family) {\n case 'pointer':\n projectMouseFields(facade, original as PointerEvent);\n Object.assign(facade, pick(original as PointerEvent, [\n 'pointerId',\n 'width',\n 'height',\n 'pressure',\n 'tangentialPressure',\n 'tiltX',\n 'tiltY',\n 'twist',\n 'pointerType',\n 'isPrimary',\n ]));\n break;\n case 'mouse':\n projectMouseFields(facade, original as MouseEvent);\n break;\n case 'touch':\n projectModifierFields(facade, original as TouchEvent);\n Object.assign(facade, pick(original as TouchEvent, [\n 'touches',\n 'targetTouches',\n 'changedTouches',\n ]));\n break;\n case 'wheel':\n projectMouseFields(facade, original as WheelEvent);\n Object.assign(facade, pick(original as WheelEvent, [\n 'deltaX',\n 'deltaY',\n 'deltaZ',\n 'deltaMode',\n ]));\n break;\n case 'keyboard':\n projectModifierFields(facade, original as KeyboardEvent);\n Object.assign(facade, pick(original as KeyboardEvent, [\n 'key',\n 'code',\n 'location',\n 'repeat',\n 'isComposing',\n ]));\n break;\n case 'input':\n if (definition.type === 'beforeinput' || definition.type === 'input') {\n Object.assign(facade, pick(original as InputEvent, [\n 'data',\n 'dataTransfer',\n 'inputType',\n 'isComposing',\n ]));\n }\n break;\n case 'composition':\n Object.assign(facade, pick(original as CompositionEvent, ['data']));\n break;\n case 'clipboard':\n Object.assign(facade, pick(original as ClipboardEvent, ['clipboardData']));\n break;\n case 'drag':\n projectMouseFields(facade, original as DragEvent);\n Object.assign(facade, pick(original as DragEvent, ['dataTransfer']));\n break;\n case 'focus':\n break;\n }\n}\n\nfunction projectMouseFields(\n facade: PibblEvent & Record<string, unknown>,\n original: MouseEvent,\n): void {\n projectModifierFields(facade, original);\n Object.assign(facade, pick(original, [\n 'clientX',\n 'clientY',\n 'screenX',\n 'screenY',\n 'movementX',\n 'movementY',\n 'button',\n 'buttons',\n 'detail',\n ]));\n}\n\nfunction projectModifierFields(\n facade: PibblEvent & Record<string, unknown>,\n original: MouseEvent | TouchEvent | KeyboardEvent,\n): void {\n Object.assign(facade, pick(original, [\n 'altKey',\n 'ctrlKey',\n 'metaKey',\n 'shiftKey',\n ]));\n}\n\nfunction pick<T extends object, K extends keyof T>(\n value: T,\n keys: readonly K[],\n): Pick<T, K> {\n const result = {} as Pick<T, K>;\n for (const key of keys) result[key] = value[key];\n return result;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { GLOBAL_STATE } from "../global-state.js";
|
|
2
|
+
function buildEventPath(target) {
|
|
3
|
+
const components = [];
|
|
4
|
+
let owner = target.owner;
|
|
5
|
+
let component = target.component;
|
|
6
|
+
while (component) {
|
|
7
|
+
components.push({ component, owner });
|
|
8
|
+
if (component.parent) {
|
|
9
|
+
component = component.parent;
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const eventParent = owner.eventParent;
|
|
13
|
+
const parentOwner = owner.parent ? GLOBAL_STATE.pibblInstances.get(owner.parent) : void 0;
|
|
14
|
+
if (!eventParent || !parentOwner) break;
|
|
15
|
+
component = eventParent;
|
|
16
|
+
owner = parentOwner;
|
|
17
|
+
}
|
|
18
|
+
components.reverse();
|
|
19
|
+
const path = [];
|
|
20
|
+
for (const { component: component2, owner: owner2 } of components) {
|
|
21
|
+
const listeners = owner2.eventRoot.listenersByComponent.get(
|
|
22
|
+
component2.id
|
|
23
|
+
);
|
|
24
|
+
if (listeners) {
|
|
25
|
+
for (const listener of listeners) {
|
|
26
|
+
if (listener.live && listener.component === component2) {
|
|
27
|
+
path.push(listener);
|
|
28
|
+
if (listener === target) return Object.freeze(path);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (target.kind === "target" && component2 === target.component) {
|
|
33
|
+
path.push(target);
|
|
34
|
+
return Object.freeze(path);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (target.kind === "listener") path.push(target);
|
|
38
|
+
return Object.freeze(path);
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
buildEventPath
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=event-path.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/events/event-path.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n PibblEventNode,\n} from './registrations.js';\nimport { GLOBAL_STATE } from '../global-state.js';\nimport type { PibblComponentRefs, PibblInstance } from '../types.js';\n\ninterface PibblEventPathComponent {\n readonly component: PibblComponentRefs<any>;\n readonly owner: PibblInstance;\n}\n\n/** Builds one immutable root-to-target snapshot for a logical dispatch. */\nexport function buildEventPath(\n target: PibblEventNode,\n): readonly PibblEventNode[] {\n const components: PibblEventPathComponent[] = [];\n let owner = target.owner;\n let component: PibblComponentRefs<any> | undefined = target.component;\n while (component) {\n components.push({ component, owner });\n if (component.parent) {\n component = component.parent;\n continue;\n }\n\n const eventParent = owner.eventParent;\n const parentOwner = owner.parent ?\n GLOBAL_STATE.pibblInstances.get(owner.parent) :\n undefined;\n if (!eventParent || !parentOwner) break;\n component = eventParent;\n owner = parentOwner;\n }\n components.reverse();\n\n const path: PibblEventNode[] = [];\n for (const { component, owner } of components) {\n const listeners = owner.eventRoot.listenersByComponent.get(\n component.id,\n );\n if (listeners) {\n for (const listener of listeners) {\n if (listener.live && listener.component === component) {\n path.push(listener);\n if (listener === target) return Object.freeze(path);\n }\n }\n }\n if (target.kind === 'target' && component === target.component) {\n path.push(target);\n return Object.freeze(path);\n }\n }\n // A live listener normally appears in its component bucket. Retaining it as\n // the leaf keeps an already-validated dispatch snapshot structurally whole.\n if (target.kind === 'listener') path.push(target);\n return Object.freeze(path);\n}\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,oBAAoB;AAStB,SAAS,eACd,QAC2B;AAC3B,QAAM,aAAwC,CAAC;AAC/C,MAAI,QAAQ,OAAO;AACnB,MAAI,YAAiD,OAAO;AAC5D,SAAO,WAAW;AAChB,eAAW,KAAK,EAAE,WAAW,MAAM,CAAC;AACpC,QAAI,UAAU,QAAQ;AACpB,kBAAY,UAAU;AACtB;AAAA,IACF;AAEA,UAAM,cAAc,MAAM;AAC1B,UAAM,cAAc,MAAM,SACxB,aAAa,eAAe,IAAI,MAAM,MAAM,IAC5C;AACF,QAAI,CAAC,eAAe,CAAC,YAAa;AAClC,gBAAY;AACZ,YAAQ;AAAA,EACV;AACA,aAAW,QAAQ;AAEnB,QAAM,OAAyB,CAAC;AAChC,aAAW,EAAE,WAAAA,YAAW,OAAAC,OAAM,KAAK,YAAY;AAC7C,UAAM,YAAYA,OAAM,UAAU,qBAAqB;AAAA,MACrDD,WAAU;AAAA,IACZ;AACA,QAAI,WAAW;AACb,iBAAW,YAAY,WAAW;AAChC,YAAI,SAAS,QAAQ,SAAS,cAAcA,YAAW;AACrD,eAAK,KAAK,QAAQ;AAClB,cAAI,aAAa,OAAQ,QAAO,OAAO,OAAO,IAAI;AAAA,QACpD;AAAA,MACF;AAAA,IACF;AACA,QAAI,OAAO,SAAS,YAAYA,eAAc,OAAO,WAAW;AAC9D,WAAK,KAAK,MAAM;AAChB,aAAO,OAAO,OAAO,IAAI;AAAA,IAC3B;AAAA,EACF;AAGA,MAAI,OAAO,SAAS,WAAY,MAAK,KAAK,MAAM;AAChD,SAAO,OAAO,OAAO,IAAI;AAC3B;",
|
|
6
|
+
"names": ["component", "owner"]
|
|
7
|
+
}
|