react-spatial 2.0.0-beta.1 → 2.0.0-beta.2
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,131 +0,0 @@
|
|
|
1
|
-
import React, { PureComponent } from 'react';
|
|
2
|
-
import qs from 'query-string';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { TrackerLayer } from 'mobility-toolbox-js/ol';
|
|
5
|
-
|
|
6
|
-
var propTypes = {
|
|
7
|
-
/**
|
|
8
|
-
* CSS class of the filter button.
|
|
9
|
-
*/
|
|
10
|
-
className: PropTypes.string,
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Title.
|
|
14
|
-
*/
|
|
15
|
-
title: PropTypes.string,
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Line info route identifer.
|
|
19
|
-
*/
|
|
20
|
-
routeIdentifier: PropTypes.string.isRequired,
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Button is active.
|
|
24
|
-
*/
|
|
25
|
-
active: PropTypes.bool.isRequired,
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Function triggered on button click.
|
|
29
|
-
*/
|
|
30
|
-
onClick: PropTypes.func.isRequired,
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Trackerlayer.
|
|
34
|
-
*/
|
|
35
|
-
trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Children content of the button.
|
|
39
|
-
*/
|
|
40
|
-
children: PropTypes.element.isRequired,
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
var defaultProps = {
|
|
44
|
-
className: 'rt-route-filter',
|
|
45
|
-
title: 'Filter',
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Button enables the filtering of a selected train.
|
|
50
|
-
*/
|
|
51
|
-
var FilterButton = /*@__PURE__*/(function (PureComponent) {
|
|
52
|
-
function FilterButton () {
|
|
53
|
-
PureComponent.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if ( PureComponent ) FilterButton.__proto__ = PureComponent;
|
|
57
|
-
FilterButton.prototype = Object.create( PureComponent && PureComponent.prototype );
|
|
58
|
-
FilterButton.prototype.constructor = FilterButton;
|
|
59
|
-
|
|
60
|
-
FilterButton.prototype.updatePermalink = function updatePermalink (isRemoving) {
|
|
61
|
-
var ref = this.props;
|
|
62
|
-
var routeIdentifier = ref.routeIdentifier;
|
|
63
|
-
|
|
64
|
-
var parameters = qs.parse(window.location.search.toLowerCase());
|
|
65
|
-
if (isRemoving) {
|
|
66
|
-
delete parameters.tripnumber;
|
|
67
|
-
} else {
|
|
68
|
-
parameters.tripnumber = parseInt(routeIdentifier.split('.')[0], 10);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
var qStr = qs.stringify(parameters, { encode: false });
|
|
72
|
-
var search = "?" + qStr;
|
|
73
|
-
var ref$1 = window.location;
|
|
74
|
-
var hash = ref$1.hash;
|
|
75
|
-
window.history.replaceState(undefined, undefined, ("" + search + (hash || '')));
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
FilterButton.prototype.toggleFilter = function toggleFilter (routeIdentifier) {
|
|
79
|
-
var assign;
|
|
80
|
-
|
|
81
|
-
var ref = this.props;
|
|
82
|
-
var trackerLayer = ref.trackerLayer;
|
|
83
|
-
var active = ref.active;
|
|
84
|
-
var onClick = ref.onClick;
|
|
85
|
-
var activated = !active;
|
|
86
|
-
|
|
87
|
-
if (trackerLayer) {
|
|
88
|
-
if (activated) {
|
|
89
|
-
this.updatePermalink(false);
|
|
90
|
-
(assign = routeIdentifier.split('.'), trackerLayer.tripNumber = assign[0]);
|
|
91
|
-
} else {
|
|
92
|
-
this.updatePermalink(true);
|
|
93
|
-
trackerLayer.tripNumber = null;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
onClick(activated);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
FilterButton.prototype.render = function render () {
|
|
101
|
-
var this$1 = this;
|
|
102
|
-
|
|
103
|
-
var ref = this.props;
|
|
104
|
-
var className = ref.className;
|
|
105
|
-
var title = ref.title;
|
|
106
|
-
var routeIdentifier = ref.routeIdentifier;
|
|
107
|
-
var active = ref.active;
|
|
108
|
-
var children = ref.children;
|
|
109
|
-
var toggle = function () {
|
|
110
|
-
return this$1.toggleFilter(routeIdentifier);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
return (
|
|
114
|
-
React.createElement( 'div', {
|
|
115
|
-
'aria-label': title, className: ("" + className + (active ? ' rt-active' : '')), title: title, onClick: toggle, onKeyPress: function (e) {
|
|
116
|
-
return e.which === 13 && toggle();
|
|
117
|
-
}, role: "button", tabIndex: 0 },
|
|
118
|
-
children
|
|
119
|
-
)
|
|
120
|
-
);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
return FilterButton;
|
|
124
|
-
}(PureComponent));
|
|
125
|
-
|
|
126
|
-
FilterButton.propTypes = propTypes;
|
|
127
|
-
FilterButton.defaultProps = defaultProps;
|
|
128
|
-
|
|
129
|
-
export default FilterButton;
|
|
130
|
-
|
|
131
|
-
//# sourceMappingURL=FilterButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterButton.js","sources":["../../../src/components/FilterButton/FilterButton.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport qs from 'query-string';\nimport PropTypes from 'prop-types';\nimport { TrackerLayer } from 'mobility-toolbox-js/ol';\n\nconst propTypes = {\n /**\n * CSS class of the filter button.\n */\n className: PropTypes.string,\n\n /**\n * Title.\n */\n title: PropTypes.string,\n\n /**\n * Line info route identifer.\n */\n routeIdentifier: PropTypes.string.isRequired,\n\n /**\n * Button is active.\n */\n active: PropTypes.bool.isRequired,\n\n /**\n * Function triggered on button click.\n */\n onClick: PropTypes.func.isRequired,\n\n /**\n * Trackerlayer.\n */\n trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,\n\n /**\n * Children content of the button.\n */\n children: PropTypes.element.isRequired,\n};\n\nconst defaultProps = {\n className: 'rt-route-filter',\n title: 'Filter',\n};\n\n/**\n * Button enables the filtering of a selected train.\n */\nclass FilterButton extends PureComponent {\n updatePermalink(isRemoving) {\n const { routeIdentifier } = this.props;\n\n const parameters = qs.parse(window.location.search.toLowerCase());\n if (isRemoving) {\n delete parameters.tripnumber;\n } else {\n parameters.tripnumber = parseInt(routeIdentifier.split('.')[0], 10);\n }\n\n const qStr = qs.stringify(parameters, { encode: false });\n const search = `?${qStr}`;\n const { hash } = window.location;\n window.history.replaceState(undefined, undefined, `${search}${hash || ''}`);\n }\n\n toggleFilter(routeIdentifier) {\n const { trackerLayer, active, onClick } = this.props;\n const activated = !active;\n\n if (trackerLayer) {\n if (activated) {\n this.updatePermalink(false);\n [trackerLayer.tripNumber] = routeIdentifier.split('.');\n } else {\n this.updatePermalink(true);\n trackerLayer.tripNumber = null;\n }\n }\n\n onClick(activated);\n }\n\n render() {\n const { className, title, routeIdentifier, active, children } = this.props;\n const toggle = () => {\n return this.toggleFilter(routeIdentifier);\n };\n\n return (\n <div\n aria-label={title}\n className={`${className}${active ? ' rt-active' : ''}`}\n title={title}\n onClick={toggle}\n onKeyPress={(e) => {\n return e.which === 13 && toggle();\n }}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n }\n}\n\nFilterButton.propTypes = propTypes;\nFilterButton.defaultProps = defaultProps;\n\nexport default FilterButton;\n"],"names":["const","this"],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
.rt-route-filter {
|
|
2
|
-
display: flex;
|
|
3
|
-
justify-content: center;
|
|
4
|
-
align-items: center;
|
|
5
|
-
height: 35px;
|
|
6
|
-
width: 35px;
|
|
7
|
-
border-radius: 7px;
|
|
8
|
-
margin: 15px;
|
|
9
|
-
margin-top: 10px;
|
|
10
|
-
border: 2px solid #eee;
|
|
11
|
-
background-color: white;
|
|
12
|
-
|
|
13
|
-
svg {
|
|
14
|
-
height: 30px;
|
|
15
|
-
width: 30px;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
&:hover {
|
|
19
|
-
background-color: #eee;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&.rt-active {
|
|
23
|
-
border-color: red;
|
|
24
|
-
background-color: red;
|
|
25
|
-
|
|
26
|
-
svg {
|
|
27
|
-
path {
|
|
28
|
-
fill: white;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
&:hover {
|
|
33
|
-
background-color: red;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import renderer from 'react-test-renderer';
|
|
3
|
-
import { configure, shallow } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
import { MdFilterList } from 'react-icons/md';
|
|
6
|
-
import { TrajservLayer } from 'mobility-toolbox-js/ol';
|
|
7
|
-
import FilterButton from '.';
|
|
8
|
-
|
|
9
|
-
configure({ adapter: new Adapter() });
|
|
10
|
-
var trackerLayer = new TrajservLayer();
|
|
11
|
-
|
|
12
|
-
test('FollowButton should match snapshot.', function () {
|
|
13
|
-
var component = renderer.create(
|
|
14
|
-
React.createElement( FilterButton, {
|
|
15
|
-
className: "rt-filter-button", title: "Filter up", active: false, onClick: function () {}, routeIdentifier: "test", trackerLayer: trackerLayer },
|
|
16
|
-
React.createElement( MdFilterList, null )
|
|
17
|
-
)
|
|
18
|
-
);
|
|
19
|
-
var tree = component.toJSON();
|
|
20
|
-
expect(tree).toMatchSnapshot();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('FollowButton should toggle.', function () {
|
|
24
|
-
var filterActive = false;
|
|
25
|
-
var setFilterActive = function () {
|
|
26
|
-
filterActive = !filterActive;
|
|
27
|
-
};
|
|
28
|
-
var bt = shallow(
|
|
29
|
-
React.createElement( FilterButton, {
|
|
30
|
-
className: "rt-filter-button", routeIdentifier: "test", active: filterActive, onClick: function (active) {
|
|
31
|
-
return setFilterActive(active);
|
|
32
|
-
}, trackerLayer: trackerLayer },
|
|
33
|
-
React.createElement( MdFilterList, null )
|
|
34
|
-
)
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
expect(filterActive).toBe(false);
|
|
38
|
-
|
|
39
|
-
bt.find('.rt-filter-button').first().simulate('click');
|
|
40
|
-
|
|
41
|
-
expect(filterActive).toBe(true);
|
|
42
|
-
|
|
43
|
-
bt.find('.rt-filter-button').first().simulate('click');
|
|
44
|
-
|
|
45
|
-
expect(filterActive).toBe(false);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
//# sourceMappingURL=FilterButton.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterButton.test.js","sources":["../../../src/components/FilterButton/FilterButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { MdFilterList } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FilterButton from '.';\n\nconfigure({ adapter: new Adapter() });\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FilterButton\n className=\"rt-filter-button\"\n title=\"Filter up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let filterActive = false;\n const setFilterActive = () => {\n filterActive = !filterActive;\n };\n const bt = shallow(\n <FilterButton\n className=\"rt-filter-button\"\n routeIdentifier=\"test\"\n active={filterActive}\n onClick={(active) => {\n return setFilterActive(active);\n }}\n trackerLayer={trackerLayer}\n >\n <MdFilterList />\n </FilterButton>,\n );\n\n expect(filterActive).toBe(false);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(true);\n\n bt.find('.rt-filter-button').first().simulate('click');\n\n expect(filterActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtCA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,iBAAgB,MAAM,EACtB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,cAAc,eACf;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/FilterButton/index.js"],"sourcesContent":["export { default } from './FilterButton';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,gBAAgB,CAAC;"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import renderer from 'react-test-renderer';
|
|
3
|
-
import { configure, shallow } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
import OLView from 'ol/View';
|
|
6
|
-
import OLMap from 'ol/Map';
|
|
7
|
-
import FitExtent from './FitExtent';
|
|
8
|
-
|
|
9
|
-
configure({ adapter: new Adapter() });
|
|
10
|
-
|
|
11
|
-
var extent = [1, 2, 3, 4];
|
|
12
|
-
|
|
13
|
-
test('Button should match snapshot.', function () {
|
|
14
|
-
var map = new OLMap({});
|
|
15
|
-
var component = renderer.create(
|
|
16
|
-
React.createElement( FitExtent, { map: map, extent: extent }, "FitExtent")
|
|
17
|
-
);
|
|
18
|
-
var tree = component.toJSON();
|
|
19
|
-
expect(tree).toMatchSnapshot();
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
test('Should fit the extent.', function () {
|
|
23
|
-
var map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });
|
|
24
|
-
var wrapper = shallow(
|
|
25
|
-
React.createElement( FitExtent, { map: map, extent: extent, className: "fit-ext" }, "FitExtent")
|
|
26
|
-
);
|
|
27
|
-
wrapper.find('.fit-ext').first().simulate('click', {});
|
|
28
|
-
var calculatedExtent = map.getView().calculateExtent(map.getSize());
|
|
29
|
-
|
|
30
|
-
expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test('Should fit the extent on return.', function () {
|
|
34
|
-
var map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });
|
|
35
|
-
var wrapper = shallow(
|
|
36
|
-
React.createElement( FitExtent, { map: map, extent: extent, className: "fit-ext" }, "FitExtent")
|
|
37
|
-
);
|
|
38
|
-
wrapper.find('.fit-ext').first().simulate('click', { which: 13 });
|
|
39
|
-
var calculatedExtent = map.getView().calculateExtent(map.getSize());
|
|
40
|
-
|
|
41
|
-
expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=FitExtent.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FitExtent.test.js","sources":["../../../src/components/FitExtent/FitExtent.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport OLView from 'ol/View';\nimport OLMap from 'ol/Map';\nimport FitExtent from './FitExtent';\n\nconfigure({ adapter: new Adapter() });\n\nconst extent = [1, 2, 3, 4];\n\ntest('Button should match snapshot.', () => {\n const map = new OLMap({});\n const component = renderer.create(\n <FitExtent map={map} extent={extent}>\n FitExtent\n </FitExtent>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('Should fit the extent.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', {});\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n\ntest('Should fit the extent on return.', () => {\n const map = new OLMap({ view: new OLView({ zoom: 7, center: [0, 0] }) });\n const wrapper = shallow(\n <FitExtent map={map} extent={extent} className=\"fit-ext\">\n FitExtent\n </FitExtent>,\n );\n wrapper.find('.fit-ext').first().simulate('click', { which: 13 });\n const calculatedExtent = map.getView().calculateExtent(map.getSize());\n\n expect(calculatedExtent).toStrictEqual([1, 2, 3, 4]);\n});\n"],"names":["const"],"mappings":"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"}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import React, { PureComponent } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { TrackerLayer } from 'mobility-toolbox-js/ol';
|
|
4
|
-
|
|
5
|
-
var propTypes = {
|
|
6
|
-
/**
|
|
7
|
-
* CSS class of the follow button.
|
|
8
|
-
*/
|
|
9
|
-
className: PropTypes.string,
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Title.
|
|
13
|
-
*/
|
|
14
|
-
title: PropTypes.string,
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Line info route identifer.
|
|
18
|
-
*/
|
|
19
|
-
routeIdentifier: PropTypes.string.isRequired,
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Button is active.
|
|
23
|
-
*/
|
|
24
|
-
active: PropTypes.bool.isRequired,
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Function triggered on button click.
|
|
28
|
-
*/
|
|
29
|
-
onClick: PropTypes.func.isRequired,
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Trackerlayer.
|
|
33
|
-
*/
|
|
34
|
-
trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Function to set the map center, Used to follow a train.
|
|
38
|
-
*/
|
|
39
|
-
setCenter: PropTypes.func.isRequired,
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Children content of the button.
|
|
43
|
-
*/
|
|
44
|
-
children: PropTypes.element.isRequired,
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
var defaultProps = {
|
|
48
|
-
className: 'rt-route-follow',
|
|
49
|
-
title: 'Follow',
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Button enables the follow of a selected train.
|
|
54
|
-
*/
|
|
55
|
-
var FollowButton = /*@__PURE__*/(function (PureComponent) {
|
|
56
|
-
function FollowButton() {
|
|
57
|
-
PureComponent.call(this);
|
|
58
|
-
this.onClick = this.onClick.bind(this);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if ( PureComponent ) FollowButton.__proto__ = PureComponent;
|
|
62
|
-
FollowButton.prototype = Object.create( PureComponent && PureComponent.prototype );
|
|
63
|
-
FollowButton.prototype.constructor = FollowButton;
|
|
64
|
-
|
|
65
|
-
FollowButton.prototype.componentDidUpdate = function componentDidUpdate (prevProps) {
|
|
66
|
-
var this$1 = this;
|
|
67
|
-
|
|
68
|
-
var ref = this.props;
|
|
69
|
-
var routeIdentifier = ref.routeIdentifier;
|
|
70
|
-
var active = ref.active;
|
|
71
|
-
var trackerLayer = ref.trackerLayer;
|
|
72
|
-
var onClick = ref.onClick;
|
|
73
|
-
|
|
74
|
-
if (routeIdentifier !== prevProps.routeIdentifier) {
|
|
75
|
-
onClick(false);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (active !== prevProps.active) {
|
|
79
|
-
if (active && trackerLayer) {
|
|
80
|
-
this.centerOnTrajectory(routeIdentifier);
|
|
81
|
-
this.updateInterval = window.setInterval(function () {
|
|
82
|
-
this$1.centerOnTrajectory(routeIdentifier);
|
|
83
|
-
}, 50);
|
|
84
|
-
} else {
|
|
85
|
-
clearInterval(this.updateInterval);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
FollowButton.prototype.componentWillUnmount = function componentWillUnmount () {
|
|
91
|
-
clearInterval(this.updateInterval);
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
FollowButton.prototype.onClick = function onClick () {
|
|
95
|
-
var ref = this.props;
|
|
96
|
-
var active = ref.active;
|
|
97
|
-
var onClick = ref.onClick;
|
|
98
|
-
onClick(!active);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
FollowButton.prototype.centerOnTrajectory = function centerOnTrajectory (routeIdentifier) {
|
|
102
|
-
var ref = this.props;
|
|
103
|
-
var trackerLayer = ref.trackerLayer;
|
|
104
|
-
var setCenter = ref.setCenter;
|
|
105
|
-
|
|
106
|
-
var ref$1 = trackerLayer.getVehicle(function (r) {
|
|
107
|
-
return r.routeIdentifier === routeIdentifier;
|
|
108
|
-
});
|
|
109
|
-
var trajectory = ref$1[0];
|
|
110
|
-
var firstCoord = trajectory && trajectory.coordinate;
|
|
111
|
-
if (firstCoord) {
|
|
112
|
-
setCenter(firstCoord);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
FollowButton.prototype.render = function render () {
|
|
117
|
-
var this$1 = this;
|
|
118
|
-
|
|
119
|
-
var ref = this.props;
|
|
120
|
-
var className = ref.className;
|
|
121
|
-
var title = ref.title;
|
|
122
|
-
var active = ref.active;
|
|
123
|
-
var children = ref.children;
|
|
124
|
-
|
|
125
|
-
return (
|
|
126
|
-
React.createElement( 'div', {
|
|
127
|
-
'aria-label': title, className: ("" + className + (active ? ' rt-active' : '')), title: title, onClick: this.onClick, onKeyPress: function (e) {
|
|
128
|
-
return e.which === 13 && this$1.onClick;
|
|
129
|
-
}, role: "button", tabIndex: 0 },
|
|
130
|
-
children
|
|
131
|
-
)
|
|
132
|
-
);
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
return FollowButton;
|
|
136
|
-
}(PureComponent));
|
|
137
|
-
|
|
138
|
-
FollowButton.propTypes = propTypes;
|
|
139
|
-
FollowButton.defaultProps = defaultProps;
|
|
140
|
-
|
|
141
|
-
export default FollowButton;
|
|
142
|
-
|
|
143
|
-
//# sourceMappingURL=FollowButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FollowButton.js","sources":["../../../src/components/FollowButton/FollowButton.js"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { TrackerLayer } from 'mobility-toolbox-js/ol';\n\nconst propTypes = {\n /**\n * CSS class of the follow button.\n */\n className: PropTypes.string,\n\n /**\n * Title.\n */\n title: PropTypes.string,\n\n /**\n * Line info route identifer.\n */\n routeIdentifier: PropTypes.string.isRequired,\n\n /**\n * Button is active.\n */\n active: PropTypes.bool.isRequired,\n\n /**\n * Function triggered on button click.\n */\n onClick: PropTypes.func.isRequired,\n\n /**\n * Trackerlayer.\n */\n trackerLayer: PropTypes.instanceOf(TrackerLayer).isRequired,\n\n /**\n * Function to set the map center, Used to follow a train.\n */\n setCenter: PropTypes.func.isRequired,\n\n /**\n * Children content of the button.\n */\n children: PropTypes.element.isRequired,\n};\n\nconst defaultProps = {\n className: 'rt-route-follow',\n title: 'Follow',\n};\n\n/**\n * Button enables the follow of a selected train.\n */\nclass FollowButton extends PureComponent {\n constructor() {\n super();\n this.onClick = this.onClick.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const { routeIdentifier, active, trackerLayer, onClick } = this.props;\n\n if (routeIdentifier !== prevProps.routeIdentifier) {\n onClick(false);\n }\n\n if (active !== prevProps.active) {\n if (active && trackerLayer) {\n this.centerOnTrajectory(routeIdentifier);\n this.updateInterval = window.setInterval(() => {\n this.centerOnTrajectory(routeIdentifier);\n }, 50);\n } else {\n clearInterval(this.updateInterval);\n }\n }\n }\n\n componentWillUnmount() {\n clearInterval(this.updateInterval);\n }\n\n onClick() {\n const { active, onClick } = this.props;\n onClick(!active);\n }\n\n centerOnTrajectory(routeIdentifier) {\n const { trackerLayer, setCenter } = this.props;\n\n const [trajectory] = trackerLayer.getVehicle((r) => {\n return r.routeIdentifier === routeIdentifier;\n });\n const firstCoord = trajectory && trajectory.coordinate;\n if (firstCoord) {\n setCenter(firstCoord);\n }\n }\n\n render() {\n const { className, title, active, children } = this.props;\n\n return (\n <div\n aria-label={title}\n className={`${className}${active ? ' rt-active' : ''}`}\n title={title}\n onClick={this.onClick}\n onKeyPress={(e) => {\n return e.which === 13 && this.onClick;\n }}\n role=\"button\"\n tabIndex={0}\n >\n {children}\n </div>\n );\n }\n}\n\nFollowButton.propTypes = propTypes;\nFollowButton.defaultProps = defaultProps;\n\nexport default FollowButton;\n"],"names":["const","super","this"],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
.rt-route-follow {
|
|
2
|
-
display: flex;
|
|
3
|
-
justify-content: center;
|
|
4
|
-
align-items: center;
|
|
5
|
-
height: 35px;
|
|
6
|
-
width: 35px;
|
|
7
|
-
border-radius: 7px;
|
|
8
|
-
margin: 15px;
|
|
9
|
-
margin-top: 10px;
|
|
10
|
-
border: 2px solid #eee;
|
|
11
|
-
background-color: white;
|
|
12
|
-
|
|
13
|
-
svg {
|
|
14
|
-
height: 30px;
|
|
15
|
-
width: 30px;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
&:hover {
|
|
19
|
-
background-color: #eee;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&.rt-active {
|
|
23
|
-
border-color: red;
|
|
24
|
-
background-color: red;
|
|
25
|
-
|
|
26
|
-
svg {
|
|
27
|
-
path {
|
|
28
|
-
fill: white;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
&:hover {
|
|
33
|
-
background-color: red;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import renderer from 'react-test-renderer';
|
|
3
|
-
import { configure, shallow } from 'enzyme';
|
|
4
|
-
import Adapter from 'enzyme-adapter-react-16';
|
|
5
|
-
import { MdNavigation } from 'react-icons/md';
|
|
6
|
-
import { TrajservLayer } from 'mobility-toolbox-js/ol';
|
|
7
|
-
import FollowButton from '.';
|
|
8
|
-
|
|
9
|
-
configure({ adapter: new Adapter() });
|
|
10
|
-
|
|
11
|
-
var funcs = {
|
|
12
|
-
onClick: function () {},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
var trackerLayer = new TrajservLayer();
|
|
16
|
-
|
|
17
|
-
test('FollowButton should match snapshot.', function () {
|
|
18
|
-
var component = renderer.create(
|
|
19
|
-
React.createElement( FollowButton, {
|
|
20
|
-
className: "rt-follow-button", title: "Follow up", active: false, onClick: function () {}, routeIdentifier: "test", trackerLayer: trackerLayer, setCenter: function () {
|
|
21
|
-
return funcs.onClick();
|
|
22
|
-
} },
|
|
23
|
-
React.createElement( MdNavigation, null )
|
|
24
|
-
)
|
|
25
|
-
);
|
|
26
|
-
var tree = component.toJSON();
|
|
27
|
-
expect(tree).toMatchSnapshot();
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
test('FollowButton should toggle.', function () {
|
|
31
|
-
var followActive = false;
|
|
32
|
-
var setFollowActive = function () {
|
|
33
|
-
followActive = !followActive;
|
|
34
|
-
};
|
|
35
|
-
var bt = shallow(
|
|
36
|
-
React.createElement( FollowButton, {
|
|
37
|
-
className: "rt-follow-button", title: "Follow up", active: followActive, onClick: function (active) {
|
|
38
|
-
return setFollowActive(active);
|
|
39
|
-
}, routeIdentifier: "test", trackerLayer: trackerLayer, setCenter: function () {
|
|
40
|
-
return funcs.onClick();
|
|
41
|
-
} },
|
|
42
|
-
React.createElement( MdNavigation, null )
|
|
43
|
-
)
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
expect(followActive).toBe(false);
|
|
47
|
-
|
|
48
|
-
bt.find('.rt-follow-button').first().simulate('click');
|
|
49
|
-
|
|
50
|
-
expect(followActive).toBe(true);
|
|
51
|
-
|
|
52
|
-
bt.find('.rt-follow-button').first().simulate('click');
|
|
53
|
-
|
|
54
|
-
expect(followActive).toBe(false);
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=FollowButton.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FollowButton.test.js","sources":["../../../src/components/FollowButton/FollowButton.test.js"],"sourcesContent":["import React from 'react';\nimport renderer from 'react-test-renderer';\nimport { configure, shallow } from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport { MdNavigation } from 'react-icons/md';\nimport { TrajservLayer } from 'mobility-toolbox-js/ol';\nimport FollowButton from '.';\n\nconfigure({ adapter: new Adapter() });\n\nconst funcs = {\n onClick: () => {},\n};\n\nconst trackerLayer = new TrajservLayer();\n\ntest('FollowButton should match snapshot.', () => {\n const component = renderer.create(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={false}\n onClick={() => {}}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n const tree = component.toJSON();\n expect(tree).toMatchSnapshot();\n});\n\ntest('FollowButton should toggle.', () => {\n let followActive = false;\n const setFollowActive = () => {\n followActive = !followActive;\n };\n const bt = shallow(\n <FollowButton\n className=\"rt-follow-button\"\n title=\"Follow up\"\n active={followActive}\n onClick={(active) => {\n return setFollowActive(active);\n }}\n routeIdentifier=\"test\"\n trackerLayer={trackerLayer}\n setCenter={() => {\n return funcs.onClick();\n }}\n >\n <MdNavigation />\n </FollowButton>,\n );\n\n expect(followActive).toBe(false);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(true);\n\n bt.find('.rt-follow-button').first().simulate('click');\n\n expect(followActive).toBe(false);\n});\n"],"names":["const","let"],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,SAAS,SAAS,EAAE,OAAO,QAAQ,QAAQ,CAAC;AAC5C,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,SAAS,YAAY,QAAQ,gBAAgB,CAAC;AAC9C,SAAS,aAAa,QAAQ,wBAAwB,CAAC;AACvD,OAAO,YAAY,MAAM,GAAG,CAAC;AAC7B;AACA,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;AACtC;AACAA,GAAK,CAAC,KAAK,GAAG;AACd,EAAE,OAAO,WAAE,GAAM,EAAE;AACnB,CAAC,CAAC;AACF;AACAA,GAAK,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE,CAAC;AACzC;AACA,IAAI,CAAC,qCAAqC,WAAE,GAAM;AAClD,EAAEA,GAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,KAAM,EACd,kBAAS,GAAM,EAAG,EAClB,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AACH;AACA,IAAI,CAAC,6BAA6B,WAAE,GAAM;AAC1C,EAAEC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,EAAED,GAAK,CAAC,eAAe,YAAG,GAAM;AAChC,IAAI,YAAY,GAAG,CAAC,YAAY,CAAC;AACjC,GAAG,CAAC;AACJ,EAAEA,GAAK,CAAC,EAAE,GAAG,OAAO;AACpB,IAAI,qBAAC,eAAY;AACjB,MAAM,WAAU,kBAAkB,EAC5B,OAAM,WAAW,EACjB,QAAQ,YAAa,EACrB,kBAAS,CAAC,MAAM,EAAK;AAC3B,QAAQ,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACvC,OAAQ,EACF,iBAAgB,MAAM,EACtB,cAAc,YAAa,EAC3B,oBAAW,GAAM;AACvB,QAAQ,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;AAC/B,UACK;AACL,MAAM,qBAAC,kBAAY,EAAG;AACtB,IAAI,CAAgB;AACpB,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/FollowButton/index.js"],"sourcesContent":["export { default } from './FollowButton';\n"],"names":[],"mappings":"AAAA,SAAS,OAAO,QAAQ,gBAAgB,CAAC;"}
|