@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,277 @@
|
|
|
1
|
+
import type { closestPoint, closestX, interpolateX, linearInterpolation } from "./hover-queries.js";
|
|
2
|
+
import type { HoverData } from "./hover-data.js";
|
|
3
|
+
import type { PibblNode, SignalValue } from "@pibbl/core";
|
|
4
|
+
import type { PointAccessor } from "./point-types.js";
|
|
5
|
+
import type { ResolvedLinearScale, ScaleId } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Scale lookup context supplied when evaluating a hover query.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link ScaleId}
|
|
10
|
+
* @see {@link ResolvedLinearScale}
|
|
11
|
+
* @see {@link HoverQuery}
|
|
12
|
+
*/
|
|
13
|
+
export interface HoverQueryContext {
|
|
14
|
+
/**
|
|
15
|
+
* Looks up a resolved linear scale by its identifier. See {@link ResolvedLinearScale}.
|
|
16
|
+
* @param id - Identity of the scale needed by the query. See {@link ScaleId}.
|
|
17
|
+
* @returns The resolved linear scale. See {@link ResolvedLinearScale}.
|
|
18
|
+
*/
|
|
19
|
+
scale(id: ScaleId): ResolvedLinearScale;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A query that resolves reactive hover input into a hit or no result.
|
|
23
|
+
*
|
|
24
|
+
* @param context - Pointer position and scale lookup for this query. See {@link HoverQueryContext}
|
|
25
|
+
* .
|
|
26
|
+
* @returns The current match, or undefined when there is no match.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link HoverQueryContext}
|
|
29
|
+
* @see {@link HoverDataProps}
|
|
30
|
+
* @see {@link closestPoint}
|
|
31
|
+
*/
|
|
32
|
+
export type HoverQuery<T> = (context: HoverQueryContext) => T | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Authored inputs for HoverData, including the declared data and presentation options.
|
|
35
|
+
*
|
|
36
|
+
* @see {@link HoverQuery}
|
|
37
|
+
* @see {@link PibblNode}
|
|
38
|
+
* @see {@link HoverData}
|
|
39
|
+
*/
|
|
40
|
+
export interface HoverDataProps<T> {
|
|
41
|
+
/** Query that selects a style rule or resolves a hover result. See {@link HoverQuery}. */
|
|
42
|
+
readonly query: HoverQuery<T> & (T extends PromiseLike<unknown> ? never : unknown);
|
|
43
|
+
/**
|
|
44
|
+
* Descendant content or the callback that supplies it. See {@link PibblNode}.
|
|
45
|
+
* @param result - Current query match, or undefined when there is no match.
|
|
46
|
+
* @returns Pibbl content to render for the hover state. See {@link PibblNode}.
|
|
47
|
+
*/
|
|
48
|
+
readonly children: (result: T | undefined) => PibblNode;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Data and coordinate accessors describing one series available to hover queries.
|
|
52
|
+
*
|
|
53
|
+
* @see {@link SignalValue}
|
|
54
|
+
* @see {@link PointAccessor}
|
|
55
|
+
* @see {@link HoverSeriesMap}
|
|
56
|
+
* @see {@link ClosestPointHit}
|
|
57
|
+
* @see {@link ClosestXOptions}
|
|
58
|
+
*/
|
|
59
|
+
export interface HoverSeries<D> {
|
|
60
|
+
/**
|
|
61
|
+
* Application data supplied to the component or reported by the event. See {@link SignalValue}.
|
|
62
|
+
*/
|
|
63
|
+
readonly data: SignalValue<readonly D[]>;
|
|
64
|
+
/** Property key or callback extracting the horizontal domain coordinate. See {@link PointAccessor}. */
|
|
65
|
+
readonly x: PointAccessor<D>;
|
|
66
|
+
/** Property key or callback extracting the vertical domain coordinate. See {@link PointAccessor}. */
|
|
67
|
+
readonly y: PointAccessor<D>;
|
|
68
|
+
/**
|
|
69
|
+
* Returns whether a datum contributes drawable or queryable coordinates. See {@link HoverSeries}
|
|
70
|
+
* .
|
|
71
|
+
* @param datum - Datum to test.
|
|
72
|
+
* @param index - Zero-based index in the source data.
|
|
73
|
+
* @param data - Complete source data array.
|
|
74
|
+
* @returns Whether this datum should participate in the series or query.
|
|
75
|
+
*/
|
|
76
|
+
readonly defined?: (datum: D, index: number, data: readonly D[]) => boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A logical point used to query or anchor hover presentation.
|
|
80
|
+
*
|
|
81
|
+
* @see {@link HoverHit}
|
|
82
|
+
* @see {@link ClosestPointOptions}
|
|
83
|
+
* @see {@link HoverSample}
|
|
84
|
+
*/
|
|
85
|
+
export interface HoverPoint {
|
|
86
|
+
/**
|
|
87
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
88
|
+
* {@link HoverPoint}.
|
|
89
|
+
*/
|
|
90
|
+
readonly x: number;
|
|
91
|
+
/**
|
|
92
|
+
* Vertical coordinate or displacement in the containing coordinate system. See
|
|
93
|
+
* {@link HoverPoint}.
|
|
94
|
+
*/
|
|
95
|
+
readonly y: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The selected datum, source index, coordinates, and presentation anchor of a hover result.
|
|
99
|
+
*
|
|
100
|
+
* @see {@link HoverPoint}
|
|
101
|
+
* @see {@link ClosestPointHit}
|
|
102
|
+
* @see {@link ClosestXHit}
|
|
103
|
+
*/
|
|
104
|
+
export interface HoverHit<D> {
|
|
105
|
+
/** The original data item selected by this result. See {@link HoverHit}. */
|
|
106
|
+
readonly datum: D;
|
|
107
|
+
/** Index of the selected datum in its source data. See {@link HoverHit}. */
|
|
108
|
+
readonly index: number;
|
|
109
|
+
/**
|
|
110
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
111
|
+
* {@link HoverHit}.
|
|
112
|
+
*/
|
|
113
|
+
readonly x: number;
|
|
114
|
+
/**
|
|
115
|
+
* Vertical coordinate or displacement in the containing coordinate system. See {@link HoverHit}
|
|
116
|
+
* .
|
|
117
|
+
*/
|
|
118
|
+
readonly y: number;
|
|
119
|
+
/** Logical point to which the content or result is anchored. See {@link HoverPoint}. */
|
|
120
|
+
readonly anchor: HoverPoint;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Named series participating in a multi-series hover query.
|
|
124
|
+
*
|
|
125
|
+
* @see {@link HoverSeries}
|
|
126
|
+
* @see {@link ClosestPointHit}
|
|
127
|
+
* @see {@link ClosestPointOptions}
|
|
128
|
+
*/
|
|
129
|
+
export type HoverSeriesMap = Readonly<Record<string, HoverSeries<any>>>;
|
|
130
|
+
/**
|
|
131
|
+
* A closest-point result retaining the selected series identity and distance.
|
|
132
|
+
*
|
|
133
|
+
* @see {@link HoverSeriesMap}
|
|
134
|
+
* @see {@link HoverSeries}
|
|
135
|
+
* @see {@link HoverHit}
|
|
136
|
+
*/
|
|
137
|
+
export type ClosestPointHit<S extends HoverSeriesMap> = {
|
|
138
|
+
[K in keyof S & string]: S[K] extends HoverSeries<infer D> ? HoverHit<D> & {
|
|
139
|
+
/**
|
|
140
|
+
* The named series or series collection participating in the query. See
|
|
141
|
+
* {@link ClosestPointHit}.
|
|
142
|
+
*/
|
|
143
|
+
readonly series: K;
|
|
144
|
+
/** Distance measured in this query or guide's coordinate system. See {@link ClosestPointHit}. */
|
|
145
|
+
readonly distance: number;
|
|
146
|
+
} : never;
|
|
147
|
+
}[keyof S & string];
|
|
148
|
+
/**
|
|
149
|
+
* Series, query point, scales, and distance limit for closest-point hover selection.
|
|
150
|
+
*
|
|
151
|
+
* @see {@link HoverSeriesMap}
|
|
152
|
+
* @see {@link SignalValue}
|
|
153
|
+
* @see {@link HoverPoint}
|
|
154
|
+
* @see {@link ScaleId}
|
|
155
|
+
* @see {@link closestPoint}
|
|
156
|
+
*/
|
|
157
|
+
export interface ClosestPointOptions<S extends HoverSeriesMap> {
|
|
158
|
+
/**
|
|
159
|
+
* The named series or series collection participating in the query. See
|
|
160
|
+
* {@link ClosestPointOptions}.
|
|
161
|
+
*/
|
|
162
|
+
readonly series: S;
|
|
163
|
+
/**
|
|
164
|
+
* Position of the geometry, source, or selected resize handle. See {@link SignalValue},
|
|
165
|
+
* {@link HoverPoint}.
|
|
166
|
+
*/
|
|
167
|
+
readonly position: SignalValue<HoverPoint | null>;
|
|
168
|
+
/** The scale used to map horizontal data coordinates. See {@link ScaleId}. */
|
|
169
|
+
readonly xScale: ScaleId;
|
|
170
|
+
/** The scale used to map vertical data coordinates. See {@link ScaleId}. */
|
|
171
|
+
readonly yScale: ScaleId;
|
|
172
|
+
/** Maximum distance accepted by the query. See {@link ClosestPointOptions}. */
|
|
173
|
+
readonly maxDistance?: number;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* A series, x-coordinate, scales, and optional maximum x delta for hover selection.
|
|
177
|
+
*
|
|
178
|
+
* @see {@link HoverSeries}
|
|
179
|
+
* @see {@link SignalValue}
|
|
180
|
+
* @see {@link ScaleId}
|
|
181
|
+
* @see {@link InterpolateXOptions}
|
|
182
|
+
* @see {@link closestX}
|
|
183
|
+
*/
|
|
184
|
+
export interface ClosestXOptions<D> {
|
|
185
|
+
/** The named series or series collection participating in the query. See {@link HoverSeries}. */
|
|
186
|
+
readonly series: HoverSeries<D>;
|
|
187
|
+
/**
|
|
188
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
189
|
+
* {@link SignalValue}.
|
|
190
|
+
*/
|
|
191
|
+
readonly x: SignalValue<number | null>;
|
|
192
|
+
/** The scale used to map horizontal data coordinates. See {@link ScaleId}. */
|
|
193
|
+
readonly xScale: ScaleId;
|
|
194
|
+
/** The scale used to map vertical data coordinates. See {@link ScaleId}. */
|
|
195
|
+
readonly yScale: ScaleId;
|
|
196
|
+
/** Maximum x-coordinate difference accepted by the query. See {@link ClosestXOptions}. */
|
|
197
|
+
readonly maxDelta?: number;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* The nearest datum in x together with its delta from the query coordinate.
|
|
201
|
+
*
|
|
202
|
+
* @see {@link HoverHit}
|
|
203
|
+
* @see {@link closestX}
|
|
204
|
+
*/
|
|
205
|
+
export interface ClosestXHit<D> extends HoverHit<D> {
|
|
206
|
+
/**
|
|
207
|
+
* Difference between the selected datum's x coordinate and the query x coordinate. See
|
|
208
|
+
* {@link ClosestXHit}.
|
|
209
|
+
*/
|
|
210
|
+
readonly delta: number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Interpolates between two y values at a normalized position between samples.
|
|
214
|
+
*
|
|
215
|
+
* @param beforeY - Vertical value before the sample position.
|
|
216
|
+
* @param afterY - Vertical value after the sample position.
|
|
217
|
+
* @param fraction - Fraction of the distance from the before point to the after point.
|
|
218
|
+
* @returns The interpolated vertical value.
|
|
219
|
+
*
|
|
220
|
+
* @see {@link InterpolateXOptions}
|
|
221
|
+
* @see {@link linearInterpolation}
|
|
222
|
+
*/
|
|
223
|
+
export type HoverInterpolation = (beforeY: number, afterY: number, fraction: number) => number;
|
|
224
|
+
/**
|
|
225
|
+
* Interpolation, gap, and duplicate-x policies for sampling a series at a requested x.
|
|
226
|
+
*
|
|
227
|
+
* @see {@link ClosestXOptions}
|
|
228
|
+
* @see {@link HoverInterpolation}
|
|
229
|
+
* @see {@link interpolateX}
|
|
230
|
+
*/
|
|
231
|
+
export interface InterpolateXOptions<D> extends Omit<ClosestXOptions<D>, "maxDelta"> {
|
|
232
|
+
/** Computes y between the neighboring samples at the requested fraction. See {@link HoverInterpolation}. */
|
|
233
|
+
readonly interpolation: HoverInterpolation;
|
|
234
|
+
/**
|
|
235
|
+
* Maximum gap between neighboring samples that permits interpolation. See
|
|
236
|
+
* {@link InterpolateXOptions}.
|
|
237
|
+
*/
|
|
238
|
+
readonly maxGap?: number;
|
|
239
|
+
/** Policy for resolving samples with the same x coordinate. See {@link InterpolateXOptions}. */
|
|
240
|
+
readonly duplicateX?: "error" | "first" | "last";
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* An exact datum hit or an interpolated value with its neighboring data and anchor.
|
|
244
|
+
*
|
|
245
|
+
* @see {@link HoverHit}
|
|
246
|
+
* @see {@link HoverPoint}
|
|
247
|
+
* @see {@link interpolateX}
|
|
248
|
+
*/
|
|
249
|
+
export type HoverSample<D> = (HoverHit<D> & {
|
|
250
|
+
/** Selects the kind of geometry, material, or result. See {@link HoverSample}. */
|
|
251
|
+
readonly kind: "exact";
|
|
252
|
+
}) | {
|
|
253
|
+
/** Selects the kind of geometry, material, or result. See {@link HoverSample}. */
|
|
254
|
+
readonly kind: "interpolated";
|
|
255
|
+
/**
|
|
256
|
+
* Horizontal coordinate or displacement in the containing coordinate system. See
|
|
257
|
+
* {@link HoverSample}.
|
|
258
|
+
*/
|
|
259
|
+
readonly x: number;
|
|
260
|
+
/**
|
|
261
|
+
* Vertical coordinate or displacement in the containing coordinate system. See
|
|
262
|
+
* {@link HoverSample}.
|
|
263
|
+
*/
|
|
264
|
+
readonly y: number;
|
|
265
|
+
/** Source datum preceding the interpolated x coordinate. See {@link HoverSample}. */
|
|
266
|
+
readonly before: D;
|
|
267
|
+
/** Source datum following the interpolated x coordinate. See {@link HoverSample}. */
|
|
268
|
+
readonly after: D;
|
|
269
|
+
/** Source index of the sample before the interpolated position. See {@link HoverSample}. */
|
|
270
|
+
readonly beforeIndex: number;
|
|
271
|
+
/** Source index of the sample after the interpolated position. See {@link HoverSample}. */
|
|
272
|
+
readonly afterIndex: number;
|
|
273
|
+
/** Normalized share or position represented by this value. See {@link HoverSample}. */
|
|
274
|
+
readonly fraction: number;
|
|
275
|
+
/** Logical point to which the content or result is anchored. See {@link HoverPoint}. */
|
|
276
|
+
readonly anchor: HoverPoint;
|
|
277
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PieSliceGeometry } from "./pie-slices.js";
|
|
2
|
+
import type { PieLayoutSlice, PieLabelPlacement } from "./pie-types.js";
|
|
3
|
+
import type { HoverBounds } from "./hover-placement.js";
|
|
4
|
+
interface Metrics {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
left: number;
|
|
8
|
+
ascent: number;
|
|
9
|
+
}
|
|
10
|
+
/** Checks the closest point of a complete label box, not just its corners. */
|
|
11
|
+
export declare function boxOutsideInnerCircle(x: number, y: number, width: number, height: number, cx: number, cy: number, innerRadius: number): boolean;
|
|
12
|
+
export declare function layoutPie<D>(slices: readonly PieSliceGeometry<D>[], cx: number, cy: number, radius: number, innerRadius: number, bounds: HoverBounds, font: string, gap: number, placement: PieLabelPlacement, label: ((slice: PieSliceGeometry<D>) => string) | undefined, measure: (text: string) => Metrics): readonly PieLayoutSlice<D>[];
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
function boxOutsideInnerCircle(x, y, width, height, cx, cy, innerRadius) {
|
|
2
|
+
if (innerRadius === 0) return true;
|
|
3
|
+
return Math.hypot(
|
|
4
|
+
Math.max(x - cx, 0, cx - (x + width)),
|
|
5
|
+
Math.max(y - cy, 0, cy - (y + height))
|
|
6
|
+
) >= innerRadius;
|
|
7
|
+
}
|
|
8
|
+
function layoutPie(slices, cx, cy, radius, innerRadius, bounds, font, gap, placement, label, measure) {
|
|
9
|
+
const labels = slices.map(() => void 0);
|
|
10
|
+
const lanes = [[], []];
|
|
11
|
+
function placed(text, m, x, y, location, leader) {
|
|
12
|
+
return Object.freeze({
|
|
13
|
+
status: "placed",
|
|
14
|
+
placement: location,
|
|
15
|
+
text,
|
|
16
|
+
font,
|
|
17
|
+
x,
|
|
18
|
+
y,
|
|
19
|
+
width: m.width,
|
|
20
|
+
height: m.height,
|
|
21
|
+
textX: x + m.left,
|
|
22
|
+
textY: y + m.ascent,
|
|
23
|
+
leader
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const inBounds = (x, y, w, h) => x >= bounds.x && y >= bounds.y && x + w <= bounds.x + bounds.width && y + h <= bounds.y + bounds.height;
|
|
27
|
+
slices.forEach((slice, index) => {
|
|
28
|
+
if (!label) return;
|
|
29
|
+
const text = label(slice);
|
|
30
|
+
if (typeof text !== "string" || /[\r\n]/u.test(text))
|
|
31
|
+
throw new TypeError("PieLayout: label must return a single-line string.");
|
|
32
|
+
const hide = (reason) => {
|
|
33
|
+
labels[index] = Object.freeze({ status: "hidden", reason, text });
|
|
34
|
+
};
|
|
35
|
+
if (!text || !radius || slice.endAngle <= slice.startAngle) {
|
|
36
|
+
hide("empty");
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const m = measure(text);
|
|
40
|
+
const mid = (slice.startAngle + slice.endAngle) / 2;
|
|
41
|
+
const labelRadius = innerRadius === 0 ? radius * 0.65 : innerRadius + (radius - innerRadius) * 0.65;
|
|
42
|
+
const x = cx + Math.cos(mid) * labelRadius - m.width / 2;
|
|
43
|
+
const y = cy + Math.sin(mid) * labelRadius - m.height / 2;
|
|
44
|
+
const corners = [
|
|
45
|
+
[x, y],
|
|
46
|
+
[x + m.width, y],
|
|
47
|
+
[x, y + m.height],
|
|
48
|
+
[x + m.width, y + m.height]
|
|
49
|
+
];
|
|
50
|
+
const fits = inBounds(x, y, m.width, m.height) && corners.every(([px, py]) => {
|
|
51
|
+
const dx = px - cx, dy = py - cy;
|
|
52
|
+
const relative = (Math.atan2(dy, dx) - mid + Math.PI * 3) % (Math.PI * 2) - Math.PI;
|
|
53
|
+
return Math.hypot(dx, dy) <= radius && Math.abs(relative) <= Math.min(Math.PI / 2, (slice.endAngle - slice.startAngle) / 2);
|
|
54
|
+
}) && boxOutsideInnerCircle(x, y, m.width, m.height, cx, cy, innerRadius);
|
|
55
|
+
if (placement !== "outside" && fits) {
|
|
56
|
+
labels[index] = placed(text, m, x, y, "inside");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (placement === "inside") {
|
|
60
|
+
hide("inside-fit");
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const anchor = [
|
|
64
|
+
cx + Math.cos(mid) * radius,
|
|
65
|
+
cy + Math.sin(mid) * radius
|
|
66
|
+
];
|
|
67
|
+
lanes[Math.cos(mid) < 0 ? 0 : 1].push({
|
|
68
|
+
index,
|
|
69
|
+
text,
|
|
70
|
+
metrics: m,
|
|
71
|
+
anchor,
|
|
72
|
+
y: 0
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
lanes.forEach((lane, side) => {
|
|
76
|
+
lane.sort((a, b) => a.anchor[1] - b.anchor[1] || a.index - b.index);
|
|
77
|
+
let used = 0;
|
|
78
|
+
const accepted = lane.filter((row) => {
|
|
79
|
+
const x = side === 0 ? cx - radius - gap - row.metrics.width : cx + radius + gap;
|
|
80
|
+
const next = used + (used ? gap : 0) + row.metrics.height;
|
|
81
|
+
if (next > bounds.height || !inBounds(x, bounds.y, row.metrics.width, row.metrics.height)) {
|
|
82
|
+
labels[row.index] = Object.freeze({
|
|
83
|
+
status: "hidden",
|
|
84
|
+
reason: "space",
|
|
85
|
+
text: row.text
|
|
86
|
+
});
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
used = next;
|
|
90
|
+
return true;
|
|
91
|
+
});
|
|
92
|
+
const direction = side === 0 ? -1 : 1;
|
|
93
|
+
const rail = cx + direction * (radius + gap / 2);
|
|
94
|
+
const upper = accepted.filter((row) => row.anchor[1] < cy).reverse();
|
|
95
|
+
const lower = accepted.filter((row) => row.anchor[1] >= cy);
|
|
96
|
+
const visible = /* @__PURE__ */ new Set();
|
|
97
|
+
for (const [rows, sign] of [
|
|
98
|
+
[upper, -1],
|
|
99
|
+
[lower, 1]
|
|
100
|
+
]) {
|
|
101
|
+
let cursor = cy + sign * gap / 2;
|
|
102
|
+
for (const row of rows) {
|
|
103
|
+
const dx = row.anchor[0] - cx;
|
|
104
|
+
const dy = row.anchor[1] - cy;
|
|
105
|
+
const half = row.metrics.height / 2;
|
|
106
|
+
const ideal = cy + dy * (radius + gap) / radius;
|
|
107
|
+
const tangent = dy === 0 ? cy : cy + (radius * radius - dx * (rail - cx)) / dy;
|
|
108
|
+
const center = sign < 0 ? Math.min(ideal, tangent, cursor - half) : Math.max(ideal, tangent, cursor + half);
|
|
109
|
+
row.y = center - half;
|
|
110
|
+
if (row.y < bounds.y || row.y + row.metrics.height > bounds.y + bounds.height) {
|
|
111
|
+
labels[row.index] = Object.freeze({
|
|
112
|
+
status: "hidden",
|
|
113
|
+
reason: "space",
|
|
114
|
+
text: row.text
|
|
115
|
+
});
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
visible.add(row);
|
|
119
|
+
cursor = center + sign * (half + gap);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const row of accepted) {
|
|
123
|
+
if (!visible.has(row)) continue;
|
|
124
|
+
const x = side === 0 ? cx - radius - gap - row.metrics.width : cx + radius + gap;
|
|
125
|
+
const edge = side === 0 ? x + row.metrics.width : x;
|
|
126
|
+
const center = row.y + row.metrics.height / 2;
|
|
127
|
+
const leader = Object.freeze([
|
|
128
|
+
Object.freeze(row.anchor),
|
|
129
|
+
Object.freeze([rail, center]),
|
|
130
|
+
Object.freeze([edge, center])
|
|
131
|
+
]);
|
|
132
|
+
labels[row.index] = placed(
|
|
133
|
+
row.text,
|
|
134
|
+
row.metrics,
|
|
135
|
+
x,
|
|
136
|
+
row.y,
|
|
137
|
+
"outside",
|
|
138
|
+
leader
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return Object.freeze(
|
|
143
|
+
slices.map(
|
|
144
|
+
(slice, index) => Object.freeze({
|
|
145
|
+
...slice,
|
|
146
|
+
cx,
|
|
147
|
+
cy,
|
|
148
|
+
radius,
|
|
149
|
+
innerRadius,
|
|
150
|
+
label: labels[index]
|
|
151
|
+
})
|
|
152
|
+
)
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
export {
|
|
156
|
+
boxOutsideInnerCircle,
|
|
157
|
+
layoutPie
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=layout-pie.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/layout-pie.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PieSliceGeometry } from \"./pie-slices.js\";\nimport type {\n PieLayoutSlice,\n PieLabelLayout,\n PieLabelPlacement,\n} from \"./pie-types.js\";\nimport type { HoverBounds } from \"./hover-placement.js\";\ninterface Metrics {\n width: number;\n height: number;\n left: number;\n ascent: number;\n}\n/** Checks the closest point of a complete label box, not just its corners. */\nexport function boxOutsideInnerCircle(\n x: number,\n y: number,\n width: number,\n height: number,\n cx: number,\n cy: number,\n innerRadius: number,\n): boolean {\n if (innerRadius === 0) return true;\n return (\n Math.hypot(\n Math.max(x - cx, 0, cx - (x + width)),\n Math.max(y - cy, 0, cy - (y + height)),\n ) >= innerRadius\n );\n}\nexport function layoutPie<D>(\n slices: readonly PieSliceGeometry<D>[],\n cx: number,\n cy: number,\n radius: number,\n innerRadius: number,\n bounds: HoverBounds,\n font: string,\n gap: number,\n placement: PieLabelPlacement,\n label: ((slice: PieSliceGeometry<D>) => string) | undefined,\n measure: (text: string) => Metrics,\n): readonly PieLayoutSlice<D>[] {\n const labels: (PieLabelLayout | undefined)[] = slices.map(() => undefined);\n const lanes: {\n index: number;\n text: string;\n metrics: Metrics;\n anchor: [number, number];\n y: number;\n }[][] = [[], []];\n function placed(\n text: string,\n m: Metrics,\n x: number,\n y: number,\n location: \"inside\" | \"outside\",\n leader?: readonly (readonly [number, number])[],\n ): PieLabelLayout {\n return Object.freeze({\n status: \"placed\",\n placement: location,\n text,\n font,\n x,\n y,\n width: m.width,\n height: m.height,\n textX: x + m.left,\n textY: y + m.ascent,\n leader,\n });\n }\n const inBounds = (x: number, y: number, w: number, h: number) =>\n x >= bounds.x &&\n y >= bounds.y &&\n x + w <= bounds.x + bounds.width &&\n y + h <= bounds.y + bounds.height;\n slices.forEach((slice, index) => {\n if (!label) return;\n const text = label(slice);\n if (typeof text !== \"string\" || /[\\r\\n]/u.test(text))\n throw new TypeError(\"PieLayout: label must return a single-line string.\");\n const hide = (reason: \"empty\" | \"inside-fit\" | \"space\") => {\n labels[index] = Object.freeze({ status: \"hidden\", reason, text });\n };\n if (!text || !radius || slice.endAngle <= slice.startAngle) {\n hide(\"empty\");\n return;\n }\n const m = measure(text);\n const mid = (slice.startAngle + slice.endAngle) / 2;\n const labelRadius =\n innerRadius === 0\n ? radius * 0.65\n : innerRadius + (radius - innerRadius) * 0.65;\n const x = cx + Math.cos(mid) * labelRadius - m.width / 2;\n const y = cy + Math.sin(mid) * labelRadius - m.height / 2;\n const corners = [\n [x, y],\n [x + m.width, y],\n [x, y + m.height],\n [x + m.width, y + m.height],\n ];\n // A disk intersected with the midpoint half-plane is convex. Restrict wide\n // sectors to it so corner containment also proves containment of the box.\n const fits =\n inBounds(x, y, m.width, m.height) &&\n corners.every(([px, py]) => {\n const dx = px - cx,\n dy = py - cy;\n const relative =\n ((Math.atan2(dy, dx) - mid + Math.PI * 3) % (Math.PI * 2)) - Math.PI;\n return (\n Math.hypot(dx, dy) <= radius &&\n Math.abs(relative) <=\n Math.min(Math.PI / 2, (slice.endAngle - slice.startAngle) / 2)\n );\n }) &&\n boxOutsideInnerCircle(x, y, m.width, m.height, cx, cy, innerRadius);\n if (placement !== \"outside\" && fits) {\n labels[index] = placed(text, m, x, y, \"inside\");\n return;\n }\n if (placement === \"inside\") {\n hide(\"inside-fit\");\n return;\n }\n const anchor: [number, number] = [\n cx + Math.cos(mid) * radius,\n cy + Math.sin(mid) * radius,\n ];\n lanes[Math.cos(mid) < 0 ? 0 : 1].push({\n index,\n text,\n metrics: m,\n anchor,\n y: 0,\n });\n });\n lanes.forEach((lane, side) => {\n lane.sort((a, b) => a.anchor[1] - b.anchor[1] || a.index - b.index);\n let used = 0;\n const accepted = lane.filter((row) => {\n const x =\n side === 0 ? cx - radius - gap - row.metrics.width : cx + radius + gap;\n const next = used + (used ? gap : 0) + row.metrics.height;\n if (\n next > bounds.height ||\n !inBounds(x, bounds.y, row.metrics.width, row.metrics.height)\n ) {\n labels[row.index] = Object.freeze({\n status: \"hidden\",\n reason: \"space\",\n text: row.text,\n });\n return false;\n }\n used = next;\n return true;\n });\n const direction = side === 0 ? -1 : 1;\n const rail = cx + direction * (radius + gap / 2);\n // Pack each half away from the equator. The tangent constraint keeps every\n // straight fan-out outside the disk; ordering keeps neighboring fans apart.\n // There is one sort and two linear sweeps, with no relaxation loop.\n const upper = accepted.filter((row) => row.anchor[1] < cy).reverse();\n const lower = accepted.filter((row) => row.anchor[1] >= cy);\n const visible = new Set<(typeof accepted)[number]>();\n for (const [rows, sign] of [\n [upper, -1],\n [lower, 1],\n ] as const) {\n let cursor = cy + (sign * gap) / 2;\n for (const row of rows) {\n const dx = row.anchor[0] - cx;\n const dy = row.anchor[1] - cy;\n const half = row.metrics.height / 2;\n const ideal = cy + (dy * (radius + gap)) / radius;\n const tangent =\n dy === 0 ? cy : cy + (radius * radius - dx * (rail - cx)) / dy;\n const center =\n sign < 0\n ? Math.min(ideal, tangent, cursor - half)\n : Math.max(ideal, tangent, cursor + half);\n row.y = center - half;\n if (\n row.y < bounds.y ||\n row.y + row.metrics.height > bounds.y + bounds.height\n ) {\n labels[row.index] = Object.freeze({\n status: \"hidden\",\n reason: \"space\",\n text: row.text,\n });\n continue;\n }\n visible.add(row);\n cursor = center + sign * (half + gap);\n }\n }\n for (const row of accepted) {\n if (!visible.has(row)) continue;\n const x =\n side === 0 ? cx - radius - gap - row.metrics.width : cx + radius + gap;\n const edge = side === 0 ? x + row.metrics.width : x;\n const center = row.y + row.metrics.height / 2;\n const leader = Object.freeze([\n Object.freeze(row.anchor),\n Object.freeze([rail, center] as const),\n Object.freeze([edge, center] as const),\n ]);\n labels[row.index] = placed(\n row.text,\n row.metrics,\n x,\n row.y,\n \"outside\",\n leader,\n );\n }\n });\n return Object.freeze(\n slices.map((slice, index) =>\n Object.freeze({\n ...slice,\n cx,\n cy,\n radius,\n innerRadius,\n label: labels[index],\n }),\n ),\n );\n}\n"],
|
|
5
|
+
"mappings": "AAcO,SAAS,sBACd,GACA,GACA,OACA,QACA,IACA,IACA,aACS;AACT,MAAI,gBAAgB,EAAG,QAAO;AAC9B,SACE,KAAK;AAAA,IACH,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM;AAAA,IACpC,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,IAAI,OAAO;AAAA,EACvC,KAAK;AAET;AACO,SAAS,UACd,QACA,IACA,IACA,QACA,aACA,QACA,MACA,KACA,WACA,OACA,SAC8B;AAC9B,QAAM,SAAyC,OAAO,IAAI,MAAM,MAAS;AACzE,QAAM,QAME,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,WAAS,OACP,MACA,GACA,GACA,GACA,UACA,QACgB;AAChB,WAAO,OAAO,OAAO;AAAA,MACnB,QAAQ;AAAA,MACR,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,EAAE;AAAA,MACT,QAAQ,EAAE;AAAA,MACV,OAAO,IAAI,EAAE;AAAA,MACb,OAAO,IAAI,EAAE;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,WAAW,CAAC,GAAW,GAAW,GAAW,MACjD,KAAK,OAAO,KACZ,KAAK,OAAO,KACZ,IAAI,KAAK,OAAO,IAAI,OAAO,SAC3B,IAAI,KAAK,OAAO,IAAI,OAAO;AAC7B,SAAO,QAAQ,CAAC,OAAO,UAAU;AAC/B,QAAI,CAAC,MAAO;AACZ,UAAM,OAAO,MAAM,KAAK;AACxB,QAAI,OAAO,SAAS,YAAY,UAAU,KAAK,IAAI;AACjD,YAAM,IAAI,UAAU,oDAAoD;AAC1E,UAAM,OAAO,CAAC,WAA6C;AACzD,aAAO,KAAK,IAAI,OAAO,OAAO,EAAE,QAAQ,UAAU,QAAQ,KAAK,CAAC;AAAA,IAClE;AACA,QAAI,CAAC,QAAQ,CAAC,UAAU,MAAM,YAAY,MAAM,YAAY;AAC1D,WAAK,OAAO;AACZ;AAAA,IACF;AACA,UAAM,IAAI,QAAQ,IAAI;AACtB,UAAM,OAAO,MAAM,aAAa,MAAM,YAAY;AAClD,UAAM,cACJ,gBAAgB,IACZ,SAAS,OACT,eAAe,SAAS,eAAe;AAC7C,UAAM,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE,QAAQ;AACvD,UAAM,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE,SAAS;AACxD,UAAM,UAAU;AAAA,MACd,CAAC,GAAG,CAAC;AAAA,MACL,CAAC,IAAI,EAAE,OAAO,CAAC;AAAA,MACf,CAAC,GAAG,IAAI,EAAE,MAAM;AAAA,MAChB,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,MAAM;AAAA,IAC5B;AAGA,UAAM,OACJ,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,MAAM,KAChC,QAAQ,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM;AAC1B,YAAM,KAAK,KAAK,IACd,KAAK,KAAK;AACZ,YAAM,YACF,KAAK,MAAM,IAAI,EAAE,IAAI,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,KAAM,KAAK;AACpE,aACE,KAAK,MAAM,IAAI,EAAE,KAAK,UACtB,KAAK,IAAI,QAAQ,KACf,KAAK,IAAI,KAAK,KAAK,IAAI,MAAM,WAAW,MAAM,cAAc,CAAC;AAAA,IAEnE,CAAC,KACD,sBAAsB,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,WAAW;AACpE,QAAI,cAAc,aAAa,MAAM;AACnC,aAAO,KAAK,IAAI,OAAO,MAAM,GAAG,GAAG,GAAG,QAAQ;AAC9C;AAAA,IACF;AACA,QAAI,cAAc,UAAU;AAC1B,WAAK,YAAY;AACjB;AAAA,IACF;AACA,UAAM,SAA2B;AAAA,MAC/B,KAAK,KAAK,IAAI,GAAG,IAAI;AAAA,MACrB,KAAK,KAAK,IAAI,GAAG,IAAI;AAAA,IACvB;AACA,UAAM,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK;AAAA,MACpC;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,GAAG;AAAA,IACL,CAAC;AAAA,EACH,CAAC;AACD,QAAM,QAAQ,CAAC,MAAM,SAAS;AAC5B,SAAK,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK;AAClE,QAAI,OAAO;AACX,UAAM,WAAW,KAAK,OAAO,CAAC,QAAQ;AACpC,YAAM,IACJ,SAAS,IAAI,KAAK,SAAS,MAAM,IAAI,QAAQ,QAAQ,KAAK,SAAS;AACrE,YAAM,OAAO,QAAQ,OAAO,MAAM,KAAK,IAAI,QAAQ;AACnD,UACE,OAAO,OAAO,UACd,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,QAAQ,OAAO,IAAI,QAAQ,MAAM,GAC5D;AACA,eAAO,IAAI,KAAK,IAAI,OAAO,OAAO;AAAA,UAChC,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,MAAM,IAAI;AAAA,QACZ,CAAC;AACD,eAAO;AAAA,MACT;AACA,aAAO;AACP,aAAO;AAAA,IACT,CAAC;AACD,UAAM,YAAY,SAAS,IAAI,KAAK;AACpC,UAAM,OAAO,KAAK,aAAa,SAAS,MAAM;AAI9C,UAAM,QAAQ,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ;AACnE,UAAM,QAAQ,SAAS,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE;AAC1D,UAAM,UAAU,oBAAI,IAA+B;AACnD,eAAW,CAAC,MAAM,IAAI,KAAK;AAAA,MACzB,CAAC,OAAO,EAAE;AAAA,MACV,CAAC,OAAO,CAAC;AAAA,IACX,GAAY;AACV,UAAI,SAAS,KAAM,OAAO,MAAO;AACjC,iBAAW,OAAO,MAAM;AACtB,cAAM,KAAK,IAAI,OAAO,CAAC,IAAI;AAC3B,cAAM,KAAK,IAAI,OAAO,CAAC,IAAI;AAC3B,cAAM,OAAO,IAAI,QAAQ,SAAS;AAClC,cAAM,QAAQ,KAAM,MAAM,SAAS,OAAQ;AAC3C,cAAM,UACJ,OAAO,IAAI,KAAK,MAAM,SAAS,SAAS,MAAM,OAAO,OAAO;AAC9D,cAAM,SACJ,OAAO,IACH,KAAK,IAAI,OAAO,SAAS,SAAS,IAAI,IACtC,KAAK,IAAI,OAAO,SAAS,SAAS,IAAI;AAC5C,YAAI,IAAI,SAAS;AACjB,YACE,IAAI,IAAI,OAAO,KACf,IAAI,IAAI,IAAI,QAAQ,SAAS,OAAO,IAAI,OAAO,QAC/C;AACA,iBAAO,IAAI,KAAK,IAAI,OAAO,OAAO;AAAA,YAChC,QAAQ;AAAA,YACR,QAAQ;AAAA,YACR,MAAM,IAAI;AAAA,UACZ,CAAC;AACD;AAAA,QACF;AACA,gBAAQ,IAAI,GAAG;AACf,iBAAS,SAAS,QAAQ,OAAO;AAAA,MACnC;AAAA,IACF;AACA,eAAW,OAAO,UAAU;AAC1B,UAAI,CAAC,QAAQ,IAAI,GAAG,EAAG;AACvB,YAAM,IACJ,SAAS,IAAI,KAAK,SAAS,MAAM,IAAI,QAAQ,QAAQ,KAAK,SAAS;AACrE,YAAM,OAAO,SAAS,IAAI,IAAI,IAAI,QAAQ,QAAQ;AAClD,YAAM,SAAS,IAAI,IAAI,IAAI,QAAQ,SAAS;AAC5C,YAAM,SAAS,OAAO,OAAO;AAAA,QAC3B,OAAO,OAAO,IAAI,MAAM;AAAA,QACxB,OAAO,OAAO,CAAC,MAAM,MAAM,CAAU;AAAA,QACrC,OAAO,OAAO,CAAC,MAAM,MAAM,CAAU;AAAA,MACvC,CAAC;AACD,aAAO,IAAI,KAAK,IAAI;AAAA,QAClB,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO,OAAO;AAAA,IACZ,OAAO;AAAA,MAAI,CAAC,OAAO,UACjB,OAAO,OAAO;AAAA,QACZ,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,OAAO,KAAK;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LineSeriesProps } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Draws a scaled line through defined data values, leaving gaps for undefined values.
|
|
4
|
+
*
|
|
5
|
+
* @param props - Data, coordinate accessors, scales, and line styling. See {@link LineSeriesProps}
|
|
6
|
+
* .
|
|
7
|
+
* @returns Pibbl nodes drawing the data as a line series.
|
|
8
|
+
*
|
|
9
|
+
* @see {@link LineSeriesProps}
|
|
10
|
+
*/
|
|
11
|
+
export declare function LineSeries<D>({ data: dataInput, x: xInput, y: yInput, xScale: xId, yScale: yId, defined, curve, style: styleInput, ...eventProps }: LineSeriesProps<D>): import("../../../jsx-runtime.js").JSX.Element;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx } from "@pibbl/core/jsx-runtime";
|
|
2
|
+
import { Path, resolveSignalValue } from "@pibbl/core";
|
|
3
|
+
import { useInternalValueMemoSlot } from "@pibbl/core/internal";
|
|
4
|
+
import { useScale } from "./use-scale.js";
|
|
5
|
+
import { width, opacity } from "./paint.js";
|
|
6
|
+
function accessor(input) {
|
|
7
|
+
return typeof input === "function" ? input : (datum) => datum[input];
|
|
8
|
+
}
|
|
9
|
+
function LineSeries({
|
|
10
|
+
data: dataInput,
|
|
11
|
+
x: xInput,
|
|
12
|
+
y: yInput,
|
|
13
|
+
xScale: xId,
|
|
14
|
+
yScale: yId,
|
|
15
|
+
defined,
|
|
16
|
+
curve,
|
|
17
|
+
style: styleInput,
|
|
18
|
+
...eventProps
|
|
19
|
+
}) {
|
|
20
|
+
const xScale = useScale(xId).get();
|
|
21
|
+
const yScale = useScale(yId).get();
|
|
22
|
+
const x = useInternalValueMemoSlot("vizXAccessor", () => accessor(xInput), [
|
|
23
|
+
xInput
|
|
24
|
+
]);
|
|
25
|
+
const y = useInternalValueMemoSlot("vizYAccessor", () => accessor(yInput), [
|
|
26
|
+
yInput
|
|
27
|
+
]);
|
|
28
|
+
if (curve !== void 0 && curve !== "linear")
|
|
29
|
+
throw new TypeError('LineSeries supports curve="linear" only.');
|
|
30
|
+
const data = resolveSignalValue(dataInput);
|
|
31
|
+
if (!Array.isArray(data))
|
|
32
|
+
throw new TypeError(
|
|
33
|
+
"LineSeries data must be an array or a signal containing an array."
|
|
34
|
+
);
|
|
35
|
+
const style = resolveSignalValue(styleInput) ?? {};
|
|
36
|
+
const stroke = resolveSignalValue(style.stroke) ?? "#2563eb";
|
|
37
|
+
const strokeWidth = width(
|
|
38
|
+
resolveSignalValue(style.strokeWidth) ?? 2,
|
|
39
|
+
"LineSeries"
|
|
40
|
+
);
|
|
41
|
+
const alpha = opacity(resolveSignalValue(style.opacity) ?? 1, "LineSeries");
|
|
42
|
+
const cursor = resolveSignalValue(style.cursor);
|
|
43
|
+
const lineInteractionWidth = width(
|
|
44
|
+
resolveSignalValue(style.lineInteractionWidth) ?? strokeWidth,
|
|
45
|
+
"LineSeries"
|
|
46
|
+
);
|
|
47
|
+
const path = new Path2D();
|
|
48
|
+
let previous;
|
|
49
|
+
let inRun = false;
|
|
50
|
+
for (let i = 0; i < data.length; i++) {
|
|
51
|
+
const datum = data[i];
|
|
52
|
+
if (defined && !defined(datum, i, data)) {
|
|
53
|
+
previous = void 0;
|
|
54
|
+
inRun = false;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const xv = x(datum, i, data), yv = y(datum, i, data);
|
|
58
|
+
if (typeof xv !== "number" || typeof yv !== "number" || !Number.isFinite(xv) || !Number.isFinite(yv)) {
|
|
59
|
+
previous = void 0;
|
|
60
|
+
inRun = false;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const point = [xScale.map(xv), yScale.map(yv)];
|
|
64
|
+
if (previous) {
|
|
65
|
+
if (!inRun) path.moveTo(previous[0], previous[1]);
|
|
66
|
+
path.lineTo(point[0], point[1]);
|
|
67
|
+
inRun = true;
|
|
68
|
+
}
|
|
69
|
+
previous = point;
|
|
70
|
+
}
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
Path,
|
|
73
|
+
{
|
|
74
|
+
...eventProps,
|
|
75
|
+
style: {
|
|
76
|
+
d: path,
|
|
77
|
+
stroke,
|
|
78
|
+
strokeWidth,
|
|
79
|
+
opacity: alpha,
|
|
80
|
+
cursor,
|
|
81
|
+
lineInteractionWidth
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
export {
|
|
87
|
+
LineSeries
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=line-series.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/features/viz/lib/line-series.tsx"],
|
|
4
|
+
"sourcesContent": ["import { Path, resolveSignalValue } from \"@pibbl/core\";\nimport { useInternalValueMemoSlot } from \"@pibbl/core/internal\";\nimport type { LineAccessor, LineCoordinate, LineSeriesProps } from \"./types.js\";\nimport { useScale } from \"./use-scale.js\";\nimport { width, opacity } from \"./paint.js\";\nfunction accessor<D>(\n input: LineAccessor<D>,\n): (datum: D, index: number, data: readonly D[]) => LineCoordinate {\n return typeof input === \"function\"\n ? input\n : (datum) => datum[input] as LineCoordinate;\n}\n/**\n * Draws a scaled line through defined data values, leaving gaps for undefined values.\n *\n * @param props - Data, coordinate accessors, scales, and line styling. See {@link LineSeriesProps}\n * .\n * @returns Pibbl nodes drawing the data as a line series.\n *\n * @see {@link LineSeriesProps}\n */\nexport function LineSeries<D>({\n data: dataInput,\n x: xInput,\n y: yInput,\n xScale: xId,\n yScale: yId,\n defined,\n curve,\n style: styleInput,\n ...eventProps\n}: LineSeriesProps<D>) {\n const xScale = useScale(xId).get();\n const yScale = useScale(yId).get();\n const x = useInternalValueMemoSlot(\"vizXAccessor\", () => accessor(xInput), [\n xInput,\n ]);\n const y = useInternalValueMemoSlot(\"vizYAccessor\", () => accessor(yInput), [\n yInput,\n ]);\n if (curve !== undefined && curve !== \"linear\")\n throw new TypeError('LineSeries supports curve=\"linear\" only.');\n const data = resolveSignalValue(dataInput);\n if (!Array.isArray(data))\n throw new TypeError(\n \"LineSeries data must be an array or a signal containing an array.\",\n );\n const style = resolveSignalValue(styleInput) ?? {};\n const stroke = resolveSignalValue(style.stroke) ?? \"#2563eb\";\n const strokeWidth = width(\n resolveSignalValue(style.strokeWidth) ?? 2,\n \"LineSeries\",\n );\n const alpha = opacity(resolveSignalValue(style.opacity) ?? 1, \"LineSeries\");\n const cursor = resolveSignalValue(style.cursor);\n const lineInteractionWidth = width(\n resolveSignalValue(style.lineInteractionWidth) ?? strokeWidth,\n \"LineSeries\",\n );\n const path = new Path2D();\n let previous: readonly [number, number] | undefined;\n let inRun = false;\n for (let i = 0; i < data.length; i++) {\n const datum = data[i];\n if (defined && !defined(datum, i, data)) {\n previous = undefined;\n inRun = false;\n continue;\n }\n const xv = x(datum, i, data),\n yv = y(datum, i, data);\n if (\n typeof xv !== \"number\" ||\n typeof yv !== \"number\" ||\n !Number.isFinite(xv) ||\n !Number.isFinite(yv)\n ) {\n previous = undefined;\n inRun = false;\n continue;\n }\n const point = [xScale.map(xv), yScale.map(yv)] as const;\n if (previous) {\n if (!inRun) path.moveTo(previous[0], previous[1]);\n path.lineTo(point[0], point[1]);\n inRun = true;\n }\n previous = point;\n }\n return (\n <Path\n {...eventProps}\n style={{\n d: path,\n stroke,\n strokeWidth,\n opacity: alpha,\n cursor,\n lineInteractionWidth,\n }}\n />\n );\n}\n"],
|
|
5
|
+
"mappings": "AA0FI;AA1FJ,SAAS,MAAM,0BAA0B;AACzC,SAAS,gCAAgC;AAEzC,SAAS,gBAAgB;AACzB,SAAS,OAAO,eAAe;AAC/B,SAAS,SACP,OACiE;AACjE,SAAO,OAAO,UAAU,aACpB,QACA,CAAC,UAAU,MAAM,KAAK;AAC5B;AAUO,SAAS,WAAc;AAAA,EAC5B,MAAM;AAAA,EACN,GAAG;AAAA,EACH,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAuB;AACrB,QAAM,SAAS,SAAS,GAAG,EAAE,IAAI;AACjC,QAAM,SAAS,SAAS,GAAG,EAAE,IAAI;AACjC,QAAM,IAAI,yBAAyB,gBAAgB,MAAM,SAAS,MAAM,GAAG;AAAA,IACzE;AAAA,EACF,CAAC;AACD,QAAM,IAAI,yBAAyB,gBAAgB,MAAM,SAAS,MAAM,GAAG;AAAA,IACzE;AAAA,EACF,CAAC;AACD,MAAI,UAAU,UAAa,UAAU;AACnC,UAAM,IAAI,UAAU,0CAA0C;AAChE,QAAM,OAAO,mBAAmB,SAAS;AACzC,MAAI,CAAC,MAAM,QAAQ,IAAI;AACrB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,QAAM,QAAQ,mBAAmB,UAAU,KAAK,CAAC;AACjD,QAAM,SAAS,mBAAmB,MAAM,MAAM,KAAK;AACnD,QAAM,cAAc;AAAA,IAClB,mBAAmB,MAAM,WAAW,KAAK;AAAA,IACzC;AAAA,EACF;AACA,QAAM,QAAQ,QAAQ,mBAAmB,MAAM,OAAO,KAAK,GAAG,YAAY;AAC1E,QAAM,SAAS,mBAAmB,MAAM,MAAM;AAC9C,QAAM,uBAAuB;AAAA,IAC3B,mBAAmB,MAAM,oBAAoB,KAAK;AAAA,IAClD;AAAA,EACF;AACA,QAAM,OAAO,IAAI,OAAO;AACxB,MAAI;AACJ,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,UAAM,QAAQ,KAAK,CAAC;AACpB,QAAI,WAAW,CAAC,QAAQ,OAAO,GAAG,IAAI,GAAG;AACvC,iBAAW;AACX,cAAQ;AACR;AAAA,IACF;AACA,UAAM,KAAK,EAAE,OAAO,GAAG,IAAI,GACzB,KAAK,EAAE,OAAO,GAAG,IAAI;AACvB,QACE,OAAO,OAAO,YACd,OAAO,OAAO,YACd,CAAC,OAAO,SAAS,EAAE,KACnB,CAAC,OAAO,SAAS,EAAE,GACnB;AACA,iBAAW;AACX,cAAQ;AACR;AAAA,IACF;AACA,UAAM,QAAQ,CAAC,OAAO,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAC7C,QAAI,UAAU;AACZ,UAAI,CAAC,MAAO,MAAK,OAAO,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;AAChD,WAAK,OAAO,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAC9B,cAAQ;AAAA,IACV;AACA,eAAW;AAAA,EACb;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { LinearDomain, ResolvedLinearScale, ResolvedScale, ScaleRange } from "./types.js";
|
|
2
|
+
export declare function resolveLinearScale(domainInput: LinearDomain, rangeInput: ScaleRange, reverse: boolean, width: number, height: number): ResolvedLinearScale;
|
|
3
|
+
export declare function equalScale(a: ResolvedScale, b: ResolvedScale): boolean;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
function finite(value, field) {
|
|
2
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
3
|
+
throw new RangeError(`Scale ${field} must be finite.`);
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
function pair(value, field) {
|
|
7
|
+
if (!Array.isArray(value) || value.length !== 2)
|
|
8
|
+
throw new RangeError(`Scale ${field} requires two finite endpoints.`);
|
|
9
|
+
return Object.freeze([finite(value[0], field), finite(value[1], field)]);
|
|
10
|
+
}
|
|
11
|
+
function resolveLinearScale(domainInput, rangeInput, reverse, width, height) {
|
|
12
|
+
finite(width, "frame.width");
|
|
13
|
+
finite(height, "frame.height");
|
|
14
|
+
if (width < 0 || height < 0)
|
|
15
|
+
throw new RangeError("Scale allocation must be nonnegative.");
|
|
16
|
+
if (typeof reverse !== "boolean")
|
|
17
|
+
throw new TypeError("Scale reverse must be boolean.");
|
|
18
|
+
const domain = pair(domainInput, "domain");
|
|
19
|
+
if (domain[0] === domain[1])
|
|
20
|
+
throw new RangeError("Scale domain endpoints must differ.");
|
|
21
|
+
const original = pair(
|
|
22
|
+
rangeInput === "width" ? [0, width] : rangeInput === "height" ? [0, height] : rangeInput,
|
|
23
|
+
"range"
|
|
24
|
+
);
|
|
25
|
+
const range = reverse ? pair([original[1], original[0]], "range") : original;
|
|
26
|
+
const domainSpan = finite(domain[1] - domain[0], "domain span");
|
|
27
|
+
const rangeSpan = finite(range[1] - range[0], "range span");
|
|
28
|
+
return Object.freeze({
|
|
29
|
+
type: "linear",
|
|
30
|
+
domain,
|
|
31
|
+
range,
|
|
32
|
+
frame: Object.freeze({ x: 0, y: 0, width, height }),
|
|
33
|
+
map(value) {
|
|
34
|
+
return finite(
|
|
35
|
+
range[0] + (finite(value, "map input") - domain[0]) / domainSpan * rangeSpan,
|
|
36
|
+
"mapped output"
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
invert(pixel) {
|
|
40
|
+
if (rangeSpan === 0)
|
|
41
|
+
throw new RangeError(
|
|
42
|
+
"Scale cannot invert a collapsed range; supply a nonzero extent."
|
|
43
|
+
);
|
|
44
|
+
return finite(
|
|
45
|
+
domain[0] + (finite(pixel, "invert input") - range[0]) / rangeSpan * domainSpan,
|
|
46
|
+
"inverted output"
|
|
47
|
+
);
|
|
48
|
+
},
|
|
49
|
+
ticks(count = 5) {
|
|
50
|
+
if (!Number.isInteger(count) || count < 2 || count > 100)
|
|
51
|
+
throw new RangeError(
|
|
52
|
+
"Scale ticks count must be an integer from 2 to 100."
|
|
53
|
+
);
|
|
54
|
+
return Object.freeze(
|
|
55
|
+
Array.from(
|
|
56
|
+
{ length: count },
|
|
57
|
+
(_, i) => i === count - 1 ? domain[1] : finite(domain[0] + domainSpan * i / (count - 1), "tick")
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function equalScale(a, b) {
|
|
64
|
+
return a.type === b.type && a.domain.length === b.domain.length && a.domain.every((value, index) => Object.is(value, b.domain[index])) && (a.type !== "band" || b.type === "band" && a.bandwidth === b.bandwidth && a.step === b.step) && Object.is(a.range[0], b.range[0]) && Object.is(a.range[1], b.range[1]) && Object.is(a.frame.width, b.frame.width) && Object.is(a.frame.height, b.frame.height);
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
equalScale,
|
|
68
|
+
resolveLinearScale
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=linear-scale.js.map
|