@flowmap.gl/layers 8.0.0-alpha.15 → 8.0.0-alpha.16

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.
Files changed (67) hide show
  1. package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts +1 -0
  2. package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +1 -0
  3. package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +178 -0
  4. package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts +0 -0
  5. package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.d.ts.map +0 -0
  6. package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +21 -0
  7. package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts +0 -0
  8. package/{dist → dist-es5}/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.d.ts.map +0 -0
  9. package/dist-es5/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +21 -0
  10. package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts +0 -0
  11. package/{dist → dist-es5}/AnimatedFlowLinesLayer/index.d.ts.map +0 -0
  12. package/dist-es5/AnimatedFlowLinesLayer/index.js +8 -0
  13. package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayer.d.ts +1 -0
  14. package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +1 -0
  15. package/dist-es5/FlowCirclesLayer/FlowCirclesLayer.js +149 -0
  16. package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts +0 -0
  17. package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.d.ts.map +0 -0
  18. package/dist-es5/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +21 -0
  19. package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts +0 -0
  20. package/{dist → dist-es5}/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.d.ts.map +0 -0
  21. package/dist-es5/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +21 -0
  22. package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts +0 -0
  23. package/{dist → dist-es5}/FlowCirclesLayer/index.d.ts.map +0 -0
  24. package/dist-es5/FlowCirclesLayer/index.js +8 -0
  25. package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayer.d.ts +1 -0
  26. package/dist-es5/FlowLinesLayer/FlowLinesLayer.d.ts.map +1 -0
  27. package/dist-es5/FlowLinesLayer/FlowLinesLayer.js +217 -0
  28. package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts +0 -0
  29. package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerFragment.glsl.d.ts.map +0 -0
  30. package/dist-es5/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +21 -0
  31. package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts +0 -0
  32. package/{dist → dist-es5}/FlowLinesLayer/FlowLinesLayerVertex.glsl.d.ts.map +0 -0
  33. package/dist-es5/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +21 -0
  34. package/{dist → dist-es5}/FlowLinesLayer/index.d.ts +0 -0
  35. package/{dist → dist-es5}/FlowLinesLayer/index.d.ts.map +0 -0
  36. package/dist-es5/FlowLinesLayer/index.js +8 -0
  37. package/{dist → dist-es5}/FlowmapLayer.d.ts +1 -0
  38. package/dist-es5/FlowmapLayer.d.ts.map +1 -0
  39. package/dist-es5/FlowmapLayer.js +476 -0
  40. package/{dist → dist-es5}/index.d.ts +0 -0
  41. package/{dist → dist-es5}/index.d.ts.map +0 -0
  42. package/dist-es5/index.js +26 -0
  43. package/{dist → dist-es5}/types.d.ts +1 -0
  44. package/dist-es5/types.d.ts.map +1 -0
  45. package/dist-es5/types.js +23 -0
  46. package/package.json +6 -4
  47. package/tsconfig.es5.json +11 -0
  48. package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.d.ts.map +0 -1
  49. package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayer.js +0 -139
  50. package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerFragment.glsl.js +0 -37
  51. package/dist/AnimatedFlowLinesLayer/AnimatedFlowLinesLayerVertex.glsl.js +0 -91
  52. package/dist/AnimatedFlowLinesLayer/index.js +0 -3
  53. package/dist/FlowCirclesLayer/FlowCirclesLayer.d.ts.map +0 -1
  54. package/dist/FlowCirclesLayer/FlowCirclesLayer.js +0 -115
  55. package/dist/FlowCirclesLayer/FlowCirclesLayerFragment.glsl.js +0 -76
  56. package/dist/FlowCirclesLayer/FlowCirclesLayerVertex.glsl.js +0 -63
  57. package/dist/FlowCirclesLayer/index.js +0 -3
  58. package/dist/FlowLinesLayer/FlowLinesLayer.d.ts.map +0 -1
  59. package/dist/FlowLinesLayer/FlowLinesLayer.js +0 -182
  60. package/dist/FlowLinesLayer/FlowLinesLayerFragment.glsl.js +0 -36
  61. package/dist/FlowLinesLayer/FlowLinesLayerVertex.glsl.js +0 -102
  62. package/dist/FlowLinesLayer/index.js +0 -3
  63. package/dist/FlowmapLayer.d.ts.map +0 -1
  64. package/dist/FlowmapLayer.js +0 -351
  65. package/dist/index.js +0 -6
  66. package/dist/types.d.ts.map +0 -1
  67. package/dist/types.js +0 -20
@@ -1,182 +0,0 @@
1
- /*
2
- * Copyright 2022 FlowmapBlue
3
- * Copyright 2018-2020 Teralytics, modified by FlowmapBlue
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- import { Layer, picking, project32 } from '@deck.gl/core';
19
- import GL from '@luma.gl/constants';
20
- import { Geometry, Model } from '@luma.gl/core';
21
- import FragmentShader from './FlowLinesLayerFragment.glsl';
22
- import VertexShader from './FlowLinesLayerVertex.glsl';
23
- const DEFAULT_COLOR = [0, 132, 193, 255];
24
- const INNER_SIDE_OUTLINE_THICKNESS = 1;
25
- class FlowLinesLayer extends Layer {
26
- // props!: Props;
27
- constructor(props) {
28
- super(props);
29
- }
30
- getShaders() {
31
- return super.getShaders({
32
- vs: VertexShader,
33
- fs: FragmentShader,
34
- modules: [project32, picking],
35
- shaderCache: this.context.shaderCache,
36
- });
37
- }
38
- initializeState() {
39
- const { attributeManager } = this.state;
40
- attributeManager.addInstanced({
41
- instanceSourcePositions: {
42
- accessor: 'getSourcePosition',
43
- size: 3,
44
- transition: false,
45
- type: GL.DOUBLE,
46
- },
47
- instanceTargetPositions: {
48
- accessor: 'getTargetPosition',
49
- size: 3,
50
- transition: false,
51
- type: GL.DOUBLE,
52
- },
53
- instanceThickness: {
54
- accessor: 'getThickness',
55
- size: 1,
56
- transition: false,
57
- },
58
- instanceEndpointOffsets: {
59
- accessor: 'getEndpointOffsets',
60
- size: 2,
61
- transition: false,
62
- },
63
- instanceColors: {
64
- accessor: 'getColor',
65
- size: 4,
66
- type: GL.UNSIGNED_BYTE,
67
- transition: false,
68
- },
69
- instancePickable: {
70
- accessor: 'getPickable',
71
- size: 1,
72
- transition: false,
73
- },
74
- });
75
- }
76
- updateState({ props, oldProps, changeFlags }) {
77
- super.updateState({ props, oldProps, changeFlags });
78
- if (changeFlags.extensionsChanged) {
79
- const { gl } = this.context;
80
- if (this.state.model) {
81
- this.state.model.delete();
82
- }
83
- this.setState({ model: this._getModel(gl) });
84
- this.getAttributeManager().invalidateAll();
85
- }
86
- }
87
- draw({ uniforms }) {
88
- const { gl } = this.context;
89
- const { outlineColor, thicknessUnit } = this.props;
90
- gl.lineWidth(1);
91
- this.state.model
92
- .setUniforms(Object.assign(Object.assign({}, uniforms), { outlineColor: outlineColor.map((x) => x / 255), thicknessUnit: thicknessUnit * 2.0, gap: 0.5 }))
93
- .draw();
94
- }
95
- _getModel(gl) {
96
- let positions = [];
97
- let pixelOffsets = [];
98
- const { drawOutline, outlineThickness } = this.props;
99
- if (drawOutline) {
100
- // source_target_mix, perpendicular_offset_in_thickness_units, direction_of_travel_offset_in_thickness_units
101
- // prettier-ignore
102
- positions = positions.concat([
103
- // Outline
104
- 0, 0, 0,
105
- 0, 1, 0,
106
- 1, 0, 0,
107
- 0, 1, 0,
108
- 1, 0, -3,
109
- 1, 1, -3,
110
- 1, 0, 0,
111
- 1, 2, -3,
112
- 1, 0, -3,
113
- ]);
114
- const tout = outlineThickness;
115
- const tin = INNER_SIDE_OUTLINE_THICKNESS; // the outline shouldn't cover the opposite arrow
116
- // perpendicular_offset_in_pixels, direction_of_travel_offset_in_pixels, fill_outline_color_mix
117
- // prettier-ignore
118
- pixelOffsets = pixelOffsets.concat([
119
- // Outline
120
- -tin, -tout, 1,
121
- tout, -tout, 1,
122
- -tin, tout, 1,
123
- tout, -tout, 1,
124
- -tin, 0, 1,
125
- tout, 0, 1,
126
- -tin, 3 * tout, 1,
127
- 2 * tout, -tout, 1,
128
- -tin, -tout, 1,
129
- ]);
130
- }
131
- // prettier-ignore
132
- positions = positions.concat([
133
- // Fill
134
- 0, 0, 0,
135
- 0, 1, 0,
136
- 1, 0, 0,
137
- 0, 1, 0,
138
- 1, 0, -3,
139
- 1, 1, -3,
140
- 1, 0, 0,
141
- 1, 2, -3,
142
- 1, 0, -3,
143
- ]);
144
- // prettier-ignore
145
- pixelOffsets = pixelOffsets.concat([
146
- // Fill
147
- 0, 0, 0,
148
- 0, 0, 0,
149
- 0, 0, 0,
150
- 0, 0, 0,
151
- 0, 0, 0,
152
- 0, 0, 0,
153
- 0, 0, 0,
154
- 0, 0, 0,
155
- 0, 0, 0,
156
- ]);
157
- return new Model(gl, Object.assign(Object.assign({ id: this.props.id }, this.getShaders()), { geometry: new Geometry({
158
- drawType: GL.TRIANGLES,
159
- attributes: {
160
- positions: new Float32Array(positions),
161
- normals: new Float32Array(pixelOffsets),
162
- },
163
- }), isInstanced: true, shaderCache: this.context.shaderCache }));
164
- }
165
- }
166
- FlowLinesLayer.layerName = 'FlowLinesLayer';
167
- FlowLinesLayer.defaultProps = {
168
- getSourcePosition: { type: 'accessor', value: (d) => [0, 0] },
169
- getTargetPosition: { type: 'accessor', value: (d) => [0, 0] },
170
- getColor: { type: 'accessor', value: DEFAULT_COLOR },
171
- getThickness: { type: 'accessor', value: (d) => d.count },
172
- getPickable: { type: 'accessor', value: (d) => 1.0 },
173
- drawOutline: true,
174
- thicknessUnit: 12,
175
- outlineThickness: 1,
176
- outlineColor: [255, 255, 255, 255],
177
- parameters: {
178
- depthTest: false,
179
- },
180
- };
181
- export default FlowLinesLayer;
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0xpbmVzTGF5ZXIvRmxvd0xpbmVzTGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxjQUFjLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxZQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFzQnZELE1BQU0sYUFBYSxHQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0MsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFFdkMsTUFBTSxjQUFrQixTQUFRLEtBQUs7SUFnQm5DLGlCQUFpQjtJQUVqQixZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDdEIsRUFBRSxFQUFFLFlBQVk7WUFDaEIsRUFBRSxFQUFFLGNBQWM7WUFDbEIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxFQUFDLGdCQUFnQixFQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV0QyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7WUFDNUIsdUJBQXVCLEVBQUU7Z0JBQ3ZCLFFBQVEsRUFBRSxtQkFBbUI7Z0JB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Q0wsQ0FBQzs7QUExTE0sd0JBQVMsR0FBRyxnQkFBZ0IsQ0FBQztBQUM3QiwyQkFBWSxHQUFHO0lBQ3BCLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO0lBQ2hFLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDO0lBQ2hFLFFBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQztJQUNsRCxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQztJQUM1RCxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFDO0lBQ3ZELFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsWUFBWSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ2xDLFVBQVUsRUFBRTtRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCO0NBQ0YsQ0FBQztBQStLSixlQUFlLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBGbG93bWFwQmx1ZVxuICogQ29weXJpZ2h0IDIwMTgtMjAyMCBUZXJhbHl0aWNzLCBtb2RpZmllZCBieSBGbG93bWFwQmx1ZVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuXG5pbXBvcnQge0xheWVyLCBwaWNraW5nLCBwcm9qZWN0MzJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0dlb21ldHJ5LCBNb2RlbH0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgRnJhZ21lbnRTaGFkZXIgZnJvbSAnLi9GbG93TGluZXNMYXllckZyYWdtZW50Lmdsc2wnO1xuaW1wb3J0IFZlcnRleFNoYWRlciBmcm9tICcuL0Zsb3dMaW5lc0xheWVyVmVydGV4Lmdsc2wnO1xuaW1wb3J0IHtGbG93TGluZXNMYXllckF0dHJpYnV0ZXMsIFJHQkF9IGZyb20gJ0BmbG93bWFwLmdsL2RhdGEnO1xuaW1wb3J0IHtMYXllclByb3BzfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcHM8Rj4gZXh0ZW5kcyBMYXllclByb3BzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgcGlja2FibGU/OiBib29sZWFuO1xuICB1cGRhdGVUcmlnZ2Vycz86IHtba2V5OiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn07XG4gIGRhdGE6IEZbXSB8IEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcztcbiAgZHJhd091dGxpbmU6IGJvb2xlYW47XG4gIG91dGxpbmVDb2xvcj86IFJHQkE7XG4gIG91dGxpbmVUaGlja25lc3M/OiBudW1iZXI7XG4gIHRoaWNrbmVzc1VuaXQ/OiBudW1iZXI7XG4gIGdldFNvdXJjZVBvc2l0aW9uPzogKGQ6IEYpID0+IFtudW1iZXIsIG51bWJlcl07XG4gIGdldFRhcmdldFBvc2l0aW9uPzogKGQ6IEYpID0+IFtudW1iZXIsIG51bWJlcl07XG4gIGdldENvbG9yPzogKGQ6IEYpID0+IFJHQkE7XG4gIGdldFRoaWNrbmVzcz86IChkOiBGKSA9PiBudW1iZXI7XG4gIGdldFBpY2thYmxlPzogKGQ6IEYsIHtpbmRleH06IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyOyAvLyA+PSAxLjAgLT4gdHJ1ZVxuICBnZXRFbmRwb2ludE9mZnNldHM/OiAoZDogRikgPT4gW251bWJlciwgbnVtYmVyXTtcbn1cblxuY29uc3QgREVGQVVMVF9DT0xPUjogUkdCQSA9IFswLCAxMzIsIDE5MywgMjU1XTtcbmNvbnN0IElOTkVSX1NJREVfT1VUTElORV9USElDS05FU1MgPSAxO1xuXG5jbGFzcyBGbG93TGluZXNMYXllcjxGPiBleHRlbmRzIExheWVyIHtcbiAgc3RhdGljIGxheWVyTmFtZSA9ICdGbG93TGluZXNMYXllcic7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZ2V0U291cmNlUG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IGFueSkgPT4gWzAsIDBdfSxcbiAgICBnZXRUYXJnZXRQb3NpdGlvbjoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAoZDogYW55KSA9PiBbMCwgMF19LFxuICAgIGdldENvbG9yOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IERFRkFVTFRfQ09MT1J9LFxuICAgIGdldFRoaWNrbmVzczoge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiAoZDogYW55KSA9PiBkLmNvdW50fSwgLy8gMC4uMC41XG4gICAgZ2V0UGlja2FibGU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogKGQ6IGFueSkgPT4gMS4wfSxcbiAgICBkcmF3T3V0bGluZTogdHJ1ZSxcbiAgICB0aGlja25lc3NVbml0OiAxMixcbiAgICBvdXRsaW5lVGhpY2tuZXNzOiAxLFxuICAgIG91dGxpbmVDb2xvcjogWzI1NSwgMjU1LCAyNTUsIDI1NV0sXG4gICAgcGFyYW1ldGVyczoge1xuICAgICAgZGVwdGhUZXN0OiBmYWxzZSxcbiAgICB9LFxuICB9O1xuICAvLyBwcm9wcyE6IFByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBQcm9wczxGPikge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIGdldFNoYWRlcnMoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBzdXBlci5nZXRTaGFkZXJzKHtcbiAgICAgIHZzOiBWZXJ0ZXhTaGFkZXIsXG4gICAgICBmczogRnJhZ21lbnRTaGFkZXIsXG4gICAgICBtb2R1bGVzOiBbcHJvamVjdDMyLCBwaWNraW5nXSxcbiAgICAgIHNoYWRlckNhY2hlOiB0aGlzLmNvbnRleHQuc2hhZGVyQ2FjaGUsXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3Qge2F0dHJpYnV0ZU1hbmFnZXJ9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkSW5zdGFuY2VkKHtcbiAgICAgIGluc3RhbmNlU291cmNlUG9zaXRpb25zOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0U291cmNlUG9zaXRpb24nLFxuICAgICAgICBzaXplOiAzLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgdHlwZTogR0wuRE9VQkxFLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0VGFyZ2V0UG9zaXRpb24nLFxuICAgICAgICBzaXplOiAzLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgICAgdHlwZTogR0wuRE9VQkxFLFxuICAgICAgfSxcbiAgICAgIGluc3RhbmNlVGhpY2tuZXNzOiB7XG4gICAgICAgIGFjY2Vzc29yOiAnZ2V0VGhpY2tuZXNzJyxcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VFbmRwb2ludE9mZnNldHM6IHtcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRFbmRwb2ludE9mZnNldHMnLFxuICAgICAgICBzaXplOiAyLFxuICAgICAgICB0cmFuc2l0aW9uOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBpbnN0YW5jZUNvbG9yczoge1xuICAgICAgICBhY2Nlc3NvcjogJ2dldENvbG9yJyxcbiAgICAgICAgc2l6ZTogNCxcbiAgICAgICAgdHlwZTogR0wuVU5TSUdORURfQllURSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgaW5zdGFuY2VQaWNrYWJsZToge1xuICAgICAgICBhY2Nlc3NvcjogJ2dldFBpY2thYmxlJyxcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgdHJhbnNpdGlvbjogZmFsc2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUoe3Byb3BzLCBvbGRQcm9wcywgY2hhbmdlRmxhZ3N9KTtcblxuICAgIGlmIChjaGFuZ2VGbGFncy5leHRlbnNpb25zQ2hhbmdlZCkge1xuICAgICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICAgIGlmICh0aGlzLnN0YXRlLm1vZGVsKSB7XG4gICAgICAgIHRoaXMuc3RhdGUubW9kZWwuZGVsZXRlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHttb2RlbDogdGhpcy5fZ2V0TW9kZWwoZ2wpfSk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKS5pbnZhbGlkYXRlQWxsKCk7XG4gICAgfVxuICB9XG5cbiAgZHJhdyh7dW5pZm9ybXN9OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgY29uc3Qge2dsfSA9IHRoaXMuY29udGV4dDtcbiAgICBjb25zdCB7b3V0bGluZUNvbG9yLCB0aGlja25lc3NVbml0fSA9IHRoaXMucHJvcHM7XG4gICAgZ2wubGluZVdpZHRoKDEpO1xuICAgIHRoaXMuc3RhdGUubW9kZWxcbiAgICAgIC5zZXRVbmlmb3Jtcyh7XG4gICAgICAgIC4uLnVuaWZvcm1zLFxuICAgICAgICBvdXRsaW5lQ29sb3I6IG91dGxpbmVDb2xvci5tYXAoKHg6IG51bWJlcikgPT4geCAvIDI1NSksXG4gICAgICAgIHRoaWNrbmVzc1VuaXQ6IHRoaWNrbmVzc1VuaXQgKiAyLjAsXG4gICAgICAgIGdhcDogMC41LFxuICAgICAgfSlcbiAgICAgIC5kcmF3KCk7XG4gIH1cblxuICBfZ2V0TW9kZWwoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGxldCBwb3NpdGlvbnM6IG51bWJlcltdID0gW107XG4gICAgbGV0IHBpeGVsT2Zmc2V0czogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0IHtkcmF3T3V0bGluZSwgb3V0bGluZVRoaWNrbmVzc30gPSB0aGlzLnByb3BzO1xuICAgIGlmIChkcmF3T3V0bGluZSkge1xuICAgICAgLy8gc291cmNlX3RhcmdldF9taXgsIHBlcnBlbmRpY3VsYXJfb2Zmc2V0X2luX3RoaWNrbmVzc191bml0cywgZGlyZWN0aW9uX29mX3RyYXZlbF9vZmZzZXRfaW5fdGhpY2tuZXNzX3VuaXRzXG4gICAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICAgIHBvc2l0aW9ucyA9IHBvc2l0aW9ucy5jb25jYXQoW1xuICAgICAgICAgIC8vIE91dGxpbmVcbiAgICAgICAgICAwLCAwLCAwLFxuICAgICAgICAgIDAsIDEsIDAsXG4gICAgICAgICAgMSwgMCwgMCxcblxuICAgICAgICAgIDAsIDEsIDAsXG4gICAgICAgICAgMSwgMCwgLTMsXG4gICAgICAgICAgMSwgMSwgLTMsXG5cbiAgICAgICAgICAxLCAwLCAwLFxuICAgICAgICAgIDEsIDIsIC0zLFxuICAgICAgICAgIDEsIDAsIC0zLFxuICAgICAgICBdLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdG91dCA9IG91dGxpbmVUaGlja25lc3M7XG4gICAgICBjb25zdCB0aW4gPSBJTk5FUl9TSURFX09VVExJTkVfVEhJQ0tORVNTOyAvLyB0aGUgb3V0bGluZSBzaG91bGRuJ3QgY292ZXIgdGhlIG9wcG9zaXRlIGFycm93XG4gICAgICAvLyBwZXJwZW5kaWN1bGFyX29mZnNldF9pbl9waXhlbHMsIGRpcmVjdGlvbl9vZl90cmF2ZWxfb2Zmc2V0X2luX3BpeGVscywgZmlsbF9vdXRsaW5lX2NvbG9yX21peFxuICAgICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgICBwaXhlbE9mZnNldHMgPSBwaXhlbE9mZnNldHMuY29uY2F0KFtcbiAgICAgICAgLy8gT3V0bGluZVxuICAgICAgICAtdGluLCAtdG91dCwgMSxcbiAgICAgICAgdG91dCwgLXRvdXQsIDEsXG4gICAgICAgIC10aW4sIHRvdXQsIDEsXG5cbiAgICAgICAgdG91dCwgLXRvdXQsIDEsXG4gICAgICAgIC10aW4sIDAsIDEsXG4gICAgICAgIHRvdXQsIDAsIDEsXG5cbiAgICAgICAgLXRpbiwgMyAqIHRvdXQsIDEsXG4gICAgICAgIDIgKiB0b3V0LCAtdG91dCwgMSxcbiAgICAgICAgLXRpbiwgLXRvdXQsIDEsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBwb3NpdGlvbnMgPSBwb3NpdGlvbnMuY29uY2F0KFtcbiAgICAgIC8vIEZpbGxcbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAxLCAwLFxuICAgICAgMSwgMCwgMCxcblxuICAgICAgMCwgMSwgMCxcbiAgICAgIDEsIDAsIC0zLFxuICAgICAgMSwgMSwgLTMsXG5cbiAgICAgIDEsIDAsIDAsXG4gICAgICAxLCAyLCAtMyxcbiAgICAgIDEsIDAsIC0zLFxuICAgIF0pO1xuXG4gICAgLy8gcHJldHRpZXItaWdub3JlXG4gICAgcGl4ZWxPZmZzZXRzID0gcGl4ZWxPZmZzZXRzLmNvbmNhdChbXG4gICAgICAvLyBGaWxsXG4gICAgICAwLCAwLCAwLFxuICAgICAgMCwgMCwgMCxcbiAgICAgIDAsIDAsIDAsXG5cbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAwLCAwLFxuICAgICAgMCwgMCwgMCxcblxuICAgICAgMCwgMCwgMCxcbiAgICAgIDAsIDAsIDAsXG4gICAgICAwLCAwLCAwLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIG5ldyBNb2RlbChnbCwge1xuICAgICAgaWQ6IHRoaXMucHJvcHMuaWQsXG4gICAgICAuLi50aGlzLmdldFNoYWRlcnMoKSxcbiAgICAgIGdlb21ldHJ5OiBuZXcgR2VvbWV0cnkoe1xuICAgICAgICBkcmF3VHlwZTogR0wuVFJJQU5HTEVTLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyksXG4gICAgICAgICAgbm9ybWFsczogbmV3IEZsb2F0MzJBcnJheShwaXhlbE9mZnNldHMpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBpc0luc3RhbmNlZDogdHJ1ZSxcbiAgICAgIHNoYWRlckNhY2hlOiB0aGlzLmNvbnRleHQuc2hhZGVyQ2FjaGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmxvd0xpbmVzTGF5ZXI7XG4iXX0=
@@ -1,36 +0,0 @@
1
- /*
2
- * Copyright 2022 FlowmapBlue
3
- * Copyright 2018-2020 Teralytics, modified by FlowmapBlue
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- export default `\
19
- #define SHADER_NAME flow-line-layer-fragment-shader
20
-
21
- precision highp float;
22
-
23
- varying vec4 vColor;
24
- varying vec2 uv;
25
-
26
- void main(void) {
27
- if (vColor.a == 0.0) {
28
- discard;
29
- }
30
-
31
- geometry.uv = uv;
32
- gl_FragColor = vColor;
33
- DECKGL_FILTER_COLOR(gl_FragColor, geometry);
34
- }
35
- `;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXJGcmFnbWVudC5nbHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Zsb3dMaW5lc0xheWVyL0Zsb3dMaW5lc0xheWVyRnJhZ21lbnQuZ2xzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjIgRmxvd21hcEJsdWVcbiAqIENvcHlyaWdodCAyMDE4LTIwMjAgVGVyYWx5dGljcywgbW9kaWZpZWQgYnkgRmxvd21hcEJsdWVcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGBcXFxuI2RlZmluZSBTSEFERVJfTkFNRSBmbG93LWxpbmUtbGF5ZXItZnJhZ21lbnQtc2hhZGVyXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxudmFyeWluZyB2ZWM0IHZDb2xvcjtcbnZhcnlpbmcgdmVjMiB1djtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgaWYgKHZDb2xvci5hID09IDAuMCkge1xuICAgIGRpc2NhcmQ7XG4gIH1cblxuICBnZW9tZXRyeS51diA9IHV2O1xuICBnbF9GcmFnQ29sb3IgPSB2Q29sb3I7XG4gIERFQ0tHTF9GSUxURVJfQ09MT1IoZ2xfRnJhZ0NvbG9yLCBnZW9tZXRyeSk7XG59XG5gO1xuIl19
@@ -1,102 +0,0 @@
1
- /*
2
- * Copyright 2022 FlowmapBlue
3
- * Copyright 2018-2020 Teralytics, modified by FlowmapBlue
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- *
17
- */
18
- export default `\
19
- #define SHADER_NAME flow-line-layer-vertex-shader
20
-
21
- attribute vec3 positions;
22
- attribute vec3 normals;
23
- attribute vec4 instanceColors;
24
- attribute float instanceThickness; // 0..0.5
25
- attribute vec3 instanceSourcePositions;
26
- attribute vec3 instanceTargetPositions;
27
- attribute vec3 instanceSourcePositions64Low;
28
- attribute vec3 instanceTargetPositions64Low;
29
- attribute vec3 instancePickingColors;
30
- attribute vec2 instanceEndpointOffsets;
31
- attribute float instancePickable;
32
-
33
- uniform vec4 outlineColor;
34
- uniform float thicknessUnit;
35
- uniform float gap;
36
- uniform float opacity;
37
-
38
- varying vec4 vColor;
39
- varying vec2 uv;
40
-
41
- void main(void) {
42
- geometry.worldPosition = instanceSourcePositions;
43
- geometry.worldPositionAlt = instanceTargetPositions;
44
-
45
- // Position
46
- vec4 source_commonspace;
47
- vec4 target_commonspace;
48
- vec4 source = project_position_to_clipspace(instanceSourcePositions, instanceSourcePositions64Low, vec3(0.), source_commonspace);
49
- vec4 target = project_position_to_clipspace(instanceTargetPositions, instanceTargetPositions64Low, vec3(0.), target_commonspace);
50
-
51
- // linear interpolation of source & target to pick right coord
52
- float sourceOrTarget = positions.x;
53
- geometry.position = mix(source_commonspace, target_commonspace, sourceOrTarget);
54
- uv = positions.xy;
55
- geometry.uv = uv;
56
- if (instancePickable > 0.5) {
57
- geometry.pickingColor = instancePickingColors;
58
- }
59
-
60
- // set the clamp limits in pixel size
61
- float lengthCommon = length(target_commonspace - source_commonspace);
62
- vec2 offsetDistances = project_pixel_size(positions.yz) * thicknessUnit;
63
-
64
- vec2 limitedOffsetDistances = clamp(
65
- project_pixel_size(positions.yz) * thicknessUnit,
66
- -lengthCommon*.8, lengthCommon*.8
67
- );
68
- float startOffsetCommon = project_pixel_size(instanceEndpointOffsets[0]);
69
- float endOffsetCommon = project_pixel_size(instanceEndpointOffsets[1]);
70
- float endpointOffset = mix(
71
- clamp(startOffsetCommon, 0.0, lengthCommon*.2),
72
- -clamp(endOffsetCommon, 0.0, lengthCommon*.2),
73
- positions.x
74
- );
75
-
76
- vec2 flowlineDir = normalize(target_commonspace.xy - source_commonspace.xy);
77
- vec2 perpendicularDir = vec2(-flowlineDir.y, flowlineDir.x);
78
- vec2 normalsCommon = project_pixel_size(normals.xy);
79
- float gapCommon = project_pixel_size(gap);
80
- vec3 offsetCommon = vec3(
81
- flowlineDir * (instanceThickness * limitedOffsetDistances[1] + normalsCommon.y + endpointOffset * 1.05) -
82
- perpendicularDir * (instanceThickness * limitedOffsetDistances[0] + gapCommon + normalsCommon.x),
83
- 0.0
84
- );
85
-
86
- DECKGL_FILTER_SIZE(offsetCommon, geometry);
87
- vec4 position_commonspace = mix(source_commonspace, target_commonspace, sourceOrTarget);
88
- vec4 offset_commonspace = vec4(offsetCommon, 0.0);
89
- gl_Position = project_common_position_to_clipspace(position_commonspace + offset_commonspace);
90
-
91
- DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
92
-
93
- vec4 fillColor = vec4(instanceColors.rgb, instanceColors.a * opacity) / 255.;
94
- if (instancePickable <= 0.5) {
95
- vColor = mix(fillColor, vec4(outlineColor.xyz, instanceThickness), normals.z);
96
- } else {
97
- vColor = mix(fillColor, vec4(outlineColor.xyz, outlineColor.w * fillColor.w), normals.z);
98
- }
99
- DECKGL_FILTER_COLOR(vColor, geometry);
100
- }
101
- `;
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0xpbmVzTGF5ZXJWZXJ0ZXguZ2xzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9GbG93TGluZXNMYXllci9GbG93TGluZXNMYXllclZlcnRleC5nbHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtRmQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMiBGbG93bWFwQmx1ZVxuICogQ29weXJpZ2h0IDIwMTgtMjAyMCBUZXJhbHl0aWNzLCBtb2RpZmllZCBieSBGbG93bWFwQmx1ZVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuZXhwb3J0IGRlZmF1bHQgYFxcXG4jZGVmaW5lIFNIQURFUl9OQU1FIGZsb3ctbGluZS1sYXllci12ZXJ0ZXgtc2hhZGVyXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIG5vcm1hbHM7XG5hdHRyaWJ1dGUgdmVjNCBpbnN0YW5jZUNvbG9ycztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVRoaWNrbmVzczsgICAgLy8gMC4uMC41XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuYXR0cmlidXRlIHZlYzMgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM2NExvdztcbmF0dHJpYnV0ZSB2ZWMzIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zNjRMb3c7XG5hdHRyaWJ1dGUgdmVjMyBpbnN0YW5jZVBpY2tpbmdDb2xvcnM7XG5hdHRyaWJ1dGUgdmVjMiBpbnN0YW5jZUVuZHBvaW50T2Zmc2V0cztcbmF0dHJpYnV0ZSBmbG9hdCBpbnN0YW5jZVBpY2thYmxlO1xuXG51bmlmb3JtIHZlYzQgb3V0bGluZUNvbG9yO1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3NVbml0O1xudW5pZm9ybSBmbG9hdCBnYXA7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCB2Q29sb3I7XG52YXJ5aW5nIHZlYzIgdXY7XG5cbnZvaWQgbWFpbih2b2lkKSB7XG4gIGdlb21ldHJ5LndvcmxkUG9zaXRpb24gPSBpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucztcbiAgZ2VvbWV0cnkud29ybGRQb3NpdGlvbkFsdCA9IGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zO1xuICBcbiAgLy8gUG9zaXRpb25cbiAgdmVjNCBzb3VyY2VfY29tbW9uc3BhY2U7ICAgIFxuICB2ZWM0IHRhcmdldF9jb21tb25zcGFjZTtcbiAgdmVjNCBzb3VyY2UgPSBwcm9qZWN0X3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShpbnN0YW5jZVNvdXJjZVBvc2l0aW9ucywgaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM2NExvdywgdmVjMygwLiksIHNvdXJjZV9jb21tb25zcGFjZSk7XG4gIHZlYzQgdGFyZ2V0ID0gcHJvamVjdF9wb3NpdGlvbl90b19jbGlwc3BhY2UoaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnMsIGluc3RhbmNlVGFyZ2V0UG9zaXRpb25zNjRMb3csIHZlYzMoMC4pLCB0YXJnZXRfY29tbW9uc3BhY2UpO1xuXG4gIC8vIGxpbmVhciBpbnRlcnBvbGF0aW9uIG9mIHNvdXJjZSAmIHRhcmdldCB0byBwaWNrIHJpZ2h0IGNvb3JkXG4gIGZsb2F0IHNvdXJjZU9yVGFyZ2V0ID0gcG9zaXRpb25zLng7XG4gIGdlb21ldHJ5LnBvc2l0aW9uID0gbWl4KHNvdXJjZV9jb21tb25zcGFjZSwgdGFyZ2V0X2NvbW1vbnNwYWNlLCBzb3VyY2VPclRhcmdldCk7XG4gIHV2ID0gcG9zaXRpb25zLnh5O1xuICBnZW9tZXRyeS51diA9IHV2O1xuICBpZiAoaW5zdGFuY2VQaWNrYWJsZSA+IDAuNSkge1xuICAgIGdlb21ldHJ5LnBpY2tpbmdDb2xvciA9IGluc3RhbmNlUGlja2luZ0NvbG9ycztcbiAgfVxuICBcbiAgLy8gc2V0IHRoZSBjbGFtcCBsaW1pdHMgaW4gcGl4ZWwgc2l6ZSBcbiAgZmxvYXQgbGVuZ3RoQ29tbW9uID0gbGVuZ3RoKHRhcmdldF9jb21tb25zcGFjZSAtIHNvdXJjZV9jb21tb25zcGFjZSk7ICAgIFxuICB2ZWMyIG9mZnNldERpc3RhbmNlcyA9IHByb2plY3RfcGl4ZWxfc2l6ZShwb3NpdGlvbnMueXopICogdGhpY2tuZXNzVW5pdDtcbiAgXG4gIHZlYzIgbGltaXRlZE9mZnNldERpc3RhbmNlcyA9IGNsYW1wKCAgIFxuICAgIHByb2plY3RfcGl4ZWxfc2l6ZShwb3NpdGlvbnMueXopICogdGhpY2tuZXNzVW5pdCxcbiAgICAtbGVuZ3RoQ29tbW9uKi44LCBsZW5ndGhDb21tb24qLjhcbiAgKTtcbiAgZmxvYXQgc3RhcnRPZmZzZXRDb21tb24gPSBwcm9qZWN0X3BpeGVsX3NpemUoaW5zdGFuY2VFbmRwb2ludE9mZnNldHNbMF0pO1xuICBmbG9hdCBlbmRPZmZzZXRDb21tb24gPSBwcm9qZWN0X3BpeGVsX3NpemUoaW5zdGFuY2VFbmRwb2ludE9mZnNldHNbMV0pO1xuICBmbG9hdCBlbmRwb2ludE9mZnNldCA9IG1peChcbiAgICBjbGFtcChzdGFydE9mZnNldENvbW1vbiwgMC4wLCBsZW5ndGhDb21tb24qLjIpLFxuICAgIC1jbGFtcChlbmRPZmZzZXRDb21tb24sIDAuMCwgbGVuZ3RoQ29tbW9uKi4yKSxcbiAgICBwb3NpdGlvbnMueFxuICApO1xuXG4gIHZlYzIgZmxvd2xpbmVEaXIgPSBub3JtYWxpemUodGFyZ2V0X2NvbW1vbnNwYWNlLnh5IC0gc291cmNlX2NvbW1vbnNwYWNlLnh5KTtcbiAgdmVjMiBwZXJwZW5kaWN1bGFyRGlyID0gdmVjMigtZmxvd2xpbmVEaXIueSwgZmxvd2xpbmVEaXIueCk7XG4gIHZlYzIgbm9ybWFsc0NvbW1vbiA9IHByb2plY3RfcGl4ZWxfc2l6ZShub3JtYWxzLnh5KTtcbiAgZmxvYXQgZ2FwQ29tbW9uID0gcHJvamVjdF9waXhlbF9zaXplKGdhcCk7XG4gIHZlYzMgb2Zmc2V0Q29tbW9uID0gdmVjMyhcbiAgICBmbG93bGluZURpciAqIChpbnN0YW5jZVRoaWNrbmVzcyAqIGxpbWl0ZWRPZmZzZXREaXN0YW5jZXNbMV0gKyBub3JtYWxzQ29tbW9uLnkgKyBlbmRwb2ludE9mZnNldCAqIDEuMDUpIC1cbiAgICBwZXJwZW5kaWN1bGFyRGlyICogKGluc3RhbmNlVGhpY2tuZXNzICogbGltaXRlZE9mZnNldERpc3RhbmNlc1swXSArIGdhcENvbW1vbiArIG5vcm1hbHNDb21tb24ueCksXG4gICAgMC4wXG4gICk7XG4gIFxuICBERUNLR0xfRklMVEVSX1NJWkUob2Zmc2V0Q29tbW9uLCBnZW9tZXRyeSk7XG4gIHZlYzQgcG9zaXRpb25fY29tbW9uc3BhY2UgPSBtaXgoc291cmNlX2NvbW1vbnNwYWNlLCB0YXJnZXRfY29tbW9uc3BhY2UsIHNvdXJjZU9yVGFyZ2V0KTtcbiAgdmVjNCBvZmZzZXRfY29tbW9uc3BhY2UgPSB2ZWM0KG9mZnNldENvbW1vbiwgMC4wKTtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UocG9zaXRpb25fY29tbW9uc3BhY2UgKyBvZmZzZXRfY29tbW9uc3BhY2UpO1xuICAgICAgXG4gIERFQ0tHTF9GSUxURVJfR0xfUE9TSVRJT04oZ2xfUG9zaXRpb24sIGdlb21ldHJ5KTtcbiAgXG4gIHZlYzQgZmlsbENvbG9yID0gdmVjNChpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEgKiBvcGFjaXR5KSAvIDI1NS47XG4gIGlmIChpbnN0YW5jZVBpY2thYmxlIDw9IDAuNSkge1xuICAgIHZDb2xvciA9IG1peChmaWxsQ29sb3IsIHZlYzQob3V0bGluZUNvbG9yLnh5eiwgaW5zdGFuY2VUaGlja25lc3MpLCBub3JtYWxzLnopO1xuICB9IGVsc2Uge1xuICAgIHZDb2xvciA9IG1peChmaWxsQ29sb3IsIHZlYzQob3V0bGluZUNvbG9yLnh5eiwgb3V0bGluZUNvbG9yLncgKiBmaWxsQ29sb3IudyksIG5vcm1hbHMueik7XG4gIH1cbiAgREVDS0dMX0ZJTFRFUl9DT0xPUih2Q29sb3IsIGdlb21ldHJ5KTtcbn1cbmA7XG4iXX0=
@@ -1,3 +0,0 @@
1
- import FlowLinesLayer from './FlowLinesLayer';
2
- export default FlowLinesLayer;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRmxvd0xpbmVzTGF5ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsZUFBZSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmxvd0xpbmVzTGF5ZXIgZnJvbSAnLi9GbG93TGluZXNMYXllcic7XG5cbmV4cG9ydCBkZWZhdWx0IEZsb3dMaW5lc0xheWVyO1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowmapLayer.d.ts","sourceRoot":"","sources":["../src/FlowmapLayer.ts"],"names":[],"mappings":"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"}