@kalisio/kdk 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/.travis.test.sh +1 -1
  2. package/CHANGELOG.md +63 -13
  3. package/extras/tours/map/catalog-panel.js +61 -10
  4. package/extras/tours/map/create-view.js +25 -0
  5. package/extras/tours/map/fab.js +10 -1
  6. package/extras/tours/map/navigation-bar.js +7 -9
  7. package/lib/core/api/application.js +9 -1
  8. package/lib/core/api/application.js.map +1 -1
  9. package/lib/core/client/components/chart/KChart.vue +115 -0
  10. package/lib/core/client/components/chart/KStatsChart.vue +76 -0
  11. package/lib/core/client/components/chart/index.js +20 -0
  12. package/lib/core/client/components/chart/index.js.map +1 -0
  13. package/lib/core/client/components/collection/KFilter.vue +6 -0
  14. package/lib/core/client/components/collection/KHistoryEntry.vue +1 -1
  15. package/lib/core/client/components/collection/KItem.vue +4 -4
  16. package/lib/core/client/components/form/KChipsField.vue +4 -4
  17. package/lib/core/client/components/form/KView.vue +1 -1
  18. package/lib/core/client/components/frame/KAction.vue +40 -5
  19. package/lib/core/client/components/frame/KBlock.vue +7 -7
  20. package/lib/core/client/components/frame/KContent.vue +1 -1
  21. package/lib/core/client/components/frame/KOpener.vue +1 -1
  22. package/lib/core/client/components/frame/KPanel.vue +8 -7
  23. package/lib/core/client/components/frame/KPopupAction.vue +6 -0
  24. package/lib/core/client/components/frame/KScreen.vue +1 -1
  25. package/lib/core/client/components/frame/KStamp.vue +4 -2
  26. package/lib/core/client/components/frame/index.js +1 -6
  27. package/lib/core/client/components/frame/index.js.map +1 -1
  28. package/lib/core/client/components/input/KIconChooser.vue +5 -2
  29. package/lib/core/client/components/input/KPalette.vue +1 -1
  30. package/lib/core/client/components/input/index.js +14 -4
  31. package/lib/core/client/components/input/index.js.map +1 -1
  32. package/lib/core/client/components/layout/KFab.vue +1 -1
  33. package/lib/core/client/components/layout/KLayout.vue +10 -2
  34. package/lib/core/client/components/layout/KPage.vue +19 -18
  35. package/lib/core/client/components/layout/KTour.vue +5 -3
  36. package/lib/core/client/components/layout/KWindow.vue +211 -59
  37. package/lib/core/client/components/media/KMediaBrowser.vue +6 -6
  38. package/lib/core/client/components/menu/KMenu.vue +13 -5
  39. package/lib/core/client/components/menu/KRadialFab.vue +22 -24
  40. package/lib/core/client/components/menu/KRadialFabItem.vue +17 -18
  41. package/lib/core/client/components/team/KGroupsActivity.vue +1 -1
  42. package/lib/core/client/components/team/KJoinGroup.vue +2 -2
  43. package/lib/core/client/components/time/KAbsoluteTimeRange.vue +190 -0
  44. package/lib/core/client/components/time/KRelativeTimeRanges.vue +192 -0
  45. package/lib/core/client/components/time/index.js +20 -0
  46. package/lib/core/client/components/time/index.js.map +1 -0
  47. package/lib/core/client/i18n/core_en.json +35 -12
  48. package/lib/core/client/i18n/core_fr.json +36 -13
  49. package/lib/core/client/index.js +1 -1
  50. package/lib/core/client/index.js.map +1 -1
  51. package/lib/core/client/mixins/mixin.base-collection.js +11 -1
  52. package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
  53. package/lib/core/client/mixins/mixin.base-widget.js +25 -13
  54. package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
  55. package/lib/core/client/services/index.js +2 -1
  56. package/lib/core/client/services/index.js.map +1 -1
  57. package/lib/core/client/services/local-settings.service.js +4 -0
  58. package/lib/core/client/services/local-settings.service.js.map +1 -1
  59. package/lib/core/client/time.js +25 -15
  60. package/lib/core/client/time.js.map +1 -1
  61. package/lib/core/client/units.js +12 -0
  62. package/lib/core/client/units.js.map +1 -1
  63. package/lib/core/client/utils.js +11 -0
  64. package/lib/core/client/utils.js.map +1 -1
  65. package/lib/core/common/schemas/settings.update.json +14 -4
  66. package/lib/map/api/hooks/hooks.catalog.js +20 -0
  67. package/lib/map/api/hooks/hooks.catalog.js.map +1 -1
  68. package/lib/map/api/models/catalog.model.mongodb.js +6 -1
  69. package/lib/map/api/models/catalog.model.mongodb.js.map +1 -1
  70. package/lib/map/api/models/features.model.mongodb.js +5 -0
  71. package/lib/map/api/models/features.model.mongodb.js.map +1 -1
  72. package/lib/map/api/services/catalog/catalog.hooks.js +3 -1
  73. package/lib/map/api/services/catalog/catalog.hooks.js.map +1 -1
  74. package/lib/map/client/components/KColorLegend.vue +22 -21
  75. package/lib/map/client/components/KFeaturesChart.vue +81 -110
  76. package/lib/map/client/components/KLayerStyleForm.vue +119 -47
  77. package/lib/map/client/components/KLevelSlider.vue +30 -29
  78. package/lib/map/client/components/KLocationMap.vue +2 -2
  79. package/lib/map/client/components/KMeasureTool.vue +30 -6
  80. package/lib/map/client/components/KPositionIndicator.vue +4 -4
  81. package/lib/map/client/components/KTimeline.vue +25 -27
  82. package/lib/map/client/components/KTimezoneMap.vue +156 -0
  83. package/lib/map/client/components/KUrlLegend.vue +11 -10
  84. package/lib/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
  85. package/lib/map/client/components/catalog/KCatalogLayersPanel.vue +56 -0
  86. package/lib/map/client/components/catalog/KCreateView.vue +91 -0
  87. package/lib/map/client/components/catalog/KLayerCategories.vue +2 -1
  88. package/lib/map/client/components/catalog/{KCatalog.vue → KLayersPanel.vue} +19 -37
  89. package/lib/map/client/components/catalog/KUserLayersPanel.vue +40 -0
  90. package/lib/map/client/components/catalog/KViewSelector.vue +46 -0
  91. package/lib/map/client/components/catalog/KViewsPanel.vue +110 -0
  92. package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +4 -13
  93. package/lib/map/client/components/form/KTimezoneField.vue +135 -0
  94. package/lib/map/client/components/widget/KElevationProfile.vue +488 -0
  95. package/lib/map/client/components/widget/KInformationBox.vue +48 -23
  96. package/lib/map/client/components/widget/KMapillaryViewer.vue +26 -20
  97. package/lib/map/client/components/widget/KTimeSeries.vue +267 -347
  98. package/lib/map/client/i18n/map_en.json +63 -40
  99. package/lib/map/client/i18n/map_fr.json +65 -42
  100. package/lib/map/client/leaflet/GradientPath.js +40 -19
  101. package/lib/map/client/leaflet/GradientPath.js.map +1 -1
  102. package/lib/map/client/leaflet/TiledFeatureLayer.js +527 -93
  103. package/lib/map/client/leaflet/TiledFeatureLayer.js.map +1 -1
  104. package/lib/map/client/leaflet/TiledMeshLayer.js +58 -35
  105. package/lib/map/client/leaflet/TiledMeshLayer.js.map +1 -1
  106. package/lib/map/client/leaflet/utils.js +44 -3
  107. package/lib/map/client/leaflet/utils.js.map +1 -1
  108. package/lib/map/client/mixins/globe/mixin.base-globe.js +16 -1
  109. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  110. package/lib/map/client/mixins/globe/mixin.file-layers.js +12 -2
  111. package/lib/map/client/mixins/globe/mixin.file-layers.js.map +1 -1
  112. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +7 -6
  113. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  114. package/lib/map/client/mixins/globe/mixin.popup.js +4 -2
  115. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  116. package/lib/map/client/mixins/globe/mixin.style.js +8 -4
  117. package/lib/map/client/mixins/globe/mixin.style.js.map +1 -1
  118. package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -2
  119. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  120. package/lib/map/client/mixins/index.js +23 -18
  121. package/lib/map/client/mixins/index.js.map +1 -1
  122. package/lib/map/client/mixins/map/mixin.base-map.js +20 -2
  123. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  124. package/lib/map/client/mixins/map/mixin.edit-layers.js +8 -4
  125. package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
  126. package/lib/map/client/mixins/map/mixin.geojson-layers.js +27 -5
  127. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  128. package/lib/map/client/mixins/map/mixin.heatmap-layers.js +6 -1
  129. package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
  130. package/lib/map/client/mixins/map/mixin.popup.js +1 -1
  131. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  132. package/lib/map/client/mixins/map/mixin.style.js +8 -4
  133. package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
  134. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +4 -11
  135. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
  136. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +0 -11
  137. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
  138. package/lib/map/client/mixins/map/mixin.tooltip.js +1 -1
  139. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  140. package/lib/map/client/mixins/mixin.activity.js +150 -150
  141. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  142. package/lib/map/client/mixins/mixin.catalog-panel.js +36 -0
  143. package/lib/map/client/mixins/mixin.catalog-panel.js.map +1 -0
  144. package/lib/map/client/mixins/mixin.feature-selection.js +17 -8
  145. package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
  146. package/lib/map/client/mixins/mixin.feature-service.js +36 -16
  147. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  148. package/lib/map/client/mixins/mixin.infobox.js +1 -1
  149. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  150. package/lib/map/client/mixins/mixin.levels.js +26 -12
  151. package/lib/map/client/mixins/mixin.levels.js.map +1 -1
  152. package/lib/map/client/mixins/mixin.style.js +1 -0
  153. package/lib/map/client/mixins/mixin.style.js.map +1 -1
  154. package/lib/map/client/mixins/mixin.weacast.js +15 -23
  155. package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
  156. package/lib/map/client/pixi-utils.js +8 -177
  157. package/lib/map/client/pixi-utils.js.map +1 -1
  158. package/lib/map/client/utils.js +1 -0
  159. package/lib/map/client/utils.js.map +1 -1
  160. package/lib/map/common/grid.js +131 -0
  161. package/lib/map/common/grid.js.map +1 -1
  162. package/lib/map/common/index.js +22 -11
  163. package/lib/map/common/index.js.map +1 -1
  164. package/lib/map/common/meteo-model-grid-source.js +5 -2
  165. package/lib/map/common/meteo-model-grid-source.js.map +1 -1
  166. package/lib/map/common/time-based-grid-source.js +5 -2
  167. package/lib/map/common/time-based-grid-source.js.map +1 -1
  168. package/lib/test/client/core/collection.js +31 -13
  169. package/lib/test/client/core/collection.js.map +1 -1
  170. package/lib/test/client/core/layout.js +137 -49
  171. package/lib/test/client/core/layout.js.map +1 -1
  172. package/lib/test/client/core/utils.js +89 -22
  173. package/lib/test/client/core/utils.js.map +1 -1
  174. package/lib/test/client/map/catalog.js +134 -41
  175. package/lib/test/client/map/catalog.js.map +1 -1
  176. package/lib/test/client/map/controls.js +7 -4
  177. package/lib/test/client/map/controls.js.map +1 -1
  178. package/lib/test/client/map/index.js +12 -0
  179. package/lib/test/client/map/index.js.map +1 -1
  180. package/lib/test/client/map/utils.js +67 -0
  181. package/lib/test/client/map/utils.js.map +1 -0
  182. package/package.json +5 -5
  183. package/extras/tours/map/favorite-views.js +0 -53
  184. package/lib/core/client/components/frame/KChart.vue +0 -60
  185. package/lib/core/client/components/input/KCodeInput.vue +0 -50
  186. package/lib/core/client/components/input/KTimeRangeChooser.vue +0 -109
  187. package/lib/core/client/components/time/KTimeRange.vue +0 -144
  188. package/lib/map/client/components/KFavoriteViews.vue +0 -217
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createLayer = exports.connectLayer = exports.importLayer = exports.addLayer = exports.dropFile = exports.removeLayer = exports.clickLayer = exports.clickLayerCategory = exports.isLayerCategoryOpened = exports.getLayerCategoryId = undefined;
6
+ exports.removeView = exports.clickView = exports.viewExists = exports.createView = exports.createLayer = exports.connectLayer = exports.importLayer = exports.addLayer = exports.dropFile = exports.removeLayer = exports.saveLayer = exports.clickLayer = exports.clickLayerCategory = exports.clickCatalogTab = exports.isLayerCategoryOpened = exports.getLayerCategoryId = undefined;
7
7
 
8
8
  let getLayerCategoryId = exports.getLayerCategoryId = (() => {
9
9
  var _ref = _asyncToGenerator(function* (page, layerId) {
@@ -29,96 +29,135 @@ let isLayerCategoryOpened = exports.isLayerCategoryOpened = (() => {
29
29
  };
30
30
  })();
31
31
 
32
- let clickLayerCategory = exports.clickLayerCategory = (() => {
33
- var _ref3 = _asyncToGenerator(function* (page, categoryId, wait = 500) {
32
+ let clickCatalogTab = exports.clickCatalogTab = (() => {
33
+ var _ref3 = _asyncToGenerator(function* (page, tabId, wait) {
34
34
  const isCatalogOpened = yield core.isRightPaneVisible(page);
35
35
  if (!isCatalogOpened) yield core.clickRightOpener(page);
36
- yield core.clickRightPaneAction(page, categoryId, wait);
36
+ yield core.click(page, `#${tabId}`, wait);
37
+ return isCatalogOpened;
37
38
  });
38
39
 
39
- return function clickLayerCategory(_x5, _x6) {
40
+ return function clickCatalogTab(_x5, _x6, _x7) {
40
41
  return _ref3.apply(this, arguments);
41
42
  };
42
43
  })();
43
44
 
45
+ let clickLayerCategory = exports.clickLayerCategory = (() => {
46
+ var _ref4 = _asyncToGenerator(function* (page, tabId, categoryId, wait = 500) {
47
+ yield clickCatalogTab(page, tabId);
48
+ yield core.clickRightPaneAction(page, categoryId, wait);
49
+ });
50
+
51
+ return function clickLayerCategory(_x8, _x9, _x10) {
52
+ return _ref4.apply(this, arguments);
53
+ };
54
+ })();
55
+
44
56
  let clickLayer = exports.clickLayer = (() => {
45
- var _ref4 = _asyncToGenerator(function* (page, layer, wait = 1000) {
57
+ var _ref5 = _asyncToGenerator(function* (page, tabId, layer, wait = 1000) {
58
+ const isCatalogOpened = yield clickCatalogTab(page, tabId);
46
59
  const layerId = getLayerId(layer);
47
- const isCatalogOpened = yield core.isRightPaneVisible(page);
48
- if (!isCatalogOpened) yield core.clickRightOpener(page);
49
60
  const categoryId = yield getLayerCategoryId(page, layerId);
50
61
  let isCategoryOpened;
51
62
  if (categoryId) {
52
63
  isCategoryOpened = yield isLayerCategoryOpened(page, categoryId);
53
- if (!isCategoryOpened) yield clickLayerCategory(page, categoryId);
64
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 1000);
65
+ }
66
+ let selector = `#${layerId} .q-toggle`;
67
+ // some layers have a toggle (regulaer layers), some don't (base layers)
68
+ if (!(yield core.elementExists(page, selector))) {
69
+ selector = `#${layerId}`;
54
70
  }
55
- let selector = `#${layerId}`;
56
- if (categoryId !== 'k-catalog-panel-base-layers') selector += ' .q-toggle';
57
71
  yield core.click(page, selector);
58
72
  if (categoryId) {
59
- if (!isCategoryOpened) yield clickLayerCategory(page, categoryId);
73
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 500);
60
74
  }
61
75
  if (!isCatalogOpened) yield core.clickRightOpener(page);
62
76
  yield core.waitForImagesLoaded(page);
63
77
  yield page.waitForTimeout(wait);
64
78
  });
65
79
 
66
- return function clickLayer(_x7, _x8) {
67
- return _ref4.apply(this, arguments);
80
+ return function clickLayer(_x11, _x12, _x13) {
81
+ return _ref5.apply(this, arguments);
68
82
  };
69
83
  })();
70
84
 
71
- let removeLayer = exports.removeLayer = (() => {
72
- var _ref5 = _asyncToGenerator(function* (page, layer, wait = 1000) {
85
+ let saveLayer = exports.saveLayer = (() => {
86
+ var _ref6 = _asyncToGenerator(function* (page, tabId, layer, wait = 1000) {
87
+ const isCatalogOpened = yield clickCatalogTab(page, tabId);
73
88
  const layerId = getLayerId(layer);
74
- const isCatalogOpened = yield core.isRightPaneVisible(page);
89
+ const categoryId = yield getLayerCategoryId(page, layerId);
90
+ let isCategoryOpened;
91
+ if (categoryId) {
92
+ isCategoryOpened = yield isLayerCategoryOpened(page, categoryId);
93
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 1000);
94
+ }
95
+ yield core.click(page, `#${layer}-actions`);
96
+ yield core.clickAction(page, 'save-layer');
97
+ if (categoryId) {
98
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 500);
99
+ }
75
100
  if (!isCatalogOpened) yield core.clickRightOpener(page);
101
+ yield page.waitForTimeout(wait);
102
+ });
103
+
104
+ return function saveLayer(_x14, _x15, _x16) {
105
+ return _ref6.apply(this, arguments);
106
+ };
107
+ })();
108
+
109
+ let removeLayer = exports.removeLayer = (() => {
110
+ var _ref7 = _asyncToGenerator(function* (page, tabId, layer, wait = 1000) {
111
+ const isCatalogOpened = yield clickCatalogTab(page, tabId);
112
+ const layerId = getLayerId(layer);
76
113
  const categoryId = yield getLayerCategoryId(page, layerId);
77
114
  let isCategoryOpened;
78
115
  if (categoryId) {
79
116
  isCategoryOpened = yield isLayerCategoryOpened(page, categoryId);
80
- if (!isCategoryOpened) yield clickLayerCategory(page, categoryId);
117
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 1000);
81
118
  }
82
- yield core.click(page, `#${layerId} .q-btn`);
83
- yield core.clickAction(page, 'remove');
119
+ yield core.click(page, `#${layer}-actions`);
120
+ yield core.clickAction(page, 'remove-layer');
84
121
  yield core.click(page, '.q-dialog button:nth-child(2)', wait);
85
122
  if (categoryId) {
86
- if (!isCategoryOpened) yield clickLayerCategory(page, categoryId);
123
+ if (!isCategoryOpened) yield core.clickRightPaneAction(page, categoryId, 500);
87
124
  }
125
+ if (!isCatalogOpened) yield core.clickRightOpener(page);
126
+ yield page.waitForTimeout(wait);
88
127
  });
89
128
 
90
- return function removeLayer(_x9, _x10) {
91
- return _ref5.apply(this, arguments);
129
+ return function removeLayer(_x17, _x18, _x19) {
130
+ return _ref7.apply(this, arguments);
92
131
  };
93
132
  })();
94
133
 
95
134
  let dropFile = exports.dropFile = (() => {
96
- var _ref6 = _asyncToGenerator(function* (page, filePath, wait = 2000) {
135
+ var _ref8 = _asyncToGenerator(function* (page, filePath, wait = 2000) {
97
136
  const loaderSelector = '#dropFileInput';
98
137
  const loader = yield page.$(loaderSelector);
99
138
  yield loader.uploadFile(filePath);
100
139
  yield page.waitForTimeout(wait);
101
140
  });
102
141
 
103
- return function dropFile(_x11, _x12) {
104
- return _ref6.apply(this, arguments);
142
+ return function dropFile(_x20, _x21) {
143
+ return _ref8.apply(this, arguments);
105
144
  };
106
145
  })();
107
146
 
108
147
  let addLayer = exports.addLayer = (() => {
109
- var _ref7 = _asyncToGenerator(function* (page) {
148
+ var _ref9 = _asyncToGenerator(function* (page) {
110
149
  yield core.clickFab(page);
111
150
  yield core.clickAction(page, 'add-layer');
112
151
  yield page.waitForTimeout(1000);
113
152
  });
114
153
 
115
- return function addLayer(_x13) {
116
- return _ref7.apply(this, arguments);
154
+ return function addLayer(_x22) {
155
+ return _ref9.apply(this, arguments);
117
156
  };
118
157
  })();
119
158
 
120
159
  let importLayer = exports.importLayer = (() => {
121
- var _ref8 = _asyncToGenerator(function* (page, filePath, featureId = undefined, wait = 2000) {
160
+ var _ref10 = _asyncToGenerator(function* (page, filePath, featureId = undefined, wait = 2000) {
122
161
  yield addLayer(page);
123
162
  yield core.uploadFile(page, '#file-field', filePath);
124
163
  if (featureId) {
@@ -130,13 +169,13 @@ let importLayer = exports.importLayer = (() => {
130
169
  yield page.waitForTimeout(wait);
131
170
  });
132
171
 
133
- return function importLayer(_x14, _x15) {
134
- return _ref8.apply(this, arguments);
172
+ return function importLayer(_x23, _x24) {
173
+ return _ref10.apply(this, arguments);
135
174
  };
136
175
  })();
137
176
 
138
177
  let connectLayer = exports.connectLayer = (() => {
139
- var _ref9 = _asyncToGenerator(function* (page, service, layerId, wait = 2000) {
178
+ var _ref11 = _asyncToGenerator(function* (page, service, layerId, wait = 2000) {
140
179
  yield addLayer(page);
141
180
  yield core.clickAction(page, 'connect-layer');
142
181
  yield core.type(page, '#service-field', service, true, false, 5000);
@@ -147,26 +186,80 @@ let connectLayer = exports.connectLayer = (() => {
147
186
  yield page.waitForTimeout(wait);
148
187
  });
149
188
 
150
- return function connectLayer(_x16, _x17, _x18) {
151
- return _ref9.apply(this, arguments);
189
+ return function connectLayer(_x25, _x26, _x27) {
190
+ return _ref11.apply(this, arguments);
152
191
  };
153
192
  })();
154
193
 
155
194
  let createLayer = exports.createLayer = (() => {
156
- var _ref10 = _asyncToGenerator(function* (page, layerName, schemaPath, featureId, wait = 2000) {
195
+ var _ref12 = _asyncToGenerator(function* (page, layerName, schemaPath, featureId, wait = 2000) {
157
196
  yield addLayer(page);
158
- yield core.clickAction(page, 'create-layer');
197
+ yield core.clickAction(page, 'create-layer', 2000);
159
198
  yield core.type(page, '#name-field', layerName);
160
199
  yield core.type(page, '#description-field', `${layerName} description`);
161
200
  yield core.uploadFile(page, '#schema-field', schemaPath);
162
- yield page.click(page, '#featureId-field', 500);
163
- yield core.click(page, `#${featureId}`);
201
+ yield core.click(page, '#featureId-field', 500);
202
+ yield core.click(page, `#${featureId}`, 500);
164
203
  yield core.clickAction(page, 'create-layer-action', 1000);
165
204
  yield page.waitForTimeout(wait);
166
205
  });
167
206
 
168
- return function createLayer(_x19, _x20, _x21, _x22) {
169
- return _ref10.apply(this, arguments);
207
+ return function createLayer(_x28, _x29, _x30, _x31) {
208
+ return _ref12.apply(this, arguments);
209
+ };
210
+ })();
211
+
212
+ let createView = exports.createView = (() => {
213
+ var _ref13 = _asyncToGenerator(function* (page, name, saveLayers, wait = 2000) {
214
+ yield core.clickFab(page);
215
+ yield core.clickAction(page, 'create-view');
216
+ yield page.waitForTimeout(1000);
217
+ yield core.type(page, '#name-field', name);
218
+ yield core.type(page, '#description-field', `${name} description`);
219
+ if (saveLayers) yield core.click(page, '#layers-field');
220
+ yield core.clickAction(page, 'apply-button', 1000);
221
+ });
222
+
223
+ return function createView(_x32, _x33, _x34) {
224
+ return _ref13.apply(this, arguments);
225
+ };
226
+ })();
227
+
228
+ let viewExists = exports.viewExists = (() => {
229
+ var _ref14 = _asyncToGenerator(function* (page, tabId, name) {
230
+ const isCatalogOpened = yield clickCatalogTab(page, tabId, 2000);
231
+ const exists = yield core.itemExists(page, 'catalog/KViewSelector', name);
232
+ if (!isCatalogOpened) yield core.clickRightOpener(page);
233
+ return exists;
234
+ });
235
+
236
+ return function viewExists(_x35, _x36, _x37) {
237
+ return _ref14.apply(this, arguments);
238
+ };
239
+ })();
240
+
241
+ let clickView = exports.clickView = (() => {
242
+ var _ref15 = _asyncToGenerator(function* (page, tabId, name, wait = 1000) {
243
+ const isCatalogOpened = yield clickCatalogTab(page, tabId, 2000);
244
+ yield core.clickItem(page, 'catalog/KViewSelector', name);
245
+ if (!isCatalogOpened) yield core.clickRightOpener(page);
246
+ });
247
+
248
+ return function clickView(_x38, _x39, _x40) {
249
+ return _ref15.apply(this, arguments);
250
+ };
251
+ })();
252
+
253
+ let removeView = exports.removeView = (() => {
254
+ var _ref16 = _asyncToGenerator(function* (page, tabId, name, wait = 1000) {
255
+ const isCatalogOpened = yield clickCatalogTab(page, tabId, 2000);
256
+ yield core.clickItemAction(page, 'catalog/KViewSelector', name, 'view-overflowmenu', 1000);
257
+ yield core.clickAction(page, 'remove-view', wait);
258
+ if (!isCatalogOpened) yield core.clickRightOpener(page);
259
+ });
260
+
261
+ return function removeView(_x41, _x42, _x43) {
262
+ return _ref16.apply(this, arguments);
170
263
  };
171
264
  })();
172
265
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../test/client/map/catalog.js"],"names":["page","layerId","xpath","elements","$x","length","getProperty","jsonValue","undefined","getLayerCategoryId","categoryId","selector","core","isElementVisible","isLayerCategoryOpened","wait","isCatalogOpened","isRightPaneVisible","clickRightOpener","clickRightPaneAction","clickLayerCategory","layer","getLayerId","isCategoryOpened","click","waitForImagesLoaded","waitForTimeout","clickLayer","clickAction","removeLayer","filePath","loaderSelector","loader","$","uploadFile","dropFile","clickFab","addLayer","featureId","importLayer","service","type","connectLayer","layerName","schemaPath","createLayer","_","kebabCase"],"mappings":"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","file":"catalog.js","sourcesContent":["import _ from 'lodash'\r\nimport * as core from '../core'\r\n\r\nexport function getLayerId (layer) {\r\n return 'layers-' + _.kebabCase(layer)\r\n}\r\n\r\nexport async function getLayerCategoryId (page, layerId) {\r\n const xpath = `//div[contains(@class, \"q-expansion-item q-item-type\") and .//div[@id=\"${layerId}\"]]`\r\n const elements = await page.$x(xpath)\r\n if (elements.length > 0) return (await elements[0].getProperty('id')).jsonValue()\r\n return undefined\r\n}\r\n\r\nexport async function isLayerCategoryOpened (page, categoryId) {\r\n const selector = `#${categoryId} .q-expansion-item__content`\r\n return core.isElementVisible(page, selector)\r\n}\r\n\r\nexport async function clickLayerCategory (page, categoryId, wait = 500) {\r\n const isCatalogOpened = await core.isRightPaneVisible(page)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await core.clickRightPaneAction(page, categoryId, wait)\r\n}\r\n\r\nexport async function clickLayer (page, layer, wait = 1000) {\r\n const layerId = getLayerId(layer)\r\n const isCatalogOpened = await core.isRightPaneVisible(page)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n const categoryId = await getLayerCategoryId(page, layerId)\r\n let isCategoryOpened\r\n if (categoryId) {\r\n isCategoryOpened = await isLayerCategoryOpened(page, categoryId)\r\n if (!isCategoryOpened) await clickLayerCategory(page, categoryId)\r\n }\r\n let selector = `#${layerId}`\r\n if (categoryId !== 'k-catalog-panel-base-layers') selector += ' .q-toggle'\r\n await core.click(page, selector)\r\n if (categoryId) {\r\n if (!isCategoryOpened) await clickLayerCategory(page, categoryId)\r\n }\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function removeLayer (page, layer, wait = 1000) {\r\n const layerId = getLayerId(layer)\r\n const isCatalogOpened = await core.isRightPaneVisible(page)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n const categoryId = await getLayerCategoryId(page, layerId)\r\n let isCategoryOpened\r\n if (categoryId) {\r\n isCategoryOpened = await isLayerCategoryOpened(page, categoryId)\r\n if (!isCategoryOpened) await clickLayerCategory(page, categoryId)\r\n }\r\n await core.click(page, `#${layerId} .q-btn`)\r\n await core.clickAction(page, 'remove')\r\n await core.click(page, '.q-dialog button:nth-child(2)', wait)\r\n if (categoryId) {\r\n if (!isCategoryOpened) await clickLayerCategory(page, categoryId)\r\n }\r\n}\r\n\r\nexport async function dropFile (page, filePath, wait = 2000) {\r\n const loaderSelector = '#dropFileInput'\r\n const loader = await page.$(loaderSelector)\r\n await loader.uploadFile(filePath)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function addLayer (page) {\r\n await core.clickFab(page)\r\n await core.clickAction(page, 'add-layer')\r\n await page.waitForTimeout(1000)\r\n}\r\n\r\nexport async function importLayer (page, filePath, featureId = undefined, wait = 2000) {\r\n await addLayer(page)\r\n await core.uploadFile(page, '#file-field', filePath)\r\n if (featureId) {\r\n await core.click(page, '#featureId-field', 500)\r\n await core.click(page, `#${featureId}`, 500)\r\n }\r\n await core.clickAction(page, 'import-layer-action')\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function connectLayer (page, service, layerId, wait = 2000) {\r\n await addLayer(page)\r\n await core.clickAction(page, 'connect-layer')\r\n await core.type(page, '#service-field', service, true, false, 5000)\r\n await core.click(page, '#layer-field', 500)\r\n await core.click(page, `#${layerId}`, 500)\r\n await core.clickAction(page, 'connect-layer-action', 2000)\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function createLayer (page, layerName, schemaPath, featureId, wait = 2000) {\r\n await addLayer(page)\r\n await core.clickAction(page, 'create-layer')\r\n await core.type(page, '#name-field', layerName)\r\n await core.type(page, '#description-field', `${layerName} description`)\r\n await core.uploadFile(page, '#schema-field', schemaPath)\r\n await page.click(page, '#featureId-field', 500)\r\n await core.click(page, `#${featureId}`)\r\n await core.clickAction(page, 'create-layer-action', 1000)\r\n await page.waitForTimeout(wait)\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../test/client/map/catalog.js"],"names":["page","layerId","xpath","elements","$x","length","getProperty","jsonValue","undefined","getLayerCategoryId","categoryId","selector","core","isElementVisible","isLayerCategoryOpened","tabId","wait","isCatalogOpened","isRightPaneVisible","clickRightOpener","click","clickCatalogTab","clickRightPaneAction","clickLayerCategory","layer","getLayerId","isCategoryOpened","elementExists","waitForImagesLoaded","waitForTimeout","clickLayer","clickAction","saveLayer","removeLayer","filePath","loaderSelector","loader","$","uploadFile","dropFile","clickFab","addLayer","featureId","importLayer","service","type","connectLayer","layerName","schemaPath","createLayer","name","saveLayers","createView","exists","itemExists","viewExists","clickItem","clickView","clickItemAction","removeView","_","kebabCase"],"mappings":"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","file":"catalog.js","sourcesContent":["import _ from 'lodash'\r\nimport * as core from '../core'\r\n\r\nexport function getLayerId (layer) {\r\n return 'layers-' + _.kebabCase(layer)\r\n}\r\n\r\nexport async function getLayerCategoryId (page, layerId) {\r\n const xpath = `//div[contains(@class, \"q-expansion-item q-item-type\") and .//div[@id=\"${layerId}\"]]`\r\n const elements = await page.$x(xpath)\r\n if (elements.length > 0) return (await elements[0].getProperty('id')).jsonValue()\r\n return undefined\r\n}\r\n\r\nexport async function isLayerCategoryOpened (page, categoryId) {\r\n const selector = `#${categoryId} .q-expansion-item__content`\r\n return core.isElementVisible(page, selector)\r\n}\r\n\r\nexport async function clickCatalogTab (page, tabId, wait) {\r\n const isCatalogOpened = await core.isRightPaneVisible(page)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await core.click(page, `#${tabId}`, wait)\r\n return isCatalogOpened\r\n}\r\n\r\nexport async function clickLayerCategory (page, tabId, categoryId, wait = 500) {\r\n await clickCatalogTab(page, tabId)\r\n await core.clickRightPaneAction(page, categoryId, wait)\r\n}\r\n\r\nexport async function clickLayer (page, tabId, layer, wait = 1000) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId)\r\n const layerId = getLayerId(layer)\r\n const categoryId = await getLayerCategoryId(page, layerId)\r\n let isCategoryOpened\r\n if (categoryId) {\r\n isCategoryOpened = await isLayerCategoryOpened(page, categoryId)\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 1000)\r\n }\r\n let selector = `#${layerId} .q-toggle`\r\n // some layers have a toggle (regulaer layers), some don't (base layers)\r\n if (!await core.elementExists(page, selector)) {\r\n selector = `#${layerId}`\r\n }\r\n await core.click(page, selector)\r\n if (categoryId) {\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 500)\r\n }\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function saveLayer (page, tabId, layer, wait = 1000) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId)\r\n const layerId = getLayerId(layer)\r\n const categoryId = await getLayerCategoryId(page, layerId)\r\n let isCategoryOpened\r\n if (categoryId) {\r\n isCategoryOpened = await isLayerCategoryOpened(page, categoryId)\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 1000)\r\n }\r\n await core.click(page, `#${layer}-actions`)\r\n await core.clickAction(page, 'save-layer')\r\n if (categoryId) {\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 500)\r\n }\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function removeLayer (page, tabId, layer, wait = 1000) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId)\r\n const layerId = getLayerId(layer)\r\n const categoryId = await getLayerCategoryId(page, layerId)\r\n let isCategoryOpened\r\n if (categoryId) {\r\n isCategoryOpened = await isLayerCategoryOpened(page, categoryId)\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 1000)\r\n }\r\n await core.click(page, `#${layer}-actions`)\r\n await core.clickAction(page, 'remove-layer')\r\n await core.click(page, '.q-dialog button:nth-child(2)', wait)\r\n if (categoryId) {\r\n if (!isCategoryOpened) await core.clickRightPaneAction(page, categoryId, 500)\r\n }\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function dropFile (page, filePath, wait = 2000) {\r\n const loaderSelector = '#dropFileInput'\r\n const loader = await page.$(loaderSelector)\r\n await loader.uploadFile(filePath)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function addLayer (page) {\r\n await core.clickFab(page)\r\n await core.clickAction(page, 'add-layer')\r\n await page.waitForTimeout(1000)\r\n}\r\n\r\nexport async function importLayer (page, filePath, featureId = undefined, wait = 2000) {\r\n await addLayer(page)\r\n await core.uploadFile(page, '#file-field', filePath)\r\n if (featureId) {\r\n await core.click(page, '#featureId-field', 500)\r\n await core.click(page, `#${featureId}`, 500)\r\n }\r\n await core.clickAction(page, 'import-layer-action')\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function connectLayer (page, service, layerId, wait = 2000) {\r\n await addLayer(page)\r\n await core.clickAction(page, 'connect-layer')\r\n await core.type(page, '#service-field', service, true, false, 5000)\r\n await core.click(page, '#layer-field', 500)\r\n await core.click(page, `#${layerId}`, 500)\r\n await core.clickAction(page, 'connect-layer-action', 2000)\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function createLayer (page, layerName, schemaPath, featureId, wait = 2000) {\r\n await addLayer(page)\r\n await core.clickAction(page, 'create-layer', 2000)\r\n await core.type(page, '#name-field', layerName)\r\n await core.type(page, '#description-field', `${layerName} description`)\r\n await core.uploadFile(page, '#schema-field', schemaPath)\r\n await core.click(page, '#featureId-field', 500)\r\n await core.click(page, `#${featureId}`, 500)\r\n await core.clickAction(page, 'create-layer-action', 1000)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function createView (page, name, saveLayers, wait = 2000) {\r\n await core.clickFab(page)\r\n await core.clickAction(page, 'create-view')\r\n await page.waitForTimeout(1000)\r\n await core.type(page, '#name-field', name)\r\n await core.type(page, '#description-field', `${name} description`)\r\n if (saveLayers) await core.click(page, '#layers-field')\r\n await core.clickAction(page, 'apply-button', 1000)\r\n}\r\n\r\nexport async function viewExists (page, tabId, name) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId, 2000)\r\n const exists = await core.itemExists(page, 'catalog/KViewSelector', name)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n return exists\r\n}\r\n\r\nexport async function clickView (page, tabId, name, wait = 1000) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId, 2000)\r\n await core.clickItem(page, 'catalog/KViewSelector', name)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n}\r\n\r\nexport async function removeView (page, tabId, name, wait = 1000) {\r\n const isCatalogOpened = await clickCatalogTab(page, tabId, 2000)\r\n await core.clickItemAction(page, 'catalog/KViewSelector', name, 'view-overflowmenu', 1000)\r\n await core.clickAction(page, 'remove-view', wait)\r\n if (!isCatalogOpened) await core.clickRightOpener(page)\r\n}\r\n"]}
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.zoomToPosition = exports.zoomToExtent = undefined;
6
+ exports.goToPosition = exports.zoomToExtent = undefined;
7
7
 
8
8
  let zoomToExtent = exports.zoomToExtent = (() => {
9
- var _ref = _asyncToGenerator(function* (page, bbox) {
9
+ var _ref = _asyncToGenerator(function* (page, bbox, wait = 2000) {
10
10
  const currentUrl = page.url();
11
11
  const regexp = /\/-?[0-9.]*\/-?[0-9.]*\/-?[0-9.]*\/-?[0-9.]*/;
12
12
  let newUrl = _lodash2.default.replace(currentUrl, regexp, '');
@@ -17,6 +17,8 @@ let zoomToExtent = exports.zoomToExtent = (() => {
17
17
  // about:blank or navigation to the same URL with a different hash, which would succeed and return null.
18
18
  yield page.goto(newUrl);
19
19
  yield page.goto(newUrl);
20
+ yield core.waitForImagesLoaded(page);
21
+ yield page.waitForTimeout(wait);
20
22
  });
21
23
 
22
24
  return function zoomToExtent(_x, _x2) {
@@ -24,16 +26,17 @@ let zoomToExtent = exports.zoomToExtent = (() => {
24
26
  };
25
27
  })();
26
28
 
27
- let zoomToPosition = exports.zoomToPosition = (() => {
29
+ let goToPosition = exports.goToPosition = (() => {
28
30
  var _ref2 = _asyncToGenerator(function* (page, latitude, longitude) {
29
31
  const currentLocation = yield core.getFromStore(page, 'geolocation.position');
30
32
  page.setGeolocation({ latitude, longitude });
31
33
  yield core.clickTopPaneAction(page, 'locate-user');
32
34
  yield core.waitForImagesLoaded(page);
33
35
  page.setGeolocation(currentLocation);
36
+ yield core.clickTopPaneAction(page, 'locate-user');
34
37
  });
35
38
 
36
- return function zoomToPosition(_x3, _x4, _x5) {
39
+ return function goToPosition(_x3, _x4, _x5) {
37
40
  return _ref2.apply(this, arguments);
38
41
  };
39
42
  })();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../test/client/map/controls.js"],"names":["page","bbox","currentUrl","url","regexp","newUrl","_","replace","goto","zoomToExtent","latitude","longitude","currentLocation","core","getFromStore","setGeolocation","clickTopPaneAction","waitForImagesLoaded","zoomToPosition"],"mappings":";;;;;;;;+BAGO,WAA6BA,IAA7B,EAAmCC,IAAnC,EAAyC;AAC9C,UAAMC,aAAaF,KAAKG,GAAL,EAAnB;AACA,UAAMC,SAAS,8CAAf;AACA,QAAIC,SAASC,iBAAEC,OAAF,CAAUL,UAAV,EAAsBE,MAAtB,EAA8B,EAA9B,CAAb;AACAC,cAAW,IAAGJ,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,EAAvD;AACA;AACA;AACA;AACA;AACA,UAAMD,KAAKQ,IAAL,CAAUH,MAAV,CAAN;AACA,UAAML,KAAKQ,IAAL,CAAUH,MAAV,CAAN;AACD,G;;kBAXqBI,Y;;;;;;gCAaf,WAA+BT,IAA/B,EAAqCU,QAArC,EAA+CC,SAA/C,EAA0D;AAC/D,UAAMC,kBAAkB,MAAMC,KAAKC,YAAL,CAAkBd,IAAlB,EAAwB,sBAAxB,CAA9B;AACAA,SAAKe,cAAL,CAAoB,EAAEL,QAAF,EAAYC,SAAZ,EAApB;AACA,UAAME,KAAKG,kBAAL,CAAwBhB,IAAxB,EAA8B,aAA9B,CAAN;AACA,UAAMa,KAAKI,mBAAL,CAAyBjB,IAAzB,CAAN;AACAA,SAAKe,cAAL,CAAoBH,eAApB;AACD,G;;kBANqBM,c;;;;;AAhBtB;;;;AACA;;IAAYL,I","file":"controls.js","sourcesContent":["import _ from 'lodash'\r\nimport * as core from '../core'\r\n\r\nexport async function zoomToExtent (page, bbox) {\r\n const currentUrl = page.url()\r\n const regexp = /\\/-?[0-9.]*\\/-?[0-9.]*\\/-?[0-9.]*\\/-?[0-9.]*/\r\n let newUrl = _.replace(currentUrl, regexp, '')\r\n newUrl += `/${bbox[0]}/${bbox[1]}/${bbox[2]}/${bbox[3]}`\r\n // see https://stackoverflow.com/questions/62343404/puppeteer-page-goto-not-working-for-query-parameters\r\n // and from the documentation: https://pptr.dev/#?product=Puppeteer&version=v10.2.0&show=api-pagegotourl-options\r\n // NOTE page.goto either throws an error or returns a main resource response. The only exceptions are navigation to\r\n // about:blank or navigation to the same URL with a different hash, which would succeed and return null.\r\n await page.goto(newUrl)\r\n await page.goto(newUrl)\r\n}\r\n\r\nexport async function zoomToPosition (page, latitude, longitude) {\r\n const currentLocation = await core.getFromStore(page, 'geolocation.position')\r\n page.setGeolocation({ latitude, longitude })\r\n await core.clickTopPaneAction(page, 'locate-user')\r\n await core.waitForImagesLoaded(page)\r\n page.setGeolocation(currentLocation)\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../test/client/map/controls.js"],"names":["page","bbox","wait","currentUrl","url","regexp","newUrl","_","replace","goto","core","waitForImagesLoaded","waitForTimeout","zoomToExtent","latitude","longitude","currentLocation","getFromStore","setGeolocation","clickTopPaneAction","goToPosition"],"mappings":";;;;;;;;+BAGO,WAA6BA,IAA7B,EAAmCC,IAAnC,EAAyCC,OAAO,IAAhD,EAAsD;AAC3D,UAAMC,aAAaH,KAAKI,GAAL,EAAnB;AACA,UAAMC,SAAS,8CAAf;AACA,QAAIC,SAASC,iBAAEC,OAAF,CAAUL,UAAV,EAAsBE,MAAtB,EAA8B,EAA9B,CAAb;AACAC,cAAW,IAAGL,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,IAAGA,KAAK,CAAL,CAAQ,EAAvD;AACA;AACA;AACA;AACA;AACA,UAAMD,KAAKS,IAAL,CAAUH,MAAV,CAAN;AACA,UAAMN,KAAKS,IAAL,CAAUH,MAAV,CAAN;AACA,UAAMI,KAAKC,mBAAL,CAAyBX,IAAzB,CAAN;AACA,UAAMA,KAAKY,cAAL,CAAoBV,IAApB,CAAN;AACD,G;;kBAbqBW,Y;;;;;;gCAef,WAA6Bb,IAA7B,EAAmCc,QAAnC,EAA6CC,SAA7C,EAAwD;AAC7D,UAAMC,kBAAkB,MAAMN,KAAKO,YAAL,CAAkBjB,IAAlB,EAAwB,sBAAxB,CAA9B;AACAA,SAAKkB,cAAL,CAAoB,EAAEJ,QAAF,EAAYC,SAAZ,EAApB;AACA,UAAML,KAAKS,kBAAL,CAAwBnB,IAAxB,EAA8B,aAA9B,CAAN;AACA,UAAMU,KAAKC,mBAAL,CAAyBX,IAAzB,CAAN;AACAA,SAAKkB,cAAL,CAAoBF,eAApB;AACA,UAAMN,KAAKS,kBAAL,CAAwBnB,IAAxB,EAA8B,aAA9B,CAAN;AACD,G;;kBAPqBoB,Y;;;;;AAlBtB;;;;AACA;;IAAYV,I","file":"controls.js","sourcesContent":["import _ from 'lodash'\r\nimport * as core from '../core'\r\n\r\nexport async function zoomToExtent (page, bbox, wait = 2000) {\r\n const currentUrl = page.url()\r\n const regexp = /\\/-?[0-9.]*\\/-?[0-9.]*\\/-?[0-9.]*\\/-?[0-9.]*/\r\n let newUrl = _.replace(currentUrl, regexp, '')\r\n newUrl += `/${bbox[0]}/${bbox[1]}/${bbox[2]}/${bbox[3]}`\r\n // see https://stackoverflow.com/questions/62343404/puppeteer-page-goto-not-working-for-query-parameters\r\n // and from the documentation: https://pptr.dev/#?product=Puppeteer&version=v10.2.0&show=api-pagegotourl-options\r\n // NOTE page.goto either throws an error or returns a main resource response. The only exceptions are navigation to\r\n // about:blank or navigation to the same URL with a different hash, which would succeed and return null.\r\n await page.goto(newUrl)\r\n await page.goto(newUrl)\r\n await core.waitForImagesLoaded(page)\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function goToPosition (page, latitude, longitude) {\r\n const currentLocation = await core.getFromStore(page, 'geolocation.position')\r\n page.setGeolocation({ latitude, longitude })\r\n await core.clickTopPaneAction(page, 'locate-user')\r\n await core.waitForImagesLoaded(page)\r\n page.setGeolocation(currentLocation)\r\n await core.clickTopPaneAction(page, 'locate-user')\r\n}\r\n"]}
@@ -27,4 +27,16 @@ Object.keys(_controls).forEach(function (key) {
27
27
  }
28
28
  });
29
29
  });
30
+
31
+ var _utils = require('./utils');
32
+
33
+ Object.keys(_utils).forEach(function (key) {
34
+ if (key === "default" || key === "__esModule") return;
35
+ Object.defineProperty(exports, key, {
36
+ enumerable: true,
37
+ get: function () {
38
+ return _utils[key];
39
+ }
40
+ });
41
+ });
30
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../test/client/map/index.js"],"names":[],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"index.js","sourcesContent":["export * from './catalog'\r\nexport * from './controls'\r\n"]}
1
+ {"version":3,"sources":["../../../../test/client/map/index.js"],"names":[],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"index.js","sourcesContent":["export * from './catalog'\r\nexport * from './controls'\r\nexport * from './utils'\r\n"]}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.zoomToLevel = exports.moveMap = undefined;
7
+
8
+ /* Moves the map for a specific times:
9
+ - in a choosen direction (left, right, up, down)
10
+ - zoom in or out
11
+ */
12
+ let moveMap = exports.moveMap = (() => {
13
+ var _ref = _asyncToGenerator(function* (page, direction, times, wait = 500) {
14
+ let dir;
15
+ if (direction === 'up') {
16
+ dir = 'ArrowUp';
17
+ } else if (direction === 'down') {
18
+ dir = 'ArrowDown';
19
+ } else if (direction === 'left') {
20
+ dir = 'ArrowLeft';
21
+ } else if (direction === 'right') {
22
+ dir = 'ArrowRight';
23
+ } else if (direction === 'in') {
24
+ dir = '+';
25
+ } else if (direction === 'out') {
26
+ dir = '-';
27
+ }
28
+ yield page.focus('#map');
29
+ yield page.waitForTimeout(wait);
30
+ let i = 0;
31
+ for (i = 0; i < times; i++) {
32
+ yield page.keyboard.press(dir);
33
+ yield page.waitForTimeout(wait);
34
+ }
35
+ });
36
+
37
+ return function moveMap(_x, _x2, _x3) {
38
+ return _ref.apply(this, arguments);
39
+ };
40
+ })();
41
+
42
+ /* Zooms the map to a specific level
43
+ */
44
+
45
+
46
+ let zoomToLevel = exports.zoomToLevel = (() => {
47
+ var _ref2 = _asyncToGenerator(function* (page, level, wait = 500) {
48
+ const zoom = yield core.getFromStore(page, 'mapActivity.zoom');
49
+ const diff = level - zoom;
50
+ const action = level > zoom ? 'in' : 'out';
51
+ yield moveMap(page, action, Math.abs(diff), wait);
52
+ yield page.waitForTimeout(wait);
53
+ });
54
+
55
+ return function zoomToLevel(_x4, _x5) {
56
+ return _ref2.apply(this, arguments);
57
+ };
58
+ })();
59
+
60
+ var _core = require('../core');
61
+
62
+ var core = _interopRequireWildcard(_core);
63
+
64
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
65
+
66
+ function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
67
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../test/client/map/utils.js"],"names":["page","direction","times","wait","dir","focus","waitForTimeout","i","keyboard","press","moveMap","level","zoom","core","getFromStore","diff","action","Math","abs","zoomToLevel"],"mappings":";;;;;;;AAEA;;;;;+BAIO,WAAwBA,IAAxB,EAA8BC,SAA9B,EAAyCC,KAAzC,EAAgDC,OAAO,GAAvD,EAA4D;AACjE,QAAIC,GAAJ;AACA,QAAIH,cAAc,IAAlB,EAAwB;AAAEG,YAAM,SAAN;AAAiB,KAA3C,MAAiD,IAAIH,cAAc,MAAlB,EAA0B;AAAEG,YAAM,WAAN;AAAmB,KAA/C,MAAqD,IAAIH,cAAc,MAAlB,EAA0B;AAAEG,YAAM,WAAN;AAAmB,KAA/C,MAAqD,IAAIH,cAAc,OAAlB,EAA2B;AAAEG,YAAM,YAAN;AAAoB,KAAjD,MAAuD,IAAIH,cAAc,IAAlB,EAAwB;AAAEG,YAAM,GAAN;AAAW,KAArC,MAA2C,IAAIH,cAAc,KAAlB,EAAyB;AAAEG,YAAM,GAAN;AAAW;AACnS,UAAMJ,KAAKK,KAAL,CAAW,MAAX,CAAN;AACA,UAAML,KAAKM,cAAL,CAAoBH,IAApB,CAAN;AACA,QAAII,IAAI,CAAR;AACA,SAAKA,IAAI,CAAT,EAAYA,IAAIL,KAAhB,EAAuBK,GAAvB,EAA4B;AAC1B,YAAMP,KAAKQ,QAAL,CAAcC,KAAd,CAAoBL,GAApB,CAAN;AACA,YAAMJ,KAAKM,cAAL,CAAoBH,IAApB,CAAN;AACD;AACF,G;;kBAVqBO,O;;;;;AAYtB;;;;;gCAEO,WAA4BV,IAA5B,EAAkCW,KAAlC,EAAyCR,OAAO,GAAhD,EAAqD;AAC1D,UAAMS,OAAO,MAAMC,KAAKC,YAAL,CAAkBd,IAAlB,EAAwB,kBAAxB,CAAnB;AACA,UAAMe,OAAOJ,QAAQC,IAArB;AACA,UAAMI,SAAUL,QAAQC,IAAT,GAAiB,IAAjB,GAAwB,KAAvC;AACA,UAAMF,QAAQV,IAAR,EAAcgB,MAAd,EAAsBC,KAAKC,GAAL,CAASH,IAAT,CAAtB,EAAsCZ,IAAtC,CAAN;AACA,UAAMH,KAAKM,cAAL,CAAoBH,IAApB,CAAN;AACD,G;;kBANqBgB,W;;;;;AApBtB;;IAAYN,I","file":"utils.js","sourcesContent":["import * as core from '../core'\r\n\r\n/* Moves the map for a specific times:\r\n- in a choosen direction (left, right, up, down)\r\n- zoom in or out\r\n */\r\nexport async function moveMap (page, direction, times, wait = 500) {\r\n let dir\r\n if (direction === 'up') { dir = 'ArrowUp' } else if (direction === 'down') { dir = 'ArrowDown' } else if (direction === 'left') { dir = 'ArrowLeft' } else if (direction === 'right') { dir = 'ArrowRight' } else if (direction === 'in') { dir = '+' } else if (direction === 'out') { dir = '-' }\r\n await page.focus('#map')\r\n await page.waitForTimeout(wait)\r\n let i = 0\r\n for (i = 0; i < times; i++) {\r\n await page.keyboard.press(dir)\r\n await page.waitForTimeout(wait)\r\n }\r\n}\r\n\r\n/* Zooms the map to a specific level\r\n */\r\nexport async function zoomToLevel (page, level, wait = 500) {\r\n const zoom = await core.getFromStore(page, 'mapActivity.zoom')\r\n const diff = level - zoom\r\n const action = (level > zoom) ? 'in' : 'out'\r\n await moveMap(page, action, Math.abs(diff), wait)\r\n await page.waitForTimeout(wait)\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kalisio/kdk",
3
3
  "description": "Kalisio Development Kit",
4
- "version": "1.6.0",
4
+ "version": "1.7.0",
5
5
  "homepage": "https://github.com/kalisio/kdk",
6
6
  "main": "lib/",
7
7
  "keywords": [
@@ -142,7 +142,7 @@
142
142
  },
143
143
  "devDependencies": {
144
144
  "@feathersjs/authentication-client": "^1.0.2",
145
- "@kalisio/feathers-distributed": "^1.0.4",
145
+ "@kalisio/feathers-distributed": "^1.0.5",
146
146
  "@turf/intersect": "^6.1.3",
147
147
  "babel-cli": "^6.24.1",
148
148
  "babel-eslint": "^10.0.3",
@@ -171,9 +171,9 @@
171
171
  "puppeteer": "^10.2.0",
172
172
  "shx": "^0.3.2",
173
173
  "standard": "^14.0.0",
174
- "weacast-core": "^1.4.0",
175
- "weacast-gfs": "^1.5.0",
176
- "weacast-probe": "^1.4.0"
174
+ "weacast-core": "^1.5.0",
175
+ "weacast-gfs": "^1.6.0",
176
+ "weacast-probe": "^1.5.1"
177
177
  },
178
178
  "peerDependencies": {}
179
179
  }
@@ -1,53 +0,0 @@
1
- module.exports = [{
2
- target: '#menu-entries',
3
- title: 'tours.favorite-views.FAVORITE_VIEWS_LIST_LABEL',
4
- params: {
5
- placement: 'top'
6
- }
7
- }, {
8
- target: '#favorite-views-sorter-options',
9
- title: 'tours.favorite-views.FAVORITE_VIEWS_LIST_ACTIONS_LABEL',
10
- params: {
11
- placement: 'bottom'
12
- }
13
- }, {
14
- target: '#remove-favorite-view',
15
- title: 'tours.favorite-views.FAVORITE_VIEW_ACTIONS_LABEL',
16
- params: {
17
- placement: 'left'
18
- }
19
- }, {
20
- target: '#add-favorite-view',
21
- content: 'tours.favorite-views.ADD_FAVORITE_VIEW_LABEL',
22
- params: {
23
- placement: 'left',
24
- clickOnNext: '#add-favorite-view',
25
- nextDelay: 1000
26
- }
27
- }, {
28
- target: '#name-field',
29
- content: 'tours.favorite-views.FAVORITE_VIEW_NAME_LABEL',
30
- params: {
31
- placement: 'bottom',
32
- clickOnPrevious: '#back-button',
33
- previousDelay: 1000
34
- }
35
- }, {
36
- target: '#description-field',
37
- content: 'tours.favorite-views.FAVORITE_VIEW_DESCRIPTION_LABEL',
38
- params: {
39
- placement: 'bottom'
40
- }
41
- }, {
42
- target: '#layers-field',
43
- content: 'tours.favorite-views.FAVORITE_VIEW_LAYERS_LABEL',
44
- params: {
45
- placement: 'top'
46
- }
47
- }, {
48
- target: '#create-favorite-view',
49
- title: 'tours.favorite-views.CREATE_NEW_FAVORITE_VIEW_LABEL',
50
- params: {
51
- placement: 'top'
52
- }
53
- }]
@@ -1,60 +0,0 @@
1
- <template>
2
- <div id="chart-container" class="row">
3
- <q-resize-observer @resize="onResized" />
4
- <canvas class="col-12" ref="chart"></canvas>
5
- </div>
6
- </template>
7
-
8
- <script>
9
- import _ from 'lodash'
10
- import chroma from 'chroma-js'
11
- import { Chart } from 'chart.js'
12
-
13
- export default {
14
- name: 'k-chart',
15
- props: {
16
- config: {
17
- type: Object,
18
- required: true,
19
- validator: (value) => {
20
- return _.has(value, 'type') && _.has(value, 'data') && _.has(value, 'options')
21
- }
22
- }
23
- },
24
- watch: {
25
- config: {
26
- async handler () {
27
- if (this.chart.config.type !== this.config.type) {
28
- // Create a new chart
29
- this.chart.destroy()
30
- const config = _.cloneDeep(this.config)
31
- this.colorize(config.data.datasets)
32
- this.chart = new Chart(this.$refs.chart.getContext('2d'), config)
33
- } else {
34
- // Update the existing chart
35
- this.chart.data.labels = _.cloneDeep(this.config.data.labels)
36
- this.chart.data.datasets = _.cloneDeep(this.config.data.datasets)
37
- this.colorize(this.chart.data.datasets)
38
- this.chart.options = _.cloneDeep(this.config.options)
39
- this.chart.update()
40
- }
41
- }
42
- }
43
- },
44
- methods: {
45
- colorize (datasets) {
46
- _.forEach(datasets, dataset => {
47
- if (!dataset.backgroundColor && dataset.colorScale) {
48
- dataset.backgroundColor = chroma.scale(dataset.colorScale).colors(dataset.data.length)
49
- }
50
- })
51
- },
52
- onResized (size) {
53
- if (!this.chart) this.chart = new Chart(this.$refs.chart.getContext('2d'), this.config)
54
- }
55
- },
56
- beforeDestroy () {
57
- if (this.chart) this.chart.destroy()
58
- }
59
- }
60
- </script>