@deck.gl-community/infovis-layers 9.3.5 → 9.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2998 -114
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/layers/animation-layer/animation-layer.d.ts +30 -0
- package/dist/layers/animation-layer/animation-layer.d.ts.map +1 -0
- package/dist/layers/animation-layer/animation-layer.js +53 -0
- package/dist/layers/animation-layer/animation-layer.js.map +1 -0
- package/dist/layers/animation-layer/animation.d.ts +86 -0
- package/dist/layers/animation-layer/animation.d.ts.map +1 -0
- package/dist/layers/animation-layer/animation.js +214 -0
- package/dist/layers/animation-layer/animation.js.map +1 -0
- package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts +3 -0
- package/dist/layers/block-layer/block-layer-fragment.glsl.d.ts.map +1 -0
- package/dist/layers/block-layer/block-layer-fragment.glsl.js +41 -0
- package/dist/layers/block-layer/block-layer-fragment.glsl.js.map +1 -0
- package/dist/layers/block-layer/block-layer-uniforms.d.ts +27 -0
- package/dist/layers/block-layer/block-layer-uniforms.d.ts.map +1 -0
- package/dist/layers/block-layer/block-layer-uniforms.js +26 -0
- package/dist/layers/block-layer/block-layer-uniforms.js.map +1 -0
- package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts +3 -0
- package/dist/layers/block-layer/block-layer-vertex.glsl.d.ts.map +1 -0
- package/dist/layers/block-layer/block-layer-vertex.glsl.js +67 -0
- package/dist/layers/block-layer/block-layer-vertex.glsl.js.map +1 -0
- package/dist/layers/block-layer/block-layer.d.ts +71 -0
- package/dist/layers/block-layer/block-layer.d.ts.map +1 -0
- package/dist/layers/block-layer/block-layer.js +108 -0
- package/dist/layers/block-layer/block-layer.js.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layer.d.ts +148 -0
- package/dist/layers/fast-text-layer/fast-text-layer.d.ts.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layer.js +862 -0
- package/dist/layers/fast-text-layer/fast-text-layer.js.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts +2 -0
- package/dist/layers/fast-text-layer/fast-text-layer.test.d.ts.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layer.test.js +300 -0
- package/dist/layers/fast-text-layer/fast-text-layer.test.js.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layout.d.ts +179 -0
- package/dist/layers/fast-text-layer/fast-text-layout.d.ts.map +1 -0
- package/dist/layers/fast-text-layer/fast-text-layout.js +665 -0
- package/dist/layers/fast-text-layer/fast-text-layout.js.map +1 -0
- package/dist/layers/fast-text-layer/font-atlas.d.ts +98 -0
- package/dist/layers/fast-text-layer/font-atlas.d.ts.map +1 -0
- package/dist/layers/fast-text-layer/font-atlas.js +337 -0
- package/dist/layers/fast-text-layer/font-atlas.js.map +1 -0
- package/dist/layers/fast-text-layer/index.d.ts +4 -0
- package/dist/layers/fast-text-layer/index.d.ts.map +1 -0
- package/dist/layers/fast-text-layer/index.js +4 -0
- package/dist/layers/fast-text-layer/index.js.map +1 -0
- package/dist/layers/time-delta-layer.d.ts +22 -60
- package/dist/layers/time-delta-layer.d.ts.map +1 -1
- package/dist/layers/time-delta-layer.js +23 -45
- package/dist/layers/time-delta-layer.js.map +1 -1
- package/dist/synchronized-views/synchronized-views.js +1 -1
- package/dist/synchronized-views/synchronized-views.js.map +1 -1
- package/dist/utils/format-utils.d.ts +27 -3
- package/dist/utils/format-utils.d.ts.map +1 -1
- package/dist/utils/format-utils.js +72 -40
- package/dist/utils/format-utils.js.map +1 -1
- package/dist/utils/utf8-string-view.d.ts +53 -0
- package/dist/utils/utf8-string-view.d.ts.map +1 -0
- package/dist/utils/utf8-string-view.js +169 -0
- package/dist/utils/utf8-string-view.js.map +1 -0
- package/dist/utils/utf8-string-view.test.d.ts +2 -0
- package/dist/utils/utf8-string-view.test.d.ts.map +1 -0
- package/dist/utils/utf8-string-view.test.js +88 -0
- package/dist/utils/utf8-string-view.test.js.map +1 -0
- package/dist/views/bounds-utils.d.ts +23 -0
- package/dist/views/bounds-utils.d.ts.map +1 -0
- package/dist/views/bounds-utils.js +65 -0
- package/dist/views/bounds-utils.js.map +1 -0
- package/dist/views/layer-bounds-filter.d.ts +48 -0
- package/dist/views/layer-bounds-filter.d.ts.map +1 -0
- package/dist/views/layer-bounds-filter.js +99 -0
- package/dist/views/layer-bounds-filter.js.map +1 -0
- package/dist/views/orthographic-utils.d.ts +30 -2
- package/dist/views/orthographic-utils.d.ts.map +1 -1
- package/dist/views/orthographic-utils.js +33 -14
- package/dist/views/orthographic-utils.js.map +1 -1
- package/dist/views/view-layout/build-views-from-view-layout.d.ts +37 -0
- package/dist/views/view-layout/build-views-from-view-layout.d.ts.map +1 -0
- package/dist/views/view-layout/build-views-from-view-layout.js +413 -0
- package/dist/views/view-layout/build-views-from-view-layout.js.map +1 -0
- package/dist/views/view-layout/index.d.ts +3 -0
- package/dist/views/view-layout/index.d.ts.map +1 -0
- package/dist/views/view-layout/index.js +3 -0
- package/dist/views/view-layout/index.js.map +1 -0
- package/dist/views/view-layout/view-layout-item.d.ts +74 -0
- package/dist/views/view-layout/view-layout-item.d.ts.map +1 -0
- package/dist/views/view-layout/view-layout-item.js +48 -0
- package/dist/views/view-layout/view-layout-item.js.map +1 -0
- package/dist/views/view-layout/view-layout.test.d.ts +2 -0
- package/dist/views/view-layout/view-layout.test.d.ts.map +1 -0
- package/dist/views/view-layout/view-layout.test.js +112 -0
- package/dist/views/view-layout/view-layout.test.js.map +1 -0
- package/dist/views/viewport-bounds-utils.d.ts +55 -0
- package/dist/views/viewport-bounds-utils.d.ts.map +1 -0
- package/dist/views/viewport-bounds-utils.js +70 -0
- package/dist/views/viewport-bounds-utils.js.map +1 -0
- package/package.json +11 -4
- package/src/index.ts +91 -2
- package/src/layers/animation-layer/animation-layer.ts +92 -0
- package/src/layers/animation-layer/animation.ts +328 -0
- package/src/layers/block-layer/block-layer-fragment.glsl.ts +41 -0
- package/src/layers/block-layer/block-layer-uniforms.ts +43 -0
- package/src/layers/block-layer/block-layer-vertex.glsl.ts +67 -0
- package/src/layers/block-layer/block-layer.ts +199 -0
- package/src/layers/fast-text-layer/fast-text-layer.test.ts +359 -0
- package/src/layers/fast-text-layer/fast-text-layer.ts +1208 -0
- package/src/layers/fast-text-layer/fast-text-layout.ts +1124 -0
- package/src/layers/fast-text-layer/font-atlas.ts +574 -0
- package/src/layers/fast-text-layer/index.ts +37 -0
- package/src/layers/time-delta-layer.ts +47 -62
- package/src/synchronized-views/synchronized-views.ts +1 -1
- package/src/utils/format-utils.ts +90 -40
- package/src/utils/utf8-string-view.test.ts +119 -0
- package/src/utils/utf8-string-view.ts +273 -0
- package/src/views/bounds-utils.ts +88 -0
- package/src/views/layer-bounds-filter.ts +160 -0
- package/src/views/orthographic-utils.ts +65 -18
- package/src/views/view-layout/build-views-from-view-layout.ts +547 -0
- package/src/views/view-layout/index.ts +18 -0
- package/src/views/view-layout/view-layout-item.ts +125 -0
- package/src/views/view-layout/view-layout.test.ts +129 -0
- package/src/views/viewport-bounds-utils.ts +104 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
export { TimeDeltaLayer, type TimeDeltaLayerProps } from "./layers/time-delta-layer.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { AnimationLayer, type AnimationLayerProps } from "./layers/animation-layer/animation-layer.js";
|
|
3
|
+
export type { AnimationFrame, AnimationFramesGroup } from "./layers/animation-layer/animation.js";
|
|
4
|
+
export { BlockLayer, type BlockLayerProps } from "./layers/block-layer/block-layer.js";
|
|
5
|
+
export { FastTextLayer, type FastTextLayerProps, type _FastTextLayerProps, buildFastTextUtf8ColumnSource, buildFastTextGlyphData, buildMultiLineGlyphData, buildSingleLineGlyphData, collectFastTextCharacterSet, updateFastTextDynamicGlyphAttributes, type BuildFastTextGlyphDataProps, type CollectFastTextCharacterSetProps, type FastTextAlignmentBaseline, type FastTextAnchor, type FastTextClipRect, type FastTextContentAlign, type FastTextDynamicGlyphUpdateStats, type FastTextGlyphBuildStats, type FastTextGlyphAttributes, type FastTextGlyphData, type FastTextUtf8Column, type FastTextUtf8ColumnSource, type FastTextUtf8ViewAccessor, type UpdateFastTextDynamicGlyphAttributesProps, buildFastTextCharacterMapping, createFastTextFontAtlas, DEFAULT_FAST_TEXT_FONT_SETTINGS, FastTextFontAtlasManager, type FastTextCharacter, type FastTextCharacterMapping, type FastTextFontAtlas, type FastTextFontSettings } from "./layers/fast-text-layer/index.js";
|
|
6
|
+
export { fitBoundsOrthographic, getBoundsOrthographic } from "./views/orthographic-utils.js";
|
|
7
|
+
export { buildViewsFromViewLayout, type CompiledDeckViews, type ViewLayoutRect, ViewLayoutItem, type ViewLayoutBaseProps, type ViewLayoutChild, type ViewLayoutColumnProps, type ViewLayoutInsets, type ViewLayoutItemProps, type ViewLayoutLength, type ViewLayoutOverlayProps, type ViewLayoutRowProps, type ViewLayoutSpacerProps, type ViewLayoutViewProps } from "./views/view-layout/index.js";
|
|
8
|
+
export { getPaddedBlockBounds, type Bounds, type Geometry, type PaddedBlockBoundsOptions } from "./views/bounds-utils.js";
|
|
9
|
+
export { formatTimeMs, formatTimeRangeMs, type FormatTimeMsOptions } from "./utils/format-utils.js";
|
|
10
|
+
export { arrowFindUtf8, getArrowUtf8ColumnSource, getArrowUtf8RowView, getUtf8ColumnSourceRowView, makeUtf8StringView, type Utf8ColumnSource, type Utf8ColumnSourceChunk, type Utf8StringView } from "./utils/utf8-string-view.js";
|
|
4
11
|
export { validateViewState, mergeViewStates, type OptionalViewState } from "./views/view-state-utils.js";
|
|
5
12
|
export { makeLayerFilter } from "./views/layer-filter.js";
|
|
13
|
+
export { DEFAULT_BOUNDS_EPSILON, boundsAreEqual, getViewportBoundsForViewState, isBoundsCompletelyOutside, type BoundsEqualityOptions, type ViewportBounds } from "./views/viewport-bounds-utils.js";
|
|
14
|
+
export { type LayerFilter, type LayerBoundsFilterDecision, type LayerBoundsFilterOptions, combineLayerFilters, createViewportBoundsFilter } from "./views/layer-bounds-filter.js";
|
|
6
15
|
export { HEADER_VIEW_HEIGHT, LEGEND_VIEW_WIDTH, SYNCHRONIZED_VIEWS, SYNCHRONIZED_VIEW_STATE_CONSTRAINTS, getSynchronizedViewStates, fitSynchronizedViewStatesToBounds } from "./synchronized-views/synchronized-views.js";
|
|
7
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,KAAK,mBAAmB,EAAC,qCAAkC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,KAAK,mBAAmB,EAAC,qCAAkC;AACnF,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACzB,oDAAiD;AAClD,YAAY,EACV,cAAc,EACd,oBAAoB,EACrB,8CAA2C;AAC5C,OAAO,EAAC,UAAU,EAAE,KAAK,eAAe,EAAC,4CAAyC;AAClF,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,oCAAoC,EACpC,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yCAAyC,EAC9C,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,0CAAuC;AAExC,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,sCAAmC;AACxF,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,qCAAkC;AACnC,OAAO,EACL,oBAAoB,EACpB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,wBAAwB,EAC9B,gCAA6B;AAC9B,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAC,gCAA6B;AAC/F,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,oCAAiC;AAClC,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAC,oCAAiC;AACpG,OAAO,EAAC,eAAe,EAAC,gCAA6B;AACrD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,yCAAsC;AACvC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,mBAAmB,EACnB,0BAA0B,EAC3B,uCAAoC;AAErC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EAClC,mDAAgD"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
export { TimeDeltaLayer } from "./layers/time-delta-layer.js";
|
|
5
|
-
export {
|
|
5
|
+
export { AnimationLayer } from "./layers/animation-layer/animation-layer.js";
|
|
6
|
+
export { BlockLayer } from "./layers/block-layer/block-layer.js";
|
|
7
|
+
export { FastTextLayer, buildFastTextUtf8ColumnSource, buildFastTextGlyphData, buildMultiLineGlyphData, buildSingleLineGlyphData, collectFastTextCharacterSet, updateFastTextDynamicGlyphAttributes, buildFastTextCharacterMapping, createFastTextFontAtlas, DEFAULT_FAST_TEXT_FONT_SETTINGS, FastTextFontAtlasManager } from "./layers/fast-text-layer/index.js";
|
|
8
|
+
export { fitBoundsOrthographic, getBoundsOrthographic } from "./views/orthographic-utils.js";
|
|
9
|
+
export { buildViewsFromViewLayout, ViewLayoutItem } from "./views/view-layout/index.js";
|
|
10
|
+
export { getPaddedBlockBounds } from "./views/bounds-utils.js";
|
|
6
11
|
export { formatTimeMs, formatTimeRangeMs } from "./utils/format-utils.js";
|
|
12
|
+
export { arrowFindUtf8, getArrowUtf8ColumnSource, getArrowUtf8RowView, getUtf8ColumnSourceRowView, makeUtf8StringView } from "./utils/utf8-string-view.js";
|
|
7
13
|
export { validateViewState, mergeViewStates } from "./views/view-state-utils.js";
|
|
8
14
|
export { makeLayerFilter } from "./views/layer-filter.js";
|
|
15
|
+
export { DEFAULT_BOUNDS_EPSILON, boundsAreEqual, getViewportBoundsForViewState, isBoundsCompletelyOutside } from "./views/viewport-bounds-utils.js";
|
|
16
|
+
export { combineLayerFilters, createViewportBoundsFilter } from "./views/layer-bounds-filter.js";
|
|
9
17
|
export { HEADER_VIEW_HEIGHT, LEGEND_VIEW_WIDTH, SYNCHRONIZED_VIEWS, SYNCHRONIZED_VIEW_STATE_CONSTRAINTS, getSynchronizedViewStates, fitSynchronizedViewStatesToBounds } from "./synchronized-views/synchronized-views.js";
|
|
10
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAA2B,qCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAA2B,qCAAkC;AACnF,OAAO,EACL,cAAc,EAEf,oDAAiD;AAKlD,OAAO,EAAC,UAAU,EAAuB,4CAAyC;AAClF,OAAO,EACL,aAAa,EAGb,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,oCAAoC,EAepC,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,EAC/B,wBAAwB,EAKzB,0CAAuC;AAExC,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,sCAAmC;AACxF,OAAO,EACL,wBAAwB,EAGxB,cAAc,EAWf,qCAAkC;AACnC,OAAO,EACL,oBAAoB,EAIrB,gCAA6B;AAC9B,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAA2B,gCAA6B;AAC/F,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAInB,oCAAiC;AAClC,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAyB,oCAAiC;AACpG,OAAO,EAAC,eAAe,EAAC,gCAA6B;AACrD,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,6BAA6B,EAC7B,yBAAyB,EAG1B,yCAAsC;AACvC,OAAO,EAIL,mBAAmB,EACnB,0BAA0B,EAC3B,uCAAoC;AAErC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mCAAmC,EACnC,yBAAyB,EACzB,iCAAiC,EAClC,mDAAgD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CompositeLayer } from '@deck.gl/core';
|
|
2
|
+
import { AnimationFramesGroup, AnimationState } from "./animation.js";
|
|
3
|
+
import type { CompositeLayerProps, Layer } from '@deck.gl/core';
|
|
4
|
+
/** Properties supported by {@link AnimationLayer}. */
|
|
5
|
+
export type AnimationLayerProps<LayerT extends Layer> = CompositeLayerProps & _AnimationLayerProps<LayerT>;
|
|
6
|
+
type _AnimationLayerProps<LayerT extends Layer> = {
|
|
7
|
+
/** Base child layer cloned for each animation frame. */
|
|
8
|
+
layer: LayerT;
|
|
9
|
+
/** Frames that describe how child layer props change over time. */
|
|
10
|
+
frames: AnimationFramesGroup<LayerT>;
|
|
11
|
+
/** Number of additional animation iterations after the first pass. @defaultValue 0 */
|
|
12
|
+
repeat?: number;
|
|
13
|
+
/** Whether repeated frames restart or alternate in reverse. @defaultValue 'loop' */
|
|
14
|
+
repeatType?: 'loop' | 'reverse';
|
|
15
|
+
/** Delay in milliseconds before each repeated iteration. @defaultValue 0 */
|
|
16
|
+
repeatDelay?: number;
|
|
17
|
+
};
|
|
18
|
+
/** A composite layer that animates its child layer with composable frames. */
|
|
19
|
+
export declare class AnimationLayer<LayerT extends Layer> extends CompositeLayer<_AnimationLayerProps<LayerT>> {
|
|
20
|
+
static layerName: string;
|
|
21
|
+
state: {
|
|
22
|
+
layer?: LayerT;
|
|
23
|
+
animationState?: AnimationState<LayerT>;
|
|
24
|
+
};
|
|
25
|
+
hasUniformTransition(): boolean;
|
|
26
|
+
updateState(): void;
|
|
27
|
+
renderLayers(): LayerT;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=animation-layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-layer.d.ts","sourceRoot":"","sources":["../../../src/layers/animation-layer/animation-layer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,cAAc,EAGf,uBAAoB;AAErB,OAAO,KAAK,EAAC,mBAAmB,EAAE,KAAK,EAAC,MAAM,eAAe,CAAC;AAE9D,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,KAAK,IAAI,mBAAmB,GACzE,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAE/B,KAAK,oBAAoB,CAAC,MAAM,SAAS,KAAK,IAAI;IAChD,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACrC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,8EAA8E;AAC9E,qBAAa,cAAc,CAAC,MAAM,SAAS,KAAK,CAAE,SAAQ,cAAc,CACtE,oBAAoB,CAAC,MAAM,CAAC,CAC7B;IACC,OAAgB,SAAS,SAAoB;IAEpC,KAAK,EAAE;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;KACzC,CAAM;IAGE,oBAAoB,IAAI,OAAO;IAM/B,WAAW,IAAI,IAAI;IAsCnB,YAAY;CAGtB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { CompositeLayer } from '@deck.gl/core';
|
|
5
|
+
import { resolveAnimationFrames, resolveProps } from "./animation.js";
|
|
6
|
+
/** A composite layer that animates its child layer with composable frames. */
|
|
7
|
+
export class AnimationLayer extends CompositeLayer {
|
|
8
|
+
static layerName = 'AnimationLayer';
|
|
9
|
+
state = {};
|
|
10
|
+
// Hack - hijacking another flag to force updates
|
|
11
|
+
hasUniformTransition() {
|
|
12
|
+
if (!this.props.visible)
|
|
13
|
+
return false;
|
|
14
|
+
const { animationState } = this.state;
|
|
15
|
+
return !animationState || animationState.inProgress;
|
|
16
|
+
}
|
|
17
|
+
updateState() {
|
|
18
|
+
if (!this.props.visible) {
|
|
19
|
+
// Disable animation when visible=false
|
|
20
|
+
this.state.animationState = undefined;
|
|
21
|
+
this.state.layer = undefined;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const time = this.context.timeline.getTime();
|
|
25
|
+
const baseLayer = this.props.layer.clone({
|
|
26
|
+
parameters: {
|
|
27
|
+
...this.props.layer.props.parameters,
|
|
28
|
+
...this.props.parameters
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
let { animationState } = this.state;
|
|
32
|
+
let layer = baseLayer;
|
|
33
|
+
while (true) {
|
|
34
|
+
if (animationState?.inProgress) {
|
|
35
|
+
const nextProps = resolveProps(layer, animationState.frames, time - animationState.start);
|
|
36
|
+
nextProps['id'] = `${this.id}-animation-layer`;
|
|
37
|
+
layer = baseLayer.clone(nextProps);
|
|
38
|
+
animationState.inProgress = time < animationState.end;
|
|
39
|
+
this.setNeedsRedraw();
|
|
40
|
+
}
|
|
41
|
+
const nextState = resolveAnimationFrames(time, this.props, animationState);
|
|
42
|
+
if (nextState === animationState)
|
|
43
|
+
break;
|
|
44
|
+
animationState = nextState;
|
|
45
|
+
}
|
|
46
|
+
this.state.animationState = animationState;
|
|
47
|
+
this.state.layer = layer;
|
|
48
|
+
}
|
|
49
|
+
renderLayers() {
|
|
50
|
+
return this.state.layer;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=animation-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-layer.js","sourceRoot":"","sources":["../../../src/layers/animation-layer/animation-layer.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,EAGL,sBAAsB,EACtB,YAAY,EACb,uBAAoB;AAqBrB,8EAA8E;AAC9E,MAAM,OAAO,cAAqC,SAAQ,cAEzD;IACC,MAAM,CAAU,SAAS,GAAG,gBAAgB,CAAC;IAEpC,KAAK,GAGV,EAAE,CAAC;IAEP,iDAAiD;IACxC,oBAAoB;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,EAAC,cAAc,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,UAAU,CAAC;IACtD,CAAC;IAEQ,WAAW;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxB,uCAAuC;YACvC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YACvC,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU;gBACpC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;aACzB;SACF,CAAC,CAAC;QACH,IAAI,EAAC,cAAc,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC;QAEtB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,cAAc,EAAE,UAAU,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC1F,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,kBAAkB,CAAC;gBAC/C,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnC,cAAc,CAAC,UAAU,GAAG,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;YACD,MAAM,SAAS,GAAG,sBAAsB,CACtC,IAAI,EACJ,IAAI,CAAC,KAAqC,EAC1C,cAAc,CACf,CAAC;YACF,IAAI,SAAS,KAAK,cAAc;gBAAE,MAAM;YACxC,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEQ,YAAY;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAM,CAAC;IAC3B,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/** A simple animation engine for deck.gl layers. */
|
|
2
|
+
import { type Layer } from '@deck.gl/core';
|
|
3
|
+
/** One timed set of layer prop changes in an animation. */
|
|
4
|
+
export type AnimationFrame<LayerT extends Layer> = {
|
|
5
|
+
/** Child layer prop values to transition to. */
|
|
6
|
+
props: Partial<LayerT['props']>;
|
|
7
|
+
/** Duration in milliseconds used to execute the transition. */
|
|
8
|
+
duration: number;
|
|
9
|
+
/** Pause in milliseconds before this frame starts. @defaultValue 0 */
|
|
10
|
+
delay?: number;
|
|
11
|
+
/** Easing function that defines the transition curve. @defaultValue linear */
|
|
12
|
+
easing?: (t: number) => number;
|
|
13
|
+
};
|
|
14
|
+
/** A schedulable group of animation frames. */
|
|
15
|
+
export type AnimationFramesGroup<LayerT extends Layer> = {
|
|
16
|
+
/**
|
|
17
|
+
* How to schedule the child frames.
|
|
18
|
+
* `sequence`: each frame starts after the previous frame ends.
|
|
19
|
+
* `concurrence`: all frames start together.
|
|
20
|
+
* `stagger`: frames start one-by-one at a fixed interval.
|
|
21
|
+
*/
|
|
22
|
+
type: 'sequence' | 'concurrence' | 'stagger';
|
|
23
|
+
/**
|
|
24
|
+
* Optional delay in milliseconds.
|
|
25
|
+
* In `sequence` mode, delay refers to the wait after a step ends and before starting the next step.
|
|
26
|
+
* In `concurrence` mode, delay refers to the wait before starting all steps together.
|
|
27
|
+
* In `stagger` mode, delay refers to the interval between starting steps
|
|
28
|
+
*/
|
|
29
|
+
delay?: number;
|
|
30
|
+
/** Frames or nested frame groups scheduled by this group. */
|
|
31
|
+
frames: (AnimationFramesGroup<LayerT> | AnimationFrame<LayerT>)[];
|
|
32
|
+
};
|
|
33
|
+
/** Repeat and schedule options used to resolve an animation timeline. */
|
|
34
|
+
export type AnimationExtensionOptions<LayerT extends Layer> = {
|
|
35
|
+
/** Frames scheduled by the animation. */
|
|
36
|
+
frames: AnimationFramesGroup<LayerT>;
|
|
37
|
+
/** Number of additional animation iterations after the first pass. @defaultValue 0 */
|
|
38
|
+
repeat?: number;
|
|
39
|
+
/** Whether repeated frames restart or alternate in reverse. @defaultValue 'loop' */
|
|
40
|
+
repeatType?: 'loop' | 'reverse';
|
|
41
|
+
/** Delay in milliseconds before each repeated iteration. @defaultValue 0 */
|
|
42
|
+
repeatDelay?: number;
|
|
43
|
+
};
|
|
44
|
+
type ResolvedAnimationFrame<LayerT extends Layer> = {
|
|
45
|
+
/** Assigned at start time */
|
|
46
|
+
from: Partial<LayerT['props']> | undefined;
|
|
47
|
+
/** Provided by user */
|
|
48
|
+
to: Partial<LayerT['props']>;
|
|
49
|
+
/** Calculated start time of this frame if the whole animation starts at 0 */
|
|
50
|
+
start: number;
|
|
51
|
+
/** Calculated end time of this frame if the whole animation starts at 0 */
|
|
52
|
+
end: number;
|
|
53
|
+
/** Easing function */
|
|
54
|
+
easing: (t: number) => number;
|
|
55
|
+
};
|
|
56
|
+
/** Runtime state for one resolved layer animation. */
|
|
57
|
+
export type AnimationState<LayerT extends Layer> = {
|
|
58
|
+
/** Timeline timestamp at which the current iteration started. */
|
|
59
|
+
start: number;
|
|
60
|
+
/** Timeline timestamp at which the current iteration ends. */
|
|
61
|
+
end: number;
|
|
62
|
+
/** Whether the end state has not yet been fully committed. */
|
|
63
|
+
inProgress: boolean;
|
|
64
|
+
/** Number of completed animation iterations. */
|
|
65
|
+
iterations: number;
|
|
66
|
+
/** Resolved frames executed during the current iteration. */
|
|
67
|
+
frames: ResolvedAnimationFrame<LayerT>[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Resolves the animation iteration that should be active at a timeline timestamp.
|
|
71
|
+
* @param time - Current timeline timestamp in milliseconds.
|
|
72
|
+
* @param opts - Animation frame and repeat configuration.
|
|
73
|
+
* @param prevState - Previous animation state, when one has already been resolved.
|
|
74
|
+
* @returns The current or next resolved animation state.
|
|
75
|
+
*/
|
|
76
|
+
export declare function resolveAnimationFrames<LayerT extends Layer = Layer>(time: number, opts: AnimationExtensionOptions<LayerT>, prevState?: AnimationState<LayerT>): AnimationState<LayerT>;
|
|
77
|
+
/**
|
|
78
|
+
* Resolves animated child layer props for a point inside one animation iteration.
|
|
79
|
+
* @param layer - Base child layer whose props provide the interpolation starting values.
|
|
80
|
+
* @param frames - Resolved frames for the active animation iteration.
|
|
81
|
+
* @param timeSinceStart - Milliseconds elapsed since the iteration started.
|
|
82
|
+
* @returns Child layer props that should be applied at the requested time.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveProps<LayerT extends Layer = Layer>(layer: LayerT, frames: ResolvedAnimationFrame<LayerT>[], timeSinceStart: number): Partial<LayerT['props']>;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=animation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/layers/animation-layer/animation.ts"],"names":[],"mappings":"AAIA,oDAAoD;AACpD,OAAO,EAAC,KAAK,KAAK,EAAC,MAAM,eAAe,CAAC;AAEzC,2DAA2D;AAC3D,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,KAAK,IAAI;IACjD,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,KAAK,IAAI;IACvD;;;;;OAKG;IACH,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;IAC7C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6DAA6D;IAC7D,MAAM,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;CACnE,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,CAAC,MAAM,SAAS,KAAK,IAAI;IAC5D,yCAAyC;IACzC,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACrC,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,sBAAsB,CAAC,MAAM,SAAS,KAAK,IAAI;IAClD,6BAA6B;IAC7B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAC3C,uBAAuB;IACvB,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,KAAK,IAAI;IACjD,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1C,CAAC;AAmGF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EACjE,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,EACvC,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,GACjC,cAAc,CAAC,MAAM,CAAC,CA2CxB;AA4BD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,EACvD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,EACxC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CA0D1B"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const LINEAR_EASING = (t) => t;
|
|
5
|
+
function resolveFramesGroup(group, baseStart) {
|
|
6
|
+
if ('props' in group) {
|
|
7
|
+
const delay = group.delay ?? 0;
|
|
8
|
+
const start = baseStart + delay;
|
|
9
|
+
const end = start + group.duration;
|
|
10
|
+
return {
|
|
11
|
+
frames: [
|
|
12
|
+
{
|
|
13
|
+
from: undefined,
|
|
14
|
+
to: group.props,
|
|
15
|
+
start,
|
|
16
|
+
end,
|
|
17
|
+
easing: group.easing ?? LINEAR_EASING
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
duration: delay + group.duration
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const delay = group.delay ?? 0;
|
|
24
|
+
const frames = [];
|
|
25
|
+
if (group.type === 'sequence') {
|
|
26
|
+
let current = baseStart;
|
|
27
|
+
for (let i = 0; i < group.frames.length; i += 1) {
|
|
28
|
+
const child = group.frames[i];
|
|
29
|
+
const childResult = resolveFramesGroup(child, current);
|
|
30
|
+
frames.push(...childResult.frames);
|
|
31
|
+
current += childResult.duration;
|
|
32
|
+
if (i < group.frames.length - 1)
|
|
33
|
+
current += delay;
|
|
34
|
+
}
|
|
35
|
+
return { frames, duration: Math.max(0, current - baseStart) };
|
|
36
|
+
}
|
|
37
|
+
if (group.type === 'concurrence') {
|
|
38
|
+
const start = baseStart + delay;
|
|
39
|
+
let maxDuration = 0;
|
|
40
|
+
for (const child of group.frames) {
|
|
41
|
+
const childResult = resolveFramesGroup(child, start);
|
|
42
|
+
frames.push(...childResult.frames);
|
|
43
|
+
if (childResult.duration > maxDuration)
|
|
44
|
+
maxDuration = childResult.duration;
|
|
45
|
+
}
|
|
46
|
+
return { frames, duration: delay + maxDuration };
|
|
47
|
+
}
|
|
48
|
+
let maxEnd = baseStart;
|
|
49
|
+
for (let i = 0; i < group.frames.length; i += 1) {
|
|
50
|
+
const child = group.frames[i];
|
|
51
|
+
const childResult = resolveFramesGroup(child, baseStart + i * delay);
|
|
52
|
+
frames.push(...childResult.frames);
|
|
53
|
+
const childEnd = baseStart + i * delay + childResult.duration;
|
|
54
|
+
if (childEnd > maxEnd)
|
|
55
|
+
maxEnd = childEnd;
|
|
56
|
+
}
|
|
57
|
+
frames.sort((f1, f2) => f1.end - f2.end);
|
|
58
|
+
return { frames, duration: Math.max(0, maxEnd - baseStart) };
|
|
59
|
+
}
|
|
60
|
+
function getFramesDuration(frames) {
|
|
61
|
+
let maxEnd = 0;
|
|
62
|
+
for (const frame of frames) {
|
|
63
|
+
if (frame.end > maxEnd)
|
|
64
|
+
maxEnd = frame.end;
|
|
65
|
+
}
|
|
66
|
+
return maxEnd;
|
|
67
|
+
}
|
|
68
|
+
function reverseResolvedFrames(frames) {
|
|
69
|
+
const duration = getFramesDuration(frames);
|
|
70
|
+
const reversed = [];
|
|
71
|
+
for (let i = frames.length - 1; i >= 0; i -= 1) {
|
|
72
|
+
const frame = frames[i];
|
|
73
|
+
reversed.push({
|
|
74
|
+
from: undefined,
|
|
75
|
+
to: frame.from ?? frame.to,
|
|
76
|
+
start: duration - frame.end,
|
|
77
|
+
end: duration - frame.start,
|
|
78
|
+
easing: frame.easing
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return reversed;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolves the animation iteration that should be active at a timeline timestamp.
|
|
85
|
+
* @param time - Current timeline timestamp in milliseconds.
|
|
86
|
+
* @param opts - Animation frame and repeat configuration.
|
|
87
|
+
* @param prevState - Previous animation state, when one has already been resolved.
|
|
88
|
+
* @returns The current or next resolved animation state.
|
|
89
|
+
*/
|
|
90
|
+
export function resolveAnimationFrames(time, opts, prevState) {
|
|
91
|
+
const { frames, repeat = 0, repeatType = 'loop', repeatDelay = 0 } = opts;
|
|
92
|
+
if (!prevState) {
|
|
93
|
+
const resolved = resolveFramesGroup(frames, 0);
|
|
94
|
+
return {
|
|
95
|
+
start: time,
|
|
96
|
+
end: time + resolved.duration,
|
|
97
|
+
inProgress: true,
|
|
98
|
+
iterations: 0,
|
|
99
|
+
frames: resolved.frames
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const state = prevState;
|
|
103
|
+
if (time < state.end) {
|
|
104
|
+
return state;
|
|
105
|
+
}
|
|
106
|
+
const iterationEnd = state.end;
|
|
107
|
+
const iterations = state.iterations + 1;
|
|
108
|
+
if (iterations > repeat) {
|
|
109
|
+
return state;
|
|
110
|
+
}
|
|
111
|
+
const start = iterationEnd + repeatDelay;
|
|
112
|
+
if (repeatType === 'reverse' && iterations % 2 === 1) {
|
|
113
|
+
const duration = state.end - state.start;
|
|
114
|
+
return {
|
|
115
|
+
start,
|
|
116
|
+
end: start + duration,
|
|
117
|
+
iterations,
|
|
118
|
+
frames: reverseResolvedFrames(state.frames),
|
|
119
|
+
inProgress: true
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const resolved = resolveFramesGroup(frames, 0);
|
|
124
|
+
return {
|
|
125
|
+
start,
|
|
126
|
+
end: start + resolved.duration,
|
|
127
|
+
inProgress: true,
|
|
128
|
+
iterations,
|
|
129
|
+
frames: resolved.frames
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function interpolateProp(from, to, ratio) {
|
|
134
|
+
if (from === undefined || to === undefined)
|
|
135
|
+
return to;
|
|
136
|
+
if (typeof to === 'string' || typeof to === 'function')
|
|
137
|
+
return to;
|
|
138
|
+
if (typeof to === 'number' && typeof from === 'number') {
|
|
139
|
+
return (from + (to - from) * ratio);
|
|
140
|
+
}
|
|
141
|
+
if (Array.isArray(to) && Array.isArray(from)) {
|
|
142
|
+
const len = to.length;
|
|
143
|
+
const out = new Array(len);
|
|
144
|
+
for (let i = 0; i < len; i += 1) {
|
|
145
|
+
const toValue = to[i];
|
|
146
|
+
const fromValue = from[i];
|
|
147
|
+
out[i] =
|
|
148
|
+
typeof toValue === 'number' && typeof fromValue === 'number'
|
|
149
|
+
? fromValue + (toValue - fromValue) * ratio
|
|
150
|
+
: toValue;
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
return to;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Resolves animated child layer props for a point inside one animation iteration.
|
|
158
|
+
* @param layer - Base child layer whose props provide the interpolation starting values.
|
|
159
|
+
* @param frames - Resolved frames for the active animation iteration.
|
|
160
|
+
* @param timeSinceStart - Milliseconds elapsed since the iteration started.
|
|
161
|
+
* @returns Child layer props that should be applied at the requested time.
|
|
162
|
+
*/
|
|
163
|
+
export function resolveProps(layer, frames, timeSinceStart) {
|
|
164
|
+
if (timeSinceStart < 0 || frames.length === 0)
|
|
165
|
+
return {};
|
|
166
|
+
const baseProps = layer.props;
|
|
167
|
+
const nextProps = {};
|
|
168
|
+
let transitions = baseProps.transitions ? { ...baseProps.transitions } : undefined;
|
|
169
|
+
const updateTriggers = { ...baseProps.updateTriggers };
|
|
170
|
+
const getPropValue = (key) => Object.prototype.hasOwnProperty.call(nextProps, key) ? nextProps[key] : baseProps[key];
|
|
171
|
+
for (const frame of frames) {
|
|
172
|
+
if (timeSinceStart < frame.start)
|
|
173
|
+
continue;
|
|
174
|
+
const duration = frame.end - frame.start;
|
|
175
|
+
if (duration <= 0) {
|
|
176
|
+
Object.assign(nextProps, frame.to);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (frame.from === undefined) {
|
|
180
|
+
const from = {};
|
|
181
|
+
for (const key of Object.keys(frame.to)) {
|
|
182
|
+
from[key] = getPropValue(key);
|
|
183
|
+
}
|
|
184
|
+
frame.from = from;
|
|
185
|
+
}
|
|
186
|
+
if (timeSinceStart >= frame.end) {
|
|
187
|
+
Object.assign(nextProps, frame.to);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const t = frame.easing((timeSinceStart - frame.start) / duration);
|
|
191
|
+
for (const key of Object.keys(frame.to)) {
|
|
192
|
+
const toValue = frame.to[key];
|
|
193
|
+
const fromValue = frame.from[key];
|
|
194
|
+
if (String(key).startsWith('get') &&
|
|
195
|
+
(typeof fromValue === 'function' || typeof toValue === 'function')) {
|
|
196
|
+
nextProps[key] = toValue;
|
|
197
|
+
updateTriggers[key] = { ...updateTriggers[key], animation: toValue };
|
|
198
|
+
transitions ??= {};
|
|
199
|
+
transitions[key] = {
|
|
200
|
+
duration: frame.end - frame.start,
|
|
201
|
+
easing: frame.easing
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const value = interpolateProp(fromValue, toValue, t);
|
|
206
|
+
if (value !== undefined) {
|
|
207
|
+
nextProps[key] = value;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return nextProps;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=animation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../src/layers/animation-layer/animation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "#version 300 es\n#define SHADER_NAME block-layer-fragment-shader\n\nprecision highp float;\n\nin vec2 unitPosition;\nflat in vec4 vFillColor;\nflat in vec4 vLineColor;\nflat in float lineWidth;\nflat in vec2 size;\n\nout vec4 fragColor;\n\nvoid main(void) {\n if (lineWidth > 0.0) {\n vec2 relPosition = unitPosition * size;\n float distToBorder =\n min(\n min(\n min(relPosition.x, relPosition.y),\n size.x - relPosition.x\n ),\n size.y - relPosition.y\n );\n if (distToBorder <= lineWidth) {\n fragColor = vLineColor;\n } else {\n fragColor = vFillColor;\n }\n } else {\n fragColor = vFillColor;\n }\n\n DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=block-layer-fragment.glsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-layer-fragment.glsl.d.ts","sourceRoot":"","sources":["../../../src/layers/block-layer/block-layer-fragment.glsl.ts"],"names":[],"mappings":";AAIA,wBAoCE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
export default `\
|
|
5
|
+
#version 300 es
|
|
6
|
+
#define SHADER_NAME block-layer-fragment-shader
|
|
7
|
+
|
|
8
|
+
precision highp float;
|
|
9
|
+
|
|
10
|
+
in vec2 unitPosition;
|
|
11
|
+
flat in vec4 vFillColor;
|
|
12
|
+
flat in vec4 vLineColor;
|
|
13
|
+
flat in float lineWidth;
|
|
14
|
+
flat in vec2 size;
|
|
15
|
+
|
|
16
|
+
out vec4 fragColor;
|
|
17
|
+
|
|
18
|
+
void main(void) {
|
|
19
|
+
if (lineWidth > 0.0) {
|
|
20
|
+
vec2 relPosition = unitPosition * size;
|
|
21
|
+
float distToBorder =
|
|
22
|
+
min(
|
|
23
|
+
min(
|
|
24
|
+
min(relPosition.x, relPosition.y),
|
|
25
|
+
size.x - relPosition.x
|
|
26
|
+
),
|
|
27
|
+
size.y - relPosition.y
|
|
28
|
+
);
|
|
29
|
+
if (distToBorder <= lineWidth) {
|
|
30
|
+
fragColor = vLineColor;
|
|
31
|
+
} else {
|
|
32
|
+
fragColor = vFillColor;
|
|
33
|
+
}
|
|
34
|
+
} else {
|
|
35
|
+
fragColor = vFillColor;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
//# sourceMappingURL=block-layer-fragment.glsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-layer-fragment.glsl.js","sourceRoot":"","sources":["../../../src/layers/block-layer/block-layer-fragment.glsl.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCd,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Shader uniform values used by {@link BlockLayer}. */
|
|
2
|
+
export type BlockProps = {
|
|
3
|
+
/** Numeric deck.gl unit for block width and height. */
|
|
4
|
+
sizeUnits: number;
|
|
5
|
+
/** Minimum rendered block width in pixels. */
|
|
6
|
+
widthMinPixels: number;
|
|
7
|
+
/** Minimum rendered block height in pixels. */
|
|
8
|
+
heightMinPixels: number;
|
|
9
|
+
/** Maximum rendered block width or height in pixels. */
|
|
10
|
+
sizeMaxPixels: number;
|
|
11
|
+
/** Numeric deck.gl unit for block outline width. */
|
|
12
|
+
lineWidthUnits: number;
|
|
13
|
+
};
|
|
14
|
+
/** Shader module that defines uniforms consumed by {@link BlockLayer}. */
|
|
15
|
+
export declare const blockUniforms: {
|
|
16
|
+
readonly name: "block";
|
|
17
|
+
readonly vs: "uniform blockUniforms {\n highp int sizeUnits;\n highp float widthMinPixels;\n highp float heightMinPixels;\n highp float sizeMaxPixels;\n highp int lineWidthUnits;\n} block;\n";
|
|
18
|
+
readonly fs: "uniform blockUniforms {\n highp int sizeUnits;\n highp float widthMinPixels;\n highp float heightMinPixels;\n highp float sizeMaxPixels;\n highp int lineWidthUnits;\n} block;\n";
|
|
19
|
+
readonly uniformTypes: {
|
|
20
|
+
readonly sizeUnits: "i32";
|
|
21
|
+
readonly widthMinPixels: "f32";
|
|
22
|
+
readonly heightMinPixels: "f32";
|
|
23
|
+
readonly sizeMaxPixels: "f32";
|
|
24
|
+
readonly lineWidthUnits: "i32";
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=block-layer-uniforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-layer-uniforms.d.ts","sourceRoot":"","sources":["../../../src/layers/block-layer/block-layer-uniforms.ts"],"names":[],"mappings":"AAgBA,wDAAwD;AACxD,MAAM,MAAM,UAAU,GAAG;IACvB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,aAAa;;;;;;;;;;;CAWmB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// deck.gl-community
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
const glslUniformBlock = `\
|
|
5
|
+
uniform blockUniforms {
|
|
6
|
+
highp int sizeUnits;
|
|
7
|
+
highp float widthMinPixels;
|
|
8
|
+
highp float heightMinPixels;
|
|
9
|
+
highp float sizeMaxPixels;
|
|
10
|
+
highp int lineWidthUnits;
|
|
11
|
+
} block;
|
|
12
|
+
`;
|
|
13
|
+
/** Shader module that defines uniforms consumed by {@link BlockLayer}. */
|
|
14
|
+
export const blockUniforms = {
|
|
15
|
+
name: 'block',
|
|
16
|
+
vs: glslUniformBlock,
|
|
17
|
+
fs: glslUniformBlock,
|
|
18
|
+
uniformTypes: {
|
|
19
|
+
sizeUnits: 'i32',
|
|
20
|
+
widthMinPixels: 'f32',
|
|
21
|
+
heightMinPixels: 'f32',
|
|
22
|
+
sizeMaxPixels: 'f32',
|
|
23
|
+
lineWidthUnits: 'i32'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=block-layer-uniforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-layer-uniforms.js","sourceRoot":"","sources":["../../../src/layers/block-layer/block-layer-uniforms.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAIpC,MAAM,gBAAgB,GAAG;;;;;;;;CAQxB,CAAC;AAgBF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,YAAY,EAAE;QACZ,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,KAAK;KACtB;CAC0C,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "#version 300 es\n#define SHADER_NAME block-layer-vertex-shader\n\nin vec3 positions;\nin vec3 instancePositions;\nin vec3 instancePositions64Low;\nin vec2 instanceSizes;\nin float instanceLineWidths;\nin vec4 instanceFillColors;\nin vec4 instanceLineColors;\nin vec3 instancePickingColors;\n\nout vec2 unitPosition;\nflat out vec4 vFillColor;\nflat out vec4 vLineColor;\nflat out float lineWidth;\nflat out vec2 size;\n\n// This needs to be added back to the project module\nvec2 project_size_to_pixel(vec2 size, int unit) {\n if (unit == UNIT_PIXELS) return size;\n if (unit == UNIT_COMMON && project.projectionMode != PROJECTION_MODE_IDENTITY) {\n return size * project.scale;\n }\n return project_size(size) * project.scale;\n}\n\nfloat clamp_signed_size(float size, float minPixels, float maxPixels) {\n float clampedMagnitude = clamp(abs(size), minPixels, maxPixels);\n if (size < 0.0) {\n return -clampedMagnitude;\n }\n return clampedMagnitude;\n}\n\nvoid main(void) {\n geometry.worldPosition = instancePositions;\n geometry.pickingColor = instancePickingColors;\n geometry.uv = positions.xy;\n\n vec2 pixelSize = project_size_to_pixel(instanceSizes, block.sizeUnits);\n pixelSize.x = clamp_signed_size(pixelSize.x, block.widthMinPixels, block.sizeMaxPixels);\n pixelSize.y = clamp_signed_size(pixelSize.y, block.heightMinPixels, block.sizeMaxPixels);\n unitPosition = positions.xy;\n size = pixelSize;\n lineWidth = project_size_to_pixel(vec2(instanceLineWidths, 0.0), block.lineWidthUnits).x;\n\n // Find the center of the point and add the current vertex\n vec3 offset = vec3(unitPosition * project_pixel_size(pixelSize), 0.0);\n DECKGL_FILTER_SIZE(offset, geometry);\n\n gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position);\n DECKGL_FILTER_GL_POSITION(gl_Position, geometry);\n\n // Apply opacity to instance color, or return instance picking color\n vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity);\n DECKGL_FILTER_COLOR(vFillColor, geometry);\n\n vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity);\n DECKGL_FILTER_COLOR(vLineColor, geometry);\n}\n";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=block-layer-vertex.glsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-layer-vertex.glsl.d.ts","sourceRoot":"","sources":["../../../src/layers/block-layer/block-layer-vertex.glsl.ts"],"names":[],"mappings":";AAIA,wBA8DE"}
|