react-spatial 2.0.0-beta.1 → 2.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -10
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js +243 -220
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.js.map +7 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.scss +6 -5
- package/components/BaseLayerSwitcher/index.js +1 -3
- package/components/BaseLayerSwitcher/index.js.map +7 -1
- package/components/BasicMap/BasicMap.js +165 -285
- package/components/BasicMap/BasicMap.js.map +7 -1
- package/components/BasicMap/index.js +1 -3
- package/components/BasicMap/index.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.js +434 -556
- package/components/CanvasSaveButton/CanvasSaveButton.js.map +7 -1
- package/components/CanvasSaveButton/CanvasSaveButton.md.scss +1 -1
- package/components/CanvasSaveButton/index.js +1 -3
- package/components/CanvasSaveButton/index.js.map +7 -1
- package/components/Copyright/Copyright.js +44 -77
- package/components/Copyright/Copyright.js.map +7 -1
- package/components/Copyright/index.js +1 -3
- package/components/Copyright/index.js.map +7 -1
- package/components/FeatureExportButton/FeatureExportButton.js +44 -92
- package/components/FeatureExportButton/FeatureExportButton.js.map +7 -1
- package/components/FeatureExportButton/index.js +1 -3
- package/components/FeatureExportButton/index.js.map +7 -1
- package/components/FitExtent/FitExtent.js +31 -46
- package/components/FitExtent/FitExtent.js.map +7 -1
- package/components/FitExtent/index.js +1 -3
- package/components/FitExtent/index.js.map +7 -1
- package/components/Geolocation/Geolocation.js +158 -228
- package/components/Geolocation/Geolocation.js.map +7 -1
- package/components/Geolocation/Geolocation.scss +7 -5
- package/components/Geolocation/index.js +1 -3
- package/components/Geolocation/index.js.map +7 -1
- package/components/LayerTree/LayerTree.js +359 -357
- package/components/LayerTree/LayerTree.js.map +7 -1
- package/components/LayerTree/LayerTree.scss +4 -6
- package/components/LayerTree/index.js +1 -3
- package/components/LayerTree/index.js.map +7 -1
- package/components/MousePosition/MousePosition.js +71 -109
- package/components/MousePosition/MousePosition.js.map +7 -1
- package/components/MousePosition/index.js +1 -3
- package/components/MousePosition/index.js.map +7 -1
- package/components/NorthArrow/NorthArrow.js +37 -61
- package/components/NorthArrow/NorthArrow.js.map +7 -1
- package/components/NorthArrow/index.js +1 -3
- package/components/NorthArrow/index.js.map +7 -1
- package/components/Overlay/Overlay.js +93 -123
- package/components/Overlay/Overlay.js.map +7 -1
- package/components/Overlay/index.js +1 -3
- package/components/Overlay/index.js.map +7 -1
- package/components/Permalink/Permalink.js +194 -229
- package/components/Permalink/Permalink.js.map +7 -1
- package/components/Permalink/index.js +1 -3
- package/components/Permalink/index.js.map +7 -1
- package/components/Popup/Popup.js +139 -215
- package/components/Popup/Popup.js.map +7 -1
- package/components/Popup/Popup.md.scss +1 -0
- package/components/Popup/Popup.scss +3 -1
- package/components/Popup/index.js +1 -3
- package/components/Popup/index.js.map +7 -1
- package/components/ResizeHandler/ResizeHandler.js +88 -137
- package/components/ResizeHandler/ResizeHandler.js.map +7 -1
- package/components/ResizeHandler/index.js +1 -3
- package/components/ResizeHandler/index.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.js +227 -277
- package/components/RouteSchedule/RouteSchedule.js.map +7 -1
- package/components/RouteSchedule/RouteSchedule.md.scss +4 -2
- package/components/RouteSchedule/RouteSchedule.scss +12 -23
- package/components/RouteSchedule/index.js +1 -3
- package/components/RouteSchedule/index.js.map +7 -1
- package/components/ScaleLine/ScaleLine.js +17 -39
- package/components/ScaleLine/ScaleLine.js.map +7 -1
- package/components/ScaleLine/ScaleLine.scss +6 -4
- package/components/ScaleLine/index.js +1 -3
- package/components/ScaleLine/index.js.map +7 -1
- package/components/StopsFinder/StopsFinder.js +134 -162
- package/components/StopsFinder/StopsFinder.js.map +7 -1
- package/components/StopsFinder/StopsFinderOption.js +30 -60
- package/components/StopsFinder/StopsFinderOption.js.map +7 -1
- package/components/StopsFinder/index.js +1 -3
- package/components/StopsFinder/index.js.map +7 -1
- package/components/Zoom/Zoom.js +102 -106
- package/components/Zoom/Zoom.js.map +7 -1
- package/components/Zoom/Zoom.md.scss +3 -1
- package/components/Zoom/Zoom.scss +7 -5
- package/components/Zoom/index.js +1 -3
- package/components/Zoom/index.js.map +7 -1
- package/images/geops_qr.png +0 -0
- package/package.json +88 -182
- package/propTypes.js +36 -24
- package/propTypes.js.map +7 -1
- package/setupTests.js +21 -4
- package/setupTests.js.map +7 -1
- package/themes/README.md +26 -0
- package/themes/default/components.scss +9 -14
- package/themes/default/examples.scss +20 -20
- package/themes/default/index.scss +3 -3
- package/themes/default/mixins.scss +7 -5
- package/themes/default/variables.scss +27 -25
- package/utils/GlobalsForOle.js +72 -73
- package/utils/GlobalsForOle.js.map +7 -1
- package/utils/KML.js +320 -381
- package/utils/KML.js.map +7 -1
- package/utils/Styles.js +25 -33
- package/utils/Styles.js.map +7 -1
- package/utils/getLayersAsFlatArray.js +14 -0
- package/utils/getLayersAsFlatArray.js.map +7 -0
- package/utils/getPolygonPattern.js +11 -44
- package/utils/getPolygonPattern.js.map +7 -1
- package/utils/timeUtils.js +20 -35
- package/utils/timeUtils.js.map +7 -1
- package/LayerService.js +0 -193
- package/LayerService.js.map +0 -1
- package/LayerService.test.js +0 -160
- package/LayerService.test.js.map +0 -1
- package/Projections.js +0 -16
- package/Projections.js.map +0 -1
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js +0 -88
- package/components/BaseLayerSwitcher/BaseLayerSwitcher.test.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.js +0 -490
- package/components/BaseLayerToggler/BaseLayerToggler.js.map +0 -1
- package/components/BaseLayerToggler/BaseLayerToggler.md.scss +0 -9
- package/components/BaseLayerToggler/BaseLayerToggler.scss +0 -49
- package/components/BaseLayerToggler/BaseLayerToggler.test.js +0 -127
- package/components/BaseLayerToggler/BaseLayerToggler.test.js.map +0 -1
- package/components/BaseLayerToggler/index.js +0 -3
- package/components/BaseLayerToggler/index.js.map +0 -1
- package/components/BasicMap/BasicMap.test.js +0 -288
- package/components/BasicMap/BasicMap.test.js.map +0 -1
- package/components/CanvasSaveButton/CanvasSaveButton.test.js +0 -173
- package/components/CanvasSaveButton/CanvasSaveButton.test.js.map +0 -1
- package/components/Copyright/Copyright.test.js +0 -133
- package/components/Copyright/Copyright.test.js.map +0 -1
- package/components/FeatureExportButton/FeatureExportButton.test.js +0 -407
- package/components/FeatureExportButton/FeatureExportButton.test.js.map +0 -1
- package/components/FilterButton/FilterButton.js +0 -131
- package/components/FilterButton/FilterButton.js.map +0 -1
- package/components/FilterButton/FilterButton.scss +0 -36
- package/components/FilterButton/FilterButton.test.js +0 -48
- package/components/FilterButton/FilterButton.test.js.map +0 -1
- package/components/FilterButton/index.js +0 -3
- package/components/FilterButton/index.js.map +0 -1
- package/components/FitExtent/FitExtent.test.js +0 -44
- package/components/FitExtent/FitExtent.test.js.map +0 -1
- package/components/FollowButton/FollowButton.js +0 -143
- package/components/FollowButton/FollowButton.js.map +0 -1
- package/components/FollowButton/FollowButton.scss +0 -36
- package/components/FollowButton/FollowButton.test.js +0 -57
- package/components/FollowButton/FollowButton.test.js.map +0 -1
- package/components/FollowButton/index.js +0 -3
- package/components/FollowButton/index.js.map +0 -1
- package/components/Geolocation/Geolocation.test.js +0 -263
- package/components/Geolocation/Geolocation.test.js.map +0 -1
- package/components/LayerTree/LayerTree.test.js +0 -323
- package/components/LayerTree/LayerTree.test.js.map +0 -1
- package/components/MousePosition/MousePosition.test.js +0 -125
- package/components/MousePosition/MousePosition.test.js.map +0 -1
- package/components/NorthArrow/NorthArrow.test.js +0 -106
- package/components/NorthArrow/NorthArrow.test.js.map +0 -1
- package/components/Overlay/Overlay.test.js +0 -145
- package/components/Overlay/Overlay.test.js.map +0 -1
- package/components/Permalink/Permalink.test.js +0 -267
- package/components/Permalink/Permalink.test.js.map +0 -1
- package/components/Popup/Popup.test.js +0 -291
- package/components/Popup/Popup.test.js.map +0 -1
- package/components/ResizeHandler/ResizeHandler.test.js +0 -410
- package/components/ResizeHandler/ResizeHandler.test.js.map +0 -1
- package/components/RouteSchedule/RouteSchedule.test.js +0 -102
- package/components/RouteSchedule/RouteSchedule.test.js.map +0 -1
- package/components/ScaleLine/ScaleLine.test.js +0 -32
- package/components/ScaleLine/ScaleLine.test.js.map +0 -1
- package/components/Search/Search.js +0 -230
- package/components/Search/Search.js.map +0 -1
- package/components/Search/Search.md.scss +0 -4
- package/components/Search/Search.scss +0 -78
- package/components/Search/Search.test.js +0 -15
- package/components/Search/Search.test.js.map +0 -1
- package/components/Search/SearchService.js +0 -72
- package/components/Search/SearchService.js.map +0 -1
- package/components/Search/engines/Engine.js +0 -26
- package/components/Search/engines/Engine.js.map +0 -1
- package/components/Search/engines/StopFinder.js +0 -47
- package/components/Search/engines/StopFinder.js.map +0 -1
- package/components/Search/index.js +0 -6
- package/components/Search/index.js.map +0 -1
- package/components/StopsFinder/StopsFinder.test.js +0 -19
- package/components/StopsFinder/StopsFinder.test.js.map +0 -1
- package/components/TrackerControl/TrackerControl.js +0 -171
- package/components/TrackerControl/TrackerControl.js.map +0 -1
- package/components/TrackerControl/TrackerControl.scss +0 -30
- package/components/TrackerControl/TrackerControl.test.js +0 -17
- package/components/TrackerControl/TrackerControl.test.js.map +0 -1
- package/components/TrackerControl/index.js +0 -3
- package/components/TrackerControl/index.js.map +0 -1
- package/components/Zoom/Zoom.test.js +0 -150
- package/components/Zoom/Zoom.test.js.map +0 -1
- package/images/FilterButton/filter.svg +0 -1
- package/images/FollowButton/follow.svg +0 -1
- package/images/baselayer/osm.baselayer.hot.png +0 -0
- package/images/baselayer/osm.baselayer.png +0 -0
- package/styleguidist/ComponentsList.js +0 -52
- package/styleguidist/ComponentsList.js.map +0 -1
- package/styleguidist/StyleGuide.js +0 -253
- package/styleguidist/StyleGuide.js.map +0 -1
- package/utils/KML.test.js +0 -163
- package/utils/KML.test.js.map +0 -1
- package/utils/KMLFormat.js +0 -105
- package/utils/KMLFormat.js.map +0 -1
- package/utils/KMLFormat.test.js +0 -22
- package/utils/KMLFormat.test.js.map +0 -1
- package/utils/getPolygonPattern.test.js +0 -66
- package/utils/getPolygonPattern.test.js.map +0 -1
- package/utils/timeUtils.test.js +0 -32
- package/utils/timeUtils.test.js.map +0 -1
|
@@ -1,137 +1,130 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var propTypes = {
|
|
7
|
-
observe: PropTypes.oneOfType([
|
|
8
|
-
PropTypes.string,
|
|
9
|
-
PropTypes.instanceOf(Element),
|
|
10
|
-
PropTypes.instanceOf(Component),
|
|
11
|
-
PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
|
|
12
|
-
PropTypes.shape({ current: PropTypes.instanceOf(Component) }) ]),
|
|
13
|
-
maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),
|
|
14
|
-
maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),
|
|
15
|
-
stylePropHeight: PropTypes.string,
|
|
16
|
-
onResize: PropTypes.func,
|
|
17
|
-
|
|
1
|
+
import PropTypes from "prop-types";
|
|
2
|
+
import { Component, PureComponent } from "react";
|
|
3
|
+
import ResizeObserver from "resize-observer-polyfill";
|
|
4
|
+
const propTypes = {
|
|
18
5
|
// This property is used to re-apply the classes, for example when the className of the observed node changes.
|
|
19
6
|
forceUpdate: PropTypes.oneOfType([
|
|
20
7
|
PropTypes.string,
|
|
21
8
|
PropTypes.number,
|
|
22
|
-
PropTypes.bool
|
|
9
|
+
PropTypes.bool
|
|
10
|
+
]),
|
|
11
|
+
maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),
|
|
12
|
+
maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),
|
|
13
|
+
observe: PropTypes.oneOfType([
|
|
14
|
+
PropTypes.string,
|
|
15
|
+
PropTypes.node,
|
|
16
|
+
PropTypes.instanceOf(Component),
|
|
17
|
+
PropTypes.shape({ current: PropTypes.node }),
|
|
18
|
+
PropTypes.shape({ current: PropTypes.instanceOf(Component) })
|
|
19
|
+
]),
|
|
20
|
+
onResize: PropTypes.func,
|
|
21
|
+
stylePropHeight: PropTypes.string
|
|
23
22
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
observe: null,
|
|
23
|
+
const defaultProps = {
|
|
24
|
+
forceUpdate: null,
|
|
25
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
28
26
|
maxHeightBrkpts: {
|
|
29
27
|
xs: 576,
|
|
30
28
|
s: 768,
|
|
31
29
|
m: 992,
|
|
32
30
|
l: 1200,
|
|
33
|
-
xl: Infinity
|
|
31
|
+
xl: Infinity
|
|
34
32
|
},
|
|
35
33
|
maxWidthBrkpts: {
|
|
36
34
|
xs: 576,
|
|
37
35
|
s: 768,
|
|
38
36
|
m: 992,
|
|
39
37
|
l: 1200,
|
|
40
|
-
xl: Infinity
|
|
38
|
+
xl: Infinity
|
|
41
39
|
},
|
|
42
|
-
|
|
40
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
41
|
+
observe: null,
|
|
43
42
|
onResize: null,
|
|
44
|
-
|
|
43
|
+
stylePropHeight: null
|
|
45
44
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var this$1 = this;
|
|
52
|
-
|
|
53
|
-
PureComponent.call(this, props);
|
|
54
|
-
this.observer = new ResizeObserver(function (entries) {
|
|
55
|
-
return this$1.onResize(entries);
|
|
45
|
+
class ResizeHandler extends PureComponent {
|
|
46
|
+
constructor(props) {
|
|
47
|
+
super(props);
|
|
48
|
+
this.observer = new ResizeObserver((entries) => {
|
|
49
|
+
return this.onResize(entries);
|
|
56
50
|
});
|
|
57
51
|
this.nodes = [];
|
|
58
52
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
ResizeHandler.applyBreakpoints = function applyBreakpoints (entry, breakpoints, size, direction) {
|
|
65
|
-
var found = false;
|
|
66
|
-
var screenSize;
|
|
67
|
-
Object.entries(breakpoints).forEach(function (brkpt) {
|
|
68
|
-
var assign;
|
|
69
|
-
|
|
70
|
-
var cssClass = "rs-" + direction + "-" + (brkpt[0]);
|
|
53
|
+
static applyBreakpoints(entry, breakpoints, size, direction) {
|
|
54
|
+
let found = false;
|
|
55
|
+
let screenSize;
|
|
56
|
+
Object.entries(breakpoints).forEach((brkpt) => {
|
|
57
|
+
const cssClass = `rs-${direction}-${brkpt[0]}`;
|
|
71
58
|
entry.target.classList.remove(cssClass);
|
|
72
59
|
if (!found && size <= brkpt[1]) {
|
|
73
60
|
found = true;
|
|
74
|
-
|
|
61
|
+
[screenSize] = brkpt;
|
|
75
62
|
entry.target.classList.add(cssClass);
|
|
76
63
|
}
|
|
77
64
|
});
|
|
78
65
|
return screenSize;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
ResizeHandler.prototype.componentDidMount = function componentDidMount () {
|
|
66
|
+
}
|
|
67
|
+
componentDidMount() {
|
|
82
68
|
this.observe();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var observe = ref.observe;
|
|
88
|
-
var forceUpdate = ref.forceUpdate;
|
|
89
|
-
|
|
90
|
-
if (
|
|
91
|
-
observe !== prevProps.observe ||
|
|
92
|
-
forceUpdate !== prevProps.forceUpdate
|
|
93
|
-
) {
|
|
69
|
+
}
|
|
70
|
+
componentDidUpdate(prevProps) {
|
|
71
|
+
const { forceUpdate, observe } = this.props;
|
|
72
|
+
if (observe !== prevProps.observe || forceUpdate !== prevProps.forceUpdate) {
|
|
94
73
|
this.observe();
|
|
95
74
|
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
75
|
+
}
|
|
76
|
+
componentWillUnmount() {
|
|
77
|
+
this.observer.disconnect();
|
|
78
|
+
}
|
|
79
|
+
observe() {
|
|
99
80
|
this.observer.disconnect();
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
81
|
+
const { observe } = this.props;
|
|
82
|
+
if (!observe) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (typeof observe === "string" || observe instanceof String) {
|
|
86
|
+
this.nodes = document.querySelectorAll(observe);
|
|
87
|
+
} else if (observe instanceof Component) {
|
|
88
|
+
console.warn(
|
|
89
|
+
"observe attribute as a Component is deprecated: Please use React.createRef() or React.useRef() instead of a React component."
|
|
90
|
+
);
|
|
91
|
+
} else if (observe instanceof Element) {
|
|
92
|
+
this.nodes.push(observe);
|
|
93
|
+
} else if (observe.current instanceof Element) {
|
|
94
|
+
this.nodes.push(observe.current);
|
|
95
|
+
} else if (observe.current instanceof Component) {
|
|
96
|
+
console.warn(
|
|
97
|
+
"observe attribute as a ref to Component is deprecated: Please use React.createRef() or React.useRef() instead of a React component."
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
if (this.nodes.length) {
|
|
101
|
+
this.nodes.forEach((node) => {
|
|
102
|
+
return this.observer.observe(node);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
onResize(entries) {
|
|
107
|
+
const { maxHeightBrkpts, maxWidthBrkpts, onResize, stylePropHeight } = this.props;
|
|
110
108
|
if (stylePropHeight) {
|
|
111
|
-
|
|
112
|
-
document.documentElement.style.setProperty(stylePropHeight,
|
|
109
|
+
const vh = window.innerHeight * 0.01;
|
|
110
|
+
document.documentElement.style.setProperty(stylePropHeight, `${vh}px`);
|
|
113
111
|
}
|
|
114
|
-
|
|
115
112
|
if (!maxWidthBrkpts && !maxHeightBrkpts) {
|
|
116
113
|
onResize(entries);
|
|
117
114
|
return;
|
|
118
115
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var rect = entry.contentRect;
|
|
126
|
-
var height = rect.height;
|
|
127
|
-
var width = rect.width;
|
|
128
|
-
|
|
116
|
+
let newScreenWidth;
|
|
117
|
+
let newScreenHeight;
|
|
118
|
+
for (let i = 0; i < entries.length; i += 1) {
|
|
119
|
+
const entry = entries[i];
|
|
120
|
+
const rect = entry.contentRect;
|
|
121
|
+
const { height, width } = rect;
|
|
129
122
|
if (maxWidthBrkpts) {
|
|
130
123
|
newScreenWidth = ResizeHandler.applyBreakpoints(
|
|
131
124
|
entry,
|
|
132
125
|
maxWidthBrkpts,
|
|
133
126
|
width,
|
|
134
|
-
|
|
127
|
+
"w"
|
|
135
128
|
);
|
|
136
129
|
}
|
|
137
130
|
if (maxHeightBrkpts) {
|
|
@@ -139,60 +132,18 @@ var ResizeHandler = /*@__PURE__*/(function (PureComponent) {
|
|
|
139
132
|
entry,
|
|
140
133
|
maxHeightBrkpts,
|
|
141
134
|
height,
|
|
142
|
-
|
|
135
|
+
"h"
|
|
143
136
|
);
|
|
144
137
|
}
|
|
145
138
|
}
|
|
146
|
-
|
|
147
139
|
if (onResize) {
|
|
148
140
|
onResize(entries, newScreenWidth, newScreenHeight);
|
|
149
141
|
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
ResizeHandler.prototype.observe = function observe () {
|
|
153
|
-
var this$1 = this;
|
|
154
|
-
|
|
155
|
-
this.observer.disconnect();
|
|
156
|
-
var ref = this.props;
|
|
157
|
-
var observe = ref.observe;
|
|
158
|
-
|
|
159
|
-
if (!observe) {
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (typeof observe === 'string' || observe instanceof String) {
|
|
164
|
-
this.nodes = document.querySelectorAll(observe);
|
|
165
|
-
} else if (observe instanceof Component) {
|
|
166
|
-
// eslint-disable-next-line react/no-find-dom-node
|
|
167
|
-
this.nodes.push(ReactDOM.findDOMNode(observe));
|
|
168
|
-
} else if (observe instanceof Element) {
|
|
169
|
-
this.nodes.push(observe);
|
|
170
|
-
} else if (observe.current instanceof Element) {
|
|
171
|
-
// observe value created with React.createRef() on a html node.
|
|
172
|
-
this.nodes.push(observe.current);
|
|
173
|
-
} else if (observe.current instanceof Component) {
|
|
174
|
-
// observe value created with React.createRef() on a React component.
|
|
175
|
-
// eslint-disable-next-line react/no-find-dom-node
|
|
176
|
-
this.nodes.push(ReactDOM.findDOMNode(observe.current));
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (this.nodes.length) {
|
|
180
|
-
this.nodes.forEach(function (node) {
|
|
181
|
-
return this$1.observer.observe(node);
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
ResizeHandler.prototype.render = function render () {
|
|
142
|
+
}
|
|
143
|
+
render() {
|
|
187
144
|
return null;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return ResizeHandler;
|
|
191
|
-
}(PureComponent));
|
|
192
|
-
|
|
145
|
+
}
|
|
146
|
+
}
|
|
193
147
|
ResizeHandler.propTypes = propTypes;
|
|
194
148
|
ResizeHandler.defaultProps = defaultProps;
|
|
195
|
-
|
|
196
149
|
export default ResizeHandler;
|
|
197
|
-
|
|
198
|
-
//# sourceMappingURL=ResizeHandler.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ResizeHandler/ResizeHandler.js"],
|
|
4
|
+
"sourcesContent": ["import PropTypes from \"prop-types\";\nimport { Component, PureComponent } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nconst propTypes = {\n // This property is used to re-apply the classes, for example when the className of the observed node changes.\n forceUpdate: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n maxHeightBrkpts: PropTypes.objectOf(PropTypes.number),\n maxWidthBrkpts: PropTypes.objectOf(PropTypes.number),\n observe: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.node,\n PropTypes.instanceOf(Component),\n PropTypes.shape({ current: PropTypes.node }),\n PropTypes.shape({ current: PropTypes.instanceOf(Component) }),\n ]),\n onResize: PropTypes.func,\n\n stylePropHeight: PropTypes.string,\n};\n\n// Same as bootstrap\nconst defaultProps = {\n forceUpdate: null,\n /* eslint-disable perfectionist/sort-objects */\n maxHeightBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n maxWidthBrkpts: {\n xs: 576,\n s: 768,\n m: 992,\n l: 1200,\n xl: Infinity,\n },\n /* eslint-enable perfectionist/sort-objects */\n observe: null,\n onResize: null,\n stylePropHeight: null,\n};\n/**\n * This component adds css class to an element depending on his size.\n */\nclass ResizeHandler extends PureComponent {\n constructor(props) {\n super(props);\n this.observer = new ResizeObserver((entries) => {\n return this.onResize(entries);\n });\n this.nodes = [];\n }\n\n static applyBreakpoints(entry, breakpoints, size, direction) {\n let found = false;\n let screenSize;\n Object.entries(breakpoints).forEach((brkpt) => {\n const cssClass = `rs-${direction}-${brkpt[0]}`;\n entry.target.classList.remove(cssClass);\n if (!found && size <= brkpt[1]) {\n found = true;\n [screenSize] = brkpt;\n entry.target.classList.add(cssClass);\n }\n });\n return screenSize;\n }\n\n componentDidMount() {\n this.observe();\n }\n\n componentDidUpdate(prevProps) {\n const { forceUpdate, observe } = this.props;\n\n if (\n observe !== prevProps.observe ||\n forceUpdate !== prevProps.forceUpdate\n ) {\n this.observe();\n }\n }\n\n componentWillUnmount() {\n this.observer.disconnect();\n }\n\n observe() {\n this.observer.disconnect();\n const { observe } = this.props;\n\n if (!observe) {\n return;\n }\n\n if (typeof observe === \"string\" || observe instanceof String) {\n this.nodes = document.querySelectorAll(observe);\n } else if (observe instanceof Component) {\n // eslint-disable-next-line no-console\n console.warn(\n \"observe attribute as a Component is deprecated: Please use React.createRef() or React.useRef() instead of a React component.\",\n );\n // eslint-disable-next-line react/no-find-dom-node\n // this.nodes.push(ReactDOM.findDOMNode(observe));\n } else if (observe instanceof Element) {\n this.nodes.push(observe);\n } else if (observe.current instanceof Element) {\n // observe value created with React.createRef() on a html node.\n this.nodes.push(observe.current);\n } else if (observe.current instanceof Component) {\n // eslint-disable-next-line no-console\n console.warn(\n \"observe attribute as a ref to Component is deprecated: Please use React.createRef() or React.useRef() instead of a React component.\",\n );\n // observe value created with React.createRef() on a React component.\n // eslint-disable-next-line react/no-find-dom-node\n // this.nodes.push(ReactDOM.findDOMNode(observe.current));\n }\n\n if (this.nodes.length) {\n this.nodes.forEach((node) => {\n return this.observer.observe(node);\n });\n }\n }\n\n onResize(entries) {\n const { maxHeightBrkpts, maxWidthBrkpts, onResize, stylePropHeight } =\n this.props;\n\n if (stylePropHeight) {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty(stylePropHeight, `${vh}px`);\n }\n\n if (!maxWidthBrkpts && !maxHeightBrkpts) {\n onResize(entries);\n return;\n }\n\n let newScreenWidth;\n let newScreenHeight;\n\n for (let i = 0; i < entries.length; i += 1) {\n const entry = entries[i];\n const rect = entry.contentRect;\n const { height, width } = rect;\n\n if (maxWidthBrkpts) {\n newScreenWidth = ResizeHandler.applyBreakpoints(\n entry,\n maxWidthBrkpts,\n width,\n \"w\",\n );\n }\n if (maxHeightBrkpts) {\n newScreenHeight = ResizeHandler.applyBreakpoints(\n entry,\n maxHeightBrkpts,\n height,\n \"h\",\n );\n }\n }\n\n if (onResize) {\n onResize(entries, newScreenWidth, newScreenHeight);\n }\n }\n\n render() {\n return null;\n }\n}\n\nResizeHandler.propTypes = propTypes;\nResizeHandler.defaultProps = defaultProps;\n\nexport default ResizeHandler;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ResizeHandler/index.js"],
|
|
4
|
+
"sourcesContent": ["export { default } from \"./ResizeHandler\";\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|