@deck.gl/react 8.7.0-alpha.3 → 8.7.0-beta.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.
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _react = require("react");
11
15
 
12
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -21,14 +25,26 @@ var _positionChildrenUnderViews = _interopRequireDefault(require("./utils/positi
21
25
 
22
26
  var _extractStyles = _interopRequireDefault(require("./utils/extract-styles"));
23
27
 
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31
+
24
32
  function getRefHandles(thisRef) {
25
- const handles = {
26
- pickObject: opts => thisRef.deck.pickObject(opts),
27
- pickMultipleObjects: opts => thisRef.deck.pickMultipleObjects(opts),
28
- pickObjects: opts => thisRef.deck.pickObjects(opts)
33
+ var handles = {
34
+ pickObject: function pickObject(opts) {
35
+ return thisRef.deck.pickObject(opts);
36
+ },
37
+ pickMultipleObjects: function pickMultipleObjects(opts) {
38
+ return thisRef.deck.pickMultipleObjects(opts);
39
+ },
40
+ pickObjects: function pickObjects(opts) {
41
+ return thisRef.deck.pickObjects(opts);
42
+ }
29
43
  };
30
44
  Object.defineProperty(handles, 'deck', {
31
- get: () => thisRef.deck
45
+ get: function get() {
46
+ return thisRef.deck;
47
+ }
32
48
  });
33
49
  return handles;
34
50
  }
@@ -42,37 +58,46 @@ function redrawDeck(thisRef) {
42
58
  }
43
59
 
44
60
  function createDeckInstance(thisRef, props) {
45
- const DeckClass = props.Deck || _core.Deck;
46
- const deck = new DeckClass({ ...props,
61
+ var DeckClass = props.Deck || _core.Deck;
62
+ var deck = new DeckClass(_objectSpread(_objectSpread({}, props), {}, {
47
63
  style: null,
48
64
  width: '100%',
49
65
  height: '100%',
50
- _customRender: redrawReason => {
66
+ _customRender: function _customRender(redrawReason) {
51
67
  thisRef.redrawReason = redrawReason;
52
- const viewports = deck.viewManager.getViewports();
68
+ var viewports = deck.viewManager.getViewports();
53
69
 
54
70
  if (thisRef.lastRenderedViewports !== viewports) {
55
- thisRef.forceUpdate(v => v + 1);
71
+ thisRef.forceUpdate(function (v) {
72
+ return v + 1;
73
+ });
56
74
  } else {
57
75
  redrawDeck(thisRef);
58
76
  }
59
77
  }
60
- });
78
+ }));
61
79
  return deck;
62
80
  }
63
81
 
64
- const DeckGL = (0, _react.forwardRef)((props, ref) => {
65
- const _thisRef = (0, _react.useRef)({});
82
+ var DeckGL = (0, _react.forwardRef)(function (props, ref) {
83
+ var _thisRef = (0, _react.useRef)({});
66
84
 
67
- const thisRef = _thisRef.current;
68
- const [version, setVersion] = (0, _react.useState)(0);
69
- thisRef.forceUpdate = setVersion;
70
- const containerRef = (0, _react.useRef)(null);
71
- const canvasRef = (0, _react.useRef)(null);
72
- const jsxProps = (0, _react.useMemo)(() => (0, _extractJsxLayers.default)(props), [props.layers, props.views, props.children]);
73
- let inRender = true;
85
+ var thisRef = _thisRef.current;
86
+
87
+ var _useState = (0, _react.useState)(0),
88
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
89
+ version = _useState2[0],
90
+ setVersion = _useState2[1];
74
91
 
75
- const handleViewStateChange = params => {
92
+ thisRef.forceUpdate = setVersion;
93
+ var containerRef = (0, _react.useRef)(null);
94
+ var canvasRef = (0, _react.useRef)(null);
95
+ var jsxProps = (0, _react.useMemo)(function () {
96
+ return (0, _extractJsxLayers.default)(props);
97
+ }, [props.layers, props.views, props.children]);
98
+ var inRender = true;
99
+
100
+ var handleViewStateChange = function handleViewStateChange(params) {
76
101
  if (inRender && props.viewState) {
77
102
  thisRef.viewStateUpdateRequested = params;
78
103
  return null;
@@ -82,7 +107,7 @@ const DeckGL = (0, _react.forwardRef)((props, ref) => {
82
107
  return props.onViewStateChange(params);
83
108
  };
84
109
 
85
- const handleInteractionStateChange = params => {
110
+ var handleInteractionStateChange = function handleInteractionStateChange(params) {
86
111
  if (inRender) {
87
112
  thisRef.interactionStateUpdateRequested = params;
88
113
  } else {
@@ -91,8 +116,8 @@ const DeckGL = (0, _react.forwardRef)((props, ref) => {
91
116
  }
92
117
  };
93
118
 
94
- const deckProps = (0, _react.useMemo)(() => {
95
- const forwardProps = { ...props,
119
+ var deckProps = (0, _react.useMemo)(function () {
120
+ var forwardProps = _objectSpread(_objectSpread({}, props), {}, {
96
121
  style: null,
97
122
  width: '100%',
98
123
  height: '100%',
@@ -100,7 +125,7 @@ const DeckGL = (0, _react.forwardRef)((props, ref) => {
100
125
  views: jsxProps.views,
101
126
  onViewStateChange: handleViewStateChange,
102
127
  onInteractionStateChange: handleInteractionStateChange
103
- };
128
+ });
104
129
 
105
130
  if (thisRef.deck) {
106
131
  thisRef.deck.setProps(forwardProps);
@@ -108,19 +133,19 @@ const DeckGL = (0, _react.forwardRef)((props, ref) => {
108
133
 
109
134
  return forwardProps;
110
135
  }, [props]);
111
- (0, _react.useEffect)(() => {
112
- thisRef.deck = createDeckInstance(thisRef, { ...deckProps,
136
+ (0, _react.useEffect)(function () {
137
+ thisRef.deck = createDeckInstance(thisRef, _objectSpread(_objectSpread({}, deckProps), {}, {
113
138
  parent: containerRef.current,
114
139
  canvas: canvasRef.current
115
- });
116
- return () => thisRef.deck.finalize();
140
+ }));
141
+ return function () {
142
+ return thisRef.deck.finalize();
143
+ };
117
144
  }, []);
118
- (0, _useIsomorphicLayoutEffect.default)(() => {
145
+ (0, _useIsomorphicLayoutEffect.default)(function () {
119
146
  redrawDeck(thisRef);
120
- const {
121
- viewStateUpdateRequested,
122
- interactionStateUpdateRequested
123
- } = thisRef;
147
+ var viewStateUpdateRequested = thisRef.viewStateUpdateRequested,
148
+ interactionStateUpdateRequested = thisRef.interactionStateUpdateRequested;
124
149
 
125
150
  if (viewStateUpdateRequested) {
126
151
  handleViewStateChange(viewStateUpdateRequested);
@@ -130,36 +155,39 @@ const DeckGL = (0, _react.forwardRef)((props, ref) => {
130
155
  handleInteractionStateChange(interactionStateUpdateRequested);
131
156
  }
132
157
  });
133
- (0, _react.useImperativeHandle)(ref, () => getRefHandles(thisRef), []);
134
- const {
135
- viewManager
136
- } = thisRef.deck || {};
137
- const currentViewports = viewManager && viewManager.getViewports();
138
- const {
139
- ContextProvider,
140
- width,
141
- height,
142
- id,
143
- style
144
- } = props;
145
- const {
146
- containerStyle,
147
- canvasStyle
148
- } = (0, _react.useMemo)(() => (0, _extractStyles.default)({
149
- width,
150
- height,
151
- style
152
- }), [width, height, style]);
158
+ (0, _react.useImperativeHandle)(ref, function () {
159
+ return getRefHandles(thisRef);
160
+ }, []);
161
+
162
+ var _ref = thisRef.deck || {},
163
+ viewManager = _ref.viewManager;
164
+
165
+ var currentViewports = viewManager && viewManager.getViewports();
166
+ var ContextProvider = props.ContextProvider,
167
+ width = props.width,
168
+ height = props.height,
169
+ id = props.id,
170
+ style = props.style;
171
+
172
+ var _useMemo = (0, _react.useMemo)(function () {
173
+ return (0, _extractStyles.default)({
174
+ width: width,
175
+ height: height,
176
+ style: style
177
+ });
178
+ }, [width, height, style]),
179
+ containerStyle = _useMemo.containerStyle,
180
+ canvasStyle = _useMemo.canvasStyle;
153
181
 
154
182
  if (!thisRef.viewStateUpdateRequested && thisRef.lastRenderedViewports === currentViewports || thisRef.version !== version) {
155
183
  thisRef.lastRenderedViewports = currentViewports;
156
184
  thisRef.version = version;
157
- const childrenUnderViews = (0, _positionChildrenUnderViews.default)({
185
+ var childrenUnderViews = (0, _positionChildrenUnderViews.default)({
158
186
  children: jsxProps.children,
159
187
  deck: thisRef.deck,
160
- ContextProvider
188
+ ContextProvider: ContextProvider
161
189
  });
162
- const canvas = (0, _react.createElement)('canvas', {
190
+ var canvas = (0, _react.createElement)('canvas', {
163
191
  key: 'canvas',
164
192
  id: id || 'deckgl-overlay',
165
193
  ref: canvasRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/deckgl.js"],"names":["getRefHandles","thisRef","handles","pickObject","opts","deck","pickMultipleObjects","pickObjects","Object","defineProperty","get","redrawDeck","redrawReason","_drawLayers","createDeckInstance","props","DeckClass","Deck","style","width","height","_customRender","viewports","viewManager","getViewports","lastRenderedViewports","forceUpdate","v","DeckGL","ref","_thisRef","current","version","setVersion","containerRef","canvasRef","jsxProps","layers","views","children","inRender","handleViewStateChange","params","viewState","viewStateUpdateRequested","onViewStateChange","handleInteractionStateChange","interactionStateUpdateRequested","onInteractionStateChange","deckProps","forwardProps","setProps","parent","canvas","finalize","currentViewports","ContextProvider","id","containerStyle","canvasStyle","childrenUnderViews","key","control","propTypes","getPropTypes","PropTypes","defaultProps"],"mappings":"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","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {\n createElement,\n useRef,\n useState,\n useMemo,\n useEffect,\n useImperativeHandle,\n forwardRef\n} from 'react';\nimport PropTypes from 'prop-types';\nimport {Deck} from '@deck.gl/core';\nimport useIsomorphicLayoutEffect from './utils/use-isomorphic-layout-effect';\n\nimport extractJSXLayers from './utils/extract-jsx-layers';\nimport positionChildrenUnderViews from './utils/position-children-under-views';\nimport extractStyles from './utils/extract-styles';\n\n/* eslint-disable max-statements, accessor-pairs */\n\nfunction getRefHandles(thisRef) {\n const handles = {\n pickObject: opts => thisRef.deck.pickObject(opts),\n pickMultipleObjects: opts => thisRef.deck.pickMultipleObjects(opts),\n pickObjects: opts => thisRef.deck.pickObjects(opts)\n };\n Object.defineProperty(handles, 'deck', {\n get: () => thisRef.deck\n });\n return handles;\n}\n\nfunction redrawDeck(thisRef) {\n if (thisRef.redrawReason) {\n // Only redraw if we have received a dirty flag\n thisRef.deck._drawLayers(thisRef.redrawReason);\n thisRef.redrawReason = null;\n }\n}\n\nfunction createDeckInstance(thisRef, props) {\n // Allows a subclass of Deck to be used\n // TODO - update propTypes / defaultProps?\n const DeckClass = props.Deck || Deck;\n const deck = new DeckClass({\n ...props,\n style: null,\n width: '100%',\n height: '100%',\n // The Deck's animation loop is independent from React's render cycle, causing potential\n // synchronization issues. We provide this custom render function to make sure that React\n // and Deck update on the same schedule.\n _customRender: redrawReason => {\n // Save the dirty flag for later\n thisRef.redrawReason = redrawReason;\n\n // Viewport/view state is passed to child components as props.\n // If they have changed, we need to trigger a React rerender to update children props.\n const viewports = deck.viewManager.getViewports();\n if (thisRef.lastRenderedViewports !== viewports) {\n // Viewports have changed, update children props first.\n // This will delay the Deck canvas redraw till after React update (in useLayoutEffect)\n // so that the canvas does not get rendered before the child components update.\n thisRef.forceUpdate(v => v + 1);\n } else {\n redrawDeck(thisRef);\n }\n }\n });\n return deck;\n}\n\nconst DeckGL = forwardRef((props, ref) => {\n // A reference to persistent states\n const _thisRef = useRef({});\n const thisRef = _thisRef.current;\n // A mechanism to force redraw\n const [version, setVersion] = useState(0);\n thisRef.forceUpdate = setVersion;\n // DOM refs\n const containerRef = useRef(null);\n const canvasRef = useRef(null);\n\n // extract any deck.gl layers masquerading as react elements from props.children\n const jsxProps = useMemo(\n () => extractJSXLayers(props),\n [props.layers, props.views, props.children]\n );\n\n // Callbacks\n let inRender = true;\n\n const handleViewStateChange = params => {\n if (inRender && props.viewState) {\n // Callback may invoke a state update. Defer callback to after render() to avoid React error\n // In React StrictMode, render is executed twice and useEffect/useLayoutEffect is executed once\n // Store deferred parameters in ref so that we can access it in another render\n thisRef.viewStateUpdateRequested = params;\n return null;\n }\n thisRef.viewStateUpdateRequested = null;\n return props.onViewStateChange(params);\n };\n\n const handleInteractionStateChange = params => {\n if (inRender) {\n // Callback may invoke a state update. Defer callback to after render() to avoid React error\n // In React StrictMode, render is executed twice and useEffect/useLayoutEffect is executed once\n // Store deferred parameters in ref so that we can access it in another render\n thisRef.interactionStateUpdateRequested = params;\n } else {\n thisRef.interactionStateUpdateRequested = null;\n props.onInteractionStateChange(params);\n }\n };\n\n // Update Deck's props. If Deck needs redraw, this will trigger a call to `_customRender` in\n // the next animation frame.\n // Needs to be called both from initial mount, and when new props are received\n const deckProps = useMemo(() => {\n const forwardProps = {\n ...props,\n // Override user styling props. We will set the canvas style in render()\n style: null,\n width: '100%',\n height: '100%',\n layers: jsxProps.layers,\n views: jsxProps.views,\n onViewStateChange: handleViewStateChange,\n onInteractionStateChange: handleInteractionStateChange\n };\n\n if (thisRef.deck) {\n thisRef.deck.setProps(forwardProps);\n }\n\n return forwardProps;\n }, [props]);\n\n useEffect(() => {\n thisRef.deck = createDeckInstance(thisRef, {\n ...deckProps,\n parent: containerRef.current,\n canvas: canvasRef.current\n });\n\n return () => thisRef.deck.finalize();\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n // render has just been called. The children are positioned based on the current view state.\n // Redraw Deck canvas immediately, if necessary, using the current view state, so that it\n // matches the child components.\n redrawDeck(thisRef);\n\n // Execute deferred callbacks\n const {viewStateUpdateRequested, interactionStateUpdateRequested} = thisRef;\n if (viewStateUpdateRequested) {\n handleViewStateChange(viewStateUpdateRequested);\n }\n if (interactionStateUpdateRequested) {\n handleInteractionStateChange(interactionStateUpdateRequested);\n }\n });\n\n useImperativeHandle(ref, () => getRefHandles(thisRef), []);\n\n const {viewManager} = thisRef.deck || {};\n const currentViewports = viewManager && viewManager.getViewports();\n\n const {ContextProvider, width, height, id, style} = props;\n\n const {containerStyle, canvasStyle} = useMemo(\n () => extractStyles({width, height, style}),\n [width, height, style]\n );\n\n // Props changes may lead to 3 types of updates:\n // 1. Only the WebGL canvas - updated in Deck's render cycle (next animation frame)\n // 2. Only the DOM - updated in React's lifecycle (now)\n // 3. Both the WebGL canvas and the DOM - defer React rerender to next animation frame just\n // before Deck redraw to ensure perfect synchronization & avoid excessive redraw\n // This is because multiple changes may happen to Deck between two frames e.g. transition\n if (\n (!thisRef.viewStateUpdateRequested && thisRef.lastRenderedViewports === currentViewports) || // case 2\n thisRef.version !== version // case 3 just before deck redraws\n ) {\n thisRef.lastRenderedViewports = currentViewports;\n thisRef.version = version;\n\n // Render the background elements (typically react-map-gl instances)\n // using the view descriptors\n const childrenUnderViews = positionChildrenUnderViews({\n children: jsxProps.children,\n deck: thisRef.deck,\n ContextProvider\n });\n\n const canvas = createElement('canvas', {\n key: 'canvas',\n id: id || 'deckgl-overlay',\n ref: canvasRef,\n style: canvasStyle\n });\n\n // Render deck.gl as the last child\n thisRef.control = createElement(\n 'div',\n {id: `${id || 'deckgl'}-wrapper`, ref: containerRef, style: containerStyle},\n [canvas, childrenUnderViews]\n );\n }\n\n inRender = false;\n return thisRef.control;\n});\n\nDeckGL.propTypes = Deck.getPropTypes(PropTypes);\nDeckGL.defaultProps = Deck.defaultProps;\n\nexport default DeckGL;\n"],"file":"deckgl.js"}
1
+ {"version":3,"sources":["../../src/deckgl.js"],"names":["getRefHandles","thisRef","handles","pickObject","opts","deck","pickMultipleObjects","pickObjects","Object","defineProperty","get","redrawDeck","redrawReason","_drawLayers","createDeckInstance","props","DeckClass","Deck","style","width","height","_customRender","viewports","viewManager","getViewports","lastRenderedViewports","forceUpdate","v","DeckGL","ref","_thisRef","current","version","setVersion","containerRef","canvasRef","jsxProps","layers","views","children","inRender","handleViewStateChange","params","viewState","viewStateUpdateRequested","onViewStateChange","handleInteractionStateChange","interactionStateUpdateRequested","onInteractionStateChange","deckProps","forwardProps","setProps","parent","canvas","finalize","currentViewports","ContextProvider","id","containerStyle","canvasStyle","childrenUnderViews","key","control","propTypes","getPropTypes","PropTypes","defaultProps"],"mappings":"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","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {\n createElement,\n useRef,\n useState,\n useMemo,\n useEffect,\n useImperativeHandle,\n forwardRef\n} from 'react';\nimport PropTypes from 'prop-types';\nimport {Deck} from '@deck.gl/core';\nimport useIsomorphicLayoutEffect from './utils/use-isomorphic-layout-effect';\n\nimport extractJSXLayers from './utils/extract-jsx-layers';\nimport positionChildrenUnderViews from './utils/position-children-under-views';\nimport extractStyles from './utils/extract-styles';\n\n/* eslint-disable max-statements, accessor-pairs */\n\nfunction getRefHandles(thisRef) {\n const handles = {\n pickObject: opts => thisRef.deck.pickObject(opts),\n pickMultipleObjects: opts => thisRef.deck.pickMultipleObjects(opts),\n pickObjects: opts => thisRef.deck.pickObjects(opts)\n };\n Object.defineProperty(handles, 'deck', {\n get: () => thisRef.deck\n });\n return handles;\n}\n\nfunction redrawDeck(thisRef) {\n if (thisRef.redrawReason) {\n // Only redraw if we have received a dirty flag\n thisRef.deck._drawLayers(thisRef.redrawReason);\n thisRef.redrawReason = null;\n }\n}\n\nfunction createDeckInstance(thisRef, props) {\n // Allows a subclass of Deck to be used\n // TODO - update propTypes / defaultProps?\n const DeckClass = props.Deck || Deck;\n const deck = new DeckClass({\n ...props,\n style: null,\n width: '100%',\n height: '100%',\n // The Deck's animation loop is independent from React's render cycle, causing potential\n // synchronization issues. We provide this custom render function to make sure that React\n // and Deck update on the same schedule.\n _customRender: redrawReason => {\n // Save the dirty flag for later\n thisRef.redrawReason = redrawReason;\n\n // Viewport/view state is passed to child components as props.\n // If they have changed, we need to trigger a React rerender to update children props.\n const viewports = deck.viewManager.getViewports();\n if (thisRef.lastRenderedViewports !== viewports) {\n // Viewports have changed, update children props first.\n // This will delay the Deck canvas redraw till after React update (in useLayoutEffect)\n // so that the canvas does not get rendered before the child components update.\n thisRef.forceUpdate(v => v + 1);\n } else {\n redrawDeck(thisRef);\n }\n }\n });\n return deck;\n}\n\nconst DeckGL = forwardRef((props, ref) => {\n // A reference to persistent states\n const _thisRef = useRef({});\n const thisRef = _thisRef.current;\n // A mechanism to force redraw\n const [version, setVersion] = useState(0);\n thisRef.forceUpdate = setVersion;\n // DOM refs\n const containerRef = useRef(null);\n const canvasRef = useRef(null);\n\n // extract any deck.gl layers masquerading as react elements from props.children\n const jsxProps = useMemo(\n () => extractJSXLayers(props),\n [props.layers, props.views, props.children]\n );\n\n // Callbacks\n let inRender = true;\n\n const handleViewStateChange = params => {\n if (inRender && props.viewState) {\n // Callback may invoke a state update. Defer callback to after render() to avoid React error\n // In React StrictMode, render is executed twice and useEffect/useLayoutEffect is executed once\n // Store deferred parameters in ref so that we can access it in another render\n thisRef.viewStateUpdateRequested = params;\n return null;\n }\n thisRef.viewStateUpdateRequested = null;\n return props.onViewStateChange(params);\n };\n\n const handleInteractionStateChange = params => {\n if (inRender) {\n // Callback may invoke a state update. Defer callback to after render() to avoid React error\n // In React StrictMode, render is executed twice and useEffect/useLayoutEffect is executed once\n // Store deferred parameters in ref so that we can access it in another render\n thisRef.interactionStateUpdateRequested = params;\n } else {\n thisRef.interactionStateUpdateRequested = null;\n props.onInteractionStateChange(params);\n }\n };\n\n // Update Deck's props. If Deck needs redraw, this will trigger a call to `_customRender` in\n // the next animation frame.\n // Needs to be called both from initial mount, and when new props are received\n const deckProps = useMemo(() => {\n const forwardProps = {\n ...props,\n // Override user styling props. We will set the canvas style in render()\n style: null,\n width: '100%',\n height: '100%',\n layers: jsxProps.layers,\n views: jsxProps.views,\n onViewStateChange: handleViewStateChange,\n onInteractionStateChange: handleInteractionStateChange\n };\n\n if (thisRef.deck) {\n thisRef.deck.setProps(forwardProps);\n }\n\n return forwardProps;\n }, [props]);\n\n useEffect(() => {\n thisRef.deck = createDeckInstance(thisRef, {\n ...deckProps,\n parent: containerRef.current,\n canvas: canvasRef.current\n });\n\n return () => thisRef.deck.finalize();\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n // render has just been called. The children are positioned based on the current view state.\n // Redraw Deck canvas immediately, if necessary, using the current view state, so that it\n // matches the child components.\n redrawDeck(thisRef);\n\n // Execute deferred callbacks\n const {viewStateUpdateRequested, interactionStateUpdateRequested} = thisRef;\n if (viewStateUpdateRequested) {\n handleViewStateChange(viewStateUpdateRequested);\n }\n if (interactionStateUpdateRequested) {\n handleInteractionStateChange(interactionStateUpdateRequested);\n }\n });\n\n useImperativeHandle(ref, () => getRefHandles(thisRef), []);\n\n const {viewManager} = thisRef.deck || {};\n const currentViewports = viewManager && viewManager.getViewports();\n\n const {ContextProvider, width, height, id, style} = props;\n\n const {containerStyle, canvasStyle} = useMemo(\n () => extractStyles({width, height, style}),\n [width, height, style]\n );\n\n // Props changes may lead to 3 types of updates:\n // 1. Only the WebGL canvas - updated in Deck's render cycle (next animation frame)\n // 2. Only the DOM - updated in React's lifecycle (now)\n // 3. Both the WebGL canvas and the DOM - defer React rerender to next animation frame just\n // before Deck redraw to ensure perfect synchronization & avoid excessive redraw\n // This is because multiple changes may happen to Deck between two frames e.g. transition\n if (\n (!thisRef.viewStateUpdateRequested && thisRef.lastRenderedViewports === currentViewports) || // case 2\n thisRef.version !== version // case 3 just before deck redraws\n ) {\n thisRef.lastRenderedViewports = currentViewports;\n thisRef.version = version;\n\n // Render the background elements (typically react-map-gl instances)\n // using the view descriptors\n const childrenUnderViews = positionChildrenUnderViews({\n children: jsxProps.children,\n deck: thisRef.deck,\n ContextProvider\n });\n\n const canvas = createElement('canvas', {\n key: 'canvas',\n id: id || 'deckgl-overlay',\n ref: canvasRef,\n style: canvasStyle\n });\n\n // Render deck.gl as the last child\n thisRef.control = createElement(\n 'div',\n {id: `${id || 'deckgl'}-wrapper`, ref: containerRef, style: containerStyle},\n [canvas, childrenUnderViews]\n );\n }\n\n inRender = false;\n return thisRef.control;\n});\n\nDeckGL.propTypes = Deck.getPropTypes(PropTypes);\nDeckGL.defaultProps = Deck.defaultProps;\n\nexport default DeckGL;\n"],"file":"deckgl.js"}
package/dist/es5/index.js CHANGED
@@ -7,13 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  Object.defineProperty(exports, "DeckGL", {
9
9
  enumerable: true,
10
- get: function () {
10
+ get: function get() {
11
11
  return _deckgl.default;
12
12
  }
13
13
  });
14
14
  Object.defineProperty(exports, "default", {
15
15
  enumerable: true,
16
- get: function () {
16
+ get: function get() {
17
17
  return _deckgl.default;
18
18
  }
19
19
  });
@@ -7,7 +7,7 @@ exports.default = evaluateChildren;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- const MAP_STYLE = {
10
+ var MAP_STYLE = {
11
11
  position: 'absolute',
12
12
  zIndex: -1
13
13
  };
@@ -22,7 +22,9 @@ function evaluateChildren(children, childProps) {
22
22
  }
23
23
 
24
24
  if (Array.isArray(children)) {
25
- return children.map(child => evaluateChildren(child, childProps));
25
+ return children.map(function (child) {
26
+ return evaluateChildren(child, childProps);
27
+ });
26
28
  }
27
29
 
28
30
  if (isReactMap(children)) {
@@ -38,13 +40,13 @@ function evaluateChildren(children, childProps) {
38
40
  }
39
41
 
40
42
  function isReactMap(child) {
41
- const componentClass = child && child.type;
42
- const componentProps = componentClass && componentClass.defaultProps;
43
+ var componentClass = child && child.type;
44
+ var componentProps = componentClass && componentClass.defaultProps;
43
45
  return componentProps && componentProps.mapStyle;
44
46
  }
45
47
 
46
48
  function needsDeckGLViewProps(child) {
47
- const componentClass = child && child.type;
49
+ var componentClass = child && child.type;
48
50
  return componentClass && componentClass.deckGLViewProps;
49
51
  }
50
52
  //# sourceMappingURL=evaluate-children.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/evaluate-children.js"],"names":["MAP_STYLE","position","zIndex","evaluateChildren","children","childProps","Array","isArray","map","child","isReactMap","style","needsDeckGLViewProps","componentClass","type","componentProps","defaultProps","mapStyle","deckGLViewProps"],"mappings":";;;;;;;AAAA;;AAEA,MAAMA,SAAS,GAAG;AAACC,EAAAA,QAAQ,EAAE,UAAX;AAAuBC,EAAAA,MAAM,EAAE,CAAC;AAAhC,CAAlB;;AAEe,SAASC,gBAAT,CAA0BC,QAA1B,EAAoCC,UAApC,EAAgD;AAC7D,MAAI,CAACD,QAAL,EAAe;AACb,WAAOA,QAAP;AACD;;AACD,MAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,WAAOA,QAAQ,CAACC,UAAD,CAAf;AACD;;AACD,MAAIC,KAAK,CAACC,OAAN,CAAcH,QAAd,CAAJ,EAA6B;AAC3B,WAAOA,QAAQ,CAACI,GAAT,CAAaC,KAAK,IAAIN,gBAAgB,CAACM,KAAD,EAAQJ,UAAR,CAAtC,CAAP;AACD;;AAID,MAAIK,UAAU,CAACN,QAAD,CAAd,EAA0B;AAExBC,IAAAA,UAAU,CAACM,KAAX,GAAmBX,SAAnB;AACA,WAAO,yBAAaI,QAAb,EAAuBC,UAAvB,CAAP;AACD;;AACD,MAAIO,oBAAoB,CAACR,QAAD,CAAxB,EAAoC;AAClC,WAAO,yBAAaA,QAAb,EAAuBC,UAAvB,CAAP;AACD;;AACD,SAAOD,QAAP;AACD;;AAED,SAASM,UAAT,CAAoBD,KAApB,EAA2B;AACzB,QAAMI,cAAc,GAAGJ,KAAK,IAAIA,KAAK,CAACK,IAAtC;AACA,QAAMC,cAAc,GAAGF,cAAc,IAAIA,cAAc,CAACG,YAAxD;AACA,SAAOD,cAAc,IAAIA,cAAc,CAACE,QAAxC;AACD;;AAED,SAASL,oBAAT,CAA8BH,KAA9B,EAAqC;AACnC,QAAMI,cAAc,GAAGJ,KAAK,IAAIA,KAAK,CAACK,IAAtC;AACA,SAAOD,cAAc,IAAIA,cAAc,CAACK,eAAxC;AACD","sourcesContent":["import {cloneElement} from 'react';\n\nconst MAP_STYLE = {position: 'absolute', zIndex: -1};\n\nexport default function evaluateChildren(children, childProps) {\n if (!children) {\n return children;\n }\n if (typeof children === 'function') {\n return children(childProps);\n }\n if (Array.isArray(children)) {\n return children.map(child => evaluateChildren(child, childProps));\n }\n\n // Special treatment for react-map-gl's Map component\n // to support shorthand use case <DeckGL><StaticMap /></DeckGL>\n if (isReactMap(children)) {\n // Place map under the canvas\n childProps.style = MAP_STYLE;\n return cloneElement(children, childProps);\n }\n if (needsDeckGLViewProps(children)) {\n return cloneElement(children, childProps);\n }\n return children;\n}\n\nfunction isReactMap(child) {\n const componentClass = child && child.type;\n const componentProps = componentClass && componentClass.defaultProps;\n return componentProps && componentProps.mapStyle;\n}\n\nfunction needsDeckGLViewProps(child) {\n const componentClass = child && child.type;\n return componentClass && componentClass.deckGLViewProps;\n}\n"],"file":"evaluate-children.js"}
1
+ {"version":3,"sources":["../../../src/utils/evaluate-children.js"],"names":["MAP_STYLE","position","zIndex","evaluateChildren","children","childProps","Array","isArray","map","child","isReactMap","style","needsDeckGLViewProps","componentClass","type","componentProps","defaultProps","mapStyle","deckGLViewProps"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,SAAS,GAAG;AAACC,EAAAA,QAAQ,EAAE,UAAX;AAAuBC,EAAAA,MAAM,EAAE,CAAC;AAAhC,CAAlB;;AAEe,SAASC,gBAAT,CAA0BC,QAA1B,EAAoCC,UAApC,EAAgD;AAC7D,MAAI,CAACD,QAAL,EAAe;AACb,WAAOA,QAAP;AACD;;AACD,MAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,WAAOA,QAAQ,CAACC,UAAD,CAAf;AACD;;AACD,MAAIC,KAAK,CAACC,OAAN,CAAcH,QAAd,CAAJ,EAA6B;AAC3B,WAAOA,QAAQ,CAACI,GAAT,CAAa,UAAAC,KAAK;AAAA,aAAIN,gBAAgB,CAACM,KAAD,EAAQJ,UAAR,CAApB;AAAA,KAAlB,CAAP;AACD;;AAID,MAAIK,UAAU,CAACN,QAAD,CAAd,EAA0B;AAExBC,IAAAA,UAAU,CAACM,KAAX,GAAmBX,SAAnB;AACA,WAAO,yBAAaI,QAAb,EAAuBC,UAAvB,CAAP;AACD;;AACD,MAAIO,oBAAoB,CAACR,QAAD,CAAxB,EAAoC;AAClC,WAAO,yBAAaA,QAAb,EAAuBC,UAAvB,CAAP;AACD;;AACD,SAAOD,QAAP;AACD;;AAED,SAASM,UAAT,CAAoBD,KAApB,EAA2B;AACzB,MAAMI,cAAc,GAAGJ,KAAK,IAAIA,KAAK,CAACK,IAAtC;AACA,MAAMC,cAAc,GAAGF,cAAc,IAAIA,cAAc,CAACG,YAAxD;AACA,SAAOD,cAAc,IAAIA,cAAc,CAACE,QAAxC;AACD;;AAED,SAASL,oBAAT,CAA8BH,KAA9B,EAAqC;AACnC,MAAMI,cAAc,GAAGJ,KAAK,IAAIA,KAAK,CAACK,IAAtC;AACA,SAAOD,cAAc,IAAIA,cAAc,CAACK,eAAxC;AACD","sourcesContent":["import {cloneElement} from 'react';\n\nconst MAP_STYLE = {position: 'absolute', zIndex: -1};\n\nexport default function evaluateChildren(children, childProps) {\n if (!children) {\n return children;\n }\n if (typeof children === 'function') {\n return children(childProps);\n }\n if (Array.isArray(children)) {\n return children.map(child => evaluateChildren(child, childProps));\n }\n\n // Special treatment for react-map-gl's Map component\n // to support shorthand use case <DeckGL><StaticMap /></DeckGL>\n if (isReactMap(children)) {\n // Place map under the canvas\n childProps.style = MAP_STYLE;\n return cloneElement(children, childProps);\n }\n if (needsDeckGLViewProps(children)) {\n return cloneElement(children, childProps);\n }\n return children;\n}\n\nfunction isReactMap(child) {\n const componentClass = child && child.type;\n const componentProps = componentClass && componentClass.defaultProps;\n return componentProps && componentProps.mapStyle;\n}\n\nfunction needsDeckGLViewProps(child) {\n const componentClass = child && child.type;\n return componentClass && componentClass.deckGLViewProps;\n}\n"],"file":"evaluate-children.js"}
@@ -1,19 +1,25 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
3
7
  Object.defineProperty(exports, "__esModule", {
4
8
  value: true
5
9
  });
6
10
  exports.default = extractJSXLayers;
7
11
 
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
8
14
  var _react = _interopRequireWildcard(require("react"));
9
15
 
10
16
  var _inheritsFrom = require("./inherits-from");
11
17
 
12
18
  var _core = require("@deck.gl/core");
13
19
 
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
21
 
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
23
 
18
24
  function wrapInView(node) {
19
25
  if (!node) {
@@ -39,28 +45,27 @@ function wrapInView(node) {
39
45
  return node;
40
46
  }
41
47
 
42
- function extractJSXLayers({
43
- children,
44
- layers,
45
- views
46
- }) {
47
- const reactChildren = [];
48
- const jsxLayers = [];
49
- const jsxViews = {};
48
+ function extractJSXLayers(_ref) {
49
+ var children = _ref.children,
50
+ layers = _ref.layers,
51
+ views = _ref.views;
52
+ var reactChildren = [];
53
+ var jsxLayers = [];
54
+ var jsxViews = {};
50
55
 
51
- _react.default.Children.forEach(wrapInView(children), reactElement => {
56
+ _react.default.Children.forEach(wrapInView(children), function (reactElement) {
52
57
  if (reactElement) {
53
- const ElementType = reactElement.type;
58
+ var ElementType = reactElement.type;
54
59
 
55
60
  if ((0, _inheritsFrom.inheritsFrom)(ElementType, _core.Layer)) {
56
- const layer = createLayer(ElementType, reactElement.props);
61
+ var layer = createLayer(ElementType, reactElement.props);
57
62
  jsxLayers.push(layer);
58
63
  } else {
59
64
  reactChildren.push(reactElement);
60
65
  }
61
66
 
62
67
  if (ElementType !== _core.View && (0, _inheritsFrom.inheritsFrom)(ElementType, _core.View) && reactElement.props.id) {
63
- const view = new ElementType(reactElement.props);
68
+ var view = new ElementType(reactElement.props);
64
69
  jsxViews[view.id] = view;
65
70
  }
66
71
  }
@@ -68,7 +73,7 @@ function extractJSXLayers({
68
73
 
69
74
  if (Object.keys(jsxViews).length > 0) {
70
75
  if (Array.isArray(views)) {
71
- views.forEach(view => {
76
+ views.forEach(function (view) {
72
77
  jsxViews[view.id] = view;
73
78
  });
74
79
  } else if (views) {
@@ -78,19 +83,19 @@ function extractJSXLayers({
78
83
  views = Object.values(jsxViews);
79
84
  }
80
85
 
81
- layers = jsxLayers.length > 0 ? [...jsxLayers, ...layers] : layers;
86
+ layers = jsxLayers.length > 0 ? [].concat(jsxLayers, (0, _toConsumableArray2.default)(layers)) : layers;
82
87
  return {
83
- layers,
88
+ layers: layers,
84
89
  children: reactChildren,
85
- views
90
+ views: views
86
91
  };
87
92
  }
88
93
 
89
94
  function createLayer(LayerType, reactProps) {
90
- const props = {};
91
- const defaultProps = LayerType.defaultProps || {};
95
+ var props = {};
96
+ var defaultProps = LayerType.defaultProps || {};
92
97
 
93
- for (const key in reactProps) {
98
+ for (var key in reactProps) {
94
99
  if (defaultProps[key] !== reactProps[key]) {
95
100
  props[key] = reactProps[key];
96
101
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/extract-jsx-layers.js"],"names":["wrapInView","node","View","Array","isArray","map","type","React","Fragment","props","children","extractJSXLayers","layers","views","reactChildren","jsxLayers","jsxViews","Children","forEach","reactElement","ElementType","Layer","layer","createLayer","push","id","view","Object","keys","length","values","LayerType","reactProps","defaultProps","key"],"mappings":"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","sourcesContent":["import React, {createElement} from 'react';\nimport {inheritsFrom} from './inherits-from';\nimport {Layer, View} from '@deck.gl/core';\n\n// recursively wrap render callbacks in `View`\nfunction wrapInView(node) {\n if (!node) {\n return node;\n }\n if (typeof node === 'function') {\n // React.Children does not traverse functions.\n // All render callbacks must be protected under a <View>\n return createElement(View, {}, node);\n }\n if (Array.isArray(node)) {\n return node.map(wrapInView);\n }\n if (node.type === React.Fragment) {\n return wrapInView(node.props.children);\n }\n if (inheritsFrom(node.type, View)) {\n return node;\n }\n return node;\n}\n\n// extracts any deck.gl layers masquerading as react elements from props.children\nexport default function extractJSXLayers({children, layers, views}) {\n const reactChildren = []; // extract real react elements (i.e. not deck.gl layers)\n const jsxLayers = []; // extracted layer from react children, will add to deck.gl layer array\n const jsxViews = {};\n\n // React.children\n React.Children.forEach(wrapInView(children), reactElement => {\n if (reactElement) {\n // For some reason Children.forEach doesn't filter out `null`s\n const ElementType = reactElement.type;\n if (inheritsFrom(ElementType, Layer)) {\n const layer = createLayer(ElementType, reactElement.props);\n jsxLayers.push(layer);\n } else {\n reactChildren.push(reactElement);\n }\n\n // empty id => default view\n if (ElementType !== View && inheritsFrom(ElementType, View) && reactElement.props.id) {\n const view = new ElementType(reactElement.props);\n jsxViews[view.id] = view;\n }\n }\n });\n\n // Avoid modifying views if no JSX views were found\n if (Object.keys(jsxViews).length > 0) {\n // If a view is specified in both views prop and JSX, use the one in views\n if (Array.isArray(views)) {\n views.forEach(view => {\n jsxViews[view.id] = view;\n });\n } else if (views) {\n jsxViews[views.id] = views;\n }\n views = Object.values(jsxViews);\n }\n\n // Avoid modifying layers array if no JSX layers were found\n layers = jsxLayers.length > 0 ? [...jsxLayers, ...layers] : layers;\n\n return {layers, children: reactChildren, views};\n}\n\nfunction createLayer(LayerType, reactProps) {\n const props = {};\n // Layer.defaultProps is treated as ReactElement.defaultProps and merged into react props\n // Remove them\n const defaultProps = LayerType.defaultProps || {};\n for (const key in reactProps) {\n if (defaultProps[key] !== reactProps[key]) {\n props[key] = reactProps[key];\n }\n }\n return new LayerType(props);\n}\n"],"file":"extract-jsx-layers.js"}
1
+ {"version":3,"sources":["../../../src/utils/extract-jsx-layers.js"],"names":["wrapInView","node","View","Array","isArray","map","type","React","Fragment","props","children","extractJSXLayers","layers","views","reactChildren","jsxLayers","jsxViews","Children","forEach","reactElement","ElementType","Layer","layer","createLayer","push","id","view","Object","keys","length","values","LayerType","reactProps","defaultProps","key"],"mappings":"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","sourcesContent":["import React, {createElement} from 'react';\nimport {inheritsFrom} from './inherits-from';\nimport {Layer, View} from '@deck.gl/core';\n\n// recursively wrap render callbacks in `View`\nfunction wrapInView(node) {\n if (!node) {\n return node;\n }\n if (typeof node === 'function') {\n // React.Children does not traverse functions.\n // All render callbacks must be protected under a <View>\n return createElement(View, {}, node);\n }\n if (Array.isArray(node)) {\n return node.map(wrapInView);\n }\n if (node.type === React.Fragment) {\n return wrapInView(node.props.children);\n }\n if (inheritsFrom(node.type, View)) {\n return node;\n }\n return node;\n}\n\n// extracts any deck.gl layers masquerading as react elements from props.children\nexport default function extractJSXLayers({children, layers, views}) {\n const reactChildren = []; // extract real react elements (i.e. not deck.gl layers)\n const jsxLayers = []; // extracted layer from react children, will add to deck.gl layer array\n const jsxViews = {};\n\n // React.children\n React.Children.forEach(wrapInView(children), reactElement => {\n if (reactElement) {\n // For some reason Children.forEach doesn't filter out `null`s\n const ElementType = reactElement.type;\n if (inheritsFrom(ElementType, Layer)) {\n const layer = createLayer(ElementType, reactElement.props);\n jsxLayers.push(layer);\n } else {\n reactChildren.push(reactElement);\n }\n\n // empty id => default view\n if (ElementType !== View && inheritsFrom(ElementType, View) && reactElement.props.id) {\n const view = new ElementType(reactElement.props);\n jsxViews[view.id] = view;\n }\n }\n });\n\n // Avoid modifying views if no JSX views were found\n if (Object.keys(jsxViews).length > 0) {\n // If a view is specified in both views prop and JSX, use the one in views\n if (Array.isArray(views)) {\n views.forEach(view => {\n jsxViews[view.id] = view;\n });\n } else if (views) {\n jsxViews[views.id] = views;\n }\n views = Object.values(jsxViews);\n }\n\n // Avoid modifying layers array if no JSX layers were found\n layers = jsxLayers.length > 0 ? [...jsxLayers, ...layers] : layers;\n\n return {layers, children: reactChildren, views};\n}\n\nfunction createLayer(LayerType, reactProps) {\n const props = {};\n // Layer.defaultProps is treated as ReactElement.defaultProps and merged into react props\n // Remove them\n const defaultProps = LayerType.defaultProps || {};\n for (const key in reactProps) {\n if (defaultProps[key] !== reactProps[key]) {\n props[key] = reactProps[key];\n }\n }\n return new LayerType(props);\n}\n"],"file":"extract-jsx-layers.js"}
@@ -4,30 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = extractStyles;
7
- const CANVAS_ONLY_STYLES = {
7
+ var CANVAS_ONLY_STYLES = {
8
8
  mixBlendMode: null
9
9
  };
10
10
 
11
- function extractStyles({
12
- width,
13
- height,
14
- style
15
- }) {
16
- const containerStyle = {
11
+ function extractStyles(_ref) {
12
+ var width = _ref.width,
13
+ height = _ref.height,
14
+ style = _ref.style;
15
+ var containerStyle = {
17
16
  position: 'absolute',
18
17
  zIndex: 0,
19
18
  left: 0,
20
19
  top: 0,
21
- width,
22
- height
20
+ width: width,
21
+ height: height
23
22
  };
24
- const canvasStyle = {
23
+ var canvasStyle = {
25
24
  left: 0,
26
25
  top: 0
27
26
  };
28
27
 
29
28
  if (style) {
30
- for (const key in style) {
29
+ for (var key in style) {
31
30
  if (key in CANVAS_ONLY_STYLES) {
32
31
  canvasStyle[key] = style[key];
33
32
  } else {
@@ -37,8 +36,8 @@ function extractStyles({
37
36
  }
38
37
 
39
38
  return {
40
- containerStyle,
41
- canvasStyle
39
+ containerStyle: containerStyle,
40
+ canvasStyle: canvasStyle
42
41
  };
43
42
  }
44
43
  //# sourceMappingURL=extract-styles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/extract-styles.js"],"names":["CANVAS_ONLY_STYLES","mixBlendMode","extractStyles","width","height","style","containerStyle","position","zIndex","left","top","canvasStyle","key"],"mappings":";;;;;;AAAA,MAAMA,kBAAkB,GAAG;AACzBC,EAAAA,YAAY,EAAE;AADW,CAA3B;;AAIe,SAASC,aAAT,CAAuB;AAACC,EAAAA,KAAD;AAAQC,EAAAA,MAAR;AAAgBC,EAAAA;AAAhB,CAAvB,EAA+C;AAE5D,QAAMC,cAAc,GAAG;AACrBC,IAAAA,QAAQ,EAAE,UADW;AAErBC,IAAAA,MAAM,EAAE,CAFa;AAGrBC,IAAAA,IAAI,EAAE,CAHe;AAIrBC,IAAAA,GAAG,EAAE,CAJgB;AAKrBP,IAAAA,KALqB;AAMrBC,IAAAA;AANqB,GAAvB;AAUA,QAAMO,WAAW,GAAG;AAClBF,IAAAA,IAAI,EAAE,CADY;AAElBC,IAAAA,GAAG,EAAE;AAFa,GAApB;;AAKA,MAAIL,KAAJ,EAAW;AACT,SAAK,MAAMO,GAAX,IAAkBP,KAAlB,EAAyB;AACvB,UAAIO,GAAG,IAAIZ,kBAAX,EAA+B;AAE7BW,QAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBP,KAAK,CAACO,GAAD,CAAxB;AACD,OAHD,MAGO;AAELN,QAAAA,cAAc,CAACM,GAAD,CAAd,GAAsBP,KAAK,CAACO,GAAD,CAA3B;AACD;AACF;AACF;;AAED,SAAO;AAACN,IAAAA,cAAD;AAAiBK,IAAAA;AAAjB,GAAP;AACD","sourcesContent":["const CANVAS_ONLY_STYLES = {\n mixBlendMode: null\n};\n\nexport default function extractStyles({width, height, style}) {\n // This styling is enforced for correct positioning with children\n const containerStyle = {\n position: 'absolute',\n zIndex: 0,\n left: 0,\n top: 0,\n width,\n height\n };\n\n // Fill the container\n const canvasStyle = {\n left: 0,\n top: 0\n };\n\n if (style) {\n for (const key in style) {\n if (key in CANVAS_ONLY_STYLES) {\n // apply style to the canvas, but not deck's children, e.g. mix-blend-mode\n canvasStyle[key] = style[key];\n } else {\n // apply style to the container, e.g. position/flow settings\n containerStyle[key] = style[key];\n }\n }\n }\n\n return {containerStyle, canvasStyle};\n}\n"],"file":"extract-styles.js"}
1
+ {"version":3,"sources":["../../../src/utils/extract-styles.js"],"names":["CANVAS_ONLY_STYLES","mixBlendMode","extractStyles","width","height","style","containerStyle","position","zIndex","left","top","canvasStyle","key"],"mappings":";;;;;;AAAA,IAAMA,kBAAkB,GAAG;AACzBC,EAAAA,YAAY,EAAE;AADW,CAA3B;;AAIe,SAASC,aAAT,OAA+C;AAAA,MAAvBC,KAAuB,QAAvBA,KAAuB;AAAA,MAAhBC,MAAgB,QAAhBA,MAAgB;AAAA,MAARC,KAAQ,QAARA,KAAQ;AAE5D,MAAMC,cAAc,GAAG;AACrBC,IAAAA,QAAQ,EAAE,UADW;AAErBC,IAAAA,MAAM,EAAE,CAFa;AAGrBC,IAAAA,IAAI,EAAE,CAHe;AAIrBC,IAAAA,GAAG,EAAE,CAJgB;AAKrBP,IAAAA,KAAK,EAALA,KALqB;AAMrBC,IAAAA,MAAM,EAANA;AANqB,GAAvB;AAUA,MAAMO,WAAW,GAAG;AAClBF,IAAAA,IAAI,EAAE,CADY;AAElBC,IAAAA,GAAG,EAAE;AAFa,GAApB;;AAKA,MAAIL,KAAJ,EAAW;AACT,SAAK,IAAMO,GAAX,IAAkBP,KAAlB,EAAyB;AACvB,UAAIO,GAAG,IAAIZ,kBAAX,EAA+B;AAE7BW,QAAAA,WAAW,CAACC,GAAD,CAAX,GAAmBP,KAAK,CAACO,GAAD,CAAxB;AACD,OAHD,MAGO;AAELN,QAAAA,cAAc,CAACM,GAAD,CAAd,GAAsBP,KAAK,CAACO,GAAD,CAA3B;AACD;AACF;AACF;;AAED,SAAO;AAACN,IAAAA,cAAc,EAAdA,cAAD;AAAiBK,IAAAA,WAAW,EAAXA;AAAjB,GAAP;AACD","sourcesContent":["const CANVAS_ONLY_STYLES = {\n mixBlendMode: null\n};\n\nexport default function extractStyles({width, height, style}) {\n // This styling is enforced for correct positioning with children\n const containerStyle = {\n position: 'absolute',\n zIndex: 0,\n left: 0,\n top: 0,\n width,\n height\n };\n\n // Fill the container\n const canvasStyle = {\n left: 0,\n top: 0\n };\n\n if (style) {\n for (const key in style) {\n if (key in CANVAS_ONLY_STYLES) {\n // apply style to the canvas, but not deck's children, e.g. mix-blend-mode\n canvasStyle[key] = style[key];\n } else {\n // apply style to the container, e.g. position/flow settings\n containerStyle[key] = style[key];\n }\n }\n }\n\n return {containerStyle, canvasStyle};\n}\n"],"file":"extract-styles.js"}
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = positionChildrenUnderViews;
9
9
 
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
10
12
  var _react = require("react");
11
13
 
12
14
  var _core = require("@deck.gl/core");
@@ -15,99 +17,110 @@ var _inheritsFrom = require("./inherits-from");
15
17
 
16
18
  var _evaluateChildren = _interopRequireDefault(require("./evaluate-children"));
17
19
 
18
- function positionChildrenUnderViews({
19
- children,
20
- deck,
21
- ContextProvider
22
- }) {
23
- const {
24
- viewManager
25
- } = deck || {};
20
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
21
+
22
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
+
24
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+
26
+ function positionChildrenUnderViews(_ref) {
27
+ var children = _ref.children,
28
+ deck = _ref.deck,
29
+ ContextProvider = _ref.ContextProvider;
30
+
31
+ var _ref2 = deck || {},
32
+ viewManager = _ref2.viewManager;
26
33
 
27
34
  if (!viewManager || !viewManager.views.length) {
28
35
  return [];
29
36
  }
30
37
 
31
- const views = {};
32
- const defaultViewId = viewManager.views[0].id;
38
+ var views = {};
39
+ var defaultViewId = viewManager.views[0].id;
33
40
 
34
- for (const child of children) {
35
- let viewId = defaultViewId;
36
- let viewChildren = child;
41
+ var _iterator = _createForOfIteratorHelper(children),
42
+ _step;
37
43
 
38
- if ((0, _inheritsFrom.inheritsFrom)(child.type, _core.View)) {
39
- viewId = child.props.id || defaultViewId;
40
- viewChildren = child.props.children;
41
- }
44
+ try {
45
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
46
+ var child = _step.value;
47
+ var viewId = defaultViewId;
48
+ var viewChildren = child;
42
49
 
43
- const viewport = viewManager.getViewport(viewId);
44
- const viewState = viewManager.getViewState(viewId);
45
-
46
- if (viewport) {
47
- const {
48
- x,
49
- y,
50
- width,
51
- height
52
- } = viewport;
53
- viewChildren = (0, _evaluateChildren.default)(viewChildren, {
54
- x,
55
- y,
56
- width,
57
- height,
58
- viewport,
59
- viewState
60
- });
61
-
62
- if (!views[viewId]) {
63
- views[viewId] = {
64
- viewport,
65
- children: []
66
- };
50
+ if ((0, _inheritsFrom.inheritsFrom)(child.type, _core.View)) {
51
+ viewId = child.props.id || defaultViewId;
52
+ viewChildren = child.props.children;
67
53
  }
68
54
 
69
- views[viewId].children.push(viewChildren);
55
+ var viewport = viewManager.getViewport(viewId);
56
+ var viewState = viewManager.getViewState(viewId);
57
+
58
+ if (viewport) {
59
+ var x = viewport.x,
60
+ y = viewport.y,
61
+ width = viewport.width,
62
+ height = viewport.height;
63
+ viewChildren = (0, _evaluateChildren.default)(viewChildren, {
64
+ x: x,
65
+ y: y,
66
+ width: width,
67
+ height: height,
68
+ viewport: viewport,
69
+ viewState: viewState
70
+ });
71
+
72
+ if (!views[viewId]) {
73
+ views[viewId] = {
74
+ viewport: viewport,
75
+ children: []
76
+ };
77
+ }
78
+
79
+ views[viewId].children.push(viewChildren);
80
+ }
70
81
  }
82
+ } catch (err) {
83
+ _iterator.e(err);
84
+ } finally {
85
+ _iterator.f();
71
86
  }
72
87
 
73
- return Object.keys(views).map(viewId => {
74
- const {
75
- viewport,
76
- children: viewChildren
77
- } = views[viewId];
78
- const {
79
- x,
80
- y,
81
- width,
82
- height
83
- } = viewport;
84
- const style = {
88
+ return Object.keys(views).map(function (viewId) {
89
+ var _views$viewId = views[viewId],
90
+ viewport = _views$viewId.viewport,
91
+ viewChildren = _views$viewId.children;
92
+ var x = viewport.x,
93
+ y = viewport.y,
94
+ width = viewport.width,
95
+ height = viewport.height;
96
+ var style = {
85
97
  position: 'absolute',
86
98
  left: x,
87
99
  top: y,
88
- width,
89
- height
100
+ width: width,
101
+ height: height
90
102
  };
91
- const key = "view-".concat(viewId);
92
- const viewElement = (0, _react.createElement)('div', {
93
- key,
103
+ var key = "view-".concat(viewId);
104
+
105
+ var viewElement = _react.createElement.apply(void 0, ['div', {
106
+ key: key,
94
107
  id: key,
95
- style
96
- }, ...viewChildren);
108
+ style: style
109
+ }].concat((0, _toConsumableArray2.default)(viewChildren)));
97
110
 
98
111
  if (ContextProvider) {
99
- const contextValue = {
100
- viewport,
112
+ var contextValue = {
113
+ viewport: viewport,
101
114
  container: deck.canvas.offsetParent,
102
115
  eventManager: deck.eventManager,
103
- onViewStateChange: params => {
116
+ onViewStateChange: function onViewStateChange(params) {
104
117
  params.viewId = viewId;
105
118
 
106
119
  deck._onViewStateChange(params);
107
120
  }
108
121
  };
109
122
  return (0, _react.createElement)(ContextProvider, {
110
- key,
123
+ key: key,
111
124
  value: contextValue
112
125
  }, viewElement);
113
126
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/position-children-under-views.js"],"names":["positionChildrenUnderViews","children","deck","ContextProvider","viewManager","views","length","defaultViewId","id","child","viewId","viewChildren","type","View","props","viewport","getViewport","viewState","getViewState","x","y","width","height","push","Object","keys","map","style","position","left","top","key","viewElement","contextValue","container","canvas","offsetParent","eventManager","onViewStateChange","params","_onViewStateChange","value"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAIe,SAASA,0BAAT,CAAoC;AAACC,EAAAA,QAAD;AAAWC,EAAAA,IAAX;AAAiBC,EAAAA;AAAjB,CAApC,EAAuE;AACpF,QAAM;AAACC,IAAAA;AAAD,MAAgBF,IAAI,IAAI,EAA9B;;AAEA,MAAI,CAACE,WAAD,IAAgB,CAACA,WAAW,CAACC,KAAZ,CAAkBC,MAAvC,EAA+C;AAC7C,WAAO,EAAP;AACD;;AAED,QAAMD,KAAK,GAAG,EAAd;AACA,QAAME,aAAa,GAAGH,WAAW,CAACC,KAAZ,CAAkB,CAAlB,EAAqBG,EAA3C;;AAGA,OAAK,MAAMC,KAAX,IAAoBR,QAApB,EAA8B;AAE5B,QAAIS,MAAM,GAAGH,aAAb;AACA,QAAII,YAAY,GAAGF,KAAnB;;AAEA,QAAI,gCAAaA,KAAK,CAACG,IAAnB,EAAyBC,UAAzB,CAAJ,EAAoC;AAClCH,MAAAA,MAAM,GAAGD,KAAK,CAACK,KAAN,CAAYN,EAAZ,IAAkBD,aAA3B;AACAI,MAAAA,YAAY,GAAGF,KAAK,CAACK,KAAN,CAAYb,QAA3B;AACD;;AAED,UAAMc,QAAQ,GAAGX,WAAW,CAACY,WAAZ,CAAwBN,MAAxB,CAAjB;AACA,UAAMO,SAAS,GAAGb,WAAW,CAACc,YAAZ,CAAyBR,MAAzB,CAAlB;;AAGA,QAAIK,QAAJ,EAAc;AACZ,YAAM;AAACI,QAAAA,CAAD;AAAIC,QAAAA,CAAJ;AAAOC,QAAAA,KAAP;AAAcC,QAAAA;AAAd,UAAwBP,QAA9B;AAEAJ,MAAAA,YAAY,GAAG,+BAAiBA,YAAjB,EAA+B;AAC5CQ,QAAAA,CAD4C;AAE5CC,QAAAA,CAF4C;AAG5CC,QAAAA,KAH4C;AAI5CC,QAAAA,MAJ4C;AAK5CP,QAAAA,QAL4C;AAM5CE,QAAAA;AAN4C,OAA/B,CAAf;;AASA,UAAI,CAACZ,KAAK,CAACK,MAAD,CAAV,EAAoB;AAClBL,QAAAA,KAAK,CAACK,MAAD,CAAL,GAAgB;AACdK,UAAAA,QADc;AAEdd,UAAAA,QAAQ,EAAE;AAFI,SAAhB;AAID;;AACDI,MAAAA,KAAK,CAACK,MAAD,CAAL,CAAcT,QAAd,CAAuBsB,IAAvB,CAA4BZ,YAA5B;AACD;AACF;;AAGD,SAAOa,MAAM,CAACC,IAAP,CAAYpB,KAAZ,EAAmBqB,GAAnB,CAAuBhB,MAAM,IAAI;AACtC,UAAM;AAACK,MAAAA,QAAD;AAAWd,MAAAA,QAAQ,EAAEU;AAArB,QAAqCN,KAAK,CAACK,MAAD,CAAhD;AACA,UAAM;AAACS,MAAAA,CAAD;AAAIC,MAAAA,CAAJ;AAAOC,MAAAA,KAAP;AAAcC,MAAAA;AAAd,QAAwBP,QAA9B;AACA,UAAMY,KAAK,GAAG;AACZC,MAAAA,QAAQ,EAAE,UADE;AAEZC,MAAAA,IAAI,EAAEV,CAFM;AAGZW,MAAAA,GAAG,EAAEV,CAHO;AAIZC,MAAAA,KAJY;AAKZC,MAAAA;AALY,KAAd;AAQA,UAAMS,GAAG,kBAAWrB,MAAX,CAAT;AAGA,UAAMsB,WAAW,GAAG,0BAAc,KAAd,EAAqB;AAACD,MAAAA,GAAD;AAAMvB,MAAAA,EAAE,EAAEuB,GAAV;AAAeJ,MAAAA;AAAf,KAArB,EAA4C,GAAGhB,YAA/C,CAApB;;AAEA,QAAIR,eAAJ,EAAqB;AACnB,YAAM8B,YAAY,GAAG;AACnBlB,QAAAA,QADmB;AAEnBmB,QAAAA,SAAS,EAAEhC,IAAI,CAACiC,MAAL,CAAYC,YAFJ;AAGnBC,QAAAA,YAAY,EAAEnC,IAAI,CAACmC,YAHA;AAInBC,QAAAA,iBAAiB,EAAEC,MAAM,IAAI;AAC3BA,UAAAA,MAAM,CAAC7B,MAAP,GAAgBA,MAAhB;;AACAR,UAAAA,IAAI,CAACsC,kBAAL,CAAwBD,MAAxB;AACD;AAPkB,OAArB;AASA,aAAO,0BAAcpC,eAAd,EAA+B;AAAC4B,QAAAA,GAAD;AAAMU,QAAAA,KAAK,EAAER;AAAb,OAA/B,EAA2DD,WAA3D,CAAP;AACD;;AAED,WAAOA,WAAP;AACD,GA9BM,CAAP;AA+BD","sourcesContent":["import {createElement} from 'react';\nimport {View} from '@deck.gl/core';\nimport {inheritsFrom} from './inherits-from';\nimport evaluateChildren from './evaluate-children';\n\n// Iterate over views and reposition children associated with views\n// TODO - Can we supply a similar function for the non-React case?\nexport default function positionChildrenUnderViews({children, deck, ContextProvider}) {\n const {viewManager} = deck || {};\n\n if (!viewManager || !viewManager.views.length) {\n return [];\n }\n\n const views = {};\n const defaultViewId = viewManager.views[0].id;\n\n // Sort children by view id\n for (const child of children) {\n // Unless child is a View, position / render as part of the default view\n let viewId = defaultViewId;\n let viewChildren = child;\n\n if (inheritsFrom(child.type, View)) {\n viewId = child.props.id || defaultViewId;\n viewChildren = child.props.children;\n }\n\n const viewport = viewManager.getViewport(viewId);\n const viewState = viewManager.getViewState(viewId);\n\n // Drop (auto-hide) elements with viewId that are not matched by any current view\n if (viewport) {\n const {x, y, width, height} = viewport;\n // Resolve potentially relative dimensions using the deck.gl container size\n viewChildren = evaluateChildren(viewChildren, {\n x,\n y,\n width,\n height,\n viewport,\n viewState\n });\n\n if (!views[viewId]) {\n views[viewId] = {\n viewport,\n children: []\n };\n }\n views[viewId].children.push(viewChildren);\n }\n }\n\n // Render views\n return Object.keys(views).map(viewId => {\n const {viewport, children: viewChildren} = views[viewId];\n const {x, y, width, height} = viewport;\n const style = {\n position: 'absolute',\n left: x,\n top: y,\n width,\n height\n };\n\n const key = `view-${viewId}`;\n // If children is passed as an array, React will throw the \"each element in a list needs\n // a key\" warning. Sending each child as separate arguments removes this requirement.\n const viewElement = createElement('div', {key, id: key, style}, ...viewChildren);\n\n if (ContextProvider) {\n const contextValue = {\n viewport,\n container: deck.canvas.offsetParent,\n eventManager: deck.eventManager,\n onViewStateChange: params => {\n params.viewId = viewId;\n deck._onViewStateChange(params);\n }\n };\n return createElement(ContextProvider, {key, value: contextValue}, viewElement);\n }\n\n return viewElement;\n });\n}\n"],"file":"position-children-under-views.js"}
1
+ {"version":3,"sources":["../../../src/utils/position-children-under-views.js"],"names":["positionChildrenUnderViews","children","deck","ContextProvider","viewManager","views","length","defaultViewId","id","child","viewId","viewChildren","type","View","props","viewport","getViewport","viewState","getViewState","x","y","width","height","push","Object","keys","map","style","position","left","top","key","viewElement","createElement","contextValue","container","canvas","offsetParent","eventManager","onViewStateChange","params","_onViewStateChange","value"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAIe,SAASA,0BAAT,OAAuE;AAAA,MAAlCC,QAAkC,QAAlCA,QAAkC;AAAA,MAAxBC,IAAwB,QAAxBA,IAAwB;AAAA,MAAlBC,eAAkB,QAAlBA,eAAkB;;AACpF,cAAsBD,IAAI,IAAI,EAA9B;AAAA,MAAOE,WAAP,SAAOA,WAAP;;AAEA,MAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACC,KAAZ,CAAkBC,MAAvC,EAA+C;AAC7C,WAAO,EAAP;AACD;;AAED,MAAMD,KAAK,GAAG,EAAd;AACA,MAAME,aAAa,GAAGH,WAAW,CAACC,KAAZ,CAAkB,CAAlB,EAAqBG,EAA3C;;AARoF,6CAWhEP,QAXgE;AAAA;;AAAA;AAWpF,wDAA8B;AAAA,UAAnBQ,KAAmB;AAE5B,UAAIC,MAAM,GAAGH,aAAb;AACA,UAAII,YAAY,GAAGF,KAAnB;;AAEA,UAAI,gCAAaA,KAAK,CAACG,IAAnB,EAAyBC,UAAzB,CAAJ,EAAoC;AAClCH,QAAAA,MAAM,GAAGD,KAAK,CAACK,KAAN,CAAYN,EAAZ,IAAkBD,aAA3B;AACAI,QAAAA,YAAY,GAAGF,KAAK,CAACK,KAAN,CAAYb,QAA3B;AACD;;AAED,UAAMc,QAAQ,GAAGX,WAAW,CAACY,WAAZ,CAAwBN,MAAxB,CAAjB;AACA,UAAMO,SAAS,GAAGb,WAAW,CAACc,YAAZ,CAAyBR,MAAzB,CAAlB;;AAGA,UAAIK,QAAJ,EAAc;AACZ,YAAOI,CAAP,GAA8BJ,QAA9B,CAAOI,CAAP;AAAA,YAAUC,CAAV,GAA8BL,QAA9B,CAAUK,CAAV;AAAA,YAAaC,KAAb,GAA8BN,QAA9B,CAAaM,KAAb;AAAA,YAAoBC,MAApB,GAA8BP,QAA9B,CAAoBO,MAApB;AAEAX,QAAAA,YAAY,GAAG,+BAAiBA,YAAjB,EAA+B;AAC5CQ,UAAAA,CAAC,EAADA,CAD4C;AAE5CC,UAAAA,CAAC,EAADA,CAF4C;AAG5CC,UAAAA,KAAK,EAALA,KAH4C;AAI5CC,UAAAA,MAAM,EAANA,MAJ4C;AAK5CP,UAAAA,QAAQ,EAARA,QAL4C;AAM5CE,UAAAA,SAAS,EAATA;AAN4C,SAA/B,CAAf;;AASA,YAAI,CAACZ,KAAK,CAACK,MAAD,CAAV,EAAoB;AAClBL,UAAAA,KAAK,CAACK,MAAD,CAAL,GAAgB;AACdK,YAAAA,QAAQ,EAARA,QADc;AAEdd,YAAAA,QAAQ,EAAE;AAFI,WAAhB;AAID;;AACDI,QAAAA,KAAK,CAACK,MAAD,CAAL,CAAcT,QAAd,CAAuBsB,IAAvB,CAA4BZ,YAA5B;AACD;AACF;AA7CmF;AAAA;AAAA;AAAA;AAAA;;AAgDpF,SAAOa,MAAM,CAACC,IAAP,CAAYpB,KAAZ,EAAmBqB,GAAnB,CAAuB,UAAAhB,MAAM,EAAI;AACtC,wBAA2CL,KAAK,CAACK,MAAD,CAAhD;AAAA,QAAOK,QAAP,iBAAOA,QAAP;AAAA,QAA2BJ,YAA3B,iBAAiBV,QAAjB;AACA,QAAOkB,CAAP,GAA8BJ,QAA9B,CAAOI,CAAP;AAAA,QAAUC,CAAV,GAA8BL,QAA9B,CAAUK,CAAV;AAAA,QAAaC,KAAb,GAA8BN,QAA9B,CAAaM,KAAb;AAAA,QAAoBC,MAApB,GAA8BP,QAA9B,CAAoBO,MAApB;AACA,QAAMK,KAAK,GAAG;AACZC,MAAAA,QAAQ,EAAE,UADE;AAEZC,MAAAA,IAAI,EAAEV,CAFM;AAGZW,MAAAA,GAAG,EAAEV,CAHO;AAIZC,MAAAA,KAAK,EAALA,KAJY;AAKZC,MAAAA,MAAM,EAANA;AALY,KAAd;AAQA,QAAMS,GAAG,kBAAWrB,MAAX,CAAT;;AAGA,QAAMsB,WAAW,GAAGC,oCAAc,KAAd,EAAqB;AAACF,MAAAA,GAAG,EAAHA,GAAD;AAAMvB,MAAAA,EAAE,EAAEuB,GAAV;AAAeJ,MAAAA,KAAK,EAALA;AAAf,KAArB,0CAA+ChB,YAA/C,GAApB;;AAEA,QAAIR,eAAJ,EAAqB;AACnB,UAAM+B,YAAY,GAAG;AACnBnB,QAAAA,QAAQ,EAARA,QADmB;AAEnBoB,QAAAA,SAAS,EAAEjC,IAAI,CAACkC,MAAL,CAAYC,YAFJ;AAGnBC,QAAAA,YAAY,EAAEpC,IAAI,CAACoC,YAHA;AAInBC,QAAAA,iBAAiB,EAAE,2BAAAC,MAAM,EAAI;AAC3BA,UAAAA,MAAM,CAAC9B,MAAP,GAAgBA,MAAhB;;AACAR,UAAAA,IAAI,CAACuC,kBAAL,CAAwBD,MAAxB;AACD;AAPkB,OAArB;AASA,aAAO,0BAAcrC,eAAd,EAA+B;AAAC4B,QAAAA,GAAG,EAAHA,GAAD;AAAMW,QAAAA,KAAK,EAAER;AAAb,OAA/B,EAA2DF,WAA3D,CAAP;AACD;;AAED,WAAOA,WAAP;AACD,GA9BM,CAAP;AA+BD","sourcesContent":["import {createElement} from 'react';\nimport {View} from '@deck.gl/core';\nimport {inheritsFrom} from './inherits-from';\nimport evaluateChildren from './evaluate-children';\n\n// Iterate over views and reposition children associated with views\n// TODO - Can we supply a similar function for the non-React case?\nexport default function positionChildrenUnderViews({children, deck, ContextProvider}) {\n const {viewManager} = deck || {};\n\n if (!viewManager || !viewManager.views.length) {\n return [];\n }\n\n const views = {};\n const defaultViewId = viewManager.views[0].id;\n\n // Sort children by view id\n for (const child of children) {\n // Unless child is a View, position / render as part of the default view\n let viewId = defaultViewId;\n let viewChildren = child;\n\n if (inheritsFrom(child.type, View)) {\n viewId = child.props.id || defaultViewId;\n viewChildren = child.props.children;\n }\n\n const viewport = viewManager.getViewport(viewId);\n const viewState = viewManager.getViewState(viewId);\n\n // Drop (auto-hide) elements with viewId that are not matched by any current view\n if (viewport) {\n const {x, y, width, height} = viewport;\n // Resolve potentially relative dimensions using the deck.gl container size\n viewChildren = evaluateChildren(viewChildren, {\n x,\n y,\n width,\n height,\n viewport,\n viewState\n });\n\n if (!views[viewId]) {\n views[viewId] = {\n viewport,\n children: []\n };\n }\n views[viewId].children.push(viewChildren);\n }\n }\n\n // Render views\n return Object.keys(views).map(viewId => {\n const {viewport, children: viewChildren} = views[viewId];\n const {x, y, width, height} = viewport;\n const style = {\n position: 'absolute',\n left: x,\n top: y,\n width,\n height\n };\n\n const key = `view-${viewId}`;\n // If children is passed as an array, React will throw the \"each element in a list needs\n // a key\" warning. Sending each child as separate arguments removes this requirement.\n const viewElement = createElement('div', {key, id: key, style}, ...viewChildren);\n\n if (ContextProvider) {\n const contextValue = {\n viewport,\n container: deck.canvas.offsetParent,\n eventManager: deck.eventManager,\n onViewStateChange: params => {\n params.viewId = viewId;\n deck._onViewStateChange(params);\n }\n };\n return createElement(ContextProvider, {key, value: contextValue}, viewElement);\n }\n\n return viewElement;\n });\n}\n"],"file":"position-children-under-views.js"}
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
10
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
11
11
  var _default = useIsomorphicLayoutEffect;
12
12
  exports.default = _default;
13
13
  //# sourceMappingURL=use-isomorphic-layout-effect.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/use-isomorphic-layout-effect.js"],"names":["useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect"],"mappings":";;;;;;;AAEA;;AAEA,MAAMA,yBAAyB,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCC,sBAAhC,GAAkDC,gBAApF;eAEeH,yB","sourcesContent":["// From https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts\n// useLayoutEffect but does not trigger warning in server-side rendering\nimport {useEffect, useLayoutEffect} from 'react';\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport default useIsomorphicLayoutEffect;\n"],"file":"use-isomorphic-layout-effect.js"}
1
+ {"version":3,"sources":["../../../src/utils/use-isomorphic-layout-effect.js"],"names":["useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect"],"mappings":";;;;;;;AAEA;;AAEA,IAAMA,yBAAyB,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCC,sBAAhC,GAAkDC,gBAApF;eAEeH,yB","sourcesContent":["// From https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts\n// useLayoutEffect but does not trigger warning in server-side rendering\nimport {useEffect, useLayoutEffect} from 'react';\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nexport default useIsomorphicLayoutEffect;\n"],"file":"use-isomorphic-layout-effect.js"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@deck.gl/react",
3
3
  "description": "React Components for deck.gl",
4
4
  "license": "MIT",
5
- "version": "8.7.0-alpha.3",
5
+ "version": "8.7.0-beta.1",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -32,5 +32,5 @@
32
32
  "react": ">=16.3",
33
33
  "react-dom": ">=16.3"
34
34
  },
35
- "gitHead": "03fd8c4caae96d66bd651cb76e11a6d05acf8f8c"
35
+ "gitHead": "0297ca9d2c85d980b075e2af4cfbeb75e31db55a"
36
36
  }