@esri/solutions-components 0.6.28 → 0.6.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. package/dist/cjs/basemap-gallery_7.cjs.entry.js +2 -2
  2. package/dist/cjs/calcite-alert_3.cjs.entry.js +3 -3
  3. package/dist/cjs/calcite-combobox_6.cjs.entry.js +2 -2
  4. package/dist/cjs/card-manager_3.cjs.entry.js +333 -11
  5. package/dist/cjs/crowdsource-manager.cjs.entry.js +4 -4
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/solutions-components.cjs.js +1 -1
  8. package/dist/collection/components/basemap-gallery/basemap-gallery.js +2 -2
  9. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +0 -4
  10. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +3 -3
  11. package/dist/collection/components/edit-card/edit-card.css +9 -0
  12. package/dist/collection/components/edit-card/edit-card.js +2 -2
  13. package/dist/collection/components/layer-table/layer-table.css +6 -2
  14. package/dist/collection/components/layer-table/layer-table.js +337 -10
  15. package/dist/collection/components/map-layer-picker/map-layer-picker.js +2 -2
  16. package/dist/collection/utils/interfaces.ts +14 -0
  17. package/dist/components/basemap-gallery2.js +2 -2
  18. package/dist/components/crowdsource-manager.js +4 -4
  19. package/dist/components/edit-card2.js +3 -3
  20. package/dist/components/layer-table2.js +336 -11
  21. package/dist/components/map-layer-picker2.js +2 -2
  22. package/dist/esm/basemap-gallery_7.entry.js +2 -2
  23. package/dist/esm/calcite-alert_3.entry.js +3 -3
  24. package/dist/esm/calcite-combobox_6.entry.js +2 -2
  25. package/dist/esm/card-manager_3.entry.js +333 -11
  26. package/dist/esm/crowdsource-manager.entry.js +4 -4
  27. package/dist/esm/loader.js +1 -1
  28. package/dist/esm/solutions-components.js +1 -1
  29. package/dist/solutions-components/{p-5e446b18.entry.js → p-190c83b9.entry.js} +1 -1
  30. package/dist/solutions-components/{p-f8687049.entry.js → p-33fa9891.entry.js} +2 -2
  31. package/dist/solutions-components/p-3c702004.entry.js +6 -0
  32. package/dist/solutions-components/p-d44ad6c4.entry.js +6 -0
  33. package/dist/solutions-components/p-f2dcb05a.entry.js +6 -0
  34. package/dist/solutions-components/solutions-components.esm.js +1 -1
  35. package/dist/solutions-components/utils/interfaces.ts +14 -0
  36. package/dist/types/components/layer-table/layer-table.d.ts +140 -4
  37. package/dist/types/utils/interfaces.d.ts +12 -0
  38. package/package.json +1 -1
  39. package/dist/solutions-components/p-25729b41.entry.js +0 -6
  40. package/dist/solutions-components/p-cd7873ae.entry.js +0 -6
  41. package/dist/solutions-components/p-ea238bbc.entry.js +0 -6
@@ -16,7 +16,7 @@
16
16
  /// <reference types="arcgis-js-api" />
17
17
  import { EventEmitter, VNode } from "../../stencil-public-runtime";
18
18
  import LayerTable_T9n from "../../assets/t9n/layer-table/resources.json";
19
- import { IMapClick, IMapInfo } from "../../utils/interfaces";
19
+ import { IMapClick, IMapInfo, IToolInfo, IToolSizeInfo } from "../../utils/interfaces";
20
20
  export declare class LayerTable {
21
21
  el: HTMLCrowdsourceManagerElement;
22
22
  /**
@@ -55,6 +55,10 @@ export declare class LayerTable {
55
55
  * boolean: When true the user will be asked to confirm the delete operation
56
56
  */
57
57
  _confirmDelete: boolean;
58
+ /**
59
+ * IToolSizeInfo[]: The controls that currently fit based on toolbar size
60
+ */
61
+ _controlsThatFit: IToolSizeInfo[];
58
62
  /**
59
63
  * boolean: When true a loading indicator will be shown in place of the layer table
60
64
  */
@@ -96,6 +100,10 @@ export declare class LayerTable {
96
100
  * boolean: When false alerts will be shown to indicate that the layer must have editing enabled for edit actions
97
101
  */
98
102
  protected _editEnabled: boolean;
103
+ /**
104
+ * IToolSizeInfo[]: The default list of tool size info for tools that should display outside of the dropdown
105
+ */
106
+ protected _defaultVisibleToolSizeInfos: IToolSizeInfo[];
99
107
  /**
100
108
  * boolean: When false alerts will be shown to indicate that the layer must have delete and editing enabled
101
109
  */
@@ -108,6 +116,10 @@ export declare class LayerTable {
108
116
  * esri/core/reactiveUtils: https://developers.arcgis.com/javascript/latest/api-reference/esri-core-reactiveUtils.html
109
117
  */
110
118
  protected reactiveUtils: typeof import("esri/core/reactiveUtils");
119
+ /**
120
+ * ResizeObserver: The observer that watches for toolbar size changes
121
+ */
122
+ protected _resizeObserver: ResizeObserver;
111
123
  /**
112
124
  * HTMLCalciteCheckboxElement: Element to force selection of all records
113
125
  */
@@ -124,6 +136,26 @@ export declare class LayerTable {
124
136
  * bool: When true the table is being sorted
125
137
  */
126
138
  protected _tableSorting: boolean;
139
+ /**
140
+ * any: Timeout used to limit redundancy for toolbar resizing
141
+ */
142
+ protected _timeout: any;
143
+ /**
144
+ * HTMLDivElement: The toolbars containing node
145
+ */
146
+ protected _toolbar: HTMLDivElement;
147
+ /**
148
+ * IToolSizeInfo[]: Id and Width for the current tools
149
+ */
150
+ protected _toolbarSizeInfos: IToolSizeInfo[];
151
+ /**
152
+ * IToolInfo[]: Key details used for creating the tools
153
+ */
154
+ protected _toolInfos: IToolInfo[];
155
+ /**
156
+ * watch for changes to the list of controls that will currently fit in the display
157
+ */
158
+ _controlsThatFitWatchHandler(): void;
127
159
  /**
128
160
  * watch for changes in map view and get the first layer
129
161
  */
@@ -132,6 +164,10 @@ export declare class LayerTable {
132
164
  * watch for changes in layer view and verify if it has editing enabled
133
165
  */
134
166
  _layerWatchHandler(): Promise<void>;
167
+ /**
168
+ * watch for selection changes
169
+ */
170
+ _selectedIndexesWatchHandler(): Promise<void>;
135
171
  /**
136
172
  * When sortActive is false the user has not defined a sort and we should use the default sort
137
173
  */
@@ -154,7 +190,7 @@ export declare class LayerTable {
154
190
  * Refresh the table when edits are completed
155
191
  *
156
192
  */
157
- editsComplete(): void;
193
+ editsComplete(): Promise<void>;
158
194
  /**
159
195
  * Refresh the table when edits are completed
160
196
  *
@@ -170,6 +206,14 @@ export declare class LayerTable {
170
206
  * Renders the component.
171
207
  */
172
208
  render(): any;
209
+ /**
210
+ * Called once after the component is loaded
211
+ */
212
+ componentDidLoad(): Promise<void>;
213
+ /**
214
+ * Called after the component is rendered
215
+ */
216
+ componentDidRender(): void;
173
217
  /**
174
218
  * Load esri javascript api modules
175
219
  *
@@ -178,6 +222,12 @@ export declare class LayerTable {
178
222
  * @protected
179
223
  */
180
224
  protected _initModules(): Promise<void>;
225
+ /**
226
+ * Update the toolbar when its size changes
227
+ *
228
+ * @returns void
229
+ */
230
+ protected _onResize(): void;
181
231
  /**
182
232
  * Gets a row of controls that can be used for various interactions with the table
183
233
  *
@@ -186,6 +236,73 @@ export declare class LayerTable {
186
236
  * @returns The dom node that contains the controls
187
237
  */
188
238
  protected _getTableControlRow(slot?: string): VNode;
239
+ /**
240
+ * Gets a row of controls that can be used for various interactions with the table
241
+ *
242
+ * @param slot string optional slot to display the control within
243
+ *
244
+ * @returns The dom node that contains the controls
245
+ */
246
+ protected _getActionBar(): VNode;
247
+ /**
248
+ * Get the actions that are used for various interactions with the table
249
+ *
250
+ * @returns VNode[] the action nodes
251
+ */
252
+ protected _getActions(): VNode[];
253
+ /**
254
+ * Update actions enabled prop based on number of selected indexes
255
+ *
256
+ * @returns void
257
+ */
258
+ _validateEnabledActions(): void;
259
+ /**
260
+ * Get the full list of toolInfos.
261
+ * Order is important. They should be listed in the order they should display in the UI from
262
+ * Left to Right for the action bar and Top to Bottom for the dropdown.
263
+ *
264
+ * @returns void
265
+ */
266
+ protected _initToolInfos(): void;
267
+ /**
268
+ * Add/Remove tools from the action bar and dropdown based on available size
269
+ *
270
+ * @returns void
271
+ */
272
+ protected _updateToolbar(): void;
273
+ /**
274
+ * Validate if controls that fit the current display has changed or
275
+ * is different from what is currently displayed
276
+ *
277
+ * @returns void
278
+ */
279
+ _setControlsThatFit(controlsThatFit: IToolSizeInfo[], skipControls: string[]): void;
280
+ /**
281
+ * Get the id and size for the toolbars current items
282
+ *
283
+ * @returns void
284
+ */
285
+ protected _setToolbarSizeInfos(): void;
286
+ /**
287
+ * Get a list of toolInfos that should display outside of the dropdown
288
+ *
289
+ * @returns IToolInfo[] the list of toolInfos that should not display in the overflow dropdown
290
+ */
291
+ protected _getActionItems(): IToolInfo[];
292
+ /**
293
+ * Get a list of toolInfos that should display in the dropdown
294
+ *
295
+ * @param id string the id for the dropdown and its tooltip
296
+ *
297
+ * @returns VNode the dropdown node
298
+ */
299
+ protected _getDropdown(id: string): VNode;
300
+ /**
301
+ * Get a list of toolInfos that should display in the dropdown
302
+ *
303
+ * @returns IToolInfo[] the list of toolInfos that should display in the dropdown
304
+ */
305
+ protected _getDropdownItems(): IToolInfo[];
189
306
  /**
190
307
  * Get an action and tooltip
191
308
  *
@@ -196,7 +313,26 @@ export declare class LayerTable {
196
313
  *
197
314
  * @returns VNode The node representing the DOM element that will contain the action
198
315
  */
199
- private _getAction;
316
+ protected _getAction(icon: string, label: string, func: any, disabled: boolean): VNode;
317
+ /**
318
+ * Get a tooltip
319
+ *
320
+ * @param label string accessible name for the component
321
+ * @param placement string where the tooltip should display
322
+ * @param referenceElement string the element the tooltip will be associated with
323
+ * @param text string the text to display in the tooltip
324
+ *
325
+ * @returns VNode The tooltip node
326
+ */
327
+ protected _getToolTip(label: string, placement: string, referenceElement: string, text: string): VNode;
328
+ /**
329
+ * Get an id with a prefix to the user supplied value
330
+ *
331
+ * @param id the unique value for the id
332
+ *
333
+ * @returns the new id with the prefix value
334
+ */
335
+ protected _getId(id: string): string;
200
336
  /**
201
337
  * Get an action with danger color icon and text
202
338
  *
@@ -311,7 +447,7 @@ export declare class LayerTable {
311
447
  *
312
448
  * @returns void
313
449
  */
314
- protected _refresh(): void;
450
+ protected _refresh(): Promise<void>;
315
451
  /**
316
452
  * Zoom to all selected features
317
453
  *
@@ -413,3 +413,15 @@ export interface IBasemapConfig {
413
413
  basemapIdsToFilter: string[];
414
414
  basemapGroupId: string;
415
415
  }
416
+ export interface IToolInfo {
417
+ icon: string;
418
+ func: any;
419
+ label: string;
420
+ disabled: boolean;
421
+ isDanger?: boolean;
422
+ isOverflow: boolean;
423
+ }
424
+ export interface IToolSizeInfo {
425
+ id: string;
426
+ width: number;
427
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/solutions-components",
3
- "version": "0.6.28",
3
+ "version": "0.6.31",
4
4
  "description": "Web Components for Esri's Solutions Applications",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1,6 +0,0 @@
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
- import{r as t,h as i,H as e,g as s}from"./p-91c78d98.js";import{g as h}from"./p-99d8a839.js";import{E as l}from"./p-2a58e378.js";import"./p-e1a4994d.js";const a=class{constructor(i){t(this,i),this._shouldSetMapView=!1,this.classicGrid=!1,this.enableAutoRefresh=!0,this.enableCSV=!0,this.enableFloorFilter=!0,this.enableFullscreen=!0,this.enableInlineEdit=!1,this.enableLegend=!0,this.enableSearch=!0,this.enableHome=!0,this.enableZoom=!0,this.enableBasemap=!0,this.basemapConfig=void 0,this.showNewestFirst=!0,this.hideMap=!1,this.mapInfos=[],this.onlyShowUpdatableLayers=!0,this.searchConfiguration=void 0,this.theme="light",this.zoomAndScrollToSelected=!1,this._expandPopup=!1,this._translations=void 0,this._layoutMode=l.GRID,this._mapView=void 0,this._panelOpen=!0}async layoutChanged(t){this._layoutMode=t.detail}async mapChanged(t){this._mapChange=t.detail,await this._mapChange.mapView.when((()=>{this._setMapView()}))}async beforeMapChanged(){this._expandPopup&&(this._shouldSetMapView=!0,this._expandPopup=!1)}async componentWillLoad(){await this._getTranslations()}render(){return i(e,null,i("calcite-shell",{class:"position-relative"},i("calcite-panel",{class:"width-full height-full"},this._getBody(this._layoutMode,this._panelOpen,this.hideMap))))}componentDidRender(){this._shouldSetMapView&&(this._shouldSetMapView=!1,this._setMapView())}_getDividerIcon(t,i){let e="";switch(t){case l.HORIZONTAL:e=this.classicGrid?i?"chevrons-down":"chevrons-up":i?"chevrons-up":"chevrons-down";break;case l.VERTICAL:e=this.classicGrid?i?"chevrons-right":"chevrons-left":i?"chevrons-left":"chevrons-right";break;case l.GRID:e=this.classicGrid?i?"chevrons-up":"chevrons-down":i?"chevrons-left":"chevrons-right"}return e}_getMapSizeClass(t,i){let e="";switch(t){case l.HORIZONTAL:e=(i?"height-1-2":"height-0")+" width-full position-relative";break;case l.GRID:e=this.classicGrid?(i?"position-relative":"position-absolute-53")+" height-full width-full display-flex":"height-full position-relative "+(i?"width-1-3":"width-0");break;case l.VERTICAL:e="height-full position-relative "+(i?"width-1-2":"width-0")}return e}_getTableSizeClass(t,i){let e="";switch(t){case l.HORIZONTAL:e=(i?"height-1-2":"height-full")+" width-full display-flex flex-column";break;case l.GRID:e=this.classicGrid?(i?"height-full":"height-53")+" position-relative width-full display-flex":(i?"width-2-3":"width-full")+" height-full display-flex";break;case l.VERTICAL:e=(i?"width-1-2":"width-full")+" height-full display-flex"}return e}_getBody(t,e,s){const h=this.classicGrid&&t===l.GRID&&e?"display-grid":t===l.HORIZONTAL?"":"display-flex";return i("calcite-panel",{class:"width-full height-full"},this.classicGrid?i("div",{class:`width-full height-full ${h}`},this._getTable(t,e),this._getMapAndCard(t,e,s)):i("div",{class:`width-full height-full ${h}`},this._getMapAndCard(t,e,s),this._getTable(t,e)))}_getMapAndCard(t,e,s){const h=this._getMapSizeClass(t,e);return this.classicGrid?i("div",{class:`${h} overflow-hidden`},this._getCardNode(),this._getMapNode(t,s)):i("div",{class:`${h} overflow-hidden`},this._getMapNode(t,s),this._getPopupExpandNode())}_getMapNode(t,e){var s,h;return i("div",{class:`${this.classicGrid&&t===l.GRID?"width-full":this._expandPopup?"height-50-px":"adjusted-height-50"} overflow-hidden ${this.classicGrid&&t===l.GRID?"display-flex height-full width-1-2":t!==l.GRID||e?"display-none":""}`},i("map-card",{basemapConfig:this.basemapConfig,class:"width-full",enableBasemap:this.enableBasemap,enableFloorFilter:this.enableFloorFilter&&(null===(h=null===(s=this._mapView)||void 0===s?void 0:s.map)||void 0===h?void 0:h.floorInfo),enableFullscreen:this.enableFullscreen,enableLegend:this.enableLegend,enableSearch:this.enableSearch,mapInfos:this.mapInfos.filter((t=>!1!==t.visible))}))}_getPopupExpandNode(){const t=this._expandPopup?"chevrons-down":"chevrons-up",e="expand-popup",s=this._expandPopup?this._translations.collapsePopup:this._translations.expandPopup,h="dark"===this.theme?"calcite-mode-dark":"calcite-mode-light";return i("div",{class:"calcite-mode-dark height-full"},i("calcite-panel",null,i("div",{class:"display-flex align-items-center",slot:"header-content"},i("calcite-icon",{icon:"information",scale:"s"}),i("div",{class:"padding-inline-start-75"},this._translations.information)),i("calcite-action",{class:"height-49-px",icon:t,id:e,onClick:()=>this._togglePopup(),slot:"header-actions-end"}),i("calcite-tooltip",{class:h,label:"",placement:"bottom","reference-element":e},i("span",null,s)),this._getCardNode()))}_togglePopup(){this._expandPopup=!this._expandPopup}_getCardNode(){return i("div",{class:`${this._expandPopup?"width-50 adjusted-height-100-50":"width-50 height-full"} ${"dark"===this.theme?"calcite-mode-dark":"calcite-mode-light"}`},i("card-manager",{class:(this._expandPopup?"height-full":"height-50")+" width-full",mapView:null==this?void 0:this._mapView,zoomAndScrollToSelected:this.zoomAndScrollToSelected}))}_getTable(t,e){const s=this._getTableSizeClass(t,e),h=this._getDividerIcon(t,e),a=e?this._translations.close:this._translations.open,o="toggle-layout";return i("calcite-shell",{class:s+" border-bottom"},i("calcite-action-bar",{class:"border-sides",expandDisabled:!0,layout:t===l.HORIZONTAL||this.classicGrid?"horizontal":"vertical",slot:this.classicGrid&&t!==l.VERTICAL?"footer":this.classicGrid&&t===l.VERTICAL?"panel-end":t===l.HORIZONTAL?"header":"panel-start"},i("calcite-action",{class:"toggle-node",icon:h,id:o,onClick:()=>this._toggleLayout(),text:""}),i("calcite-tooltip",{label:a,placement:"bottom","reference-element":o},i("span",null,a))),i("div",{class:"width-full height-full position-relative"},i("layer-table",{enableAutoRefresh:this.enableAutoRefresh,enableCSV:this.enableCSV,enableInlineEdit:this.enableInlineEdit,mapInfo:this._mapInfo,mapView:null==this?void 0:this._mapView,onlyShowUpdatableLayers:this.onlyShowUpdatableLayers,showNewestFirst:this.showNewestFirst,zoomAndScrollToSelected:this.zoomAndScrollToSelected})))}_toggleLayout(){this._panelOpen=!this._panelOpen}_getMapInfo(t){let i;return this.mapInfos.some((e=>{if(e.id===t)return i=e,!0})),i}_setMapView(){this._mapInfo=this._getMapInfo(this._mapChange.id),this._mapView=this._mapChange.mapView,this._mapView.popupEnabled=!1}async _getTranslations(){const t=await h(this.el);this._translations=t[0]}get el(){return s(this)}};a.style=":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-ui-foreground-1)}.padding-1-2{padding:0.5rem}.display-flex{display:flex}.width-full{width:100%}.width-1-2{position:relative;width:50%}.width-1-3{position:relative;width:33.33%}.width-2-3{position:relative;width:66.66%}.width-0{width:0}.height-full{height:100%}.height-1-2{position:relative;height:50%}.height-0{height:0}.toggle-node{width:51px;height:51px}.overflow-hidden{overflow:hidden}.flex-column{flex-direction:column}.border{border:1px solid var(--calcite-ui-border-3)}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-3)}.border-sides{border-left:1px solid var(--calcite-ui-border-3);border-right:1px solid var(--calcite-ui-border-3)}.position-relative{position:relative}.height-50{height:50%}.adjusted-height-50{height:calc(50% - 25px)}.adjusted-height-100{height:calc(100% - 50px)}.adjusted-height-100-50{height:calc(100% - 50px)}.display-none{display:none}.height-53{height:53px}.position-absolute-53{position:absolute;top:53px}.display-grid{display:grid}.height-49-px{height:49px}.height-50-px{height:50px}.padding-inline-start-75{padding-inline-start:0.75rem}.align-items-center{align-items:center}.esri-floor-filter__close-levels-button{width:40px !important;height:40px !important}.esri-floor-filter__level-button{width:40px !important;height:40px !important}.esri-floor-filter__browse-button{width:40px !important;height:40px !important}";export{a as crowdsource_manager}
@@ -1,6 +0,0 @@
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
- import{r as t,h as i,H as s,g as e,c as a}from"./p-91c78d98.js";import{g as h}from"./p-99d8a839.js";import{q as l,a as o,g as n,b as d}from"./p-53bc5fc1.js";import{l as c}from"./p-05948b48.js";import{d as r}from"./p-37a58e04.js";import"./p-e1a4994d.js";import"./p-2a58e378.js";import"./p-ecc95259.js";const p=class{constructor(i){t(this,i),this.layer=void 0,this.mapView=void 0,this.zoomAndScrollToSelected=void 0,this._cardLoading=!1,this._graphics=void 0,this._translations=void 0}async featureSelectionChange(t){const i=t.detail;this._cardLoading=!0;const s=i.length>0?await l(i,this.layer,[],!1,this.mapView.spatialReference):[];this._graphics=s.sort(((t,s)=>i.indexOf(t.getObjectId())-i.indexOf(s.getObjectId()))),this._cardLoading=!1}async layerSelectionChange(t){const i=t.detail[0];this.layer=await o(this.mapView,i)}async componentWillLoad(){await this._getTranslations()}render(){var t,e;const a=(null===(t=this._graphics)||void 0===t?void 0:t.length)>0?"":"display-none",h=(null===(e=this._graphics)||void 0===e?void 0:e.length)>0?"display-none":"";return i(s,null,i("div",{class:"overflow-auto height-full"},i("calcite-shell",{class:"position-relative "+a},i("div",null,i("info-card",{graphics:this._graphics,isLoading:this._cardLoading,mapView:this.mapView,zoomAndScrollToSelected:this.zoomAndScrollToSelected}))),i("calcite-shell",{class:"position-relative "+h},i("div",{class:"padding-1"},i("calcite-notice",{icon:"table",open:!0},i("div",{slot:"message"},this._translations.selectFeaturesToStart))))))}async _getTranslations(){const t=await h(this.el);this._translations=t[0]}get el(){return e(this)}};p.style=":host{display:block !important}.display-flex{display:flex}.display-none{display:none}.w-100{width:100%}.padding-bottom-1{padding-bottom:1rem}.padding-1{padding:1rem}.position-relative{position:relative}.focus-margin{margin:1px 1px 0px 1px}.overflow-auto{overflow:auto}.height-full{height:100%}card-manager{display:block}";const v=class{constructor(i){t(this,i),this.featureSelectionChange=a(this,"featureSelectionChange",7),this.openFilterOptions=a(this,"openFilterOptions",7),this._allIds=[],this._tableSorting=!1,this.onTableNodeCreate=t=>{this._tableNode=t},this.enableAutoRefresh=void 0,this.enableCSV=void 0,this.enableInlineEdit=void 0,this.mapInfo=void 0,this.mapView=void 0,this.onlyShowUpdatableLayers=void 0,this.showNewestFirst=void 0,this.zoomAndScrollToSelected=void 0,this._confirmDelete=!1,this._fetchingData=!1,this._isDeleting=!1,this._layer=void 0,this._selectedIndexes=[],this._showOnlySelected=!1,this._sortActive=!1,this._translations=void 0}async mapViewWatchHandler(){this._mapClickHandle&&this._mapClickHandle.remove(),this.mapView&&(this._mapClickHandle=this.reactiveUtils.on((()=>this.mapView),"click",(t=>{this._mapClicked(t)})))}async _layerWatchHandler(){this._fetchingData=!0,await this._resetTable(),this._fetchingData=!1}async _sortActiveWatchHandler(){this._sortActive||await this._sortTable()}async selectionChanged(t){if(this.zoomAndScrollToSelected){const i=t.detail,s=i.getObjectId(),e=this._table.viewModel.getObjectIdIndex(s);this._table.scrollToIndex(e);const a=i.layer;let h;this.mapView.allLayerViews.toArray().some((t=>{if(t.layer.title===a.title&&"feature"===t.layer.type)return h=t,!0})),h&&await n([s],h,this.mapView,!0)}}editsComplete(){this._refresh()}noLayersFound(){this._layer=void 0,this._allIds=[],this._clearSelection()}async componentWillLoad(){await this._getTranslations(),await this._initModules()}render(){const t=this._fetchingData?"display-none":"",e=this._fetchingData?"":"display-none",a=this._allIds.length.toString(),h=this._selectedIndexes.length.toString();return i(s,null,i("calcite-shell",null,this._getTableControlRow("header"),i("div",{class:"height-full-adjusted width-full"},i("calcite-panel",{class:"height-full width-full"},i("calcite-loader",{class:e,label:this._translations.fetchingData,scale:"l"}),i("div",{class:t,ref:this.onTableNodeCreate})),i("div",{class:"bottom-left text-color"},this._translations.recordsSelected.replace("{{total}}",a).replace("{{selected}}",h)))),this._deleteMessage())}async _initModules(){const[t,i]=await c(["esri/widgets/FeatureTable","esri/core/reactiveUtils"]);this.FeatureTable=t,this.reactiveUtils=i}_getTableControlRow(t){var s;const e=this._selectedIndexes.length>0,a="more-table-options";return i("div",{class:"display-flex border-bottom height-51",slot:t},i("calcite-action-bar",{expandDisabled:!0,expanded:!0,layout:"horizontal"},i("div",{class:"border-end"},i("map-layer-picker",{appearance:"transparent",mapView:this.mapView,onLayerSelectionChange:t=>this._layerSelectionChanged(t),onlyShowUpdatableLayers:this.onlyShowUpdatableLayers,placeholderIcon:"layers",scale:"l",showTables:!0,type:"dropdown"})),this._getAction("zoom-to-object",this._translations.zoom,(()=>this._zoom()),!e),(null===(s=this.mapInfo)||void 0===s?void 0:s.filters)?this._getAction("filter",this._translations.filters,(()=>this._filter()),!1):void 0,this._deleteEnabled?this._getDangerAction("trash",this._translations.delete,(()=>this._delete()),!e):void 0,this._getAction("erase",this._translations.clearSelection,(()=>this._clearSelection()),!e),this._getAction("selected-items-filter",this._showOnlySelected?this._translations.showAll:this._translations.showSelected,(()=>this._toggleShowSelected()),!e)),i("calcite-dropdown",{disabled:void 0===this._layer},i("calcite-action",{appearance:"solid",id:a,label:"",slot:"trigger",text:""},i("calcite-button",{appearance:"transparent",iconEnd:"chevron-down",kind:"neutral"},this._translations.more)),i("calcite-dropdown-group",{"selection-mode":"none"},i("calcite-dropdown-item",{iconStart:"list-check-all",onClick:()=>this._selectAll()},this._translations.selectAll),i("calcite-dropdown-item",{iconStart:"compare",onClick:()=>this._switchSelected()},this._translations.switchSelected),i("calcite-dropdown-item",{iconStart:"refresh",onClick:()=>this._refresh()},this._translations.refresh),this.enableCSV?i("calcite-dropdown-item",{iconStart:"export",onClick:()=>{this._exportToCSV()}},this._translations.exportCSV):void 0)),i("calcite-tooltip",{label:"",placement:"bottom","reference-element":a},i("span",null,this._translations.moreOptions)))}_getAction(t,s,e,a){return i("div",{class:"display-flex"},i("calcite-action",{appearance:"solid",disabled:void 0===this._layer||a,icon:t,id:t,label:s,onClick:e,text:s,textEnabled:!0}),i("calcite-tooltip",{label:"",placement:"bottom","reference-element":t},i("span",null,s)))}_getDangerAction(t,s,e,a){return i("div",{class:"display-flex"},i("calcite-action",{appearance:"solid",disabled:void 0===this._layer||a,id:t,onClick:e,text:""},i("calcite-button",{appearance:"transparent",iconStart:t,kind:"danger"},s)),i("calcite-tooltip",{label:"",placement:"bottom","reference-element":t},i("span",null,s)))}async _getTable(t,i){this._layer&&(await this._layer.when((()=>{this._table=new this.FeatureTable({autoRefreshEnabled:this.enableAutoRefresh,layer:this._layer,view:this.mapView,editingEnabled:this._editEnabled&&this.enableInlineEdit,highlightEnabled:!0,multiSortEnabled:!1,visibleElements:{header:!1,menu:!1},tableTemplate:{columnTemplates:i},container:t})})),this._checkEditEnabled(),await this._table.when((()=>{this._table.highlightIds.on("change",(()=>{this._selectedIndexes=this._table.highlightIds.toArray().reverse(),this._showOnlySelected&&(this._selectedIndexes.length>0?this._table.filterBySelection():this._toggleShowSelected()),this.featureSelectionChange.emit(this._selectedIndexes)})),this.reactiveUtils.watch((()=>this._table.activeSortOrders),(t=>{var i,s,e,a;this._sortActive=!!this._layer&&(t.length>0&&"asc"===(null===(i=t[0])||void 0===i?void 0:i.direction)||"desc"===(null===(s=t[0])||void 0===s?void 0:s.direction)||null===(null===(e=t[0])||void 0===e?void 0:e.direction)&&(null===(a=t[0])||void 0===a?void 0:a.fieldName)===this._layer.objectIdField)}))})))}async _resetTable(){this._table&&(this._clearSelection(),this._allIds=[],this.featureSelectionChange.emit(this._selectedIndexes),this._layer?(await this._layer.when((()=>{var t,i;const s=this._getColumnTemplates(this._layer.id,null===(i=null===(t=this._layer)||void 0===t?void 0:t.popupTemplate)||void 0===i?void 0:i.fieldInfos);this._table.layer=this._layer,this._table.tableTemplate.columnTemplates=s,this._table.view=this.mapView,this._checkEditEnabled(),this._table.editingEnabled=this._editEnabled&&this.enableInlineEdit})),await this._table.when((()=>{this._table.clearSelectionFilter()})),this._showOnlySelected=!1,this._sortActive=!1,await this._sortTable()):(this._table.view=this.mapView,this._table.layer=this._layer))}_checkEditEnabled(){this._editEnabled=this._layer.editingEnabled&&this._layer.capabilities.operations.supportsUpdate,this._deleteEnabled=this._layer.editingEnabled&&this._layer.capabilities.operations.supportsDelete}async _sortTable(){this._table&&this._layer&&!this._sortActive&&!this._tableSorting&&this.showNewestFirst&&(this._tableSorting=!0,await this._table.when(),await this._layer.when((()=>{this._table.sortColumn(this._layer.objectIdField,"desc"),this._tableSorting=!1})))}_deleteMessage(){return i("calcite-modal",{"aria-labelledby":"modal-title",kind:"danger",onCalciteModalClose:()=>this._deleteClosed(),open:this._confirmDelete},i("div",{class:"display-flex align-center",id:"modal-title",slot:"header"},this._translations.deleteFeature),i("div",{slot:"content"},this._translations.confirm),i("calcite-button",{appearance:"outline",kind:"danger",onClick:()=>this._deleteClosed(),slot:"secondary",width:"full"},this._translations.cancel),i("calcite-button",{kind:"danger",loading:this._isDeleting,onClick:()=>{this._deleteFeatures()},slot:"primary",width:"full"},this._translations.delete))}async _deleteFeatures(){this._isDeleting=!0;const t=this._table.highlightIds.toArray().map((t=>({objectId:t})));await this._layer.applyEdits({deleteFeatures:t}),await this._table.refresh(),this._allIds=await d(this._layer),this._isDeleting=!1,this._deleteClosed()}async _mapClicked(t){const i={include:this._layer},s=await this.mapView.hitTest(t.screenPoint,i);s.results.length>0&&(s.results.forEach((t=>{this._clearSelection();const i=t.graphic.getObjectId(),s=this._table.highlightIds.indexOf(i);s>-1?this._table.highlightIds.removeAt(s):this._table.highlightIds.add(i)})),this._showOnlySelected&&this._table.filterBySelection())}_deleteClosed(){this._confirmDelete=!1}_selectAll(){const t=this._allIds;this._table.highlightIds.addMany(t),this._selectedIndexes=t}_toggleShowSelected(){this._showOnlySelected=!this._showOnlySelected,this._showOnlySelected?this._table.filterBySelection():this._table.clearSelectionFilter()}_clearSelection(){var t;this._selectedIndexes=[],null===(t=this._table)||void 0===t||t.highlightIds.removeAll()}_filter(){this.openFilterOptions.emit()}_switchSelected(){const t=[...this._selectedIndexes];this._table.highlightIds.removeAll();const i=this._allIds.reduce(((i,s)=>(t.indexOf(s)<0&&i.push(s),i)),[]).sort(((t,i)=>t-i));this._table.highlightIds.addMany(i),this._selectedIndexes=i}async _exportToCSV(){const t={},i=this._table.highlightIds.toArray();t[this._layer.id]={selectionSetNames:[this._layer.title],ids:i,layer:this._layer},r(null,t,!1,!1,!0)}_refresh(){this._table.refresh()}_zoom(){this._table.zoomToSelection()}_delete(){this._confirmDelete=!0}async _layerSelectionChanged(t){var i,s,e;const a=t.detail[0];if(a!==(null===(i=this._layer)||void 0===i?void 0:i.id)||0===this._allIds.length){this._fetchingData=!0,this._layer=await o(this.mapView,a);const t=this._getColumnTemplates(a,null===(e=null===(s=this._layer)||void 0===s?void 0:s.popupTemplate)||void 0===e?void 0:e.fieldInfos);this._allIds=await d(this._layer),this._table?t&&(this._table.tableTemplate.columnTemplates=t):await this._getTable(this._tableNode,t),await this._table.when((()=>{this._table.highlightIds.removeAll()})),this._selectedIndexes=[],this._table.layer=this._layer,this._table.render()}this._sortActive=!1,await this._sortTable(),this._fetchingData=!1}_getColumnTemplates(t,i){var s;let e;null===(s=this.mapInfo.layerInfos)||void 0===s||s.some((i=>{if(i.id===t)return e=i,!0}));let a=null==e?void 0:e.columnTemplates;return i&&(a=a?a.map((t=>(i.some((i=>{if(i.fieldName===t.fieldName)return t.label=i.label,!0})),t))):i.map((t=>({type:"field",fieldName:t.fieldName,label:t.label})))),a}async _getTranslations(){const t=await h(this.el);this._translations=t[0]}get el(){return e(this)}static get watchers(){return{mapView:["mapViewWatchHandler"],_layer:["_layerWatchHandler"],_sortActive:["_sortActiveWatchHandler"]}}};v.style=':host{display:block}.height-full{height:100%}.height-full-adjusted{height:calc(100% - 20px)}.width-full{width:100%}.display-flex{display:flex}.table-border{border:1px solid var(--calcite-ui-border-2)}.border-end{border-inline-end:1px solid var(--calcite-ui-border-2)}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-2)}.padding-5{padding:5px}.padding-end-1{padding-inline-end:1rem}.height-51{height:51px}.bottom-left{position:absolute;left:0;bottom:0}html[dir="rtl"] .bottom-left{position:absolute;right:0;bottom:0}.background{background-color:var(--calcite-ui-background)}.text-color{color:var(--calcite-ui-text-1)}.align-center{align-items:center}.danger-color{color:var(--calcite-ui-danger)}.esri-feature-table vaadin-grid{border:none !important}vaadin-grid-cell-content{padding:var(--lumo-space-xs) var(--lumo-space-m) !important;font-size:14px !important}';const m=class{constructor(i){t(this,i),this.mapChanged=a(this,"mapChanged",7),this.beforeMapChanged=a(this,"beforeMapChanged",7),this._loadedId="",this.enableLegend=void 0,this.enableFloorFilter=void 0,this.enableFullscreen=void 0,this.enableSearch=void 0,this.enableBasemap=void 0,this.basemapConfig=void 0,this.mapInfos=[],this.mapView=void 0,this._searchConfiguration=void 0,this._webMapInfo=void 0}async mapInfoChange(t){await this._loadMap(t.detail)}async componentWillLoad(){await this._initModules()}render(){return i(s,null,i("map-picker",{mapInfos:this.mapInfos}),i("div",{class:"map-height",ref:t=>this._mapDiv=t}),i("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:t=>this._mapTools=t,searchConfiguration:this._searchConfiguration}))}async _initModules(){const[t,i,s]=await c(["esri/WebMap","esri/views/MapView","esri/widgets/Home"]);this.WebMap=t,this.MapView=i,this.Home=s}async _loadMap(t){let i=null==t?void 0:t.id;if(this._webMapInfo=(""===i||!i)&&this.mapInfos.length>0?this.mapInfos[0]:t,i=this._webMapInfo.id,this._loadedId!==i){const t=new this.WebMap({portalItem:{id:i}});this.mapView=new this.MapView({container:this._mapDiv,map:t,resizeAlign:"top-left"}),this._loadedId=i,this._searchConfiguration=this._webMapInfo.searchConfiguration,this.beforeMapChanged.emit(),await this.mapView.when((()=>{const t=new this.Home({view:this.mapView});this.mapView.ui.add(t,{position:"top-left",index:3}),this.mapView.ui.add(this._mapTools,{position:"top-right",index:0}),this.mapChanged.emit({id:i,mapView:this.mapView})}))}}get el(){return e(this)}};m.style=":host{display:block;--calcite-label-margin-bottom:0;--calcite-block-padding:0}.map-height{height:calc(100% - 58px)}.box-shadow{box-shadow:none !important}";export{p as card_manager,v as layer_table,m as map_card}
@@ -1,6 +0,0 @@
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
- import{r as t,h as i,H as s,g as e,c as a}from"./p-91c78d98.js";import{l as h}from"./p-05948b48.js";import{g as n}from"./p-99d8a839.js";import"./p-e1a4994d.js";const o=class{constructor(i){t(this,i),this.mapView=void 0,this.basemapConfig=void 0,this.basemapWidget=void 0}async mapViewWatchHandler(){await this.mapView.when((()=>{this._initBaseMapGallery(this.mapView)}))}async componentWillLoad(){return this._initModules()}render(){return i(s,null,i("div",{ref:t=>{this._basemapElement=t}}))}async _initModules(){const[t,i]=await h(["esri/widgets/BasemapGallery","esri/widgets/BasemapGallery/support/PortalBasemapsSource"]);this.BasemapGallery=t,this.PortalBasemapsSource=i}async _initBaseMapGallery(t){var i;if(this.BasemapGallery){this.basemapWidget&&this.basemapWidget.destroy();const s=new this.PortalBasemapsSource({query:(null===(i=this.basemapConfig)||void 0===i?void 0:i.basemapGroupId)?`id:${this.basemapConfig.basemapGroupId}`:null,filterFunction:t=>!this.basemapConfig.basemapIdsToFilter.includes(t.portalItem.id)});await s.refresh(),this.basemapWidget=new this.BasemapGallery({container:this._basemapElement,view:t,source:s})}}get el(){return e(this)}static get watchers(){return{mapView:["mapViewWatchHandler"]}}};o.style=":host{display:block}";const r=class{constructor(i){t(this,i),this.enabled=void 0,this.floorFilterWidget=void 0,this.mapView=void 0}async mapViewWatchHandler(){await this.mapView.when((()=>{this._initFloorFilter(this.mapView)}))}async componentWillLoad(){return this._initModules()}render(){return i(s,null,i("div",{ref:t=>{this._floorFilterElement=t}}))}async _initModules(){const[t]=await h(["esri/widgets/FloorFilter"]);this.FloorFilter=t}_initFloorFilter(t){t&&this.enabled&&this.FloorFilter&&(this.floorFilterWidget?this.floorFilterWidget.view=t:this.floorFilterWidget=new this.FloorFilter({container:this._floorFilterElement,view:t}))}get el(){return e(this)}static get watchers(){return{mapView:["mapViewWatchHandler"]}}};r.style=":host{display:block}";const l=class{constructor(i){t(this,i),this.mapView=void 0,this.fullscreenWidget=void 0}async mapViewWatchHandler(){await this.mapView.when((()=>{this._initFullscreenWidget()}))}async componentWillLoad(){await this._initModules()}render(){return i(s,null,i("div",{class:"fullscreen-widget",ref:t=>{this._fullscreenElement=t}}))}async componentDidUpdate(){this._initFullscreenWidget()}async componentDidLoad(){this._initFullscreenWidget()}async _initModules(){const[t]=await h(["esri/widgets/Fullscreen"]);this.Fullscreen=t}_initFullscreenWidget(){this.mapView&&this._fullscreenElement&&!this.fullscreenWidget?this.fullscreenWidget=new this.Fullscreen({view:this.mapView}):this.fullscreenWidget&&(this.fullscreenWidget.view=this.mapView)}static get watchers(){return{mapView:["mapViewWatchHandler"]}}};l.style=":host{display:block}";const c=class{constructor(i){t(this,i),this.mapView=void 0,this.legendWidget=void 0}async mapViewWatchHandler(){await this.mapView.when((()=>{this._initLegend(this.mapView)}))}async componentWillLoad(){return this._initModules()}render(){return i(s,null,i("div",{ref:t=>{this._legendElement=t}}))}async _initModules(){const[t]=await h(["esri/widgets/Legend"]);this.Legend=t}_initLegend(t){t&&this.Legend&&(this.legendWidget?this.legendWidget.view=t:this.legendWidget=new this.Legend({container:this._legendElement,view:t}))}get el(){return e(this)}static get watchers(){return{mapView:["mapViewWatchHandler"]}}};c.style=":host{display:block}";const d=class{constructor(i){t(this,i),this.mapInfoChange=a(this,"mapInfoChange",7),this._loadedId="",this.mapInfos=[],this._mapListExpanded=!1,this._translations=void 0,this._webMapInfo=void 0}_webMapInfoWatchHandler(t,i){t&&JSON.stringify(t)!==JSON.stringify(i)&&(this._loadedId=null==t?void 0:t.id,this.mapInfoChange.emit(t))}async mapInfosWatchHandler(t,i){t&&JSON.stringify(t)!==JSON.stringify(i)&&this._webMapSelected(t[0])}async componentWillLoad(){await this._getTranslations()}render(){return i(s,null,this._getToolbar(),this._getMapNameList(this._mapListExpanded))}async componentDidRender(){this._mapListExpanded&&await this._list.setFocus()}async componentDidLoad(){const t=this.mapInfos&&this.mapInfos.length>0?this.mapInfos[0]:void 0;t&&this._webMapSelected(t)}_getMapPicker(){var t;const s="map-picker-expand-toggle";return i("div",{class:"width-full"},i("calcite-button",{alignment:"icon-end-space-between",appearance:"transparent",class:"width-full height-full",iconEnd:this._mapListExpanded?"chevron-up":"chevron-down",id:s,kind:"neutral",onClick:()=>this._chooseMap(),width:"full"},null===(t=this._webMapInfo)||void 0===t?void 0:t.name),i("calcite-tooltip",{label:"",placement:"bottom","reference-element":s},i("span",null,this._translations.switchMap)))}_getToolbar(){return i("div",{class:"display-flex"},i("calcite-action-bar",{class:"border-bottom-1 action-bar-size","expand-disabled":!0,layout:"horizontal",slot:"header"},this._getMapPicker()))}_getMapNameList(t){return i("div",{class:t?"map-list":"display-none"},i("calcite-list",{id:"mapList",ref:t=>this._list=t,selectionAppearance:"border"},this.mapInfos.map((t=>i("calcite-list-item",{label:t.name,onClick:()=>this._webMapSelected(t),selected:t.id===this._loadedId,value:t.id})))))}_webMapSelected(t){this._mapListExpanded=!1,this._webMapInfo=t}_chooseMap(){this._mapListExpanded=!this._mapListExpanded}async _getTranslations(){const t=await n(this.el);this._translations=t[0]}get el(){return e(this)}static get watchers(){return{_webMapInfo:["_webMapInfoWatchHandler"],mapInfos:["mapInfosWatchHandler"]}}};d.style=":host{display:block;--solutions-theme-foreground-color:var(--calcite-ui-foreground-1)}.width-full{width:100%}.height-full{height:100%}.display-flex{display:flex}.border-bottom-1{border-width:0px;border-bottom-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3)}.action-bar-size{height:51px;width:100%}.map-list{position:absolute;display:flex;flex-direction:column;overflow:hidden;animation:calcite-scrim-fade-in var(--calcite-internal-animation-timing-medium) ease-in-out;background-color:var(--calcite-ui-background);z-index:1000;width:100%;height:-moz-fit-content;height:fit-content}.display-none{display:none}.align-center{align-items:center}";const p=class{constructor(i){t(this,i),this.mapView=void 0,this.popupEnabled=!1,this.resultGraphicEnabled=!1,this.searchConfiguration=void 0,this.searchTerm=void 0,this.searchWidget=void 0}async watchSearchConfigurationHandler(){this._initSearchWidget()}async mapViewWatchHandler(){await this.mapView.when((()=>{this._initSearchWidget()}))}async componentWillLoad(){await this._initModules()}async componentDidLoad(){return this._initSearchWidget()}render(){return i(s,null,i("div",{class:"search-widget",ref:t=>{this._searchElement=t}}))}async _initModules(){const[t,i]=await h(["esri/widgets/Search","esri/layers/FeatureLayer"]);this.Search=t,this.FeatureLayer=i}_initSearchWidget(){if(this.mapView&&this._searchElement&&!this.searchWidget){let t={view:this.mapView,container:this._searchElement,searchTerm:this.searchTerm};if(this.searchConfiguration){const i=this._getSearchConfig(this.searchConfiguration,this.mapView);t=Object.assign({},i)}this.searchWidget=new this.Search(t),this.searchWidget.popupEnabled=this.popupEnabled,this.searchWidget.resultGraphicEnabled=this.resultGraphicEnabled}else this.searchWidget&&(this.searchWidget.view=this.mapView)}_getSearchConfig(t,i){const s=t.sources;return(null==s?void 0:s.length)>0?(t.includeDefaultSources=!1,s.forEach((t=>{var s,e;if(t.hasOwnProperty("layer")){const a=t,h=null===(s=a.layer)||void 0===s?void 0:s.id,n=h?i.map.findLayerById(h):null,o=null===(e=null==a?void 0:a.layer)||void 0===e?void 0:e.url;n?a.layer=n:o&&(a.layer=new this.FeatureLayer(o))}})),null==s||s.forEach((t=>{if(t.hasOwnProperty("locator")){const i=t;"ArcGIS World Geocoding Service"===(null==i?void 0:i.name)&&(i.outFields=i.outFields||["Addr_type","Match_addr","StAddr","City"],i.singleLineFieldName="SingleLine"),i.url=i.url,delete i.url}}))):t=Object.assign(Object.assign({},t),{includeDefaultSources:!0}),t}static get watchers(){return{searchConfiguration:["watchSearchConfigurationHandler"],mapView:["mapViewWatchHandler"]}}};p.style=":host{display:block}.search-widget{width:100% !important;border:1px solid var(--calcite-ui-border-input)}";const u=class{constructor(i){t(this,i),this.enableLegend=void 0,this.enableFloorFilter=void 0,this.enableFullscreen=void 0,this.enableSearch=void 0,this.enableBasemap=void 0,this.basemapConfig=void 0,this.layout="vertical",this.mapView=void 0,this.searchConfiguration=void 0,this._translations=void 0,this._showTools=!0,this._showBasemapWidget=!1,this._showFloorFilter=!1,this._showFullscreen=!1,this._showLegendWidget=!1,this._showSearchWidget=!1}async _showBasemapWidgetWatchHandler(t){t?this.mapView.ui.add(this._basemapElement.basemapWidget,{position:"top-right",index:1}):this.mapView.ui.remove(this._basemapElement.basemapWidget)}async _showFloorFilterWatchHandler(t){const i=this._floorFilterElement.floorFilterWidget;t?this.mapView.ui.add(i,{position:"top-right",index:1}):this.mapView.ui.remove(i)}async _showFullscreenWatchHandler(t){const i=this._fullscreenElement.fullscreenWidget;t?i.viewModel.enter():i.viewModel.exit()}async _showLegendWidgetWatchHandler(t){t?this.mapView.ui.add(this._legendElement.legendWidget,{position:"top-right",index:1}):this.mapView.ui.remove(this._legendElement.legendWidget)}async _showSearchWidgetWatchHandler(t){t?this.mapView.ui.add(this._searchElement.searchWidget,{position:"top-right",index:1}):this.mapView.ui.remove(this._searchElement.searchWidget)}async componentWillLoad(){await this._getTranslations()}render(){const t=this._showTools?"":"display-none",e=this._showSearchWidget?"":"display-none",a=this._showBasemapWidget?"":"display-none",h=this._showLegendWidget?"":"display-none",n=this._showFloorFilter?"":"display-none",o=this._showFullscreen?"":"display-none",r=this._showFullscreen?"full-screen-exit":"full-screen",l=this._showFullscreen?this._translations.exitFullscreen:this._translations.enterFullscreen;return i(s,null,i("div",{class:this.enableBasemap||this.enableFullscreen||this.enableLegend||this.enableSearch?"":"display-none"},i("div",{class:"box-shadow"},this._getActionGroup(this._showTools?"chevrons-up":"chevrons-down",!1,this._showTools?this._translations.collapse:this._translations.expand,(()=>this._toggleTools()))),i("div",{class:`margin-top-1-2 box-shadow ${t}`},this.enableLegend?this._getActionGroup("legend",!1,this._translations.legend,(()=>this._showLegend())):void 0,this.enableSearch?this._getActionGroup("magnifying-glass",!1,this._translations.search,(()=>this._search())):void 0,this.enableFullscreen?this._getActionGroup(r,!1,l,(()=>this._expand())):void 0,this.enableBasemap?this._getActionGroup("basemap",!1,this._translations.basemap,(()=>this._toggleBasemapPicker())):void 0,this.enableFloorFilter?this._getActionGroup("urban-model",!1,this._translations.floorFilter,(()=>this._toggleFloorFilter())):void 0)),i("basemap-gallery",{basemapConfig:this.basemapConfig,class:a,mapView:this.mapView,ref:t=>{this._basemapElement=t}}),i("map-search",{class:e,mapView:this.mapView,ref:t=>{this._searchElement=t},resultGraphicEnabled:!0,searchConfiguration:this.searchConfiguration}),i("map-legend",{class:h,mapView:this.mapView,ref:t=>{this._legendElement=t}}),i("map-fullscreen",{class:o,mapView:this.mapView,ref:t=>{this._fullscreenElement=t}}),i("floor-filter",{class:n,enabled:this.enableFloorFilter,mapView:this.mapView,ref:t=>{this._floorFilterElement=t}}))}_getActionGroup(t,s,e,a){return i("div",{class:"border-bottom"},i("calcite-action",{alignment:"center",class:"square-40",compact:!1,disabled:s,icon:t,id:t,onClick:a,scale:"s",text:""},i("calcite-icon",{icon:"cheveron-up",scale:"s",slot:"icon"})),i("calcite-tooltip",{label:"",placement:"trailing","reference-element":t},i("span",null,e)))}_showLegend(){this._showLegendWidget=!this._showLegendWidget,this._showTools=!1}_search(){this._showSearchWidget=!this._showSearchWidget,this._showTools=!1}_toggleBasemapPicker(){this._showBasemapWidget=!this._showBasemapWidget,this._showTools=!1}_toggleFloorFilter(){this._showFloorFilter=!this._showFloorFilter,this._showTools=!1}_expand(){this._showFullscreen=!this._showFullscreen}_toggleTools(){this._showTools||(this._showBasemapWidget=!1,this._showSearchWidget=!1,this._showLegendWidget=!1,this._showFloorFilter=!1),this._showTools=!this._showTools}async _getTranslations(){const t=await n(this.el);this._translations=t[0]}get el(){return e(this)}static get watchers(){return{_showBasemapWidget:["_showBasemapWidgetWatchHandler"],_showFloorFilter:["_showFloorFilterWatchHandler"],_showFullscreen:["_showFullscreenWatchHandler"],_showLegendWidget:["_showLegendWidgetWatchHandler"],_showSearchWidget:["_showSearchWidgetWatchHandler"]}}};u.style=":host{display:block}.display-none{display:none}.margin-top-1-2{margin-top:0.5rem}.square-40{width:40px;height:40px}.width-40{width:40px}.square-40-41{width:40px;height:41px}.border-bottom{border-bottom:1px solid var(--calcite-ui-border-3)}.box-shadow{box-shadow:0 1px 2px rgba(0, 0, 0, 0.3)}";export{o as basemap_gallery,r as floor_filter,l as map_fullscreen,c as map_legend,d as map_picker,p as map_search,u as map_tools}