@esri/solutions-components 0.10.44 → 0.10.46

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/dist/cjs/basemap-gallery_7.cjs.entry.js +5 -5
  2. package/dist/cjs/buffer-tools_3.cjs.entry.js +1 -1
  3. package/dist/cjs/{calcite-alert_5.cjs.entry.js → calcite-alert_6.cjs.entry.js} +136 -0
  4. package/dist/cjs/calcite-combobox_3.cjs.entry.js +1 -1
  5. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +6 -6
  6. package/dist/cjs/{calcite-shell_3.cjs.entry.js → calcite-shell.cjs.entry.js} +0 -256
  7. package/dist/cjs/card-manager_3.cjs.entry.js +13 -7
  8. package/dist/cjs/crowdsource-manager.cjs.entry.js +25 -4
  9. package/dist/cjs/delete-dialog.cjs.entry.js +131 -0
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/map-select-tools_3.cjs.entry.js +19 -19
  12. package/dist/cjs/pci-calculator.cjs.entry.js +1 -1
  13. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  14. package/dist/cjs/share-item.cjs.entry.js +1 -1
  15. package/dist/cjs/solution-configuration.cjs.entry.js +3 -3
  16. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -3
  17. package/dist/cjs/solution-item-accordion.cjs.entry.js +1 -1
  18. package/dist/cjs/solution-item-icon.cjs.entry.js +1 -1
  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/components/crowdsource-manager/crowdsource-manager.css +4 -0
  22. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +31 -3
  23. package/dist/collection/components/layer-table/layer-table.js +32 -7
  24. package/dist/collection/components/map-card/map-card.js +1 -1
  25. package/dist/collection/components/map-draw-tools/map-draw-tools.js +1 -1
  26. package/dist/collection/components/map-fullscreen/map-fullscreen.js +1 -1
  27. package/dist/collection/components/map-layer-picker/map-layer-picker.js +1 -1
  28. package/dist/collection/components/map-legend/map-legend.js +1 -1
  29. package/dist/collection/components/map-picker/map-picker.js +1 -1
  30. package/dist/collection/components/map-search/map-search.js +1 -1
  31. package/dist/collection/components/map-select-tools/map-select-tools.js +54 -20
  32. package/dist/collection/components/map-tools/map-tools.js +1 -1
  33. package/dist/collection/components/pci-calculator/pci-calculator.js +1 -1
  34. package/dist/collection/components/pdf-download/pdf-download.js +1 -1
  35. package/dist/collection/components/public-notification/public-notification.js +2 -2
  36. package/dist/collection/components/refine-selection/refine-selection.js +1 -1
  37. package/dist/collection/components/share-item/share-item.js +1 -1
  38. package/dist/collection/components/solution-configuration/solution-configuration.js +3 -3
  39. package/dist/collection/components/solution-contents/solution-contents.js +1 -1
  40. package/dist/collection/components/solution-item/solution-item.js +1 -1
  41. package/dist/collection/components/solution-item-accordion/solution-item-accordion.js +1 -1
  42. package/dist/collection/components/solution-item-details/solution-item-details.js +1 -1
  43. package/dist/collection/components/solution-item-icon/solution-item-icon.js +1 -1
  44. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +1 -1
  45. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +1 -1
  46. package/dist/collection/components/solution-resource-item/solution-resource-item.js +1 -1
  47. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +1 -1
  48. package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
  49. package/dist/collection/components/solution-variables/solution-variables.js +1 -1
  50. package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
  51. package/dist/collection/utils/interfaces.ts +4 -0
  52. package/dist/components/crowdsource-manager.js +27 -5
  53. package/dist/components/layer-table2.js +84 -91
  54. package/dist/components/map-card2.js +1 -1
  55. package/dist/components/map-draw-tools2.js +1 -1
  56. package/dist/components/map-fullscreen2.js +1 -1
  57. package/dist/components/map-layer-picker2.js +1 -1
  58. package/dist/components/map-legend2.js +1 -1
  59. package/dist/components/map-picker2.js +1 -1
  60. package/dist/components/map-search2.js +1 -1
  61. package/dist/components/map-select-tools2.js +19 -19
  62. package/dist/components/map-tools2.js +1 -1
  63. package/dist/components/pci-calculator.js +1 -1
  64. package/dist/components/pdf-download2.js +1 -1
  65. package/dist/components/public-notification.js +2 -2
  66. package/dist/components/refine-selection2.js +1 -1
  67. package/dist/components/share-item.js +1 -1
  68. package/dist/components/solution-configuration.js +3 -3
  69. package/dist/components/solution-contents2.js +1 -1
  70. package/dist/components/solution-item-accordion.js +1 -1
  71. package/dist/components/solution-item-details2.js +1 -1
  72. package/dist/components/solution-item-icon2.js +1 -1
  73. package/dist/components/solution-item-sharing2.js +1 -1
  74. package/dist/components/solution-item2.js +1 -1
  75. package/dist/components/solution-organization-variables2.js +1 -1
  76. package/dist/components/solution-resource-item2.js +1 -1
  77. package/dist/components/solution-spatial-ref2.js +1 -1
  78. package/dist/components/solution-template-data2.js +1 -1
  79. package/dist/components/solution-variables2.js +1 -1
  80. package/dist/components/spatial-ref.js +1 -1
  81. package/dist/esm/basemap-gallery_7.entry.js +5 -5
  82. package/dist/esm/buffer-tools_3.entry.js +1 -1
  83. package/dist/esm/{calcite-alert_5.entry.js → calcite-alert_6.entry.js} +136 -1
  84. package/dist/esm/calcite-combobox_3.entry.js +1 -1
  85. package/dist/esm/calcite-shell-panel_14.entry.js +6 -6
  86. package/dist/esm/{calcite-shell_3.entry.js → calcite-shell.entry.js} +2 -256
  87. package/dist/esm/card-manager_3.entry.js +13 -7
  88. package/dist/esm/crowdsource-manager.entry.js +25 -4
  89. package/dist/esm/delete-dialog.entry.js +127 -0
  90. package/dist/esm/loader.js +1 -1
  91. package/dist/esm/map-select-tools_3.entry.js +19 -19
  92. package/dist/esm/pci-calculator.entry.js +1 -1
  93. package/dist/esm/public-notification.entry.js +2 -2
  94. package/dist/esm/share-item.entry.js +1 -1
  95. package/dist/esm/solution-configuration.entry.js +3 -3
  96. package/dist/esm/solution-contents_3.entry.js +3 -3
  97. package/dist/esm/solution-item-accordion.entry.js +1 -1
  98. package/dist/esm/solution-item-icon.entry.js +1 -1
  99. package/dist/esm/solutions-components.js +1 -1
  100. package/dist/esm/spatial-ref.entry.js +1 -1
  101. package/dist/solutions-components/{p-ce53e33d.entry.js → p-11c2426d.entry.js} +2 -2
  102. package/dist/solutions-components/p-1336a071.entry.js +6 -0
  103. package/dist/solutions-components/{p-5001cc41.entry.js → p-274aa753.entry.js} +1 -1
  104. package/dist/solutions-components/{p-e1e21798.entry.js → p-36b864ba.entry.js} +1 -1
  105. package/dist/solutions-components/p-41503b16.entry.js +6 -0
  106. package/dist/solutions-components/{p-561c0e02.entry.js → p-44dc3dec.entry.js} +1 -1
  107. package/dist/solutions-components/{p-471d5c7f.entry.js → p-45ab1117.entry.js} +2 -2
  108. package/dist/solutions-components/p-49ed272d.entry.js +11 -0
  109. package/dist/solutions-components/{p-b7fbaeb7.entry.js → p-6b5b52c1.entry.js} +1 -1
  110. package/dist/solutions-components/{p-62d8796c.entry.js → p-7475b8b4.entry.js} +2 -2
  111. package/dist/solutions-components/{p-80e81af7.entry.js → p-7bcfe068.entry.js} +1 -1
  112. package/dist/solutions-components/{p-41314f33.entry.js → p-96027923.entry.js} +1 -1
  113. package/dist/solutions-components/p-9c25ee2c.entry.js +6 -0
  114. package/dist/solutions-components/{p-8d4a4498.entry.js → p-b6d50640.entry.js} +1 -1
  115. package/dist/solutions-components/p-b8d1b57a.entry.js +6 -0
  116. package/dist/solutions-components/p-b95968fa.entry.js +6 -0
  117. package/dist/solutions-components/p-d2f8d8a8.entry.js +6 -0
  118. package/dist/solutions-components/{p-d51c07d2.entry.js → p-f57978f3.entry.js} +1 -1
  119. package/dist/solutions-components/solutions-components.esm.js +1 -1
  120. package/dist/solutions-components/utils/interfaces.ts +4 -0
  121. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +19 -0
  122. package/dist/types/components/layer-table/layer-table.d.ts +5 -5
  123. package/dist/types/components/map-select-tools/map-select-tools.d.ts +8 -8
  124. package/dist/types/components.d.ts +23 -2
  125. package/dist/types/preact.d.ts +2 -1
  126. package/dist/types/utils/interfaces.d.ts +3 -0
  127. package/package.json +1 -1
  128. package/dist/solutions-components/p-0a2e5861.entry.js +0 -6
  129. package/dist/solutions-components/p-56beff4c.entry.js +0 -6
  130. package/dist/solutions-components/p-8b92fe23.entry.js +0 -6
  131. package/dist/solutions-components/p-8e2f4995.entry.js +0 -6
  132. package/dist/solutions-components/p-d7afbe8d.entry.js +0 -11
  133. package/dist/solutions-components/p-f0509d41.entry.js +0 -6
@@ -3,16 +3,13 @@
3
3
  * Licensed under the Apache License, Version 2.0
4
4
  * http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
- import { r as registerInstance, h, F as Fragment, g as getElement, c as createEvent, H as Host } from './index-904bc599.js';
6
+ import { r as registerInstance, h, F as Fragment, g as getElement } from './index-904bc599.js';
7
7
  import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot-8a0b08ef.js';
8
8
  import { s as slotChangeHasAssignedElement, e as slotChangeGetAssignedElements } from './dom-75c641a7.js';
9
- import { g as getLocaleComponentStrings } from './locale-0d06fca0.js';
10
9
  import './observers-c83631e8.js';
11
10
  import './browser-b67d8df6.js';
12
11
  import './guid-b0fb1de3.js';
13
12
  import './resources-8e2ed936.js';
14
- import './esri-loader-c6842c6b.js';
15
- import './_commonjsHelpers-089957fe.js';
16
13
 
17
14
  /*!
18
15
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
@@ -202,255 +199,4 @@ const Shell = class {
202
199
  };
203
200
  Shell.style = CalciteShellStyle0;
204
201
 
205
- const deleteButtonCss = ":host{display:block}.delete-modal{position:fixed}";
206
- const DeleteButtonStyle0 = deleteButtonCss;
207
-
208
- const DeleteButton = class {
209
- constructor(hostRef) {
210
- registerInstance(this, hostRef);
211
- this.editsComplete = createEvent(this, "editsComplete", 7);
212
- this.deleteDialog = undefined;
213
- this.buttonType = "button";
214
- this.disabled = false;
215
- this.icon = undefined;
216
- this.ids = [];
217
- this.layer = undefined;
218
- this.locale = undefined;
219
- this._confirmDelete = false;
220
- this._deleteEndabled = false;
221
- this._supportsDelete = undefined;
222
- this._translations = undefined;
223
- }
224
- get el() { return getElement(this); }
225
- //--------------------------------------------------------------------------
226
- //
227
- // Properties (protected)
228
- //
229
- //--------------------------------------------------------------------------
230
- //--------------------------------------------------------------------------
231
- //
232
- // Watch handlers
233
- //
234
- //--------------------------------------------------------------------------
235
- /**
236
- * watch for changes in layer view and verify if it has editing enabled
237
- */
238
- async idsWatchHandler() {
239
- this._setDeleteEnabled();
240
- }
241
- /**
242
- * watch for changes in layer view and verify if it has editing enabled
243
- */
244
- async layerWatchHandler() {
245
- this._setDeleteEnabled();
246
- }
247
- /**
248
- * Fetch translations when the locale is updated
249
- */
250
- async localeWatchHandler() {
251
- // to support url param and language switcher
252
- this.el.lang = this.locale;
253
- await this._getTranslations();
254
- }
255
- //--------------------------------------------------------------------------
256
- //
257
- // Methods (public)
258
- //
259
- //--------------------------------------------------------------------------
260
- //--------------------------------------------------------------------------
261
- //
262
- // Events (public)
263
- //
264
- //--------------------------------------------------------------------------
265
- /**
266
- * Emitted on demand when features have been deleted
267
- */
268
- editsComplete;
269
- //--------------------------------------------------------------------------
270
- //
271
- // Functions (lifecycle)
272
- //
273
- //--------------------------------------------------------------------------
274
- /**
275
- * StencilJS: Called once just after the component is first connected to the DOM.
276
- *
277
- * @returns Promise when complete
278
- */
279
- async componentWillLoad() {
280
- await this._getTranslations();
281
- }
282
- /**
283
- * Renders the component.
284
- */
285
- render() {
286
- return (h(Host, { key: '1816da3d5cd7903b4e699dffa4ac4836dca722bb' }, this.buttonType === "button" ? (h("calcite-button", { appearance: "outline", disabled: !this._deleteEndabled, id: "solutions-delete", kind: "danger", onClick: () => this._delete(), width: "full" }, this._translations.deleteCount.replace("{{n}}", this.ids.length.toString()))) : (h("calcite-action", { appearance: "solid", compact: true, disabled: !this._deleteEndabled, id: this.icon, onClick: () => this._delete(), scale: "s", text: this._translations.delete }, h("calcite-button", { appearance: "transparent", iconStart: this.icon, kind: "danger" }, this._translations.delete))), this._deleteMessage(), h("calcite-tooltip", { key: '26fc4d4b4ea02b7a6c5e3f87abe2c5b8f96a3654', placement: "bottom", "reference-element": this.buttonType === "button" ? "solutions-delete" : this.icon }, h("span", { key: 'c2f7b101bb3a99274fe7f364ad29365c212d856e' }, this._translations.delete))));
287
- }
288
- /**
289
- * StencilJS: Called once just after the component is fully loaded and the first render() occurs.
290
- */
291
- async componentDidLoad() {
292
- this._setDeleteEnabled();
293
- }
294
- //--------------------------------------------------------------------------
295
- //
296
- // Functions (protected)
297
- //
298
- //--------------------------------------------------------------------------
299
- /**
300
- * Verify if the layer supports delete and that we have 1 or more ids
301
- */
302
- _setDeleteEnabled() {
303
- this._supportsDelete = this.layer?.editingEnabled && this.layer?.capabilities?.operations?.supportsDelete;
304
- this._deleteEndabled = !this.disabled || this._supportsDelete && this.ids.length > 0;
305
- }
306
- /**
307
- * Delete all selected records or shows an alert if the layer does not have editing enabled
308
- *
309
- * @returns a promise that will resolve when the operation is complete
310
- */
311
- _delete() {
312
- this._confirmDelete = true;
313
- }
314
- /**
315
- * Show delete confirmation message
316
- *
317
- * @returns node to confirm or deny the delete operation
318
- */
319
- _deleteMessage() {
320
- return this.deleteDialog ? this.deleteDialog : (h("delete-dialog", { id: "solution-delete-dialog", ids: this.ids, layer: this.layer, locale: this.locale, onDeleteDialogClose: () => this._confirmDelete = false, open: this._confirmDelete }));
321
- }
322
- /**
323
- * Fetches the component's translations
324
- *
325
- * @returns Promise when complete
326
- * @protected
327
- */
328
- async _getTranslations() {
329
- const messages = await getLocaleComponentStrings(this.el);
330
- this._translations = messages[0];
331
- }
332
- static get watchers() { return {
333
- "ids": ["idsWatchHandler"],
334
- "layer": ["layerWatchHandler"],
335
- "locale": ["localeWatchHandler"]
336
- }; }
337
- };
338
- DeleteButton.style = DeleteButtonStyle0;
339
-
340
- const deleteDialogCss = ":host{display:block}.delete-modal{position:fixed}";
341
- const DeleteDialogStyle0 = deleteDialogCss;
342
-
343
- const DeleteDialog = class {
344
- constructor(hostRef) {
345
- registerInstance(this, hostRef);
346
- this.editsComplete = createEvent(this, "editsComplete", 7);
347
- this.deleteDialogClose = createEvent(this, "deleteDialogClose", 7);
348
- this.ids = [];
349
- this.layer = undefined;
350
- this.locale = undefined;
351
- this.open = false;
352
- this._isDeleting = false;
353
- this._translations = undefined;
354
- }
355
- get el() { return getElement(this); }
356
- //--------------------------------------------------------------------------
357
- //
358
- // Properties (protected)
359
- //
360
- //--------------------------------------------------------------------------
361
- //--------------------------------------------------------------------------
362
- //
363
- // Watch handlers
364
- //
365
- //--------------------------------------------------------------------------
366
- /**
367
- * Fetch translations when the locale is updated
368
- */
369
- async localeWatchHandler() {
370
- // to support url param and language switcher
371
- this.el.lang = this.locale;
372
- await this._getTranslations();
373
- }
374
- //--------------------------------------------------------------------------
375
- //
376
- // Methods (public)
377
- //
378
- //--------------------------------------------------------------------------
379
- //--------------------------------------------------------------------------
380
- //
381
- // Events (public)
382
- //
383
- //--------------------------------------------------------------------------
384
- /**
385
- * Emitted on demand when features have been deleted
386
- */
387
- editsComplete;
388
- /**
389
- * Emitted on demand when features have been deleted
390
- */
391
- deleteDialogClose;
392
- //--------------------------------------------------------------------------
393
- //
394
- // Functions (lifecycle)
395
- //
396
- //--------------------------------------------------------------------------
397
- /**
398
- * StencilJS: Called once just after the component is first connected to the DOM.
399
- *
400
- * @returns Promise when complete
401
- */
402
- async componentWillLoad() {
403
- await this._getTranslations();
404
- }
405
- /**
406
- * Renders the component.
407
- */
408
- render() {
409
- const confirmMessage = this.ids.length === 1 ? this._translations?.confirmSingle :
410
- this._translations?.confirmMultiple;
411
- return (h(Host, { key: 'eafca7d4325c65ff21fbfeaa24ea14e95bc25a34' }, h("calcite-modal", { key: '745e52d7b23318492914662cc769a1206baefd28', "aria-labelledby": "modal-title", class: "delete-modal", kind: "danger", onCalciteModalClose: () => this._close(), open: this.open, widthScale: "s" }, h("div", { key: '363614f6eaf30c30c6c2ccde3875dfff5cd94088', class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.deleteFeature), h("div", { key: 'b3b6f74495894589b7fd8be54265c4a69ffaa62e', slot: "content" }, confirmMessage), h("calcite-button", { key: 'd325fcf12624bac39f56ec690f7e4e9660789891', appearance: "outline", kind: "danger", onClick: () => this._close(), slot: "secondary", width: "full" }, this._translations?.cancel), h("calcite-button", { key: '73a10546ad92065c949bfacca3eb3d508685030e', kind: "danger", loading: this._isDeleting, onClick: () => void this._deleteFeatures(), slot: "primary", width: "full" }, this._translations?.delete))));
412
- }
413
- //--------------------------------------------------------------------------
414
- //
415
- // Functions (protected)
416
- //
417
- //--------------------------------------------------------------------------
418
- /**
419
- * Delete the currently selected features
420
- */
421
- async _deleteFeatures() {
422
- this._isDeleting = true;
423
- const deleteFeatures = this.ids.map((objectId) => {
424
- return { objectId };
425
- });
426
- await this.layer.applyEdits({
427
- deleteFeatures
428
- });
429
- this._isDeleting = false;
430
- this._close();
431
- this.editsComplete.emit("delete");
432
- }
433
- /**
434
- * Set the alertOpen member to false when the alert is closed
435
- */
436
- _close() {
437
- this.open = false;
438
- this.deleteDialogClose.emit();
439
- }
440
- /**
441
- * Fetches the component's translations
442
- *
443
- * @returns Promise when complete
444
- * @protected
445
- */
446
- async _getTranslations() {
447
- const messages = await getLocaleComponentStrings(this.el);
448
- this._translations = messages[0];
449
- }
450
- static get watchers() { return {
451
- "locale": ["localeWatchHandler"]
452
- }; }
453
- };
454
- DeleteDialog.style = DeleteDialogStyle0;
455
-
456
- export { Shell as calcite_shell, DeleteButton as delete_button, DeleteDialog as delete_dialog };
202
+ export { Shell as calcite_shell };
@@ -221,6 +221,7 @@ const LayerTable = class {
221
221
  registerInstance(this, hostRef);
222
222
  this.featureSelectionChange = createEvent(this, "featureSelectionChange", 7);
223
223
  this.toggleFilter = createEvent(this, "toggleFilter", 7);
224
+ this.showDelete = createEvent(this, "showDelete", 7);
224
225
  this.appLayout = undefined;
225
226
  this.defaultGlobalId = undefined;
226
227
  this.defaultLayerId = undefined;
@@ -251,7 +252,6 @@ const LayerTable = class {
251
252
  this._filterOpen = false;
252
253
  this._layer = undefined;
253
254
  this._selectAllActive = false;
254
- this._deleteDialogOpen = false;
255
255
  this._showHideOpen = false;
256
256
  this._showOnlySelected = false;
257
257
  this._toolInfos = undefined;
@@ -618,6 +618,10 @@ const LayerTable = class {
618
618
  * Emitted on demand when filter action is clicked
619
619
  */
620
620
  toggleFilter;
621
+ /**
622
+ * Emitted on demand when when the delete dialog should be shown
623
+ */
624
+ showDelete;
621
625
  /**
622
626
  * Scroll and zoom to the selected feature from the Features widget.
623
627
  *
@@ -731,10 +735,10 @@ const LayerTable = class {
731
735
  const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
732
736
  const showSearch = this._canShowFullTextSearch();
733
737
  this._validateActiveActions();
734
- return (h(Host, { key: '0998f68ec5ab3fe8c2e7a21aa832137730faf94f' }, h("calcite-shell", { key: 'a6f00f0280358c318cbed1afc48d54ae0ffae465' }, this._getTableControlRow("header"), h("div", { key: '744786c1915fd86e81c278ecc75c862312c1ec6f', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'b59b7bcf0f6e3f5411ff0ecf5de8e6bd747fbe4a', class: "height-full width-full" }, showSearch &&
735
- h("div", { key: '6c62638d97156a2101764bf620b0f48b70f906ad', class: "search-container" }, h("calcite-input", { key: '8ff64d0529b5e3fe281490917ba44a829567cb0c', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: '7f673a2fd30a5828dec0400d01c581440a3adf6b', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '39c0801b1992db5f8782d6b3569fa89ba47ce8ce', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
738
+ return (h(Host, { key: 'ade26bd309af37b5b9f9bdc355f1cf6c575fa89a' }, h("calcite-shell", { key: '95668ae72cde1a3600e17a0d138ba8b810a4c525' }, this._getTableControlRow("header"), h("div", { key: '488eabfc4666c0d81aacbac523e7ba20288a4701', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '75d01c41afbb872f57472adc76045431163c0cab', class: "height-full width-full" }, showSearch &&
739
+ h("div", { key: 'b6062ca6e5702fc835777a6fe6ecec7a66926bc0', class: "search-container" }, h("calcite-input", { key: 'eade11ccb0d7b6d5aed838dbb6b2eaec4286d8c6', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: '889c97b23074f5be4b045199cf48632720d6c598', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '4ac0bfdaf07c38ff57008bade29b4b90b11f437d', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
736
740
  .replace("{{total}}", total)
737
- .replace("{{selected}}", selected))) : undefined), this.createFilterModal && this._filterModal(), h("delete-dialog", { key: '6bf4038662260c566d304a63d8f118265a1bf69e', id: "deleteDialogId", ids: this._getIds(), layer: this._layer, locale: this.locale, onDeleteDialogClose: () => this._deleteDialogOpen = false, open: this._deleteDialogOpen, ref: (el) => this._deleteDialog = el })));
741
+ .replace("{{selected}}", selected))) : undefined), this.createFilterModal && this._filterModal()));
738
742
  }
739
743
  _deleteDialog;
740
744
  /**
@@ -1330,7 +1334,9 @@ const LayerTable = class {
1330
1334
  *
1331
1335
  */
1332
1336
  _showDelete() {
1333
- this._deleteDialogOpen = true;
1337
+ this.showDelete.emit({
1338
+ ids: this._getIds()
1339
+ });
1334
1340
  }
1335
1341
  /**
1336
1342
  * Get an action and tooltip for share
@@ -1408,7 +1414,7 @@ const LayerTable = class {
1408
1414
  */
1409
1415
  _getDangerAction(icon, label, func, disabled) {
1410
1416
  const _disabled = this._layer === undefined ? true : disabled;
1411
- return (h("div", { class: "display-flex", id: this._getId(icon) }, icon === "trash" ? (h("delete-button", { buttonType: "action", class: "display-flex", disabled: _disabled, icon: icon, id: "solutions-delete", ids: this._getIds(), layer: this._layer, locale: this.locale })) : (h("calcite-action", { appearance: "solid", disabled: _disabled, id: icon, onClick: func, text: label }, h("calcite-button", { appearance: "transparent", iconStart: icon, kind: "danger" }, label))), this._getToolTip("bottom", icon, label)));
1417
+ return (h("div", { class: "display-flex", id: this._getId(icon) }, (h("calcite-action", { appearance: "solid", compact: true, disabled: _disabled, id: icon, onClick: func, text: "" }, h("calcite-button", { appearance: "transparent", iconStart: icon, kind: "danger" }, label))), this._getToolTip("bottom", icon, label)));
1412
1418
  }
1413
1419
  /**
1414
1420
  * Return all currently selected IDs from the table
@@ -2493,7 +2499,7 @@ const MapCard = class {
2493
2499
  const mapHeightClass = this.mapInfos?.length > 1 || this.isMapLayout ? "map-height" : "height-full";
2494
2500
  const progressClass = this.isMapLayout ? "" : "display-none";
2495
2501
  this._validateActiveActions();
2496
- return (h(Host, { key: '525ee5ce855cf5aa4f8c50e7e88be6c6236046ac' }, h("div", { key: '899898ee0b2ba9048ed24716a339c94d3106a52e', class: `${mapContainerClass} width-full`, ref: (el) => this._toolbar = el }, this._getActionBar(), !this.isMobile && this.isMapLayout && this._getDropdown("more-table-options"), this.enableShare && !this.isMobile && this.isMapLayout ? this._getShare("share") : undefined), h("calcite-progress", { key: '896569eb6cf65f45cbebb4b36f5b01ada5ed1092', class: progressClass, value: 0 }), h("div", { key: '79cac798541783bdc74e4b13f9df4d7564eb99f4', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '730d48c4ce98af3872bfa6c486e8749e18c24477', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, locale: this.locale, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
2502
+ return (h(Host, { key: '5861d407b8529c6834d5d05450693d1fff2b71ee' }, h("div", { key: '01e028e8a00fc66d5eaa8eb7f85b58d579c3e7ff', class: `${mapContainerClass} width-full`, ref: (el) => this._toolbar = el }, this._getActionBar(), !this.isMobile && this.isMapLayout && this._getDropdown("more-table-options"), this.enableShare && !this.isMobile && this.isMapLayout ? this._getShare("share") : undefined), h("calcite-progress", { key: '6a0b7a2a734f3631b8c8a712acaf60a9e95c6c16', class: progressClass, value: 0 }), h("div", { key: '74cebf9c194bfc5b72be3b397821f586a5923fa4', class: `${mapHeightClass} ${mapClass}`, ref: (el) => (this._mapDiv = el) }), h("map-tools", { key: '6c87207eecaacf61c594f1036af38c0548ea1767', basemapConfig: this.basemapConfig, class: `box-shadow ${themeClass}`, enableBasemap: this.enableBasemap, enableFloorFilter: this.enableFloorFilter, enableFullscreen: this.enableFullscreen, enableHome: this.enableHome, enableLegend: this.enableLegend, enableSearch: this.enableSearch, enableSingleExpand: this.enableSingleExpand, homeZoomToolsSize: this.homeZoomToolsSize, locale: this.locale, mapView: this.mapView, mapWidgetsSize: this.mapWidgetsSize, position: this.mapWidgetsPosition, ref: (el) => this._mapTools = el, searchConfiguration: this._searchConfiguration, stackTools: this.stackTools, toolOrder: this.toolOrder })));
2497
2503
  }
2498
2504
  /**
2499
2505
  * Called each time after the component is loaded
@@ -10,7 +10,7 @@ import { g as getLayerOrTable } from './mapViewUtils-f54edae3.js';
10
10
  import './esri-loader-c6842c6b.js';
11
11
  import './_commonjsHelpers-089957fe.js';
12
12
 
13
- const crowdsourceManagerCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-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-color-border-3)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-3)}.border-right{border-right:2px solid var(--calcite-color-border-3)}.border-sides{border-left:1px solid var(--calcite-color-border-3);border-right:1px solid var(--calcite-color-border-3)}.position-relative{position:relative}.position-absolute{position:absolute}.position-sticky{position:sticky}.height-50{height:50%}.top-51{top:51px}.adjusted-height-50{height:calc(50% - 25px)}.adjusted-height-100{height:calc(100% - 50px)}.adjusted-height-100-51{height:calc(100% - 51px)}.display-none{display:none !important}.adjusted-height-50_25{height:calc(50% + 25px)}.position-absolute-53{position:absolute;top:53px}.display-grid{display:grid}.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}.position-absolute-50{position:absolute;top:50px;bottom:0px;left:0px;right:0px}.position-absolute-0{position:absolute;top:0px;bottom:0px;left:0px;right:0px}.visibility-hidden{visibility:hidden;height:0px}.position-fixed{position:fixed}.border-width-0{border-width:0px}.border-bottom-width-0{border-bottom-width:0px}.floating-container{position:fixed;width:100px;height:10px;bottom:0;right:0;margin:100px 0px}.floating-container .floating-button{box-shadow:0 10px 25px rgb(92 93 94 / 60%);transform:translatey(5px);transition:all 0.3s}.z-index-0{z-index:0 !important}";
13
+ const crowdsourceManagerCss = ":host{display:block;--calcite-label-margin-bottom:0px;--solutions-theme-foreground-color:var(--calcite-color-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-color-border-3)}.border-bottom{border-bottom:1px solid var(--calcite-color-border-3)}.border-right{border-right:2px solid var(--calcite-color-border-3)}.border-sides{border-left:1px solid var(--calcite-color-border-3);border-right:1px solid var(--calcite-color-border-3)}.position-relative{position:relative}.position-absolute{position:absolute}.position-sticky{position:sticky}.height-50{height:50%}.top-51{top:51px}.adjusted-height-50{height:calc(50% - 25px)}.adjusted-height-100{height:calc(100% - 50px)}.adjusted-height-100-51{height:calc(100% - 51px)}.display-none{display:none !important}.adjusted-height-50_25{height:calc(50% + 25px)}.position-absolute-53{position:absolute;top:53px}.display-grid{display:grid}.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}.position-absolute-50{position:absolute;top:50px;bottom:0px;left:0px;right:0px}.position-absolute-0{position:absolute;top:0px;bottom:0px;left:0px;right:0px}.visibility-hidden{visibility:hidden;height:0px}.position-fixed{position:fixed}.border-width-0{border-width:0px}.border-bottom-width-0{border-bottom-width:0px}.floating-container{position:fixed;width:100px;height:10px;bottom:0;right:0;margin:100px 0px}.floating-container .floating-button{box-shadow:0 10px 25px rgb(92 93 94 / 60%);transform:translatey(5px);transition:all 0.3s}.z-index-0{z-index:0 !important}.z-index-1{z-index:1 !important}";
14
14
  const CrowdsourceManagerStyle0 = crowdsourceManagerCss;
15
15
 
16
16
  const CrowdsourceManager = class {
@@ -56,6 +56,7 @@ const CrowdsourceManager = class {
56
56
  this.theme = "light";
57
57
  this.zoomAndScrollToSelected = false;
58
58
  this.zoomToScale = undefined;
59
+ this._deleteDialogOpen = false;
59
60
  this._enableCreateFeatures = true;
60
61
  this._hideFooter = false;
61
62
  this._hideTable = false;
@@ -93,6 +94,10 @@ const CrowdsourceManager = class {
93
94
  * MapView.when is not fired when mapView is not currently visible
94
95
  */
95
96
  _defaultLevelHonored = false;
97
+ /**
98
+ * number[]: the ids to be deleted
99
+ */
100
+ _deleteIds;
96
101
  /**
97
102
  * HTMLLayerTableElement: The layer table element
98
103
  */
@@ -224,6 +229,13 @@ const CrowdsourceManager = class {
224
229
  this._isLoading = false;
225
230
  });
226
231
  }
232
+ /**
233
+ * Get the feature ids and open the delete dialog
234
+ */
235
+ async showDelete(evt) {
236
+ this._deleteIds = evt.detail.ids;
237
+ this._deleteDialogOpen = true;
238
+ }
227
239
  /**
228
240
  * Get the layer ids from the map
229
241
  */
@@ -250,7 +262,7 @@ const CrowdsourceManager = class {
250
262
  render() {
251
263
  // only avoid border when we have a header color that is not white
252
264
  const borderClass = this.popupHeaderColor && this.popupHeaderColor !== "#FFFFFF" ? "border-width-0" : "";
253
- return (h(Host, { key: '8fd887051b4437477f1413843dfc6d938304364a' }, h("calcite-shell", { key: 'a9989a1698b268db75cdbcadcd3956d944daa25c', class: "position-relative" }, h("calcite-panel", { key: '88c5631e21b5ccb6a958e016c274e3aa746a6af1', class: `width-full height-full ${borderClass}`, loading: this._isLoading }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal()));
265
+ return (h(Host, { key: '8f8d68ca8cd5e170196639cda11b61d64a8e6050' }, h("calcite-shell", { key: '351696228f10d637c4c033d857dc2e169d33bcb5', class: "position-relative" }, h("calcite-panel", { key: 'b77a1b4d4d15f466cf2650d86f084c150b8aaa86', class: `width-full height-full ${borderClass}`, loading: this._isLoading }, this._getBody(this._layoutMode, this._panelOpen, this._hideTable)), this._getFooter()), this._filterModal(), this._deleteModal()));
254
266
  }
255
267
  /**
256
268
  * Called after each render
@@ -430,7 +442,7 @@ const CrowdsourceManager = class {
430
442
  _getMapAndCard(layoutMode, panelOpen, hideTable) {
431
443
  const mapSizeClass = this._getMapSizeClass(layoutMode, panelOpen, hideTable);
432
444
  const borderRight = !this._isPortraitMobile && this._isMobile ? "border-right" : "";
433
- return (h("div", { class: `${mapSizeClass} overflow-hidden ${borderRight}` }, this._getMapNode(panelOpen), this._getPopupExpandNode()));
445
+ return (h("div", { class: `${mapSizeClass} overflow-hidden z-index-1 ${borderRight}` }, this._getMapNode(panelOpen), this._getPopupExpandNode()));
434
446
  }
435
447
  /**
436
448
  * Get the map node based for the current layout options
@@ -455,7 +467,7 @@ const CrowdsourceManager = class {
455
467
  * @protected
456
468
  */
457
469
  _getPopupExpandNode() {
458
- const popupNodeClass = this._isMobile ? "height-full" : "height-full position-relative z-index-0";
470
+ const popupNodeClass = this._isMobile ? "height-full" : "height-full position-relative";
459
471
  const headerClass = this._isPortraitMobile && this._showInformationHeader ? "display-none height-0" : "";
460
472
  const headerTheme = this.popupHeaderColor ? "" : !this._isPortraitMobile ? "calcite-mode-dark" : "calcite-mode-light";
461
473
  const containerClass = this._isPortraitMobile && this._hideTable ? "position-absolute-0 width-full height-full" : this._isPortraitMobile ? "display-none height-0" : "";
@@ -522,6 +534,15 @@ const CrowdsourceManager = class {
522
534
  const id = "toggle-layout";
523
535
  return (h(Fragment, null, h("calcite-action", { active: this.appLayout === 'splitView', class: "toggle-node", icon: "browser", id: "browser-action", onClick: () => { this.appLayout = "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.appLayout = "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", disabled: this._layerIds?.length === 0, icon: "browser-map", id: "browser-map-action", onClick: () => { this.appLayout = "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))));
524
536
  }
537
+ /**
538
+ * Show delete dialog
539
+ *
540
+ * @returns node that will support delete or keep of the features
541
+ * @protected
542
+ */
543
+ _deleteModal() {
544
+ return (h("delete-dialog", { id: "deleteDialogId", ids: this._deleteIds, layer: this._layer, locale: this.locale, onDeleteDialogClose: () => this._deleteDialogOpen = false, open: this._deleteDialogOpen }));
545
+ }
525
546
  /**
526
547
  * Show filter component in modal
527
548
  *
@@ -0,0 +1,127 @@
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 registerInstance, c as createEvent, g as getElement, h, H as Host } from './index-904bc599.js';
7
+ import { g as getLocaleComponentStrings } from './locale-0d06fca0.js';
8
+ import './esri-loader-c6842c6b.js';
9
+ import './_commonjsHelpers-089957fe.js';
10
+
11
+ const deleteDialogCss = ":host{display:block}.delete-modal{position:fixed}";
12
+ const DeleteDialogStyle0 = deleteDialogCss;
13
+
14
+ const DeleteDialog = class {
15
+ constructor(hostRef) {
16
+ registerInstance(this, hostRef);
17
+ this.editsComplete = createEvent(this, "editsComplete", 7);
18
+ this.deleteDialogClose = createEvent(this, "deleteDialogClose", 7);
19
+ this.ids = [];
20
+ this.layer = undefined;
21
+ this.locale = undefined;
22
+ this.open = false;
23
+ this._isDeleting = false;
24
+ this._translations = undefined;
25
+ }
26
+ get el() { return getElement(this); }
27
+ //--------------------------------------------------------------------------
28
+ //
29
+ // Properties (protected)
30
+ //
31
+ //--------------------------------------------------------------------------
32
+ //--------------------------------------------------------------------------
33
+ //
34
+ // Watch handlers
35
+ //
36
+ //--------------------------------------------------------------------------
37
+ /**
38
+ * Fetch translations when the locale is updated
39
+ */
40
+ async localeWatchHandler() {
41
+ // to support url param and language switcher
42
+ this.el.lang = this.locale;
43
+ await this._getTranslations();
44
+ }
45
+ //--------------------------------------------------------------------------
46
+ //
47
+ // Methods (public)
48
+ //
49
+ //--------------------------------------------------------------------------
50
+ //--------------------------------------------------------------------------
51
+ //
52
+ // Events (public)
53
+ //
54
+ //--------------------------------------------------------------------------
55
+ /**
56
+ * Emitted on demand when features have been deleted
57
+ */
58
+ editsComplete;
59
+ /**
60
+ * Emitted on demand when features have been deleted
61
+ */
62
+ deleteDialogClose;
63
+ //--------------------------------------------------------------------------
64
+ //
65
+ // Functions (lifecycle)
66
+ //
67
+ //--------------------------------------------------------------------------
68
+ /**
69
+ * StencilJS: Called once just after the component is first connected to the DOM.
70
+ *
71
+ * @returns Promise when complete
72
+ */
73
+ async componentWillLoad() {
74
+ await this._getTranslations();
75
+ }
76
+ /**
77
+ * Renders the component.
78
+ */
79
+ render() {
80
+ const confirmMessage = this.ids.length === 1 ? this._translations?.confirmSingle :
81
+ this._translations?.confirmMultiple;
82
+ return (h(Host, { key: 'eafca7d4325c65ff21fbfeaa24ea14e95bc25a34' }, h("calcite-modal", { key: '745e52d7b23318492914662cc769a1206baefd28', "aria-labelledby": "modal-title", class: "delete-modal", kind: "danger", onCalciteModalClose: () => this._close(), open: this.open, widthScale: "s" }, h("div", { key: '363614f6eaf30c30c6c2ccde3875dfff5cd94088', class: "display-flex align-center", id: "modal-title", slot: "header" }, this._translations?.deleteFeature), h("div", { key: 'b3b6f74495894589b7fd8be54265c4a69ffaa62e', slot: "content" }, confirmMessage), h("calcite-button", { key: 'd325fcf12624bac39f56ec690f7e4e9660789891', appearance: "outline", kind: "danger", onClick: () => this._close(), slot: "secondary", width: "full" }, this._translations?.cancel), h("calcite-button", { key: '73a10546ad92065c949bfacca3eb3d508685030e', kind: "danger", loading: this._isDeleting, onClick: () => void this._deleteFeatures(), slot: "primary", width: "full" }, this._translations?.delete))));
83
+ }
84
+ //--------------------------------------------------------------------------
85
+ //
86
+ // Functions (protected)
87
+ //
88
+ //--------------------------------------------------------------------------
89
+ /**
90
+ * Delete the currently selected features
91
+ */
92
+ async _deleteFeatures() {
93
+ this._isDeleting = true;
94
+ const deleteFeatures = this.ids.map((objectId) => {
95
+ return { objectId };
96
+ });
97
+ await this.layer.applyEdits({
98
+ deleteFeatures
99
+ });
100
+ this._isDeleting = false;
101
+ this._close();
102
+ this.editsComplete.emit("delete");
103
+ }
104
+ /**
105
+ * Set the alertOpen member to false when the alert is closed
106
+ */
107
+ _close() {
108
+ this.open = false;
109
+ this.deleteDialogClose.emit();
110
+ }
111
+ /**
112
+ * Fetches the component's translations
113
+ *
114
+ * @returns Promise when complete
115
+ * @protected
116
+ */
117
+ async _getTranslations() {
118
+ const messages = await getLocaleComponentStrings(this.el);
119
+ this._translations = messages[0];
120
+ }
121
+ static get watchers() { return {
122
+ "locale": ["localeWatchHandler"]
123
+ }; }
124
+ };
125
+ DeleteDialog.style = DeleteDialogStyle0;
126
+
127
+ export { DeleteDialog as delete_dialog };