@esri/solutions-components 0.10.6 → 0.10.8

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 (157) hide show
  1. package/dist/cjs/basemap-gallery_7.cjs.entry.js +24 -8
  2. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  3. package/dist/cjs/calcite-combobox_3.cjs.entry.js +354 -967
  4. package/dist/cjs/calcite-graph_2.cjs.entry.js +1082 -0
  5. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +6 -6
  6. package/dist/cjs/calcite-tree_3.cjs.entry.js +1 -1
  7. package/dist/cjs/card-manager_3.cjs.entry.js +246 -18
  8. package/dist/cjs/crowdsource-manager.cjs.entry.js +169 -49
  9. package/dist/cjs/instant-apps-control-panel.cjs.entry.js +2 -1
  10. package/dist/cjs/instant-apps-time-filter.cjs.entry.js +40 -21
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/map-select-tools_3.cjs.entry.js +3 -3
  13. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  14. package/dist/cjs/public-notification.cjs.entry.js +1 -1
  15. package/dist/cjs/refine-results-flow-item.cjs.entry.js +1 -1
  16. package/dist/cjs/share-item.cjs.entry.js +1 -1
  17. package/dist/cjs/solution-configuration.cjs.entry.js +3 -3
  18. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -3
  19. package/dist/cjs/solutions-components.cjs.js +1 -1
  20. package/dist/cjs/spatial-ref.cjs.entry.js +1 -1
  21. package/dist/collection/assets/t9n/crowdsource-manager/resources.json +5 -1
  22. package/dist/collection/assets/t9n/crowdsource-manager/resources_en.json +5 -1
  23. package/dist/collection/assets/t9n/layer-table/resources.json +1 -0
  24. package/dist/collection/assets/t9n/layer-table/resources_en.json +1 -0
  25. package/dist/collection/assets/t9n/map-card/resources.json +6 -1
  26. package/dist/collection/assets/t9n/map-card/resources_en.json +6 -1
  27. package/dist/collection/components/card-manager/card-manager.js +34 -8
  28. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +173 -65
  29. package/dist/collection/components/layer-table/layer-table.js +175 -8
  30. package/dist/collection/components/map-card/map-card.css +4 -0
  31. package/dist/collection/components/map-card/map-card.js +368 -3
  32. package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
  33. package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
  34. package/dist/collection/components/map-layer-picker/map-layer-picker.js +9 -3
  35. package/dist/collection/components/map-legend/map-legend.js +1 -1
  36. package/dist/collection/components/map-picker/map-picker.css +8 -0
  37. package/dist/collection/components/map-picker/map-picker.js +74 -3
  38. package/dist/collection/components/map-search/map-search.js +1 -1
  39. package/dist/collection/components/map-select-tools/map-select-tools.js +1 -1
  40. package/dist/collection/components/map-tools/map-tools.js +1 -1
  41. package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
  42. package/dist/collection/components/pdf-download/pdf-download.js +1 -1
  43. package/dist/collection/components/public-notification/public-notification.js +1 -1
  44. package/dist/collection/components/refine-results-flow-item/refine-results-flow-item.js +1 -1
  45. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  46. package/dist/collection/components/share-item/share-item.js +1 -1
  47. package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
  48. package/dist/collection/components/solution-contents/solution-contents.js +1 -1
  49. package/dist/collection/components/solution-item/solution-item.js +1 -1
  50. package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
  51. package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
  52. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
  53. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
  54. package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
  55. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
  56. package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
  57. package/dist/collection/components/solution-variables/solution-variables.js +1 -1
  58. package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
  59. package/dist/collection/demos/crowdsource-manager.html +1 -0
  60. package/dist/components/card-manager2.js +20 -8
  61. package/dist/components/crowdsource-manager.js +172 -53
  62. package/dist/components/instant-apps-control-panel.js +2 -1
  63. package/dist/components/instant-apps-time-filter.js +46 -23
  64. package/dist/components/layer-table2.js +72 -10
  65. package/dist/components/map-card2.js +288 -47
  66. package/dist/components/map-draw-tools2.js +1 -1
  67. package/dist/components/map-fullscreen2.js +1 -1
  68. package/dist/components/map-layer-picker2.js +9 -3
  69. package/dist/components/map-legend2.js +1 -1
  70. package/dist/components/map-picker2.js +24 -5
  71. package/dist/components/map-search2.js +1 -1
  72. package/dist/components/map-select-tools2.js +1 -1
  73. package/dist/components/map-tools2.js +1 -1
  74. package/dist/components/pci-calculator.js +1 -1
  75. package/dist/components/pdf-download2.js +1 -1
  76. package/dist/components/public-notification.js +1 -1
  77. package/dist/components/refine-results-flow-item.js +1 -1
  78. package/dist/components/refine-selection2.js +1 -1
  79. package/dist/components/share-item.js +1 -1
  80. package/dist/components/solution-configuration.js +3 -3
  81. package/dist/components/solution-contents2.js +1 -1
  82. package/dist/components/solution-item-details2.js +1 -1
  83. package/dist/components/solution-item-icon2.js +1 -1
  84. package/dist/components/solution-item-sharing2.js +1 -1
  85. package/dist/components/solution-item2.js +1 -1
  86. package/dist/components/solution-organization-variables2.js +1 -1
  87. package/dist/components/solution-resource-item2.js +1 -1
  88. package/dist/components/solution-spatial-ref2.js +1 -1
  89. package/dist/components/solution-template-data2.js +1 -1
  90. package/dist/components/solution-variables2.js +1 -1
  91. package/dist/components/spatial-ref.js +1 -1
  92. package/dist/esm/basemap-gallery_7.entry.js +24 -8
  93. package/dist/esm/buffer-tools_3.entry.js +1 -1
  94. package/dist/esm/calcite-combobox_3.entry.js +369 -982
  95. package/dist/esm/calcite-graph_2.entry.js +1077 -0
  96. package/dist/esm/calcite-shell-panel_14.entry.js +6 -6
  97. package/dist/esm/calcite-tree_3.entry.js +1 -1
  98. package/dist/esm/card-manager_3.entry.js +248 -20
  99. package/dist/esm/crowdsource-manager.entry.js +170 -50
  100. package/dist/esm/instant-apps-control-panel.entry.js +2 -1
  101. package/dist/esm/instant-apps-time-filter.entry.js +41 -22
  102. package/dist/esm/loader.js +1 -1
  103. package/dist/esm/map-select-tools_3.entry.js +3 -3
  104. package/dist/esm/pci-calculator.entry.js +1 -1
  105. package/dist/esm/public-notification.entry.js +1 -1
  106. package/dist/esm/refine-results-flow-item.entry.js +1 -1
  107. package/dist/esm/share-item.entry.js +1 -1
  108. package/dist/esm/solution-configuration.entry.js +3 -3
  109. package/dist/esm/solution-contents_3.entry.js +3 -3
  110. package/dist/esm/solutions-components.js +1 -1
  111. package/dist/esm/spatial-ref.entry.js +1 -1
  112. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources.json +5 -1
  113. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources_en.json +5 -1
  114. package/dist/solutions-components/assets/t9n/layer-table/resources.json +1 -0
  115. package/dist/solutions-components/assets/t9n/layer-table/resources_en.json +1 -0
  116. package/dist/solutions-components/assets/t9n/map-card/resources.json +6 -1
  117. package/dist/solutions-components/assets/t9n/map-card/resources_en.json +6 -1
  118. package/dist/solutions-components/demos/crowdsource-manager.html +1 -0
  119. package/dist/solutions-components/p-0abc1354.entry.js +6 -0
  120. package/dist/solutions-components/p-0f7b5d36.entry.js +6 -0
  121. package/dist/solutions-components/p-1867168b.entry.js +6 -0
  122. package/dist/solutions-components/{p-a9818be2.entry.js → p-20c465e9.entry.js} +1 -1
  123. package/dist/solutions-components/{p-db18bce8.entry.js → p-36b50b5b.entry.js} +1 -1
  124. package/dist/solutions-components/{p-85512ae3.entry.js → p-445213cf.entry.js} +1 -1
  125. package/dist/solutions-components/{p-d49f895d.entry.js → p-4a5f0a97.entry.js} +1 -1
  126. package/dist/solutions-components/{p-002c97df.entry.js → p-5d201016.entry.js} +1 -1
  127. package/dist/solutions-components/{p-b7cec3bd.entry.js → p-618bafec.entry.js} +1 -1
  128. package/dist/solutions-components/p-6a66d5a9.entry.js +6 -0
  129. package/dist/solutions-components/p-71a2d5b8.entry.js +6 -0
  130. package/dist/solutions-components/p-7a64b026.entry.js +17 -0
  131. package/dist/solutions-components/p-85c25564.entry.js +6 -0
  132. package/dist/solutions-components/{p-235bf02e.entry.js → p-913413c3.entry.js} +1 -1
  133. package/dist/solutions-components/p-9af1cb14.entry.js +6 -0
  134. package/dist/solutions-components/{p-49aa2929.entry.js → p-bebd4646.entry.js} +1 -1
  135. package/dist/solutions-components/{p-ab2adcaf.entry.js → p-cc092b22.entry.js} +1 -1
  136. package/dist/solutions-components/p-ce454f5a.entry.js +11 -0
  137. package/dist/solutions-components/solutions-components.esm.js +1 -1
  138. package/dist/types/components/card-manager/card-manager.d.ts +11 -0
  139. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +86 -20
  140. package/dist/types/components/layer-table/layer-table.d.ts +30 -0
  141. package/dist/types/components/map-card/map-card.d.ts +124 -0
  142. package/dist/types/components/map-layer-picker/map-layer-picker.d.ts +4 -0
  143. package/dist/types/components/map-picker/map-picker.d.ts +12 -0
  144. package/dist/types/components.d.ts +130 -0
  145. package/dist/types/preact.d.ts +4 -2
  146. package/package.json +2 -2
  147. package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +0 -453
  148. package/dist/esm/calcite-dropdown-group_2.entry.js +0 -448
  149. package/dist/solutions-components/p-129fd80e.entry.js +0 -6
  150. package/dist/solutions-components/p-3b426576.entry.js +0 -6
  151. package/dist/solutions-components/p-72b217f2.entry.js +0 -6
  152. package/dist/solutions-components/p-72f01088.entry.js +0 -6
  153. package/dist/solutions-components/p-8b999a2b.entry.js +0 -6
  154. package/dist/solutions-components/p-973ff7b2.entry.js +0 -23
  155. package/dist/solutions-components/p-a001f9c9.entry.js +0 -6
  156. package/dist/solutions-components/p-c683b3fe.entry.js +0 -6
  157. package/dist/solutions-components/p-e9d049bd.entry.js +0 -6
@@ -3,7 +3,7 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host, Fragment } from '@stencil/core/internal/client';
7
7
  import { g as getLocaleComponentStrings } from './locale.js';
8
8
  import { a as ELayoutMode } from './interfaces.js';
9
9
  import { g as getLayerOrTable } from './mapViewUtils.js';
@@ -74,7 +74,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
74
74
  this.__registerHost();
75
75
  this.showIntroductionWindow = createEvent(this, "showIntroductionWindow", 7);
76
76
  this.showCoverPage = createEvent(this, "showCoverPage", 7);
77
- this.appLayout = undefined;
77
+ this.appLayout = 'splitView';
78
78
  this.appProxies = undefined;
79
79
  this.basemapConfig = undefined;
80
80
  this.coverPageEnabled = undefined;
@@ -111,7 +111,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
111
111
  this.theme = "light";
112
112
  this.zoomAndScrollToSelected = false;
113
113
  this.zoomToScale = undefined;
114
- this._expandPopup = false;
115
114
  this._hideFooter = false;
116
115
  this._hideTable = false;
117
116
  this._isMobile = false;
@@ -122,7 +121,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
122
121
  this._mapView = undefined;
123
122
  this._panelOpen = true;
124
123
  this._numSelected = 0;
125
- this._tableOnly = false;
124
+ this._filterOpen = false;
126
125
  }
127
126
  get el() { return this; }
128
127
  //--------------------------------------------------------------------------
@@ -161,6 +160,18 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
161
160
  * MapView.when is not fired when mapView is not currently visible
162
161
  */
163
162
  _shouldSetMapView = false;
163
+ /**
164
+ * LayerExpression[]: All layer expressions from the current filter config for the currently selected layer
165
+ */
166
+ _layerExpressions;
167
+ /**
168
+ * HTMLInstantAppsFilterListElement: Component from Instant Apps that supports interacting with the current filter config
169
+ */
170
+ _filterList;
171
+ /**
172
+ * boolean: True when app is directly rendered to map view layout
173
+ */
174
+ _isMapViewOnLoad = false;
164
175
  //--------------------------------------------------------------------------
165
176
  //
166
177
  // Watch handlers
@@ -177,7 +188,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
177
188
  */
178
189
  hideMapOnLoadWatchHandler() {
179
190
  this.showHideMapPopupAndTable(this.hideMapOnLoad && !this._isMobile);
180
- this._expandPopup = this.hideMapOnLoad && !this._isMobile;
181
191
  }
182
192
  //--------------------------------------------------------------------------
183
193
  //
@@ -211,16 +221,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
211
221
  this.showHideMapPopupAndTable(false);
212
222
  }
213
223
  }
214
- /**
215
- * Listen for idsFound event to be fired so we can know that all layer ids have been fetched
216
- */
217
- async idsFound(evt) {
218
- const ids = evt.detail;
219
- this._tableOnly = ids.tableIds.length > 0 && ids.layerIds.length === 0;
220
- if (this._tableOnly) {
221
- this._expandPopup = true;
222
- }
223
- }
224
224
  /**
225
225
  * Listen for layoutChanged event to be fired so we can adjust the layout
226
226
  */
@@ -236,14 +236,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
236
236
  await this._setMapView();
237
237
  });
238
238
  }
239
- /**
240
- * Listen for beforeMapChanged and minimize the popup if it's expanded
241
- */
242
- async beforeMapChanged() {
243
- if (this._expandPopup) {
244
- this._shouldSetMapView = true;
245
- }
246
- }
247
239
  /**
248
240
  * Get the layer for the provided layer id
249
241
  */
@@ -252,13 +244,13 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
252
244
  const layer = await getLayerOrTable(this._mapView, id);
253
245
  await layer.when(() => {
254
246
  this._layer = layer;
247
+ this._initLayerExpressions();
255
248
  });
256
249
  }
257
250
  /**
258
251
  * Update the state expandPopup when mapInfoChange event occurs
259
252
  */
260
253
  async mapInfoChange() {
261
- this._expandPopup = this.hideMapOnLoad && !this._isMobile;
262
254
  this._hideMapOnLoadHonored = false;
263
255
  }
264
256
  //--------------------------------------------------------------------------
@@ -281,7 +273,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
281
273
  render() {
282
274
  // only avoid border when we have a header color that is not white
283
275
  const borderClass = this.popupHeaderColor && this.popupHeaderColor !== "#FFFFFF" ? "border-width-0" : "";
284
- return (h(Host, { key: 'f434a8e24b111a32774e9d5683c2446ba35b504b' }, h("calcite-shell", { key: '017843c77fa2c52f0d957760ac3f57808d11d59f', class: "position-relative" }, h("calcite-panel", { key: 'bd8eeec3a013583789b9e1b251fed34e5896171e', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter())));
276
+ return (h(Host, { key: 'bbe12b471976652c32fc0cb6277fdfc4171b2cd6' }, h("calcite-shell", { key: '00b85d8e681f5ab021e6efb63b603e3d2442f63c', class: "position-relative" }, h("calcite-panel", { key: 'f1a37f06f3023bb1c63b40eeca739e942c301e63', class: `width-full height-full ${borderClass}` }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
285
277
  }
286
278
  /**
287
279
  * Called after each render
@@ -300,6 +292,12 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
300
292
  */
301
293
  async componentDidLoad() {
302
294
  this._resizeObserver.observe(this.el);
295
+ // for backward compatibility if hidemaponload is true then render table layout as default
296
+ if (this.hideMapOnLoad) {
297
+ this.appLayout = 'tableView';
298
+ }
299
+ this._isMapViewOnLoad = this.appLayout === 'mapView';
300
+ this._setActiveLayout(this.appLayout);
303
301
  }
304
302
  //--------------------------------------------------------------------------
305
303
  //
@@ -317,6 +315,27 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
317
315
  const deleteEnabled = this._layer?.editingEnabled && this._layer?.capabilities?.operations?.supportsDelete;
318
316
  return this._isMobile && hasSelectedFeatures && !this._hideFooter ? (h("div", { class: `width-100`, slot: "footer" }, h("div", { class: "display-flex padding-1-2" }, h("calcite-button", { appearance: "solid", id: "solutions-show", onClick: () => this.showHideMapPopupAndTable(true), width: "full" }, this._translations.view.replace("{{n}}", this._numSelected.toString())), deleteEnabled ? (h("delete-button", { class: "padding-inline-start-1 width-full", id: "solutions-delete", ids: this._layerTable.selectedIds, layer: this._layer })) : undefined))) : undefined;
319
317
  }
318
+ /**
319
+ * sets the active layout to render
320
+ * @param appLayout new app layout
321
+ *
322
+ * @protected
323
+ */
324
+ _setActiveLayout(appLayout) {
325
+ //When going to splitView layout the panel should be open
326
+ if (appLayout === 'splitView' && !this._panelOpen) {
327
+ this._toggleLayout();
328
+ }
329
+ //Move the map node based on the selected layout
330
+ //for mapView layout show map in full view and or all other layout show in the card view
331
+ //for tableView the map will be hidden using css
332
+ if (appLayout === 'mapView') {
333
+ this._showMapInFullView();
334
+ }
335
+ else {
336
+ this._showMapInCardView();
337
+ }
338
+ }
320
339
  /**
321
340
  * Get the icon name to use for the divider icon based on the current layout
322
341
  *
@@ -442,8 +461,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
442
461
  * @protected
443
462
  */
444
463
  _getMapNode(panelOpen) {
445
- const mapContainerClass = this._layoutMode === ELayoutMode.HORIZONTAL && (!this._isMobile || panelOpen) ? "" : "adjusted-height-50";
446
- return (h("div", { class: `${mapContainerClass} overflow-hidden` }, h("map-card", { appProxies: this.appProxies, basemapConfig: this.basemapConfig, class: "width-full", defaultWebmapId: this.defaultWebmap, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: true, hidden: this._expandPopup && !this._isMobile, homeZoomIndex: 3, homeZoomPosition: "top-left", homeZoomToolsSize: "s", mapInfos: this.mapInfos?.filter(mapInfo => mapInfo.visible !== false), mapWidgetsIndex: 0, mapWidgetsPosition: "top-right", mapWidgetsSize: "m", stackTools: true, theme: this.theme, toolOrder: ["legend", "search", "fullscreen", "basemap", "floorfilter"] })));
464
+ const isMapLayout = this.appLayout === 'mapView';
465
+ const isTableLayout = this.appLayout === 'tableView';
466
+ const mapContainerClass = (isMapLayout || isTableLayout) ? "position-absolute-0" : this._layoutMode === ELayoutMode.HORIZONTAL && (!this._isMobile || panelOpen) ? "" : "adjusted-height-50";
467
+ const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
468
+ return (h("div", { class: `${mapContainerClass} overflow-hidden`, id: "card-mapView" }, h("map-card", { appProxies: this.appProxies, basemapConfig: this.basemapConfig, class: "width-full", defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultWebmapId: this.defaultWebmap, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: true, hidden: !this._isMobile && isTableLayout, homeZoomIndex: 3, homeZoomPosition: "top-left", homeZoomToolsSize: "s", isMapLayout: isMapLayout, isMobile: this._isMobile, mapInfo: this._mapInfo, mapInfos: this.mapInfos?.filter(mapInfo => mapInfo.visible !== false), mapWidgetsIndex: 0, mapWidgetsPosition: "top-right", mapWidgetsSize: "m", onToggleFilter: this._toggleFilter.bind(this), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, selectedFeaturesIds: this._layerTable?.selectedIds, selectedLayer: this._layer, stackTools: true, theme: this.theme, toolOrder: ["legend", "search", "fullscreen", "basemap", "floorfilter"], zoomToScale: this.zoomToScale })));
447
469
  }
448
470
  /**
449
471
  * Get the expand node for the popup information
@@ -452,11 +474,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
452
474
  * @protected
453
475
  */
454
476
  _getPopupExpandNode() {
455
- const icon = this._expandPopup ? "chevrons-down" : "chevrons-up";
456
- const id = "expand-popup";
457
- const tooltip = this._expandPopup ? this._translations.collapsePopup : this._translations.expandPopup;
458
- const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
459
- const popupNodeClass = !this._expandPopup ? "height-full" : this.mapInfos?.length === 1 || this._isMobile ? "position-absolute-0" : "position-absolute-50";
477
+ const popupNodeClass = "height-full";
460
478
  const headerClass = this._isMobile ? "display-none height-0" : "";
461
479
  const headerTheme = this.popupHeaderColor ? "" : !this._isMobile ? "calcite-mode-dark" : "calcite-mode-light";
462
480
  const containerClass = this._isMobile && this._hideTable ? "position-absolute-0 width-full height-full" : this._isMobile ? "display-none height-0" : "";
@@ -465,16 +483,7 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
465
483
  '--calcite-color-foreground-2': this.popupHeaderHoverColor, /* background color that will be displayed on button when hovered */
466
484
  '--calcite-color-text-3': this.popupHeaderTextColor, /* font color that will be displayed on button */
467
485
  '--calcite-color-text-2': this.popupHeaderTextColor, /* font color that will be displayed on popup header text*/
468
- } }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, h("calcite-action", { class: headerClass, disabled: this._tableOnly, icon: icon, id: id, onClick: () => this._togglePopup(), slot: "header-actions-end", text: "" }), !this._tableOnly ? h("calcite-tooltip", { class: themeClass, label: "", placement: "bottom", "reference-element": id }, h("span", null, tooltip)) : undefined, this._getCardNode())));
469
- }
470
- /**
471
- * Toggle the popup information
472
- *
473
- * @protected
474
- */
475
- _togglePopup() {
476
- this._expandPopup = !this._expandPopup;
477
- this._hideMapOnLoadHonored = true;
486
+ } }, h("calcite-panel", null, !this._isMobile ? (h("div", { class: `display-flex align-items-center ${headerClass}`, slot: "header-content" }, h("calcite-icon", { icon: "information", scale: "s" }), h("div", { class: "padding-inline-start-75" }, this._translations.information))) : undefined, this._getCardNode())));
478
487
  }
479
488
  /**
480
489
  * Get the card node
@@ -483,9 +492,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
483
492
  * @protected
484
493
  */
485
494
  _getCardNode() {
486
- const cardManagerHeight = !this._expandPopup && !this._isMobile ? "height-50" : "height-full";
495
+ const isMapLayout = this.appLayout === 'mapView';
496
+ const isTableLayout = this.appLayout === 'tableView';
497
+ const cardManagerHeight = (isMapLayout || isTableLayout) ? "height-full" : !this._isMobile ? "height-50" : "height-full";
487
498
  const themeClass = this.theme === "dark" ? "calcite-mode-dark" : "calcite-mode-light";
488
- return (h("div", { class: `width-50 height-full ${themeClass}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, enableEditGeometry: this?._mapInfo?.enableEditGeometry, isMobile: this._isMobile, mapView: this?._mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
499
+ return (h("div", { class: `width-50 height-full ${themeClass}` }, h("card-manager", { class: `${cardManagerHeight} width-full`, enableEditGeometry: this?._mapInfo?.enableEditGeometry, isMobile: this._isMobile, layer: this._layer, mapView: this?._mapView, selectedFeaturesIds: this._layerTable?.selectedIds, zoomAndScrollToSelected: this.zoomAndScrollToSelected })));
489
500
  }
490
501
  /**
491
502
  * Get the table node based for the current layout
@@ -497,11 +508,11 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
497
508
  * @protected
498
509
  */
499
510
  _getTable(layoutMode, panelOpen, hideTable) {
500
- const tableClass = hideTable && this._isMobile ? "visibility-hidden" : "";
511
+ const isMapLayout = this.appLayout === 'mapView';
512
+ const isTableLayout = this.appLayout === 'tableView';
513
+ const tableClass = hideTable && this._isMobile ? "visibility-hidden" : isMapLayout ? "display-none" : "";
514
+ const mapClass = isMapLayout ? "height-full width-full" : "display-none";
501
515
  const tableSizeClass = this._getTableSizeClass(layoutMode, panelOpen);
502
- const icon = this._getDividerIcon(layoutMode, panelOpen);
503
- const tooltip = panelOpen ? this._translations.close : this._translations.open;
504
- const id = "toggle-layout";
505
516
  const toggleLayout = layoutMode === ELayoutMode.HORIZONTAL ? "horizontal" : "vertical";
506
517
  const toggleSlot = layoutMode === ELayoutMode.HORIZONTAL ? "header" : "panel-start";
507
518
  const hasMapAndLayer = this.defaultWebmap && this.defaultLayer;
@@ -509,10 +520,74 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
509
520
  this.defaultGlobalId?.indexOf(",") > -1 ? this.defaultGlobalId.split(",") : [this.defaultGlobalId];
510
521
  const defaultOid = !this.defaultOid ? undefined :
511
522
  this.defaultOid?.indexOf(",") > -1 ? this.defaultOid.split(",").map(o => parseInt(o, 10)) : [parseInt(this.defaultOid, 10)];
512
- return (h("calcite-shell", { class: `${tableSizeClass} ${tableClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), text: "" }), h("calcite-tooltip", { label: tooltip, placement: "bottom", "reference-element": id }, h("span", null, tooltip)))) : undefined, h("div", { class: `width-full height-full position-relative` }, h("layer-table", { defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this?._mapInfo?.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapHidden: this._expandPopup, mapInfo: this._mapInfo, mapView: this?._mapView, onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected, zoomToScale: this.zoomToScale }))));
523
+ return (h("calcite-shell", { class: `${tableSizeClass} border-bottom` }, !this._isMobile ? (h("calcite-action-bar", { class: "border-sides", expandDisabled: true, layout: toggleLayout, slot: toggleSlot }, this.getActions(layoutMode, panelOpen))) : undefined, h("div", { class: `width-full height-full position-relative ${tableClass}` }, h("layer-table", { createFilterModal: false, defaultGlobalId: hasMapAndLayer ? globalId : undefined, defaultLayerId: hasMapAndLayer ? this.defaultLayer : "", defaultOid: hasMapAndLayer && !globalId ? defaultOid : undefined, enableAutoRefresh: this.enableAutoRefresh, enableCSV: this.enableCSV, enableColumnReorder: this.enableColumnReorder, enableInlineEdit: this?._mapInfo?.enableInlineEdit, enableShare: this.enableShare, isMobile: this._isMobile, mapHidden: isTableLayout, mapInfo: this._mapInfo, mapView: this?._mapView, onToggleFilter: this._toggleFilter.bind(this), onlyShowUpdatableLayers: this.onlyShowUpdatableLayers, ref: (el) => this._layerTable = el, shareIncludeEmbed: this.shareIncludeEmbed, shareIncludeSocial: this.shareIncludeSocial, showNewestFirst: this.showNewestFirst, zoomAndScrollToSelected: this.zoomAndScrollToSelected, zoomToScale: this.zoomToScale })), h("div", { class: mapClass, id: "full-map-view" })));
524
+ }
525
+ /**
526
+ * Returns the Actions for table's node
527
+ *
528
+ * @returns Node
529
+ * @protected
530
+ */
531
+ getActions(layoutMode, panelOpen) {
532
+ const icon = this._getDividerIcon(layoutMode, panelOpen);
533
+ const tooltip = panelOpen ? this._translations.close : this._translations.open;
534
+ const id = "toggle-layout";
535
+ return (h(Fragment, null, h("calcite-action", { active: this.appLayout === 'splitView', class: "toggle-node", icon: "browser", id: "browser-action", onClick: () => { this._changeLayout('splitView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "browser-action" }, h("span", null, this._translations.splitView)), h("calcite-action", { active: this.appLayout === 'tableView', class: "toggle-node", icon: "dock-left", id: "dock-left-action", onClick: () => { this._changeLayout('tableView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "dock-left-action" }, h("span", null, this._translations.tableView)), h("calcite-action", { active: this.appLayout === 'mapView', class: "toggle-node", icon: "browser-map", id: "browser-map-action", onClick: () => { this._changeLayout('mapView'); }, text: "" }), h("calcite-tooltip", { placement: "right", "reference-element": "browser-map-action" }, h("span", null, this._translations.mapView)), h("calcite-action", { class: "toggle-node", icon: icon, id: id, onClick: () => this._toggleLayout(), slot: "actions-end", text: "" }), h("calcite-tooltip", { placement: "bottom", "reference-element": id }, h("span", null, tooltip))));
536
+ }
537
+ /**
538
+ * Show filter component in modal
539
+ *
540
+ * @returns node to interact with any configured filters for the current layer
541
+ * @protected
542
+ */
543
+ _filterModal() {
544
+ return (h("calcite-modal", { "aria-labelledby": "modal-title", class: "modal", kind: "brand", onCalciteModalClose: () => void this._closeFilter(), open: this._filterOpen, widthScale: "s" }, h("div", { class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.filter?.replace("{{title}}", this._layer?.title)), h("div", { slot: "content" }, h("instant-apps-filter-list", { autoUpdateUrl: false, closeBtn: true, closeBtnOnClick: async () => this._closeFilter(), comboboxOverlayPositioning: "fixed", layerExpressions: this._layerExpressions, onFilterListReset: () => this._handleFilterListReset(), onFilterUpdate: () => void this._layerTable?.filterUpdate(), ref: (el) => this._filterList = el, view: this._mapView, zoomBtn: false }))));
545
+ }
546
+ /**
547
+ * Store any filters for the current layer.
548
+ * Should only occur on layer change
549
+ *
550
+ * @protected
551
+ */
552
+ _initLayerExpressions() {
553
+ const layerExpressions = this._mapInfo?.filterConfig?.layerExpressions;
554
+ this._layerExpressions = layerExpressions ? layerExpressions.filter((exp) => exp.id === this._layer?.id) : [];
555
+ this._filterList.layerExpressions = this._layerExpressions;
556
+ this._layerExpressions.filter(lyrExp => {
557
+ return lyrExp.expressions.filter(exp => exp.active).length > 0;
558
+ }).length > 0;
559
+ }
560
+ /**
561
+ * Toggle the filter modal
562
+ *
563
+ * @protected
564
+ */
565
+ _toggleFilter() {
566
+ this._filterOpen = !this._filterOpen;
567
+ }
568
+ /**
569
+ * Reset the filter active prop
570
+ *
571
+ * @protected
572
+ */
573
+ _handleFilterListReset() {
574
+ void this._layerTable.filterReset();
575
+ }
576
+ /**
577
+ * Close the filter modal
578
+ *
579
+ * @protected
580
+ */
581
+ async _closeFilter() {
582
+ if (this._filterOpen) {
583
+ this._filterOpen = false;
584
+ void this._layerTable.closeFilter();
585
+ }
513
586
  }
514
587
  /**
515
588
  * Update the component layout when its size changes
589
+ *
590
+ * @protected
516
591
  */
517
592
  _onResize() {
518
593
  const isMobile = this.el.offsetWidth < 1024;
@@ -529,22 +604,67 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
529
604
  /**
530
605
  * Open/Close the appropriate panel.
531
606
  * The panel that is toggled is dependent upon the layout mode and if using classic grid or not
607
+ *
608
+ * @protected
532
609
  */
533
610
  _toggleLayout() {
534
611
  this._panelOpen = !this._panelOpen;
535
612
  }
613
+ /**
614
+ * Changes the layout mode
615
+ * @param appLayout selected active app layout
616
+ *
617
+ * @protected
618
+ */
619
+ _changeLayout(appLayout) {
620
+ if (this.appLayout !== appLayout) {
621
+ this._setActiveLayout(appLayout);
622
+ this.appLayout = appLayout;
623
+ if (this._isMapViewOnLoad) {
624
+ void this._layerTable.refresh();
625
+ this._isMapViewOnLoad = false;
626
+ }
627
+ }
628
+ }
629
+ /**
630
+ * shows the map in card view
631
+ *
632
+ * @protected
633
+ */
634
+ _showMapInCardView() {
635
+ if (this.appLayout === 'mapView') {
636
+ const fullMapView = document.getElementById('full-map-view').childNodes[0];
637
+ const splitMapClass = document.getElementById('card-mapView');
638
+ if (fullMapView) {
639
+ splitMapClass.appendChild(fullMapView);
640
+ }
641
+ }
642
+ }
643
+ /**
644
+ * Shows the map in full view
645
+ *
646
+ * @protected
647
+ */
648
+ _showMapInFullView() {
649
+ const splitMap = document.getElementById('card-mapView').childNodes[0];
650
+ const fullMapViewClass = document.getElementById('full-map-view');
651
+ if (splitMap) {
652
+ fullMapViewClass.appendChild(splitMap);
653
+ }
654
+ }
536
655
  /**
537
656
  * Show/Hide the map, popup, and table
538
657
  *
539
658
  * @param show when true the map, popup, and table will be displayed
659
+ * @protected
540
660
  */
541
661
  showHideMapPopupAndTable(show) {
542
- this._expandPopup = false;
543
662
  this._hideTable = show;
544
663
  this._hideFooter = show;
545
664
  }
546
665
  /**
547
666
  * Get the current map info (configuration details) when maps change
667
+ * @param id map changed id
548
668
  *
549
669
  * @returns IMapInfo for the provided id
550
670
  * @protected
@@ -652,7 +772,6 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
652
772
  "theme": [1],
653
773
  "zoomAndScrollToSelected": [4, "zoom-and-scroll-to-selected"],
654
774
  "zoomToScale": [2, "zoom-to-scale"],
655
- "_expandPopup": [32],
656
775
  "_hideFooter": [32],
657
776
  "_hideTable": [32],
658
777
  "_isMobile": [32],
@@ -663,8 +782,8 @@ const CrowdsourceManager$1 = /*@__PURE__*/ proxyCustomElement(class CrowdsourceM
663
782
  "_mapView": [32],
664
783
  "_panelOpen": [32],
665
784
  "_numSelected": [32],
666
- "_tableOnly": [32]
667
- }, [[8, "featureSelectionChange", "featureSelectionChange"], [8, "popupClosed", "popupClosed"], [8, "idsFound", "idsFound"], [8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"], [8, "beforeMapChanged", "beforeMapChanged"], [8, "layerSelectionChange", "layerSelectionChange"], [8, "mapInfoChange", "mapInfoChange"]], {
785
+ "_filterOpen": [32]
786
+ }, [[8, "featureSelectionChange", "featureSelectionChange"], [8, "popupClosed", "popupClosed"], [8, "layoutChanged", "layoutChanged"], [8, "mapChanged", "mapChanged"], [8, "layerSelectionChange", "layerSelectionChange"], [8, "mapInfoChange", "mapInfoChange"]], {
668
787
  "enableZoom": ["enableZoomWatchHandler"],
669
788
  "hideMapOnLoad": ["hideMapOnLoadWatchHandler"]
670
789
  }]);
@@ -68,9 +68,10 @@ const InstantAppsControlPanel$1 = /*@__PURE__*/ proxyCustomElement(class Instant
68
68
  };
69
69
  }
70
70
  _getExpand(component) {
71
+ var _a;
71
72
  const { view } = this;
72
73
  const { content } = component;
73
- const expanded = false;
74
+ const expanded = (_a = component === null || component === void 0 ? void 0 : component.expanded) !== null && _a !== void 0 ? _a : false;
74
75
  return new this.Expand({ content, view, expanded, mode: MODE, group: GROUP });
75
76
  }
76
77
  _getComponentsNode() {
@@ -3,7 +3,7 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { proxyCustomElement, HTMLElement as HTMLElement$1, h as h$2, Host, Fragment } from '@stencil/core/internal/client';
6
+ import { proxyCustomElement, HTMLElement as HTMLElement$1, h as h$2, Host } from '@stencil/core/internal/client';
7
7
  import { c as createStore } from './index2.js';
8
8
  import { l as loadModules } from './loadModules2.js';
9
9
  import { g as getMessages } from './locale3.js';
@@ -21,6 +21,8 @@ const { state, onChange } = createStore({
21
21
  timeInfoItems: [],
22
22
  selectedTimeInfoItem: null,
23
23
  loading: true,
24
+ timeSliderConfig: {},
25
+ autoPlay: false,
24
26
  });
25
27
 
26
28
  /*
@@ -239,8 +241,8 @@ class InstantAppsTimeFilterViewModel {
239
241
  'esri/core/Handles',
240
242
  'esri/core/reactiveUtils',
241
243
  'esri/widgets/TimeSlider',
242
- 'esri/TimeExtent',
243
- 'esri/TimeInterval',
244
+ 'esri/time/TimeExtent',
245
+ 'esri/time/TimeInterval',
244
246
  'esri/layers/support/FeatureFilter',
245
247
  'esri/layers/support/FeatureEffect',
246
248
  ]);
@@ -255,8 +257,11 @@ class InstantAppsTimeFilterViewModel {
255
257
  catch (_a) { }
256
258
  }
257
259
  async init(timeSliderRef) {
260
+ var _a, _b;
258
261
  if (timeSliderRef)
259
262
  timeSliderRef.innerHTML = '';
263
+ if (((_b = (_a = state === null || state === void 0 ? void 0 : state.timeSlider) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.state) === 'playing')
264
+ state.timeSlider.stop();
260
265
  const { view, timeInfoConfigItems } = state;
261
266
  if (!view)
262
267
  return;
@@ -268,7 +273,7 @@ class InstantAppsTimeFilterViewModel {
268
273
  this.setupFilterModeWatcher();
269
274
  return Promise.resolve();
270
275
  }
271
- catch (_a) { }
276
+ catch (_c) { }
272
277
  }
273
278
  destroy() {
274
279
  var _a, _b;
@@ -313,6 +318,8 @@ class InstantAppsTimeFilterViewModel {
313
318
  state.selectedTimeInfoItem = initialTimeInfoItem;
314
319
  const config = this.getTimeSliderConfig(timeSliderRef);
315
320
  state.timeSlider = new TimeSlider(config);
321
+ if (state.autoPlay)
322
+ state.timeSlider.play();
316
323
  if (((_b = state.view) === null || _b === void 0 ? void 0 : _b.type) === '2d')
317
324
  this.initialize2DView();
318
325
  }
@@ -327,23 +334,16 @@ class InstantAppsTimeFilterViewModel {
327
334
  var _a;
328
335
  const [{ timeExtent, rangeStart, rangeEnd, unit }] = state.timeInfoItems;
329
336
  const { TimeExtent, TimeInterval } = this;
330
- return {
331
- container: timeSliderRef,
332
- fullTimeExtent: timeExtent,
333
- timeExtent: new TimeExtent({
337
+ const config = Object.assign({ container: timeSliderRef, fullTimeExtent: timeExtent, timeExtent: new TimeExtent({
334
338
  start: rangeStart,
335
339
  end: rangeEnd,
336
- }),
337
- mode: 'time-window',
338
- loop: true,
339
- stops: {
340
+ }), mode: 'time-window', stops: {
340
341
  interval: new TimeInterval({
341
342
  unit,
342
343
  value: 1,
343
344
  }),
344
- },
345
- view: ((_a = state.view) === null || _a === void 0 ? void 0 : _a.type) === '3d' ? state.view : null,
346
- };
345
+ }, view: ((_a = state.view) === null || _a === void 0 ? void 0 : _a.type) === '3d' ? state.view : null }, state.timeSliderConfig);
346
+ return config;
347
347
  }
348
348
  initialize2DView() {
349
349
  state.timeInfoItems.forEach(timeInfoItem => this.applyTimeExtent(timeInfoItem.layerView, new this.TimeExtent({ start: timeInfoItem.rangeStart, end: timeInfoItem.rangeEnd })));
@@ -451,6 +451,8 @@ const InstantAppsTimeFilter$1 = /*@__PURE__*/ proxyCustomElement(class InstantAp
451
451
  this.timeInfoConfigItems = [];
452
452
  this.filterMode = undefined;
453
453
  this.view = undefined;
454
+ this.timeSliderConfig = undefined;
455
+ this.autoPlay = false;
454
456
  }
455
457
  async updateTimeInfoConfigItems() {
456
458
  state.timeInfoConfigItems = this.timeInfoConfigItems;
@@ -459,10 +461,28 @@ const InstantAppsTimeFilter$1 = /*@__PURE__*/ proxyCustomElement(class InstantAp
459
461
  async updateFilterMode() {
460
462
  state.filterMode = this.filterMode;
461
463
  }
464
+ async updateTimeSliderConfig() {
465
+ state.timeSliderConfig = this.timeSliderConfig;
466
+ await viewModel.init(this.timeSliderRef);
467
+ }
468
+ async updateAutoPlay() {
469
+ state.autoPlay = this.autoPlay;
470
+ if (state.timeSlider) {
471
+ if (state.autoPlay) {
472
+ state.timeSlider.play();
473
+ }
474
+ else {
475
+ state.timeSlider.stop();
476
+ }
477
+ }
478
+ }
462
479
  async componentWillLoad() {
463
480
  try {
464
481
  state.view = this.view;
465
482
  state.timeInfoConfigItems = this.timeInfoConfigItems;
483
+ state.autoPlay = !!this.autoPlay;
484
+ if (this.timeSliderConfig)
485
+ state.timeSliderConfig = this.timeSliderConfig;
466
486
  if (this.filterMode)
467
487
  state.filterMode = this.filterMode;
468
488
  await getMessages(this);
@@ -483,17 +503,14 @@ const InstantAppsTimeFilter$1 = /*@__PURE__*/ proxyCustomElement(class InstantAp
483
503
  viewModel.destroy();
484
504
  }
485
505
  render() {
486
- return h$2(Host, { key: 'bf0887f83b19239ce1b81efad5c356c7edc05ba1' }, this._renderBase());
506
+ return h$2(Host, { key: '38a0569dba42d51846760bf75df36ee1c88d71b1' }, this._renderBase());
487
507
  }
488
508
  _renderBase() {
489
- return (h$2("div", { class: `${CSS.base}${this.view.type !== '2d' ? CSS.threeD : ''}` }, this._renderLoader(), this._renderMain()));
490
- }
491
- _renderMain() {
492
- return (h$2(Fragment, null, this.view.type === '2d' && this._renderTopEl(), h$2("div", { ref: (ref) => (this.timeSliderRef = ref) })));
509
+ return (h$2("div", { class: `${CSS.base}${this.view.type !== '2d' ? CSS.threeD : ''}` }, this._renderLoader(), this.view.type === '2d' && this._renderTopEl(), h$2("div", { key: "time-slider", ref: (ref) => (this.timeSliderRef = ref) })));
493
510
  }
494
511
  _renderLoader() {
495
512
  var _a, _b;
496
- return (state.loading && (h$2(Fragment, null, h$2("div", { class: CSS.background }), h$2("div", { class: CSS.loadingContainer }, h$2("calcite-loader", { scale: "m", label: (_a = this.messages) === null || _a === void 0 ? void 0 : _a.loading, text: (_b = this.messages) === null || _b === void 0 ? void 0 : _b.loading })))));
513
+ return (state.loading && (h$2("div", null, h$2("div", { class: CSS.background }), h$2("div", { class: CSS.loadingContainer }, h$2("calcite-loader", { scale: "m", label: (_a = this.messages) === null || _a === void 0 ? void 0 : _a.loading, text: (_b = this.messages) === null || _b === void 0 ? void 0 : _b.loading })))));
497
514
  }
498
515
  _renderTopEl() {
499
516
  const moreThanOneTimeLayer = this.timeInfoConfigItems.length > 1;
@@ -523,17 +540,23 @@ const InstantAppsTimeFilter$1 = /*@__PURE__*/ proxyCustomElement(class InstantAp
523
540
  get el() { return this; }
524
541
  static get watchers() { return {
525
542
  "timeInfoConfigItems": ["updateTimeInfoConfigItems"],
526
- "filterMode": ["updateFilterMode"]
543
+ "filterMode": ["updateFilterMode"],
544
+ "timeSliderConfig": ["updateTimeSliderConfig"],
545
+ "autoPlay": ["updateAutoPlay"]
527
546
  }; }
528
547
  static get style() { return InstantAppsTimeFilterStyle0; }
529
548
  }, [0, "instant-apps-time-filter", {
530
549
  "timeInfoConfigItems": [16],
531
550
  "filterMode": [16],
532
551
  "view": [16],
552
+ "timeSliderConfig": [16],
553
+ "autoPlay": [4, "auto-play"],
533
554
  "timeSliderRef": [32]
534
555
  }, undefined, {
535
556
  "timeInfoConfigItems": ["updateTimeInfoConfigItems"],
536
- "filterMode": ["updateFilterMode"]
557
+ "filterMode": ["updateFilterMode"],
558
+ "timeSliderConfig": ["updateTimeSliderConfig"],
559
+ "autoPlay": ["updateAutoPlay"]
537
560
  }]);
538
561
  function defineCustomElement$1() {
539
562
  if (typeof customElements === "undefined") {