@esri/solutions-components 0.6.17 → 0.6.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/t9n/map-tools/resources.json +2 -1
  3. package/dist/assets/t9n/map-tools/resources_en.json +2 -1
  4. package/dist/assets/t9n/solution-spatial-ref/resources.json +0 -1
  5. package/dist/assets/t9n/solution-spatial-ref/resources_en.json +0 -1
  6. package/dist/assets/t9n/solution-spatial-ref/resources_fr.json +6 -0
  7. package/dist/assets/t9n/solution-spatial-ref/resources_he.json +6 -0
  8. package/dist/assets/t9n/spatial-ref/resources.json +3 -0
  9. package/dist/assets/t9n/spatial-ref/resources_en.json +3 -0
  10. package/dist/assets/t9n/spatial-ref/resources_fr.json +3 -0
  11. package/dist/assets/t9n/spatial-ref/resources_he.json +3 -0
  12. package/dist/cjs/{basemap-gallery_6.cjs.entry.js → basemap-gallery_7.cjs.entry.js} +124 -3
  13. package/dist/cjs/{calcite-tree_3.cjs.entry.js → calcite-checkbox_3.cjs.entry.js} +123 -319
  14. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +4 -3
  15. package/dist/cjs/card-manager_3.cjs.entry.js +8 -5
  16. package/dist/{collection/components/basemap-gallery/test/basemap-gallery.e2e.js → cjs/common-13719149.js} +17 -9
  17. package/dist/cjs/crowdsource-manager.cjs.entry.js +12 -7
  18. package/dist/cjs/edit-card_2.cjs.entry.js +4 -3
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/solution-configuration.cjs.entry.js +2 -1
  21. package/dist/cjs/solution-contents_3.cjs.entry.js +21 -21256
  22. package/dist/cjs/solution-item-icon.cjs.entry.js +327 -0
  23. package/dist/cjs/{solution-store-c443e657.js → solution-resource-f9e3b289.js} +2 -1698
  24. package/dist/cjs/solution-store-2414dd8a.js +1707 -0
  25. package/dist/cjs/solutions-components.cjs.js +1 -1
  26. package/dist/cjs/spatial-ref.cjs.entry.js +21293 -0
  27. package/dist/collection/collection-manifest.json +2 -0
  28. package/dist/collection/components/card-manager/card-manager.js +1 -1
  29. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +15 -0
  30. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +47 -6
  31. package/dist/collection/components/edit-card/edit-card.css +0 -12
  32. package/dist/collection/components/floor-filter/floor-filter.css +19 -0
  33. package/dist/collection/components/floor-filter/floor-filter.js +163 -0
  34. package/dist/collection/components/info-card/info-card.js +3 -2
  35. package/dist/collection/components/layer-table/layer-table.css +8 -0
  36. package/dist/collection/components/layer-table/layer-table.js +18 -2
  37. package/dist/collection/components/map-card/map-card.js +19 -1
  38. package/dist/collection/components/map-picker/map-picker.css +0 -4
  39. package/dist/collection/components/map-picker/map-picker.js +1 -1
  40. package/dist/collection/components/map-tools/map-tools.js +54 -1
  41. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.css +1 -7
  42. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +37 -291
  43. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +24 -12
  44. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +32 -128
  45. package/dist/collection/components/spatial-ref/spatial-ref.css +20 -0
  46. package/dist/collection/components/spatial-ref/spatial-ref.js +445 -0
  47. package/dist/collection/components/spatial-ref/test/spatial-ref.e2e.js +71 -0
  48. package/dist/collection/components/spatial-ref/test/spatial-ref.spec.js +158 -0
  49. package/dist/collection/demos/crowdsource-manager.html +4 -0
  50. package/dist/collection/demos/solution-spatial-ref.html +9 -16
  51. package/dist/collection/demos/spatial-ref.html +53 -0
  52. package/dist/collection/utils/{templates.e2e.js → test/templates.e2e.js} +2 -2
  53. package/dist/collection/utils/{templates.e2e.ts → test/templates.e2e.ts} +2 -2
  54. package/dist/components/card-manager2.js +1 -1
  55. package/dist/components/crowdsource-manager.js +86 -73
  56. package/dist/components/edit-card2.js +1 -1
  57. package/dist/components/floor-filter.d.ts +11 -0
  58. package/dist/components/floor-filter.js +11 -0
  59. package/dist/components/floor-filter2.js +115 -0
  60. package/dist/components/info-card2.js +3 -2
  61. package/dist/components/layer-table2.js +5 -3
  62. package/dist/components/map-card2.js +45 -37
  63. package/dist/components/map-picker2.js +2 -2
  64. package/dist/components/map-tools2.js +52 -11
  65. package/dist/components/solution-configuration.js +79 -72
  66. package/dist/components/solution-resource-item2.js +2 -1
  67. package/dist/components/solution-resource.js +1836 -0
  68. package/dist/components/solution-spatial-ref2.js +41 -21277
  69. package/dist/components/solution-store.js +2 -1830
  70. package/dist/components/spatial-ref.d.ts +11 -0
  71. package/dist/components/spatial-ref.js +11 -0
  72. package/dist/components/spatial-ref2.js +21374 -0
  73. package/dist/esm/{basemap-gallery_6.entry.js → basemap-gallery_7.entry.js} +124 -4
  74. package/dist/esm/{calcite-tree_3.entry.js → calcite-checkbox_3.entry.js} +125 -321
  75. package/dist/esm/calcite-shell-panel_14.entry.js +2 -1
  76. package/dist/esm/card-manager_3.entry.js +8 -5
  77. package/dist/{collection/components/layer-table/test/layer-table.e2e.js → esm/common-e4a8e353.js} +15 -9
  78. package/dist/esm/crowdsource-manager.entry.js +12 -7
  79. package/dist/esm/edit-card_2.entry.js +4 -3
  80. package/dist/esm/loader.js +1 -1
  81. package/dist/esm/polyfills/core-js.js +11 -0
  82. package/dist/esm/polyfills/dom.js +79 -0
  83. package/dist/esm/polyfills/es5-html-element.js +1 -0
  84. package/dist/esm/polyfills/index.js +34 -0
  85. package/dist/esm/polyfills/system.js +6 -0
  86. package/dist/esm/solution-configuration.entry.js +2 -1
  87. package/dist/esm/solution-contents_3.entry.js +20 -21255
  88. package/dist/esm/solution-item-icon.entry.js +323 -0
  89. package/dist/esm/{solution-store-b29d50f7.js → solution-resource-be35d35b.js} +1 -1697
  90. package/dist/esm/solution-store-e734626a.js +1704 -0
  91. package/dist/esm/solutions-components.js +1 -1
  92. package/dist/esm/spatial-ref.entry.js +21289 -0
  93. package/dist/solutions-components/demos/crowdsource-manager.html +4 -0
  94. package/dist/solutions-components/demos/solution-spatial-ref.html +9 -16
  95. package/dist/solutions-components/demos/spatial-ref.html +53 -0
  96. package/dist/solutions-components/{p-64d29ba2.entry.js → p-0bc27ba7.entry.js} +2 -2
  97. package/dist/{collection/components/map-card/test/map-card.e2e.js → solutions-components/p-1b228f97.js} +2 -10
  98. package/dist/solutions-components/p-5b8c8942.entry.js +21 -0
  99. package/dist/solutions-components/p-63c6fc29.entry.js +6 -0
  100. package/dist/solutions-components/p-64945b43.entry.js +18 -0
  101. package/dist/solutions-components/p-770bff06.entry.js +6 -0
  102. package/dist/solutions-components/p-7741dbab.entry.js +6 -0
  103. package/dist/solutions-components/p-80465067.entry.js +6 -0
  104. package/dist/solutions-components/p-846df994.entry.js +6 -0
  105. package/dist/solutions-components/p-b3f8d2cb.js +192 -0
  106. package/dist/solutions-components/p-c26d8b36.entry.js +6 -0
  107. package/dist/solutions-components/{p-4d942b0f.entry.js → p-f35147d5.entry.js} +1 -1
  108. package/dist/solutions-components/p-ff0d7712.js +44 -0
  109. package/dist/solutions-components/solutions-components.esm.js +1 -1
  110. package/dist/solutions-components/utils/{templates.e2e.ts → test/templates.e2e.ts} +2 -2
  111. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +9 -1
  112. package/dist/types/components/floor-filter/floor-filter.d.ts +61 -0
  113. package/dist/types/components/layer-table/layer-table.d.ts +4 -0
  114. package/dist/types/components/map-card/map-card.d.ts +4 -0
  115. package/dist/types/components/map-tools/map-tools.d.ts +24 -0
  116. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +11 -93
  117. package/dist/types/components/spatial-ref/spatial-ref.d.ts +142 -0
  118. package/dist/types/components.d.ts +123 -16
  119. package/dist/types/preact.d.ts +8 -1
  120. package/package.json +6 -6
  121. package/dist/cjs/calcite-checkbox.cjs.entry.js +0 -136
  122. package/dist/collection/components/basemap-gallery/test/basemap-gallery.spec.js +0 -37
  123. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +0 -29
  124. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +0 -160
  125. package/dist/collection/components/card-manager/test/card-manager.e2e.js +0 -29
  126. package/dist/collection/components/card-manager/test/card-manager.spec.js +0 -37
  127. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +0 -29
  128. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +0 -37
  129. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +0 -29
  130. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +0 -37
  131. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +0 -29
  132. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +0 -37
  133. package/dist/collection/components/edit-card/test/edit-card.e2e.js +0 -14
  134. package/dist/collection/components/edit-card/test/edit-card.spec.js +0 -22
  135. package/dist/collection/components/info-card/test/info-card.e2e.js +0 -29
  136. package/dist/collection/components/info-card/test/info-card.spec.js +0 -37
  137. package/dist/collection/components/json-editor/test/json-editor.e2e.js +0 -36
  138. package/dist/collection/components/json-editor/test/json-editor.spec.js +0 -65
  139. package/dist/collection/components/layer-table/test/layer-table.spec.js +0 -37
  140. package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +0 -29
  141. package/dist/collection/components/layout-manager/test/layout-manager.spec.js +0 -37
  142. package/dist/collection/components/list-item/test/list-item.e2e.js +0 -29
  143. package/dist/collection/components/list-item/test/list-item.spec.js +0 -37
  144. package/dist/collection/components/map-card/test/map-card.spec.js +0 -37
  145. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +0 -29
  146. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +0 -37
  147. package/dist/collection/components/map-fullscreen/test/map-fullscreen.e2e.js +0 -29
  148. package/dist/collection/components/map-fullscreen/test/map-fullscreen.spec.js +0 -37
  149. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +0 -29
  150. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +0 -114
  151. package/dist/collection/components/map-legend/test/map-legend.e2e.js +0 -14
  152. package/dist/collection/components/map-legend/test/map-legend.spec.js +0 -22
  153. package/dist/collection/components/map-picker/test/map-picker.e2e.js +0 -29
  154. package/dist/collection/components/map-picker/test/map-picker.spec.js +0 -37
  155. package/dist/collection/components/map-search/test/map-search.e2e.js +0 -29
  156. package/dist/collection/components/map-search/test/map-search.spec.js +0 -37
  157. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +0 -29
  158. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +0 -366
  159. package/dist/collection/components/map-tools/test/map-tools.e2e.js +0 -29
  160. package/dist/collection/components/map-tools/test/map-tools.spec.js +0 -37
  161. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +0 -29
  162. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +0 -37
  163. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +0 -76
  164. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +0 -107
  165. package/dist/collection/components/public-notification/test/public-notification.spec.js +0 -161
  166. package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +0 -14
  167. package/dist/collection/components/refine-selection/test/refine-selection.spec.js +0 -22
  168. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +0 -36
  169. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +0 -119
  170. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +0 -94
  171. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +0 -143
  172. package/dist/collection/components/solution-item/test/solution-item.e2e.js +0 -36
  173. package/dist/collection/components/solution-item/test/solution-item.spec.js +0 -77
  174. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +0 -36
  175. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +0 -142
  176. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +0 -29
  177. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +0 -39
  178. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +0 -36
  179. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +0 -54
  180. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +0 -36
  181. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +0 -65
  182. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +0 -36
  183. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +0 -55
  184. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +0 -36
  185. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +0 -60
  186. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +0 -36
  187. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +0 -131
  188. package/dist/esm/calcite-checkbox.entry.js +0 -132
  189. package/dist/solutions-components/p-17d176b5.js +0 -230
  190. package/dist/solutions-components/p-1d9a5198.entry.js +0 -37
  191. package/dist/solutions-components/p-3707d9bd.entry.js +0 -6
  192. package/dist/solutions-components/p-41bbccbc.entry.js +0 -6
  193. package/dist/solutions-components/p-4f2fce86.entry.js +0 -6
  194. package/dist/solutions-components/p-5ffaaaf4.entry.js +0 -6
  195. package/dist/solutions-components/p-736e76fb.entry.js +0 -17
  196. package/dist/solutions-components/p-dda517b9.entry.js +0 -6
  197. /package/dist/collection/components/{solution-spatial-ref → spatial-ref}/spatialreferences.js +0 -0
  198. /package/dist/types/components/{solution-spatial-ref → spatial-ref}/spatialreferences.d.ts +0 -0
@@ -7,6 +7,7 @@
7
7
  "components/crowdsource-reporter/crowdsource-reporter.js",
8
8
  "components/deduct-calculator/deduct-calculator.js",
9
9
  "components/edit-card/edit-card.js",
10
+ "components/floor-filter/floor-filter.js",
10
11
  "components/info-card/info-card.js",
11
12
  "components/json-editor/json-editor.js",
12
13
  "components/layer-table/layer-table.js",
@@ -36,6 +37,7 @@
36
37
  "components/solution-spatial-ref/solution-spatial-ref.js",
37
38
  "components/solution-template-data/solution-template-data.js",
38
39
  "components/solution-variables/solution-variables.js",
40
+ "components/spatial-ref/spatial-ref.js",
39
41
  "components/store-manager/store-manager.js"
40
42
  ],
41
43
  "compiler": {
@@ -84,7 +84,7 @@ export class CardManager {
84
84
  var _a, _b;
85
85
  const featuresClass = ((_a = this._graphics) === null || _a === void 0 ? void 0 : _a.length) > 0 ? "" : "display-none";
86
86
  const messageClass = ((_b = this._graphics) === null || _b === void 0 ? void 0 : _b.length) > 0 ? "display-none" : "";
87
- return (h(Host, null, h("div", { class: "overflow-auto height-full" }, h("calcite-shell", { class: "position-relative " + featuresClass }, h("div", null, h("info-card", { graphics: this._graphics, isLoading: this._cardLoading, mapView: this.mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))), h("div", { class: "padding-1 " + messageClass }, h("calcite-notice", { icon: "table", open: true }, h("div", { slot: "message" }, this._translations.selectFeaturesToStart))))));
87
+ return (h(Host, null, h("div", { class: "overflow-auto height-full" }, h("calcite-shell", { class: "position-relative " + featuresClass }, h("div", null, h("info-card", { graphics: this._graphics, isLoading: this._cardLoading, mapView: this.mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))), h("calcite-shell", { class: "position-relative " + messageClass }, h("div", { class: "padding-1" }, h("calcite-notice", { icon: "table", open: true }, h("div", { slot: "message" }, this._translations.selectFeaturesToStart)))))));
88
88
  }
89
89
  //--------------------------------------------------------------------------
90
90
  //
@@ -137,3 +137,18 @@
137
137
  .align-items-center {
138
138
  align-items: center;
139
139
  }
140
+
141
+ .esri-floor-filter__close-levels-button {
142
+ width: 40px !important;
143
+ height: 40px !important;
144
+ }
145
+
146
+ .esri-floor-filter__level-button {
147
+ width: 40px !important;
148
+ height: 40px !important;
149
+ }
150
+
151
+ .esri-floor-filter__browse-button {
152
+ width: 40px !important;
153
+ height: 40px !important;
154
+ }
@@ -30,6 +30,7 @@ export class CrowdsourceManager {
30
30
  this._shouldSetMapView = false;
31
31
  this.classicGrid = false;
32
32
  this.enableAutoRefresh = true;
33
+ this.enableFloorFilter = true;
33
34
  this.enableFullscreen = true;
34
35
  this.enableInlineEdit = false;
35
36
  this.enableLegend = true;
@@ -43,6 +44,7 @@ export class CrowdsourceManager {
43
44
  this.mapInfos = [];
44
45
  this.onlyShowUpdatableLayers = true;
45
46
  this.searchConfiguration = undefined;
47
+ this.theme = "light";
46
48
  this.zoomAndScrollToSelected = false;
47
49
  this._expandPopup = false;
48
50
  this._translations = undefined;
@@ -231,7 +233,7 @@ export class CrowdsourceManager {
231
233
  */
232
234
  _getMapAndCard(layoutMode, panelOpen, hideMap) {
233
235
  const mapSizeClass = this._getMapSizeClass(layoutMode, panelOpen);
234
- return this.classicGrid ? (h("div", { class: `${mapSizeClass} overflow-hidden` }, this._getCardNode(layoutMode, hideMap), this._getMapNode(layoutMode, hideMap))) : (h("div", { class: `${mapSizeClass} overflow-hidden` }, this._getMapNode(layoutMode, hideMap), this._getPopupExpandNode(), this._getCardNode(layoutMode, hideMap)));
236
+ return this.classicGrid ? (h("div", { class: `${mapSizeClass} overflow-hidden` }, this._getCardNode(layoutMode, hideMap), this._getMapNode(layoutMode, hideMap))) : (h("div", { class: `${mapSizeClass} overflow-hidden` }, this._getMapNode(layoutMode, hideMap), this._getPopupExpandNode(layoutMode, hideMap)));
235
237
  }
236
238
  /**
237
239
  * Get the map node based for the current layout options
@@ -243,10 +245,11 @@ export class CrowdsourceManager {
243
245
  * @protected
244
246
  */
245
247
  _getMapNode(layoutMode, hideMap) {
248
+ var _a, _b;
246
249
  const mapDisplayClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "display-flex height-full width-1-2" :
247
250
  layoutMode === ELayoutMode.GRID && !hideMap ? "" : "display-none";
248
251
  const mapContainerClass = this.classicGrid && layoutMode === ELayoutMode.GRID ? "width-full" : this._expandPopup ? "height-50-px" : "adjusted-height-50";
249
- return (h("div", { class: `${mapContainerClass} overflow-hidden ${mapDisplayClass}` }, h("map-card", { basemapConfig: this.basemapConfig, class: "width-full", enableBasemap: this.enableBasemap, enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapInfos: this.mapInfos.filter(mapInfo => mapInfo.visible !== false) })));
252
+ return (h("div", { class: `${mapContainerClass} overflow-hidden ${mapDisplayClass}` }, h("map-card", { basemapConfig: this.basemapConfig, class: "width-full", enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter && ((_b = (_a = this._mapView) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.floorInfo), enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapInfos: this.mapInfos.filter(mapInfo => mapInfo.visible !== false) })));
250
253
  }
251
254
  /**
252
255
  * Get the expand node for the popup information
@@ -254,11 +257,12 @@ export class CrowdsourceManager {
254
257
  * @returns the expand node
255
258
  * @protected
256
259
  */
257
- _getPopupExpandNode() {
260
+ _getPopupExpandNode(layoutMode, hideMap) {
258
261
  const icon = this._expandPopup ? "chevrons-down" : "chevrons-up";
259
262
  const id = "expand-popup";
260
263
  const tooltip = this._expandPopup ? this._translations.collapsePopup : this._translations.expandPopup;
261
- return (h("div", { class: "height-49-px calcite-mode-dark" }, h("calcite-panel", null, h("div", { class: "display-flex align-items-center", slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information)), h("calcite-action", { class: "height-49-px", icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end" }), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": id }, h("span", null, tooltip)))));
264
+ const themeClass = this.theme === "light" ? "calcite-mode-light" : "calcite-mode-dark";
265
+ return (h("div", { class: "calcite-mode-dark" }, h("calcite-panel", null, h("div", { class: "display-flex align-items-center", slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information)), h("calcite-action", { class: "height-49-px", icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end" }), h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, h("span", null, tooltip)), this._getCardNode(layoutMode, hideMap))));
262
266
  }
263
267
  /**
264
268
  * Toggle the popup information
@@ -279,10 +283,11 @@ export class CrowdsourceManager {
279
283
  */
280
284
  _getCardNode(layoutMode, hideMap) {
281
285
  const cardManagerHeight = this.classicGrid && layoutMode === ELayoutMode.GRID ? "" :
282
- layoutMode === ELayoutMode.GRID && !this._expandPopup && !hideMap ? "adjusted-height-50" : "adjusted-height-100";
286
+ layoutMode === ELayoutMode.GRID && !this._expandPopup && !hideMap ? "height-50" : "";
283
287
  const cardManagerContainer = this.classicGrid && layoutMode === ELayoutMode.GRID ?
284
288
  "width-full adjusted-height-100" : this._expandPopup ? "width-50 adjusted-height-100-50" : "width-50 height-full";
285
- return (h("div", { class: `${cardManagerContainer}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, mapView: this === null || this === void 0 ? void 0 : this._mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
289
+ const themeClass = this.theme === "light" ? "calcite-mode-light" : "calcite-mode-dark";
290
+ return (h("div", { class: `${cardManagerContainer} ${themeClass}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, mapView: this === null || this === void 0 ? void 0 : this._mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
286
291
  }
287
292
  /**
288
293
  * Get the table node based for the current layout
@@ -399,6 +404,24 @@ export class CrowdsourceManager {
399
404
  "reflect": false,
400
405
  "defaultValue": "true"
401
406
  },
407
+ "enableFloorFilter": {
408
+ "type": "boolean",
409
+ "mutable": false,
410
+ "complexType": {
411
+ "original": "boolean",
412
+ "resolved": "boolean",
413
+ "references": {}
414
+ },
415
+ "required": false,
416
+ "optional": false,
417
+ "docs": {
418
+ "tags": [],
419
+ "text": "boolean: when true the fullscreen widget will be available"
420
+ },
421
+ "attribute": "enable-floor-filter",
422
+ "reflect": false,
423
+ "defaultValue": "true"
424
+ },
402
425
  "enableFullscreen": {
403
426
  "type": "boolean",
404
427
  "mutable": false,
@@ -643,6 +666,24 @@ export class CrowdsourceManager {
643
666
  "text": "ISearchConfiguration: Configuration details for the Search widget"
644
667
  }
645
668
  },
669
+ "theme": {
670
+ "type": "string",
671
+ "mutable": false,
672
+ "complexType": {
673
+ "original": "\"light\" | \"dark\"",
674
+ "resolved": "\"dark\" | \"light\"",
675
+ "references": {}
676
+ },
677
+ "required": false,
678
+ "optional": false,
679
+ "docs": {
680
+ "tags": [],
681
+ "text": "\"light\" | \"dark\": Calcite theme to be used"
682
+ },
683
+ "attribute": "theme",
684
+ "reflect": false,
685
+ "defaultValue": "\"light\""
686
+ },
646
687
  "zoomAndScrollToSelected": {
647
688
  "type": "boolean",
648
689
  "mutable": false,
@@ -60,15 +60,3 @@
60
60
  .esri-editor__panel-toolbar {
61
61
  display: none !important;
62
62
  }
63
-
64
- .esri-feature-relationship__list {
65
- border-top: 1px solid var(--calcite-ui-border-3);
66
- border-bottom: 1px solid var(--calcite-ui-border-3);
67
- margin-top: 12px;
68
- }
69
-
70
- .esri-feature-form__related-records_list {
71
- border-top: 1px solid var(--calcite-ui-border-3);
72
- border-bottom: 1px solid var(--calcite-ui-border-3);
73
- margin-top: 12px;
74
- }
@@ -0,0 +1,19 @@
1
+ /** @license
2
+ * Copyright 2022 Esri
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ :host {
18
+ display: block;
19
+ }
@@ -0,0 +1,163 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /** @license
7
+ * Copyright 2022 Esri
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ import { Host, h } from "@stencil/core";
22
+ import { loadModules } from "../../utils/loadModules";
23
+ export class FloorFilter {
24
+ constructor() {
25
+ this.floorFilterWidget = undefined;
26
+ this.mapView = undefined;
27
+ }
28
+ //--------------------------------------------------------------------------
29
+ //
30
+ // Watch handlers
31
+ //
32
+ //--------------------------------------------------------------------------
33
+ async mapViewWatchHandler() {
34
+ await this.mapView.when(() => {
35
+ this._initFloorFilter(this.mapView);
36
+ });
37
+ }
38
+ //--------------------------------------------------------------------------
39
+ //
40
+ // Methods (public)
41
+ //
42
+ //--------------------------------------------------------------------------
43
+ //--------------------------------------------------------------------------
44
+ //
45
+ // Events (public)
46
+ //
47
+ //--------------------------------------------------------------------------
48
+ //--------------------------------------------------------------------------
49
+ //
50
+ // Functions (lifecycle)
51
+ //
52
+ //--------------------------------------------------------------------------
53
+ /**
54
+ * StencilJS: Called once just after the component is first connected to the DOM.
55
+ */
56
+ async componentWillLoad() {
57
+ return this._initModules();
58
+ }
59
+ render() {
60
+ return (h(Host, null, h("div", { ref: (el) => { this._floorFilterElement = el; } })));
61
+ }
62
+ //--------------------------------------------------------------------------
63
+ //
64
+ // Functions (protected)
65
+ //
66
+ //--------------------------------------------------------------------------
67
+ /**
68
+ * Load esri javascript api modules
69
+ *
70
+ * @returns Promise resolving when function is done
71
+ *
72
+ * @protected
73
+ */
74
+ async _initModules() {
75
+ const [FloorFilter] = await loadModules([
76
+ "esri/widgets/FloorFilter"
77
+ ]);
78
+ this.FloorFilter = FloorFilter;
79
+ }
80
+ /**
81
+ * Initialize the floor filter or reset the current view if it already exists
82
+ *
83
+ * @returns void
84
+ *
85
+ * @protected
86
+ */
87
+ _initFloorFilter(view) {
88
+ if (view && this.FloorFilter) {
89
+ if (!this.floorFilterWidget) {
90
+ this.floorFilterWidget = new this.FloorFilter({
91
+ container: this._floorFilterElement,
92
+ view
93
+ });
94
+ }
95
+ else {
96
+ this.floorFilterWidget.view = view;
97
+ }
98
+ }
99
+ }
100
+ static get is() { return "floor-filter"; }
101
+ static get encapsulation() { return "shadow"; }
102
+ static get originalStyleUrls() {
103
+ return {
104
+ "$": ["floor-filter.css"]
105
+ };
106
+ }
107
+ static get styleUrls() {
108
+ return {
109
+ "$": ["floor-filter.css"]
110
+ };
111
+ }
112
+ static get properties() {
113
+ return {
114
+ "floorFilterWidget": {
115
+ "type": "unknown",
116
+ "mutable": false,
117
+ "complexType": {
118
+ "original": "__esri.FloorFilter",
119
+ "resolved": "FloorFilter",
120
+ "references": {
121
+ "___esri": {
122
+ "location": "global",
123
+ "id": "global::___esri"
124
+ }
125
+ }
126
+ },
127
+ "required": false,
128
+ "optional": false,
129
+ "docs": {
130
+ "tags": [],
131
+ "text": "esri/widgets/FloorFilter: https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FloorFilter.html\n\nFloorFilter instance"
132
+ }
133
+ },
134
+ "mapView": {
135
+ "type": "unknown",
136
+ "mutable": false,
137
+ "complexType": {
138
+ "original": "__esri.MapView",
139
+ "resolved": "MapView",
140
+ "references": {
141
+ "___esri": {
142
+ "location": "global",
143
+ "id": "global::___esri"
144
+ }
145
+ }
146
+ },
147
+ "required": false,
148
+ "optional": false,
149
+ "docs": {
150
+ "tags": [],
151
+ "text": "esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html"
152
+ }
153
+ }
154
+ };
155
+ }
156
+ static get elementRef() { return "el"; }
157
+ static get watchers() {
158
+ return [{
159
+ "propName": "mapView",
160
+ "methodName": "mapViewWatchHandler"
161
+ }];
162
+ }
163
+ }
@@ -102,12 +102,13 @@ export class InfoCard {
102
102
  * Renders the component.
103
103
  */
104
104
  render() {
105
- var _a;
105
+ var _a, _b, _c;
106
106
  const loadingClass = this.isLoading ? "" : "display-none";
107
107
  const featureNodeClass = this.isLoading || this._editRecordOpen ? "display-none" : "position-absolute";
108
108
  const editClass = !this.isLoading && this._editRecordOpen ? "position-absolute" : "display-none";
109
109
  const editButtonClass = !this.isLoading && this._editRecordOpen ? "display-none" : "";
110
- return (h(Host, null, h("calcite-shell", null, h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, h("div", { class: "display-flex top-border padding-1-2" }, h("calcite-button", { appearance: "solid", "icon-start": "pencil", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, h("span", null, this._translations.edit))), h("div", { class: "display-flex padding-1-2 button-container top-border" }, h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("div", null, this._getCount()), h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next))))), h("edit-card", { class: editClass, graphicIndex: (_a = this._features) === null || _a === void 0 ? void 0 : _a.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, h("div", { slot: "title" }, this._translations.editDisabled), h("div", { slot: "message" }, this._translations.enableEditing)))));
110
+ const nextBackDisabled = ((_b = (_a = this._features) === null || _a === void 0 ? void 0 : _a.features) === null || _b === void 0 ? void 0 : _b.length) < 2;
111
+ return (h(Host, null, h("calcite-shell", null, h("calcite-loader", { class: loadingClass, label: this._translations.fetchingData }), h("div", { class: "esri-widget " + featureNodeClass, id: "features-node" }), h("div", { class: `${editButtonClass} width-100`, slot: "footer" }, h("div", { class: "display-flex top-border padding-1-2" }, h("calcite-button", { appearance: "solid", "icon-start": "pencil", id: "solutions-edit", onClick: () => this._openEditRecord(), width: "full" }, this._translations.edit), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": "solutions-edit" }, h("span", null, this._translations.edit))), h("div", { class: "display-flex padding-1-2 button-container top-border" }, h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-back", onClick: () => this._back(), width: "full" }, this._translations.back), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-back" }, h("span", null, this._translations.back))), h("div", null, this._getCount()), h("div", { class: "min-width-100" }, h("calcite-button", { appearance: "outline", disabled: nextBackDisabled, id: "solutions-next", onClick: () => this._next(), width: "full" }, this._translations.next), h("calcite-tooltip", { label: "", placement: "top", "reference-element": "solutions-next" }, h("span", null, this._translations.next))))), h("edit-card", { class: editClass, graphicIndex: (_c = this._features) === null || _c === void 0 ? void 0 : _c.selectedFeatureIndex, graphics: this.graphics, mapView: this.mapView, open: this._editRecordOpen }), h("calcite-alert", { icon: "layer-broken", kind: "warning", label: "", onCalciteAlertClose: () => this._alertClosed(), open: this._alertOpen, placement: "top" }, h("div", { slot: "title" }, this._translations.editDisabled), h("div", { slot: "message" }, this._translations.enableEditing)))));
111
112
  }
112
113
  //--------------------------------------------------------------------------
113
114
  //
@@ -77,3 +77,11 @@ html[dir="rtl"] .bottom-left {
77
77
  .danger-color {
78
78
  color: var(--calcite-ui-danger);
79
79
  }
80
+
81
+ .esri-feature-table vaadin-grid {
82
+ border: none !important;
83
+ }
84
+
85
+ vaadin-grid-cell-content {
86
+ padding: var(--lumo-space-xs) var(--lumo-space-m) !important;
87
+ }
@@ -204,9 +204,10 @@ export class LayerTable {
204
204
  * @returns The dom node that contains the controls
205
205
  */
206
206
  _getTableControlRow(slot) {
207
+ var _a;
207
208
  const featuresSelected = this._selectedIndexes.length > 0;
208
209
  const id = "more-table-options";
209
- return (h("div", { class: "display-flex table-border height-51", slot: slot }, h("calcite-action-bar", { expandDisabled: true, expanded: true, layout: "horizontal" }, h("div", { class: "border-end" }, h("map-layer-picker", { appearance: "transparent", mapView: this.mapView, onLayerSelectionChange: (evt) => this._layerSelectionChanged(evt), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", type: "dropdown" })), this._getAction("zoom-to-object", this._translations.zoom, () => this._zoom(), !featuresSelected), this._getAction("filter", this._translations.filters, () => this._filter(), false), this._deleteEnabled ? this._getDangerAction("trash", this._translations.delete, () => this._delete(), !featuresSelected) : undefined, this._getAction("erase", this._translations.clearSelection, () => this._clearSelection(), !featuresSelected)), h("calcite-dropdown", { disabled: this._layer === undefined }, h("calcite-action", { appearance: "solid", id: id, label: "", slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": id }, h("span", null, this._translations.moreOptions)), h("calcite-dropdown-group", { "selection-mode": "none" }, h("calcite-dropdown-item", { iconStart: "list-check-all", onClick: () => this._selectAll() }, this._translations.selectAll), h("calcite-dropdown-item", { iconStart: "selected-items-filter", onClick: () => this._toggleShowSelected() }, this._showOnlySelected ? this._translations.showAll :
210
+ return (h("div", { class: "display-flex table-border height-51", slot: slot }, h("calcite-action-bar", { expandDisabled: true, expanded: true, layout: "horizontal" }, h("div", { class: "border-end" }, h("map-layer-picker", { appearance: "transparent", mapView: this.mapView, onLayerSelectionChange: (evt) => this._layerSelectionChanged(evt), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, placeholderIcon: "layers", scale: "l", type: "dropdown" })), this._getAction("zoom-to-object", this._translations.zoom, () => this._zoom(), !featuresSelected), ((_a = this.mapInfo) === null || _a === void 0 ? void 0 : _a.filters) ? this._getAction("filter", this._translations.filters, () => this._filter(), false) : undefined, this._deleteEnabled ? this._getDangerAction("trash", this._translations.delete, () => this._delete(), !featuresSelected) : undefined, this._getAction("erase", this._translations.clearSelection, () => this._clearSelection(), !featuresSelected)), h("calcite-dropdown", { disabled: this._layer === undefined }, h("calcite-action", { appearance: "solid", id: id, label: "", slot: "trigger", text: "" }, h("calcite-button", { appearance: "transparent", iconEnd: "chevron-down", kind: "neutral" }, this._translations.more)), h("calcite-tooltip", { label: "", placement: "bottom", "reference-element": id }, h("span", null, this._translations.moreOptions)), h("calcite-dropdown-group", { "selection-mode": "none" }, h("calcite-dropdown-item", { iconStart: "list-check-all", onClick: () => this._selectAll() }, this._translations.selectAll), h("calcite-dropdown-item", { iconStart: "selected-items-filter", onClick: () => this._toggleShowSelected() }, this._showOnlySelected ? this._translations.showAll :
210
211
  this._translations.showSelected), h("calcite-dropdown-item", { iconStart: "compare", onClick: () => this._switchSelected() }, this._translations.switchSelected), h("calcite-dropdown-item", { iconStart: "refresh", onClick: () => this._refresh() }, this._translations.refresh), h("calcite-dropdown-item", { iconStart: "export", onClick: () => void this._exportToCSV() }, this._translations.exportCSV)))));
211
212
  }
212
213
  /**
@@ -457,7 +458,7 @@ export class LayerTable {
457
458
  * @returns void
458
459
  */
459
460
  _filter() {
460
- alert("do whatever this button is supposed to do");
461
+ this.openFilterOptions.emit();
461
462
  }
462
463
  /**
463
464
  * Select all rows that are not currently selectd
@@ -778,6 +779,21 @@ export class LayerTable {
778
779
  "resolved": "number[]",
779
780
  "references": {}
780
781
  }
782
+ }, {
783
+ "method": "openFilterOptions",
784
+ "name": "openFilterOptions",
785
+ "bubbles": true,
786
+ "cancelable": true,
787
+ "composed": true,
788
+ "docs": {
789
+ "tags": [],
790
+ "text": "Emitted on demand when the filters button is clicked"
791
+ },
792
+ "complexType": {
793
+ "original": "void",
794
+ "resolved": "void",
795
+ "references": {}
796
+ }
781
797
  }];
782
798
  }
783
799
  static get methods() {
@@ -33,6 +33,7 @@ export class MapCard {
33
33
  */
34
34
  this._loadedId = "";
35
35
  this.enableLegend = undefined;
36
+ this.enableFloorFilter = undefined;
36
37
  this.enableFullscreen = undefined;
37
38
  this.enableSearch = undefined;
38
39
  this.enableBasemap = undefined;
@@ -63,7 +64,7 @@ export class MapCard {
63
64
  * Renders the component.
64
65
  */
65
66
  render() {
66
- return (h(Host, null, h("map-picker", { mapInfos: this.mapInfos }), h("div", { class: "map-height", ref: (el) => (this._mapDiv = el) }), h("map-tools", { basemapConfig: this.basemapConfig, class: "box-shadow", enableBasemap: this.enableBasemap, enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapView: this.mapView, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration })));
67
+ return (h(Host, null, h("map-picker", { mapInfos: this.mapInfos }), h("div", { class: "map-height", ref: (el) => (this._mapDiv = el) }), h("map-tools", { basemapConfig: this.basemapConfig, class: "box-shadow", enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableLegend: this.enableLegend, enableSearch: this.enableSearch, mapView: this.mapView, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration })));
67
68
  }
68
69
  //--------------------------------------------------------------------------
69
70
  //
@@ -157,6 +158,23 @@ export class MapCard {
157
158
  "attribute": "enable-legend",
158
159
  "reflect": false
159
160
  },
161
+ "enableFloorFilter": {
162
+ "type": "boolean",
163
+ "mutable": false,
164
+ "complexType": {
165
+ "original": "boolean",
166
+ "resolved": "boolean",
167
+ "references": {}
168
+ },
169
+ "required": false,
170
+ "optional": false,
171
+ "docs": {
172
+ "tags": [],
173
+ "text": "boolean: when true the floor filter widget will be available"
174
+ },
175
+ "attribute": "enable-floor-filter",
176
+ "reflect": false
177
+ },
160
178
  "enableFullscreen": {
161
179
  "type": "boolean",
162
180
  "mutable": false,
@@ -59,10 +59,6 @@
59
59
  display: none;
60
60
  }
61
61
 
62
- .action-bar-color {
63
- background-color: var(--calcite-ui-border-3) !important;
64
- }
65
-
66
62
  .align-center {
67
63
  align-items: center;
68
64
  }
@@ -116,7 +116,7 @@ export class MapPicker {
116
116
  * @protected
117
117
  */
118
118
  _getToolbar() {
119
- return (h("div", { class: "display-flex" }, h("calcite-action-bar", { class: "action-bar-color border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: "header" }, this._getMapPicker())));
119
+ return (h("div", { class: "display-flex" }, h("calcite-action-bar", { class: "border-bottom-1 action-bar-size", "expand-disabled": true, layout: "horizontal", slot: "header" }, this._getMapPicker())));
120
120
  }
121
121
  /**
122
122
  * Get a pick list for all maps in mapInfos
@@ -23,6 +23,7 @@ import { getLocaleComponentStrings } from "../../utils/locale";
23
23
  export class MapTools {
24
24
  constructor() {
25
25
  this.enableLegend = undefined;
26
+ this.enableFloorFilter = undefined;
26
27
  this.enableFullscreen = undefined;
27
28
  this.enableSearch = undefined;
28
29
  this.enableBasemap = undefined;
@@ -33,6 +34,7 @@ export class MapTools {
33
34
  this._translations = undefined;
34
35
  this._showTools = true;
35
36
  this._showBasemapWidget = false;
37
+ this._showFloorFilter = false;
36
38
  this._showFullscreen = false;
37
39
  this._showLegendWidget = false;
38
40
  this._showSearchWidget = false;
@@ -59,6 +61,21 @@ export class MapTools {
59
61
  /**
60
62
  * When the _showBasemapWidget property is true display the basemap gallery
61
63
  */
64
+ async _showFloorFilterWatchHandler(v) {
65
+ const widget = this._floorFilterElement.floorFilterWidget;
66
+ if (v) {
67
+ this.mapView.ui.add(widget, {
68
+ position: "top-right",
69
+ index: 1
70
+ });
71
+ }
72
+ else {
73
+ this.mapView.ui.remove(widget);
74
+ }
75
+ }
76
+ /**
77
+ * When the _showFullscreen property is true the app will consume the full screen
78
+ */
62
79
  async _showFullscreenWatchHandler(v) {
63
80
  const fs = this._fullscreenElement.fullscreenWidget;
64
81
  if (v) {
@@ -126,6 +143,7 @@ export class MapTools {
126
143
  const searchClass = this._showSearchWidget ? "" : "display-none";
127
144
  const basemapClass = this._showBasemapWidget ? "" : "display-none";
128
145
  const legendClass = this._showLegendWidget ? "" : "display-none";
146
+ const floorFilterClass = this._showFloorFilter ? "" : "display-none";
129
147
  const fullscreenClass = this._showFullscreen ? "" : "display-none";
130
148
  const fullscreenIcon = this._showFullscreen ? "full-screen-exit" : "full-screen";
131
149
  const fullscreenTip = this._showFullscreen ? this._translations.exitFullscreen : this._translations.enterFullscreen;
@@ -139,7 +157,9 @@ export class MapTools {
139
157
  this._getActionGroup(fullscreenIcon, false, fullscreenTip, () => this._expand()) :
140
158
  undefined, this.enableBasemap ?
141
159
  this._getActionGroup("basemap", false, this._translations.basemap, () => this._toggleBasemapPicker()) :
142
- undefined)), h("basemap-gallery", { basemapConfig: this.basemapConfig, class: basemapClass, mapView: this.mapView, ref: (el) => { this._basemapElement = el; } }), h("map-search", { class: searchClass, mapView: this.mapView, ref: (el) => { this._searchElement = el; }, searchConfiguration: this.searchConfiguration }), h("map-legend", { class: legendClass, mapView: this.mapView, ref: (el) => { this._legendElement = el; } }), h("map-fullscreen", { class: fullscreenClass, mapView: this.mapView, ref: (el) => { this._fullscreenElement = el; } })));
160
+ undefined, this.enableFloorFilter ?
161
+ this._getActionGroup("urban-model", false, this._translations.floorFilter, () => this._toggleFloorFilter()) :
162
+ undefined)), h("basemap-gallery", { basemapConfig: this.basemapConfig, class: basemapClass, mapView: this.mapView, ref: (el) => { this._basemapElement = el; } }), h("map-search", { class: searchClass, mapView: this.mapView, ref: (el) => { this._searchElement = el; }, searchConfiguration: this.searchConfiguration }), h("map-legend", { class: legendClass, mapView: this.mapView, ref: (el) => { this._legendElement = el; } }), h("map-fullscreen", { class: fullscreenClass, mapView: this.mapView, ref: (el) => { this._fullscreenElement = el; } }), h("floor-filter", { class: floorFilterClass, mapView: this.mapView, ref: (el) => { this._floorFilterElement = el; } })));
143
163
  }
144
164
  //--------------------------------------------------------------------------
145
165
  //
@@ -182,6 +202,17 @@ export class MapTools {
182
202
  this._showBasemapWidget = !this._showBasemapWidget;
183
203
  this._showTools = false;
184
204
  }
205
+ /**
206
+ * Show/Hide the floor filter
207
+ *
208
+ * @returns void
209
+ *
210
+ * @protected
211
+ */
212
+ _toggleFloorFilter() {
213
+ this._showFloorFilter = !this._showFloorFilter;
214
+ this._showTools = false;
215
+ }
185
216
  /**
186
217
  * Enter/Exit fullscreen mode
187
218
  *
@@ -204,6 +235,7 @@ export class MapTools {
204
235
  this._showBasemapWidget = false;
205
236
  this._showSearchWidget = false;
206
237
  this._showLegendWidget = false;
238
+ this._showFloorFilter = false;
207
239
  }
208
240
  this._showTools = !this._showTools;
209
241
  }
@@ -248,6 +280,23 @@ export class MapTools {
248
280
  "attribute": "enable-legend",
249
281
  "reflect": false
250
282
  },
283
+ "enableFloorFilter": {
284
+ "type": "boolean",
285
+ "mutable": false,
286
+ "complexType": {
287
+ "original": "boolean",
288
+ "resolved": "boolean",
289
+ "references": {}
290
+ },
291
+ "required": false,
292
+ "optional": false,
293
+ "docs": {
294
+ "tags": [],
295
+ "text": "boolean: when true the floor filter widget will be available"
296
+ },
297
+ "attribute": "enable-floor-filter",
298
+ "reflect": false
299
+ },
251
300
  "enableFullscreen": {
252
301
  "type": "boolean",
253
302
  "mutable": false,
@@ -386,6 +435,7 @@ export class MapTools {
386
435
  "_translations": {},
387
436
  "_showTools": {},
388
437
  "_showBasemapWidget": {},
438
+ "_showFloorFilter": {},
389
439
  "_showFullscreen": {},
390
440
  "_showLegendWidget": {},
391
441
  "_showSearchWidget": {}
@@ -396,6 +446,9 @@ export class MapTools {
396
446
  return [{
397
447
  "propName": "_showBasemapWidget",
398
448
  "methodName": "_showBasemapWidgetWatchHandler"
449
+ }, {
450
+ "propName": "_showFloorFilter",
451
+ "methodName": "_showFloorFilterWatchHandler"
399
452
  }, {
400
453
  "propName": "_showFullscreen",
401
454
  "methodName": "_showFullscreenWatchHandler"