@esri/solutions-components 0.11.17 → 0.11.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/dist/cjs/{asyncToGenerator-c7fc3ee4.js → asyncToGenerator-f169429a.js} +1 -1
  2. package/dist/cjs/basemap-gallery_7.cjs.entry.js +50 -259
  3. package/dist/cjs/buffer-tools_2.cjs.entry.js +29 -123
  4. package/dist/cjs/card-manager_3.cjs.entry.js +215 -565
  5. package/dist/cjs/consent-manager.cjs.entry.js +15 -57
  6. package/dist/cjs/create-feature_4.cjs.entry.js +102 -256
  7. package/dist/cjs/create-related-feature_3.cjs.entry.js +38 -172
  8. package/dist/cjs/crowdsource-manager.cjs.entry.js +89 -267
  9. package/dist/cjs/crowdsource-reporter.cjs.entry.js +55 -219
  10. package/dist/cjs/deduct-calculator.cjs.entry.js +1 -1
  11. package/dist/cjs/delete-dialog.cjs.entry.js +9 -38
  12. package/dist/cjs/{downloadUtils-88ec0e88.js → downloadUtils-b269c7a1.js} +5 -5
  13. package/dist/cjs/{effects-3607d1ba.js → effects-2f75069e.js} +1 -1
  14. package/dist/cjs/feature-list.cjs.entry.js +30 -110
  15. package/dist/cjs/{helpers-a65cb83a.js → helpers-69e520bd.js} +3 -3
  16. package/dist/cjs/{index-2c21082d.js → index-af14245a.js} +346 -428
  17. package/dist/cjs/{index-90ef3c01.js → index-ffd12cb0.js} +1 -1
  18. package/dist/cjs/{index.es-3c2404c3.js → index.es-644259ff.js} +2 -2
  19. package/dist/cjs/instant-apps-app-guide.cjs.entry.js +5 -5
  20. package/dist/cjs/instant-apps-ckeditor-wrapper_3.cjs.entry.js +7 -7
  21. package/dist/cjs/instant-apps-control-panel.cjs.entry.js +3 -3
  22. package/dist/cjs/instant-apps-create.cjs.entry.js +5 -5
  23. package/dist/cjs/instant-apps-export-views.cjs.entry.js +5 -5
  24. package/dist/cjs/instant-apps-export.cjs.entry.js +5 -5
  25. package/dist/cjs/instant-apps-filter-list_2.cjs.entry.js +5 -5
  26. package/dist/cjs/instant-apps-header.cjs.entry.js +3 -3
  27. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +6 -6
  28. package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +6 -6
  29. package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +6 -6
  30. package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +6 -6
  31. package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +8 -8
  32. package/dist/cjs/instant-apps-keyboard-shortcuts.cjs.entry.js +5 -5
  33. package/dist/cjs/instant-apps-landing-page.cjs.entry.js +1 -1
  34. package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +8 -8
  35. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +8 -8
  36. package/dist/cjs/instant-apps-measurement-tool.cjs.entry.js +3 -3
  37. package/dist/cjs/instant-apps-measurement.cjs.entry.js +5 -5
  38. package/dist/cjs/instant-apps-popover.cjs.entry.js +5 -5
  39. package/dist/cjs/instant-apps-popovers.cjs.entry.js +1 -1
  40. package/dist/cjs/instant-apps-scoreboard.cjs.entry.js +5 -5
  41. package/dist/cjs/instant-apps-sign-in.cjs.entry.js +5 -5
  42. package/dist/cjs/instant-apps-splash.cjs.entry.js +5 -5
  43. package/dist/cjs/instant-apps-time-filter.cjs.entry.js +7 -7
  44. package/dist/cjs/json-editor_7.cjs.entry.js +50 -228
  45. package/dist/cjs/{languageSwitcher-19a22439.js → languageSwitcher-c8e62594.js} +1 -1
  46. package/dist/cjs/{languageUtil-a3e1eafd.js → languageUtil-bd49af69.js} +1 -1
  47. package/dist/cjs/{loadModules-e9d8977c.js → loadModules-3b29fa24.js} +1 -1
  48. package/dist/cjs/loader.cjs.js +2 -2
  49. package/dist/cjs/{locale-c09e93fb.js → locale-905e6063.js} +2 -2
  50. package/dist/cjs/{locale-0a273172.js → locale-c923d7b6.js} +3 -3
  51. package/dist/cjs/map-layer-picker.cjs.entry.js +29 -114
  52. package/dist/cjs/map-select-tools_3.cjs.entry.js +53 -232
  53. package/dist/cjs/{mapViewUtils-319df9ec.js → mapViewUtils-4ea7216c.js} +0 -44
  54. package/dist/cjs/pci-calculator.cjs.entry.js +2 -15
  55. package/dist/cjs/{popupUtils-ca1127aa.js → popupUtils-5378e04a.js} +2 -2
  56. package/dist/cjs/public-notification.cjs.entry.js +47 -197
  57. package/dist/cjs/{publicNotificationStore-ee00411f.js → publicNotificationStore-beb782de.js} +1 -1
  58. package/dist/cjs/solution-configuration.cjs.entry.js +18 -53
  59. package/dist/cjs/solution-contents_3.cjs.entry.js +19 -85
  60. package/dist/cjs/solution-item-accordion.cjs.entry.js +15 -42
  61. package/dist/cjs/solution-item-icon.cjs.entry.js +4 -18
  62. package/dist/cjs/{solution-store-6208ce28.js → solution-store-3cf25b71.js} +1 -1
  63. package/dist/cjs/solutions-components.cjs.js +3 -3
  64. package/dist/cjs/spatial-ref.cjs.entry.js +11 -46
  65. package/dist/cjs/store-manager.cjs.entry.js +6 -21
  66. package/dist/cjs/{utils-30344ce0.js → utils-3739960f.js} +2 -2
  67. package/dist/collection/assets/t9n/crowdsource-manager/resources.json +4 -1
  68. package/dist/collection/assets/t9n/crowdsource-manager/resources_en.json +4 -1
  69. package/dist/collection/assets/t9n/solution-item-accordion/resources.json +1 -1
  70. package/dist/collection/assets/t9n/solution-item-accordion/resources_en.json +1 -1
  71. package/dist/collection/collection-manifest.json +1 -1
  72. package/dist/collection/components/basemap-gallery/basemap-gallery.js +5 -19
  73. package/dist/collection/components/buffer-tools/buffer-tools.js +13 -52
  74. package/dist/collection/components/card-manager/card-manager.js +18 -72
  75. package/dist/collection/components/consent-manager/consent-manager.js +12 -52
  76. package/dist/collection/components/create-feature/create-feature.js +16 -68
  77. package/dist/collection/components/create-related-feature/create-related-feature.js +10 -44
  78. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +23 -0
  79. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +88 -263
  80. package/dist/collection/components/crowdsource-reporter/crowdsource-reporter.js +53 -215
  81. package/dist/collection/components/delete-button/delete-button.js +13 -55
  82. package/dist/collection/components/delete-dialog/delete-dialog.js +8 -35
  83. package/dist/collection/components/edit-card/edit-card.js +10 -43
  84. package/dist/collection/components/feature-details/feature-details.js +18 -74
  85. package/dist/collection/components/feature-list/feature-list.js +25 -103
  86. package/dist/collection/components/floor-filter/floor-filter.js +5 -19
  87. package/dist/collection/components/info-card/info-card.js +100 -84
  88. package/dist/collection/components/json-editor/json-editor.js +7 -28
  89. package/dist/collection/components/layer-list/layer-list.js +12 -50
  90. package/dist/collection/components/layer-table/layer-table.js +188 -308
  91. package/dist/collection/components/map-card/map-card.js +43 -182
  92. package/dist/collection/components/map-draw-tools/map-draw-tools.js +15 -66
  93. package/dist/collection/components/map-fullscreen/map-fullscreen.js +4 -18
  94. package/dist/collection/components/map-layer-picker/map-layer-picker.js +25 -108
  95. package/dist/collection/components/map-legend/map-legend.js +4 -15
  96. package/dist/collection/components/map-picker/map-picker.js +8 -35
  97. package/dist/collection/components/map-search/map-search.js +8 -35
  98. package/dist/collection/components/map-select-tools/map-select-tools.js +32 -138
  99. package/dist/collection/components/map-tools/map-tools.js +27 -115
  100. package/dist/collection/components/pci-calculator/pci-calculator.js +3 -14
  101. package/dist/collection/components/pdf-download/pdf-download.js +6 -27
  102. package/dist/collection/components/public-notification/public-notification.js +41 -189
  103. package/dist/collection/components/refine-selection/refine-selection.js +13 -59
  104. package/dist/collection/components/solution-configuration/solution-configuration.js +13 -48
  105. package/dist/collection/components/solution-contents/solution-contents.js +4 -13
  106. package/dist/collection/components/solution-item/solution-item.js +9 -36
  107. package/dist/collection/components/solution-item-accordion/solution-item-accordion.js +19 -40
  108. package/dist/collection/components/solution-item-details/solution-item-details.js +16 -35
  109. package/dist/collection/components/solution-item-icon/solution-item-icon.js +5 -17
  110. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +6 -27
  111. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +6 -24
  112. package/dist/collection/components/solution-resource-item/solution-resource-item.js +8 -36
  113. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +7 -31
  114. package/dist/collection/components/solution-template-data/solution-template-data.js +8 -49
  115. package/dist/collection/components/solution-variables/solution-variables.js +6 -24
  116. package/dist/collection/components/spatial-ref/spatial-ref.js +8 -43
  117. package/dist/collection/components/store-manager/store-manager.js +5 -18
  118. package/dist/components/basemap-gallery2.js +3 -19
  119. package/dist/components/buffer-tools2.js +11 -52
  120. package/dist/components/card-manager2.js +16 -72
  121. package/dist/components/consent-manager.js +10 -52
  122. package/dist/components/create-feature2.js +14 -68
  123. package/dist/components/create-related-feature2.js +8 -44
  124. package/dist/components/crowdsource-manager.js +87 -264
  125. package/dist/components/crowdsource-reporter.js +51 -215
  126. package/dist/components/delete-button2.js +11 -55
  127. package/dist/components/delete-dialog2.js +6 -35
  128. package/dist/components/edit-card2.js +8 -43
  129. package/dist/components/feature-details2.js +16 -74
  130. package/dist/components/feature-list2.js +23 -103
  131. package/dist/components/floor-filter2.js +3 -19
  132. package/dist/components/info-card2.js +64 -83
  133. package/dist/components/json-editor2.js +5 -28
  134. package/dist/components/layer-list2.js +10 -50
  135. package/dist/components/layer-table2.js +155 -307
  136. package/dist/components/map-card2.js +41 -182
  137. package/dist/components/map-draw-tools2.js +13 -66
  138. package/dist/components/map-fullscreen2.js +2 -18
  139. package/dist/components/map-layer-picker2.js +23 -108
  140. package/dist/components/map-legend2.js +2 -15
  141. package/dist/components/map-picker2.js +6 -35
  142. package/dist/components/map-search2.js +6 -35
  143. package/dist/components/map-select-tools2.js +31 -139
  144. package/dist/components/map-tools2.js +25 -115
  145. package/dist/components/pci-calculator.js +1 -14
  146. package/dist/components/pdf-download2.js +4 -27
  147. package/dist/components/public-notification.js +39 -189
  148. package/dist/components/queryUtils.js +1 -43
  149. package/dist/components/refine-selection2.js +12 -60
  150. package/dist/components/solution-configuration.js +13 -48
  151. package/dist/components/solution-contents2.js +2 -13
  152. package/dist/components/solution-item-accordion.js +12 -39
  153. package/dist/components/solution-item-details2.js +14 -35
  154. package/dist/components/solution-item-icon2.js +3 -17
  155. package/dist/components/solution-item-sharing2.js +4 -27
  156. package/dist/components/solution-item2.js +7 -36
  157. package/dist/components/solution-organization-variables2.js +4 -24
  158. package/dist/components/solution-resource-item2.js +6 -36
  159. package/dist/components/solution-spatial-ref2.js +5 -31
  160. package/dist/components/solution-template-data2.js +8 -49
  161. package/dist/components/solution-variables2.js +4 -24
  162. package/dist/components/spatial-ref.js +8 -43
  163. package/dist/components/store-manager.js +3 -18
  164. package/dist/esm/{asyncToGenerator-96b2368d.js → asyncToGenerator-e51717ed.js} +1 -1
  165. package/dist/esm/basemap-gallery_7.entry.js +50 -259
  166. package/dist/esm/buffer-tools_2.entry.js +29 -123
  167. package/dist/esm/card-manager_3.entry.js +215 -565
  168. package/dist/esm/consent-manager.entry.js +15 -57
  169. package/dist/esm/create-feature_4.entry.js +102 -256
  170. package/dist/esm/create-related-feature_3.entry.js +38 -172
  171. package/dist/esm/crowdsource-manager.entry.js +89 -267
  172. package/dist/esm/crowdsource-reporter.entry.js +55 -219
  173. package/dist/esm/deduct-calculator.entry.js +1 -1
  174. package/dist/esm/delete-dialog.entry.js +9 -38
  175. package/dist/esm/{downloadUtils-22a8f2d8.js → downloadUtils-d04d4095.js} +5 -5
  176. package/dist/esm/{effects-38bc1195.js → effects-602e7b51.js} +1 -1
  177. package/dist/esm/feature-list.entry.js +30 -110
  178. package/dist/esm/{helpers-77bdd30e.js → helpers-520f100c.js} +3 -3
  179. package/dist/esm/{index-6de7c296.js → index-c247b62b.js} +1 -1
  180. package/dist/esm/{index-3702583a.js → index-df5db8e9.js} +346 -428
  181. package/dist/esm/{index.es-87662946.js → index.es-ca80d0c5.js} +2 -2
  182. package/dist/esm/instant-apps-app-guide.entry.js +5 -5
  183. package/dist/esm/instant-apps-ckeditor-wrapper_3.entry.js +7 -7
  184. package/dist/esm/instant-apps-control-panel.entry.js +3 -3
  185. package/dist/esm/instant-apps-create.entry.js +5 -5
  186. package/dist/esm/instant-apps-export-views.entry.js +5 -5
  187. package/dist/esm/instant-apps-export.entry.js +5 -5
  188. package/dist/esm/instant-apps-filter-list_2.entry.js +5 -5
  189. package/dist/esm/instant-apps-header.entry.js +3 -3
  190. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +6 -6
  191. package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +6 -6
  192. package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +6 -6
  193. package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +6 -6
  194. package/dist/esm/instant-apps-interactive-legend.entry.js +8 -8
  195. package/dist/esm/instant-apps-keyboard-shortcuts.entry.js +5 -5
  196. package/dist/esm/instant-apps-landing-page.entry.js +1 -1
  197. package/dist/esm/instant-apps-language-switcher.entry.js +8 -8
  198. package/dist/esm/instant-apps-language-translator.entry.js +8 -8
  199. package/dist/esm/instant-apps-measurement-tool.entry.js +3 -3
  200. package/dist/esm/instant-apps-measurement.entry.js +5 -5
  201. package/dist/esm/instant-apps-popover.entry.js +5 -5
  202. package/dist/esm/instant-apps-popovers.entry.js +1 -1
  203. package/dist/esm/instant-apps-scoreboard.entry.js +5 -5
  204. package/dist/esm/instant-apps-sign-in.entry.js +5 -5
  205. package/dist/esm/instant-apps-splash.entry.js +5 -5
  206. package/dist/esm/instant-apps-time-filter.entry.js +7 -7
  207. package/dist/esm/json-editor_7.entry.js +50 -228
  208. package/dist/esm/{languageSwitcher-49bad3f4.js → languageSwitcher-ccdf79d4.js} +1 -1
  209. package/dist/esm/{languageUtil-2b6e191a.js → languageUtil-2bac3910.js} +1 -1
  210. package/dist/esm/{loadModules-947ccfd4.js → loadModules-1b0b108c.js} +1 -1
  211. package/dist/esm/loader.js +3 -3
  212. package/dist/esm/{locale-aa656a2c.js → locale-15e42305.js} +2 -2
  213. package/dist/esm/{locale-b0016f8e.js → locale-29d08ded.js} +3 -3
  214. package/dist/esm/map-layer-picker.entry.js +29 -114
  215. package/dist/esm/map-select-tools_3.entry.js +53 -232
  216. package/dist/esm/{mapViewUtils-a854e298.js → mapViewUtils-9da9be1c.js} +1 -43
  217. package/dist/esm/pci-calculator.entry.js +2 -15
  218. package/dist/esm/{popupUtils-1314cb13.js → popupUtils-b71abb01.js} +2 -2
  219. package/dist/esm/public-notification.entry.js +47 -197
  220. package/dist/esm/{publicNotificationStore-70219049.js → publicNotificationStore-9ec5e22a.js} +1 -1
  221. package/dist/esm/solution-configuration.entry.js +18 -53
  222. package/dist/esm/solution-contents_3.entry.js +19 -85
  223. package/dist/esm/solution-item-accordion.entry.js +15 -42
  224. package/dist/esm/solution-item-icon.entry.js +4 -18
  225. package/dist/esm/{solution-store-2493275a.js → solution-store-4c39c654.js} +1 -1
  226. package/dist/esm/solutions-components.js +4 -4
  227. package/dist/esm/spatial-ref.entry.js +11 -46
  228. package/dist/esm/store-manager.entry.js +6 -21
  229. package/dist/esm/{utils-68015f9d.js → utils-89be1743.js} +2 -2
  230. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources.json +4 -1
  231. package/dist/solutions-components/assets/t9n/crowdsource-manager/resources_en.json +4 -1
  232. package/dist/solutions-components/assets/t9n/solution-item-accordion/resources.json +1 -1
  233. package/dist/solutions-components/assets/t9n/solution-item-accordion/resources_en.json +1 -1
  234. package/dist/solutions-components/{p-68d49e1a.entry.js → p-0132213f.entry.js} +2 -2
  235. package/dist/solutions-components/{p-dc188d13.js → p-039ab075.js} +1 -1
  236. package/dist/solutions-components/p-04277d48.entry.js +6 -0
  237. package/dist/solutions-components/p-04546ef6.js +6 -0
  238. package/dist/solutions-components/{p-174fa218.js → p-0607044f.js} +1 -1
  239. package/dist/solutions-components/p-099379e6.entry.js +6 -0
  240. package/dist/solutions-components/{p-300ff31e.entry.js → p-0b1c830a.entry.js} +1 -1
  241. package/dist/solutions-components/{p-ff5db601.entry.js → p-0ea99464.entry.js} +1 -1
  242. package/dist/solutions-components/p-1054e10a.entry.js +6 -0
  243. package/dist/solutions-components/p-1adc6874.entry.js +6 -0
  244. package/dist/solutions-components/{p-3c3aecdd.js → p-258aa58e.js} +1 -1
  245. package/dist/solutions-components/p-29baf8a2.entry.js +6 -0
  246. package/dist/solutions-components/{p-eb97b5ad.entry.js → p-2a1ed83a.entry.js} +1 -1
  247. package/dist/solutions-components/{p-8107be38.entry.js → p-2a7f23fc.entry.js} +1 -1
  248. package/dist/solutions-components/{p-6da8fe2d.entry.js → p-2cb8c175.entry.js} +1 -1
  249. package/dist/solutions-components/p-2d3b8412.entry.js +6 -0
  250. package/dist/solutions-components/p-2d8300ba.entry.js +6 -0
  251. package/dist/solutions-components/{p-ac122d9e.js → p-3423b5ef.js} +1 -1
  252. package/dist/solutions-components/{p-fa09caf3.entry.js → p-34338938.entry.js} +1 -1
  253. package/dist/solutions-components/{p-4f514c6d.js → p-36e3b39c.js} +2 -2
  254. package/dist/solutions-components/{p-ea64b72e.entry.js → p-37cc79c6.entry.js} +1 -1
  255. package/dist/solutions-components/p-38814554.entry.js +6 -0
  256. package/dist/solutions-components/{p-ee863ffb.entry.js → p-3f8b1062.entry.js} +1 -1
  257. package/dist/solutions-components/p-436b869c.entry.js +6 -0
  258. package/dist/solutions-components/{p-08ad0b7a.js → p-438fdc33.js} +1 -1
  259. package/dist/solutions-components/{p-335a630e.entry.js → p-4454af38.entry.js} +1 -1
  260. package/dist/solutions-components/p-532ed572.entry.js +6 -0
  261. package/dist/solutions-components/{p-959cb673.entry.js → p-552fb1c0.entry.js} +1 -1
  262. package/dist/solutions-components/{p-b560498c.entry.js → p-59a1c5a9.entry.js} +1 -1
  263. package/dist/solutions-components/p-5e4e0f84.entry.js +6 -0
  264. package/dist/solutions-components/{p-2b556610.entry.js → p-64a6162f.entry.js} +1 -1
  265. package/dist/solutions-components/{p-e85da876.entry.js → p-6ac03d17.entry.js} +1 -1
  266. package/dist/solutions-components/p-6e879de9.entry.js +6 -0
  267. package/dist/solutions-components/{p-8f7957a2.js → p-7bf7d67b.js} +1 -1
  268. package/dist/solutions-components/{p-81ae30bd.entry.js → p-86b6f918.entry.js} +1 -1
  269. package/dist/solutions-components/{p-e23b4193.js → p-8717729a.js} +1 -1
  270. package/dist/solutions-components/{p-e81e2d83.entry.js → p-8db12ee9.entry.js} +2 -2
  271. package/dist/solutions-components/{p-173d5fce.js → p-8f973b3d.js} +1 -1
  272. package/dist/solutions-components/{p-1ddd7128.entry.js → p-97abbf8f.entry.js} +1 -1
  273. package/dist/solutions-components/{p-ee2cbba0.js → p-a397e773.js} +1 -1
  274. package/dist/solutions-components/p-b636a8b4.entry.js +6 -0
  275. package/dist/solutions-components/{p-1890b884.entry.js → p-b6a6fdcf.entry.js} +2 -2
  276. package/dist/solutions-components/p-b8f29a99.entry.js +6 -0
  277. package/dist/solutions-components/p-ba472e45.entry.js +6 -0
  278. package/dist/solutions-components/{p-1dffcc22.entry.js → p-c3aac15b.entry.js} +1 -1
  279. package/dist/solutions-components/{p-3d20e307.js → p-cd38fc53.js} +1 -1
  280. package/dist/solutions-components/p-d45b0400.entry.js +6 -0
  281. package/dist/solutions-components/p-d885880a.entry.js +6 -0
  282. package/dist/solutions-components/{p-8b218ba7.js → p-da1e098c.js} +1 -1
  283. package/dist/solutions-components/{p-b40b5be5.entry.js → p-da1e4ff1.entry.js} +1 -1
  284. package/dist/solutions-components/p-dbf2c455.entry.js +6 -0
  285. package/dist/solutions-components/{p-952da957.js → p-dcd2f00b.js} +2 -2
  286. package/dist/solutions-components/{p-2c8360b4.entry.js → p-dda0aa41.entry.js} +1 -1
  287. package/dist/solutions-components/{p-70e8be5c.entry.js → p-e3e35c14.entry.js} +1 -1
  288. package/dist/solutions-components/{p-48942eb8.js → p-e6859850.js} +2 -2
  289. package/dist/solutions-components/{p-699a9557.entry.js → p-e79b69e6.entry.js} +1 -1
  290. package/dist/solutions-components/p-e996c38f.js +7 -0
  291. package/dist/solutions-components/{p-f07a02e2.entry.js → p-edfcce2c.entry.js} +1 -1
  292. package/dist/solutions-components/{p-2dcf8f00.entry.js → p-f292f56e.entry.js} +1 -1
  293. package/dist/solutions-components/{p-4bdd4009.entry.js → p-f36b4778.entry.js} +1 -1
  294. package/dist/solutions-components/{p-579628d9.entry.js → p-f457e8be.entry.js} +1 -1
  295. package/dist/solutions-components/{p-d65f8b73.js → p-f93a9d92.js} +1 -1
  296. package/dist/solutions-components/p-f99a78f1.entry.js +6 -0
  297. package/dist/solutions-components/{p-7f6cbe61.entry.js → p-fdf0d66f.entry.js} +1 -1
  298. package/dist/solutions-components/solutions-components.esm.js +1 -1
  299. package/dist/solutions-components_commit.txt +7 -7
  300. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +11 -7
  301. package/dist/types/components/info-card/info-card.d.ts +16 -0
  302. package/dist/types/components/layer-table/layer-table.d.ts +32 -21
  303. package/dist/types/components/solution-item-accordion/solution-item-accordion.d.ts +1 -1
  304. package/dist/types/components.d.ts +19 -2
  305. package/dist/types/preact.d.ts +2 -1
  306. package/package.json +2 -2
  307. package/dist/solutions-components/p-032d4411.entry.js +0 -6
  308. package/dist/solutions-components/p-1b0588d2.js +0 -7
  309. package/dist/solutions-components/p-1fe3577a.entry.js +0 -6
  310. package/dist/solutions-components/p-265f5dc4.entry.js +0 -6
  311. package/dist/solutions-components/p-43d9bb7d.entry.js +0 -6
  312. package/dist/solutions-components/p-4426901e.entry.js +0 -6
  313. package/dist/solutions-components/p-4ebc471b.entry.js +0 -6
  314. package/dist/solutions-components/p-5ea1e18b.entry.js +0 -6
  315. package/dist/solutions-components/p-6d62a4fa.entry.js +0 -6
  316. package/dist/solutions-components/p-70036eb6.entry.js +0 -6
  317. package/dist/solutions-components/p-87919d6d.entry.js +0 -6
  318. package/dist/solutions-components/p-89fbc318.js +0 -6
  319. package/dist/solutions-components/p-8ea0a36a.entry.js +0 -6
  320. package/dist/solutions-components/p-9d953313.entry.js +0 -6
  321. package/dist/solutions-components/p-a003600b.entry.js +0 -6
  322. package/dist/solutions-components/p-acd2699e.entry.js +0 -6
  323. package/dist/solutions-components/p-afc3ac6d.entry.js +0 -6
  324. package/dist/solutions-components/p-b37be371.entry.js +0 -6
  325. package/dist/solutions-components/p-bc2548ba.entry.js +0 -6
  326. package/dist/solutions-components/p-bf2598f8.entry.js +0 -6
  327. package/dist/solutions-components/p-ce8377c6.entry.js +0 -6
  328. /package/dist/cjs/{esri-loader-08dc41bd.js → esri-loader-1e8cc247.js} +0 -0
  329. /package/dist/cjs/{typeof-2a7e2dec.js → typeof-eba0a941.js} +0 -0
  330. /package/dist/esm/{esri-loader-c6842c6b.js → esri-loader-d10d860d.js} +0 -0
  331. /package/dist/esm/{typeof-ef2a007d.js → typeof-a3e780e1.js} +0 -0
  332. /package/dist/solutions-components/{p-4fe489cf.js → p-19bce2cc.js} +0 -0
  333. /package/dist/solutions-components/{p-0a24ad5f.js → p-3b3f77bc.js} +0 -0
@@ -22,10 +22,51 @@ import { Host, h } from "@stencil/core";
22
22
  import { loadModules } from "../../utils/loadModules";
23
23
  import { getLocaleComponentStrings } from "../../utils/locale";
24
24
  import { getFeatureLayerView, getLayerOrTable, goToSelection } from "../../utils/mapViewUtils";
25
- import { queryAllIds, queryAllOidsWithQueryFeatures, queryFeaturesByGlobalID } from "../../utils/queryUtils";
25
+ import { queryFeaturesByGlobalID } from "../../utils/queryUtils";
26
26
  import * as downloadUtils from "../../utils/downloadUtils";
27
27
  import "@esri/instant-apps-components/dist/components/instant-apps-social-share";
28
28
  export class LayerTable {
29
+ constructor() {
30
+ this.appLayout = undefined;
31
+ this.defaultGlobalId = undefined;
32
+ this.defaultLayerId = undefined;
33
+ this.defaultOid = undefined;
34
+ this.enableAutoRefresh = undefined;
35
+ this.enableColumnReorder = true;
36
+ this.enableCSV = undefined;
37
+ this.enableInlineEdit = undefined;
38
+ this.enableShare = undefined;
39
+ this.honorMapFieldSettings = undefined;
40
+ this.isMobile = undefined;
41
+ this.locale = undefined;
42
+ this.mapHidden = undefined;
43
+ this.mapInfo = undefined;
44
+ this.mapView = undefined;
45
+ this.onlyShowUpdatableLayers = undefined;
46
+ this.selectedIds = [];
47
+ this.shareIncludeEmbed = undefined;
48
+ this.shareIncludeSocial = undefined;
49
+ this.showNewestFirst = undefined;
50
+ this.zoomAndScrollToSelected = undefined;
51
+ this.zoomToScale = undefined;
52
+ this.createFilterModal = true;
53
+ this._allIds = [];
54
+ this._controlsThatFit = undefined;
55
+ this._csvExporting = false;
56
+ this._fetchingData = false;
57
+ this._filterActive = false;
58
+ this._filterOpen = false;
59
+ this._layer = undefined;
60
+ this._selectAllActive = false;
61
+ this._showHideOpen = false;
62
+ this._showOnlySelected = false;
63
+ this._toolInfos = undefined;
64
+ this._translations = undefined;
65
+ this._fullTextSearchInfo = undefined;
66
+ this._searchPlaceHolder = '';
67
+ this._size = 0;
68
+ this._queryingData = false;
69
+ }
29
70
  //--------------------------------------------------------------------------
30
71
  //
31
72
  // Host element access
@@ -34,177 +75,6 @@ export class LayerTable {
34
75
  el;
35
76
  //--------------------------------------------------------------------------
36
77
  //
37
- // Properties (public)
38
- //
39
- //--------------------------------------------------------------------------
40
- /**
41
- * AppLayout: the current app layout
42
- */
43
- appLayout;
44
- /**
45
- * string: Global ID of the feature to select
46
- */
47
- defaultGlobalId;
48
- /**
49
- * string: when provided this layer ID will be used when the app loads
50
- */
51
- defaultLayerId;
52
- /**
53
- * number: when provided this will be used to select a feature in the table by default
54
- */
55
- defaultOid;
56
- /**
57
- * boolean: when true the layer table will auto refresh the data
58
- */
59
- enableAutoRefresh;
60
- /**
61
- * boolean: when true the layer table will support drag/drop of columns to adjust order
62
- */
63
- enableColumnReorder = true;
64
- /**
65
- * boolean: when true the export to csv button will be available
66
- */
67
- enableCSV;
68
- /**
69
- * boolean: when true edits can be applied directly within the table
70
- */
71
- enableInlineEdit;
72
- /**
73
- * boolean: when true the share widget will be available
74
- */
75
- enableShare;
76
- /**
77
- * boolean: when true we will honor field order and visibility that may have been defined
78
- * in the map viewer if no field order is defined in the mapInfo.
79
- *
80
- * Field order defined in the mapInfo as would be the case for Instant App configurations
81
- * will always override this map level setting.
82
- */
83
- honorMapFieldSettings;
84
- /**
85
- * When true the component will render an optimized view for mobile devices
86
- */
87
- isMobile;
88
- /**
89
- * string: Locale to use for translation of stings in the UI
90
- */
91
- locale;
92
- /**
93
- * boolean: when true the map is hidden and map specific controls should be hidden
94
- */
95
- mapHidden;
96
- /**
97
- * IMapInfo: key configuration details about the current map
98
- */
99
- mapInfo;
100
- /**
101
- * esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html
102
- */
103
- mapView;
104
- /**
105
- * boolean: When true only editable layers that support the update capability will be available
106
- */
107
- onlyShowUpdatableLayers;
108
- /**
109
- * number[]: A list of ids that are currently selected
110
- */
111
- selectedIds = [];
112
- /**
113
- * boolean: When true the share options will include embed option
114
- */
115
- shareIncludeEmbed;
116
- /**
117
- * boolean: When true the share options will include social media sharing
118
- */
119
- shareIncludeSocial;
120
- /**
121
- * boolean: when true the table will be sorted by objectid in descending order by default
122
- */
123
- showNewestFirst;
124
- /**
125
- * boolean: When true the selected feature will zoomed to in the map and the row will be scrolled to within the table
126
- */
127
- zoomAndScrollToSelected;
128
- /**
129
- * number: default scale to zoom to when zooming to a single point feature
130
- */
131
- zoomToScale;
132
- /**
133
- * boolean: create filter modal optional (default true) boolean value to create filter modal in layer table
134
- */
135
- createFilterModal = true;
136
- //--------------------------------------------------------------------------
137
- //
138
- // State (internal)
139
- //
140
- //--------------------------------------------------------------------------
141
- /**
142
- * number[]: A list of all IDs for the current layer
143
- */
144
- _allIds = [];
145
- /**
146
- * IToolSizeInfo[]: The controls that currently fit based on toolbar size
147
- */
148
- _controlsThatFit;
149
- /**
150
- * boolean: When true a loading indicator will be shown beside the button text
151
- */
152
- _csvExporting = false;
153
- /**
154
- * boolean: When true a loading indicator will be shown in place of the layer table
155
- */
156
- _fetchingData = false;
157
- /**
158
- * boolean: When true an indicator will be shown on the action
159
- */
160
- _filterActive = false;
161
- /**
162
- * boolean: When true the filter component will be displayed
163
- */
164
- _filterOpen = false;
165
- /**
166
- * esri/views/layers/FeatureLayer: https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html
167
- */
168
- _layer;
169
- /**
170
- * boolean: When true the select all will be displayed in an active state
171
- */
172
- _selectAllActive = false;
173
- /**
174
- * boolean: When true the show/hide fields list is forced open
175
- */
176
- _showHideOpen = false;
177
- /**
178
- * boolean: When true only selected records will be shown in the table
179
- */
180
- _showOnlySelected = false;
181
- /**
182
- * IToolInfo[]: Key details used for creating the tools
183
- */
184
- _toolInfos;
185
- /**
186
- * Contains the translations for this component.
187
- * All UI strings should be defined here.
188
- */
189
- _translations;
190
- /**
191
- * any[] Contains full text search info object
192
- */
193
- _fullTextSearchInfo;
194
- /**
195
- * string Placeholder string to show fields included in full text search
196
- */
197
- _searchPlaceHolder = '';
198
- /**
199
- * number Total number of records currently displayed in the table. This takes into account all active filters.
200
- */
201
- _size = 0;
202
- /**
203
- * boolean: When true a loading indicator will be shown in place of the layer table
204
- */
205
- _queryingData = false;
206
- //--------------------------------------------------------------------------
207
- //
208
78
  // Properties (protected)
209
79
  //
210
80
  //--------------------------------------------------------------------------
@@ -220,10 +90,6 @@ export class LayerTable {
220
90
  * IColumnsInfo: Key/value pair with fieldname/(visible in table)
221
91
  */
222
92
  _columnsInfo;
223
- /**
224
- * boolean: When true the ctrl key is currently pressed
225
- */
226
- _ctrlIsPressed = false;
227
93
  /**
228
94
  * number: The id of the most recently selected row from the table
229
95
  */
@@ -329,18 +195,10 @@ export class LayerTable {
329
195
  * HTMLInstantAppsSocialShareElement: Element to support app sharing to social media
330
196
  */
331
197
  _shareNode;
332
- /**
333
- * boolean: When true the shift key is currently pressed
334
- */
335
- _shiftIsPressed = false;
336
198
  /**
337
199
  * HTMLCalciteDropdownElement: Dropdown the will support show/hide of table columns
338
200
  */
339
201
  _showHideDropdown;
340
- /**
341
- * boolean: When true any onChange handeling will be skipped
342
- */
343
- _skipOnChange = false;
344
202
  /**
345
203
  * HTMLCalciteDropdownElement: Dropdown the will support overflow tools that won't fit in the current display
346
204
  */
@@ -373,10 +231,22 @@ export class LayerTable {
373
231
  * boolean: When true we will not evaluate if the editor has any pending edits
374
232
  */
375
233
  _skipEditCheck = false;
234
+ /**
235
+ * __esri.Handle: handle for the filter by extent
236
+ */
237
+ _filterByExtentHandle;
376
238
  /**
377
239
  * number[]: selected features from table
378
240
  */
379
241
  _tempSelectedIds;
242
+ /**
243
+ * number[]: out of extent oids which are selected but now out of extent
244
+ */
245
+ _outOFExtentOids = [];
246
+ /**
247
+ * boolean: When true allow table to update the records
248
+ */
249
+ _shouldUpdateTableOnExtentChange = true;
380
250
  //--------------------------------------------------------------------------
381
251
  //
382
252
  // Watch handlers
@@ -540,13 +410,35 @@ export class LayerTable {
540
410
  * Reset the filter
541
411
  */
542
412
  async filterReset() {
413
+ if (this._filterByExtentHandle) {
414
+ this._table.filterGeometry = undefined;
415
+ this._filterByExtentHandle.remove();
416
+ this._filterByExtentHandle = undefined;
417
+ }
543
418
  await this._handleFilterListReset();
544
419
  }
545
420
  /**
546
421
  * Updates the filter
547
422
  */
548
- async filterUpdate(active) {
549
- await this._handleFilterUpdate(active);
423
+ async filterUpdate(filterActive, keepTableUpdatingOnMapExtentChange) {
424
+ await this._handleFilterUpdate(filterActive);
425
+ if (keepTableUpdatingOnMapExtentChange) {
426
+ this._shouldUpdateTableOnExtentChange = true;
427
+ this._handleTableOnMapExtent();
428
+ }
429
+ else if (keepTableUpdatingOnMapExtentChange === false) {
430
+ this._table.filterGeometry = undefined;
431
+ this._filterByExtentHandle.remove();
432
+ this._filterByExtentHandle = undefined;
433
+ // update all the ids when filter is unchecked or toggled off
434
+ await this._updateAllIds();
435
+ }
436
+ }
437
+ /**
438
+ * Validate if the table should update
439
+ */
440
+ async validateTableUpdate(shouldUpdateTableOnExtentChange) {
441
+ this._shouldUpdateTableOnExtentChange = shouldUpdateTableOnExtentChange;
550
442
  }
551
443
  /**
552
444
  * Validate if the editor has any pending edits
@@ -600,8 +492,20 @@ export class LayerTable {
600
492
  * @returns a promise when the operation has completed
601
493
  */
602
494
  async editorInitialized(evt) {
495
+ this._shouldUpdateTableOnExtentChange = false;
603
496
  this._editor = evt.detail;
604
497
  }
498
+ /**
499
+ * Respond to and close the edit record display
500
+ *
501
+ * @returns a promise when the operation has completed
502
+ */
503
+ async closeEdit() {
504
+ this._shouldUpdateTableOnExtentChange = true;
505
+ if (this._filterByExtentHandle) {
506
+ this._handleTableOnMapExtent();
507
+ }
508
+ }
605
509
  /**
606
510
  * Scroll and zoom to the selected feature from the Features widget.
607
511
  *
@@ -662,7 +566,7 @@ export class LayerTable {
662
566
  async editsComplete(evt) {
663
567
  const editType = evt.detail;
664
568
  if (editType === "delete" || editType === "add") {
665
- this._allIds = await queryAllIds(this._layer);
569
+ this._allIds = await this.queryAllIds();
666
570
  }
667
571
  await this._refresh();
668
572
  }
@@ -734,8 +638,8 @@ export class LayerTable {
734
638
  const tableHeightClass = this.isMobile ? "height-full" : "height-full-adjusted";
735
639
  const showSearch = this._canShowFullTextSearch();
736
640
  this._validateActiveActions();
737
- return (h(Host, { key: '68d6d57fbc9122b15340e0be3426ad00d398c7b2' }, h("div", { key: 'c4839ef8df0c5d3937b68c444264ce3bbb5c808d' }, h("calcite-scrim", { key: 'd4fa1a66ddcc5d0e83ee4ee43b2a3230e7f0298f', class: scrimClass, loading: this._queryingData }), h("calcite-shell", { key: '2ae1aee8a242902f3fbc9a1a19b62a8b721e5de7' }, this._getTableControlRow("header"), h("div", { key: '73d424f4bb07f56245c2c0858544d6cb7d9fcc74', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: 'a2404478e2daf5ebac1ff3ac10378a98c868bcb2', class: "height-full width-full" }, showSearch &&
738
- h("div", { key: 'e18c71ccab7853438c51fe7168b7a98087d215e2', class: "search-container" }, h("calcite-input", { key: '39ecb52bacd4560a94310a56faf084941aa44a2a', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: 'ce2aeb5e108b1d76da8694a071dcd46098e6bb28', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '78e596cb45427bb9d21a11368361f67e1ed306a5', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
641
+ return (h(Host, { key: 'a0a998de3a1b29c311a9fdfa87f3bd836481ba5a' }, h("div", { key: 'aafaf9f925ed7321e1ca7f15fc7db369212dc1dc' }, h("calcite-scrim", { key: '86459aed994823dbf1d774aad01e8207a7df5f4f', class: scrimClass, loading: this._queryingData }), h("calcite-shell", { key: 'b29896a197cba444d2ac377779670394e29ecaf6' }, this._getTableControlRow("header"), h("div", { key: '0456651ac46f399eb04253387d7aae76995f4683', class: `width-full ${tableHeightClass}` }, h("calcite-panel", { key: '9ba484159832fea630bbb653bc2fc4e99e602674', class: "height-full width-full" }, showSearch &&
642
+ h("div", { key: 'bd4b72db51f44c2954e893e8ef7ec2a30efc4c45', class: "search-container" }, h("calcite-input", { key: '8811ff1dd71408fda37a0d7d2403671df24b5b7b', class: "search", clearable: true, icon: "search", onCalciteInputChange: (evt) => void this._searchTextChanged(evt), placeholder: this._searchPlaceHolder, title: this._searchPlaceHolder, type: "search" })), h("calcite-loader", { key: '44a419089cf1e207f52ce19015c2870ce956e261', class: loadingClass, label: this._translations.fetchingData, scale: "l" }), h("div", { key: '096f4fc7f5cc9500e7982bbfaceb2fcc4c82a1dd', class: tableNodeClass, ref: this.onTableNodeCreate }))), !this.isMobile ? (h("div", { class: "bottom-left text-color height-19" }, this._translations.recordsSelected
739
643
  .replace("{{total}}", total)
740
644
  .replace("{{selected}}", selected))) : undefined), this.createFilterModal && this._filterModal())));
741
645
  }
@@ -755,8 +659,6 @@ export class LayerTable {
755
659
  componentDidRender() {
756
660
  // need to be called after each render to get the clicked mouseEvent
757
661
  document.onclick = (e) => this._handleDocumentClick(e);
758
- document.onkeydown = (e) => this._handleKeyDown(e);
759
- document.onkeyup = (e) => this._handleKeyUp(e);
760
662
  this._updateToolbar();
761
663
  }
762
664
  //--------------------------------------------------------------------------
@@ -1017,6 +919,7 @@ export class LayerTable {
1017
919
  }
1018
920
  if (ti.icon === "selected-items-filter") {
1019
921
  ti.active = this._showOnlySelected;
922
+ ti.label = this._showOnlySelected ? this._translations.showAll : this._translations.showSelected;
1020
923
  }
1021
924
  }
1022
925
  });
@@ -1031,7 +934,6 @@ export class LayerTable {
1031
934
  // hide multiple edits for R03
1032
935
  const showMultipleEdits = this.selectedIds.length > 1 && this._layer?.capabilities?.operations?.supportsUpdate && false;
1033
936
  const featuresEmpty = this._featuresEmpty();
1034
- const hasFilterExpressions = this._hasFilterExpressions();
1035
937
  if (this._translations) {
1036
938
  this._toolInfos = [
1037
939
  !this.mapHidden ? {
@@ -1043,7 +945,7 @@ export class LayerTable {
1043
945
  disabled: !featuresSelected,
1044
946
  isOverflow: false
1045
947
  } : undefined,
1046
- hasFilterExpressions ? {
948
+ {
1047
949
  active: false,
1048
950
  icon: "filter",
1049
951
  indicator: false,
@@ -1051,7 +953,7 @@ export class LayerTable {
1051
953
  func: () => this.createFilterModal ? this._toggleFilter() : this.toggleFilter.emit(),
1052
954
  disabled: false,
1053
955
  isOverflow: false
1054
- } : undefined,
956
+ },
1055
957
  showMultipleEdits ? {
1056
958
  active: false,
1057
959
  icon: "pencil",
@@ -1453,6 +1355,7 @@ export class LayerTable {
1453
1355
  editingEnabled: this._editEnabled && this.enableInlineEdit,
1454
1356
  highlightEnabled: true,
1455
1357
  multiSortEnabled: false,
1358
+ attachmentsEnabled: true,
1456
1359
  visibleElements: {
1457
1360
  columnDescriptions: false,
1458
1361
  header: false,
@@ -1484,88 +1387,9 @@ export class LayerTable {
1484
1387
  return;
1485
1388
  }
1486
1389
  const ids = [...this._getIds()];
1487
- if (!this._skipOnChange) {
1488
- if ((!this._ctrlIsPressed && !this._shiftIsPressed) || (this._selectionFromMap && this._shiftIsPressed)) {
1489
- if (this.selectedIds.length > 0) {
1490
- this._skipOnChange = true;
1491
- // only readd in specific case where we have multiple selected and then click one of the currently selected
1492
- const reAdd = this.selectedIds.length > 1 && evt.removed.length === 1;
1493
- const newIds = reAdd ? evt.removed : ids.filter(id => this.selectedIds.indexOf(id) < 0);
1494
- this._tempSelectedIds = newIds.length ? [...newIds] : [...this.selectedIds];
1495
- this._clearSelection();
1496
- this.selectedIds = [...newIds];
1497
- if (newIds.length > 0) {
1498
- this._table.highlightIds.add(newIds[0]);
1499
- }
1500
- else {
1501
- this._skipOnChange = false;
1502
- }
1503
- }
1504
- else {
1505
- // https://github.com/Esri/solutions-components/issues/365
1506
- this.selectedIds = ids.reverse();
1507
- this._tempSelectedIds = [...this.selectedIds];
1508
- }
1509
- }
1510
- else if (this._ctrlIsPressed) {
1511
- this.selectedIds = ids.reverse();
1512
- this._tempSelectedIds = [...this.selectedIds];
1513
- }
1514
- else if (this._shiftIsPressed && ids?.length > 0) {
1515
- this._skipOnChange = true;
1516
- this._previousCurrentId = this._currentId;
1517
- this._currentId = [...ids].reverse()[0];
1518
- if (ids.length === 1) {
1519
- this._skipOnChange = false;
1520
- }
1521
- else if (this._previousCurrentId !== this._currentId) {
1522
- // query the layer based on current sort and filters then grab between the current id and previous id
1523
- const orderBy = this._table.activeSortOrders.reduce((prev, cur) => {
1524
- prev.push(`${cur.fieldName} ${cur.direction}`);
1525
- return prev;
1526
- }, []);
1527
- // when dealing with a feature layer with many features shift-select can take a very long time.
1528
- // don't allow the user to make additional interactions with the table if it takes more than 500 miliseconds
1529
- let queryComplete = false;
1530
- setTimeout(() => {
1531
- if (!queryComplete) {
1532
- this._queryingData = true;
1533
- }
1534
- }, 500);
1535
- const oids = await queryAllOidsWithQueryFeatures(0, this._layer, [], orderBy);
1536
- queryComplete = true;
1537
- this._queryingData = false;
1538
- let isBetween = false;
1539
- const _start = this._table.viewModel.getObjectIdIndex(this._previousCurrentId);
1540
- const _end = this._table.viewModel.getObjectIdIndex(this._currentId);
1541
- const startIndex = _start < _end ? _start : _end;
1542
- const endIndex = _end > _start ? _end : _start;
1543
- this._skipOnChange = startIndex + 1 !== endIndex;
1544
- const idsInRange = oids.reduce((prev, cur) => {
1545
- const id = cur;
1546
- if ((id === this._currentId || id === this._previousCurrentId)) {
1547
- isBetween = !isBetween;
1548
- if (prev.indexOf(id) < 0) {
1549
- prev.push(id);
1550
- }
1551
- }
1552
- else if (isBetween && prev.indexOf(id) < 0) {
1553
- prev.push(id);
1554
- }
1555
- return prev;
1556
- }, []);
1557
- const selectedIds = _start < _end ? idsInRange.reverse() : idsInRange;
1558
- this.selectedIds = [...new Set([...selectedIds, ...this.selectedIds])];
1559
- this._tempSelectedIds = [...this.selectedIds];
1560
- this._table.highlightIds.addMany(this.selectedIds.filter(i => ids.indexOf(i) < 0));
1561
- }
1562
- }
1563
- this._finishOnChange();
1564
- }
1565
- else {
1566
- this._skipOnChange = false;
1567
- }
1568
- this._currentId = [...this._getIds()].reverse()[0];
1390
+ this.selectedIds = ids.reverse();
1391
+ this._tempSelectedIds = [...this.selectedIds];
1392
+ this._finishOnChange();
1569
1393
  this._selectionFromMap = false;
1570
1394
  }
1571
1395
  /**
@@ -1604,6 +1428,7 @@ export class LayerTable {
1604
1428
  handleOnChange = !this._skipEditCheck;
1605
1429
  this._skipEditCheck = false;
1606
1430
  }
1431
+ this._shouldUpdateTableOnExtentChange = handleOnChange;
1607
1432
  return handleOnChange;
1608
1433
  }
1609
1434
  /**
@@ -1620,7 +1445,7 @@ export class LayerTable {
1620
1445
  _finishOnChange() {
1621
1446
  if (this._showOnlySelected) {
1622
1447
  if (this._featuresSelected()) {
1623
- this._table.filterBySelection();
1448
+ this._table.filterBySelectionEnabled = true;
1624
1449
  }
1625
1450
  else {
1626
1451
  this._toggleShowSelected();
@@ -1658,7 +1483,7 @@ export class LayerTable {
1658
1483
  async _resetTable() {
1659
1484
  this._loaded = false;
1660
1485
  this._clearSelection();
1661
- this._allIds = await queryAllIds(this._layer);
1486
+ this._allIds = await this.queryAllIds();
1662
1487
  if (!this._table) {
1663
1488
  const columnTemplates = this._getColumnTemplates(this._layer.id, this._layer?.fields);
1664
1489
  await this._getTable(this._tableNode, columnTemplates);
@@ -1712,7 +1537,6 @@ export class LayerTable {
1712
1537
  }
1713
1538
  this._refreshHandle = this._layer.on("refresh", (evt) => {
1714
1539
  if (evt.dataChanged) {
1715
- this._skipOnChange = true;
1716
1540
  void this._updateAllIds();
1717
1541
  }
1718
1542
  });
@@ -1721,7 +1545,7 @@ export class LayerTable {
1721
1545
  * Reset _allIds when the layers data has changed and refresh the selection ids and table
1722
1546
  */
1723
1547
  async _updateAllIds() {
1724
- this._allIds = await queryAllIds(this._layer);
1548
+ this._allIds = await this.queryAllIds();
1725
1549
  this.selectedIds = this.selectedIds.filter(id => this._allIds.indexOf(id) > -1);
1726
1550
  await this._refresh();
1727
1551
  }
@@ -1861,20 +1685,6 @@ export class LayerTable {
1861
1685
  }
1862
1686
  }
1863
1687
  }
1864
- /**
1865
- * Keep track of key down for ctrl and shift
1866
- */
1867
- _handleKeyDown(e) {
1868
- this._ctrlIsPressed = e.ctrlKey;
1869
- this._shiftIsPressed = e.shiftKey;
1870
- }
1871
- /**
1872
- * Keep track of key up for ctrl and shift
1873
- */
1874
- _handleKeyUp(e) {
1875
- this._ctrlIsPressed = e.ctrlKey;
1876
- this._shiftIsPressed = e.shiftKey;
1877
- }
1878
1688
  /**
1879
1689
  * Show filter component in modal
1880
1690
  *
@@ -1910,6 +1720,40 @@ export class LayerTable {
1910
1720
  this._updateShareUrl();
1911
1721
  await this._searchFullText();
1912
1722
  }
1723
+ /**
1724
+ * Update the table when extent is changed
1725
+ */
1726
+ _handleTableOnMapExtent() {
1727
+ if (this._table) {
1728
+ this._filterByExtentHandle = this.reactiveUtils.when(() => this.mapView.stationary,
1729
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
1730
+ async () => {
1731
+ if (this._shouldUpdateTableOnExtentChange) {
1732
+ //Added timeout while updating table records to avoid the issue in which we see empty table records when extent is changed
1733
+ await new Promise(resolve => setTimeout(resolve, 800));
1734
+ this._table.filterGeometry = this.mapView.extent;
1735
+ const query = {
1736
+ geometry: this.mapView.extent
1737
+ };
1738
+ const objectIdsInExtent = await this._layer.queryObjectIds(query);
1739
+ // remove the highlight of features which are not in the map extent
1740
+ const outOids = this.selectedIds.filter(id => !objectIdsInExtent.includes(id));
1741
+ const restoreOids = this._outOFExtentOids.filter(id => objectIdsInExtent.includes(id));
1742
+ if (outOids.length > 0) {
1743
+ this._table.highlightIds.removeMany(outOids);
1744
+ this._outOFExtentOids = [...this._outOFExtentOids, ...outOids];
1745
+ }
1746
+ if (restoreOids.length > 0) {
1747
+ this._table.highlightIds.addMany(restoreOids);
1748
+ this._outOFExtentOids = this._outOFExtentOids.filter(oid => !restoreOids.includes(oid));
1749
+ }
1750
+ }
1751
+ this._allIds = await this.queryAllIds();
1752
+ }, {
1753
+ initial: true
1754
+ });
1755
+ }
1756
+ }
1913
1757
  /**
1914
1758
  * Close the filter modal
1915
1759
  * @protected
@@ -1917,10 +1761,20 @@ export class LayerTable {
1917
1761
  async _closeFilter() {
1918
1762
  if (this._filterOpen) {
1919
1763
  // reset allIds
1920
- this._allIds = await queryAllIds(this._layer);
1764
+ this._allIds = await this.queryAllIds();
1921
1765
  this._filterOpen = false;
1922
1766
  }
1923
1767
  }
1768
+ /**
1769
+ * Query the layer for applied filter
1770
+ * @returns Promise with the featureSet from the layer that match the provided ids
1771
+ */
1772
+ async queryAllIds() {
1773
+ const query = this._layer.createQuery();
1774
+ query.geometry = this._filterByExtentHandle ? this.mapView.extent : null;
1775
+ query.where = this._layer.definitionExpression || "1=1";
1776
+ return await this._layer.queryObjectIds(query);
1777
+ }
1924
1778
  /**
1925
1779
  * Handle map click events to keep table and map click selection in sync
1926
1780
  *
@@ -1942,7 +1796,7 @@ export class LayerTable {
1942
1796
  }
1943
1797
  });
1944
1798
  if (this._showOnlySelected) {
1945
- this._table.filterBySelection();
1799
+ this._table.filterBySelectionEnabled = true;
1946
1800
  }
1947
1801
  }
1948
1802
  else {
@@ -1959,7 +1813,6 @@ export class LayerTable {
1959
1813
  const editsDiscarded = await this._validateActiveEdits(addedIds, this.selectedIds);
1960
1814
  if (editsDiscarded) {
1961
1815
  this._table.highlightIds.removeAll();
1962
- this._skipOnChange = true;
1963
1816
  this._table.highlightIds.addMany(ids);
1964
1817
  this.selectedIds = ids;
1965
1818
  this._finishOnChange();
@@ -1976,12 +1829,7 @@ export class LayerTable {
1976
1829
  */
1977
1830
  _toggleShowSelected() {
1978
1831
  this._showOnlySelected = !this._showOnlySelected;
1979
- if (this._showOnlySelected) {
1980
- this._table.filterBySelection();
1981
- }
1982
- else {
1983
- this._table.objectIds.removeAll();
1984
- }
1832
+ this._table.filterBySelectionEnabled = this._showOnlySelected;
1985
1833
  }
1986
1834
  /**
1987
1835
  * Clears the selected indexes
@@ -1989,6 +1837,7 @@ export class LayerTable {
1989
1837
  */
1990
1838
  _clearSelection() {
1991
1839
  this.selectedIds = [];
1840
+ this._outOFExtentOids = [];
1992
1841
  this._table?.highlightIds.removeAll();
1993
1842
  this._table?.rowHighlightIds.removeAll();
1994
1843
  this._finishOnChange();
@@ -2028,7 +1877,6 @@ export class LayerTable {
2028
1877
  const editsDiscarded = await this._validateActiveEdits(ids, currentIndexes);
2029
1878
  if (editsDiscarded) {
2030
1879
  this._table.highlightIds.removeAll();
2031
- this._skipOnChange = true;
2032
1880
  this._table.highlightIds.addMany(ids);
2033
1881
  this.selectedIds = ids;
2034
1882
  this._finishOnChange();
@@ -2086,8 +1934,8 @@ export class LayerTable {
2086
1934
  async _refresh() {
2087
1935
  const editsDiscarded = await this._validateActiveEdits([], this.selectedIds);
2088
1936
  if (editsDiscarded) {
2089
- await this._table.refresh();
2090
- this._allIds = await queryAllIds(this._layer);
1937
+ await this._table?.refresh();
1938
+ this._allIds = await this.queryAllIds();
2091
1939
  this.featureSelectionChange.emit(this.selectedIds);
2092
1940
  }
2093
1941
  }
@@ -2117,6 +1965,7 @@ export class LayerTable {
2117
1965
  this._fetchingData = true;
2118
1966
  const layer = await getLayerOrTable(this.mapView, id);
2119
1967
  layer && await layer.when(() => {
1968
+ this._shouldUpdateTableOnExtentChange = true;
2120
1969
  this._layer = layer;
2121
1970
  this._getFullTextSearchInfo();
2122
1971
  });
@@ -2796,9 +2645,13 @@ export class LayerTable {
2796
2645
  },
2797
2646
  "filterUpdate": {
2798
2647
  "complexType": {
2799
- "signature": "(active: boolean) => Promise<void>",
2648
+ "signature": "(filterActive: boolean, keepTableUpdatingOnMapExtentChange?: boolean) => Promise<void>",
2800
2649
  "parameters": [{
2801
- "name": "active",
2650
+ "name": "filterActive",
2651
+ "type": "boolean",
2652
+ "docs": ""
2653
+ }, {
2654
+ "name": "keepTableUpdatingOnMapExtentChange",
2802
2655
  "type": "boolean",
2803
2656
  "docs": ""
2804
2657
  }],
@@ -2815,6 +2668,27 @@ export class LayerTable {
2815
2668
  "tags": []
2816
2669
  }
2817
2670
  },
2671
+ "validateTableUpdate": {
2672
+ "complexType": {
2673
+ "signature": "(shouldUpdateTableOnExtentChange: boolean) => Promise<void>",
2674
+ "parameters": [{
2675
+ "name": "shouldUpdateTableOnExtentChange",
2676
+ "type": "boolean",
2677
+ "docs": ""
2678
+ }],
2679
+ "references": {
2680
+ "Promise": {
2681
+ "location": "global",
2682
+ "id": "global::Promise"
2683
+ }
2684
+ },
2685
+ "return": "Promise<void>"
2686
+ },
2687
+ "docs": {
2688
+ "text": "Validate if the table should update",
2689
+ "tags": []
2690
+ }
2691
+ },
2818
2692
  "validateActiveEdits": {
2819
2693
  "complexType": {
2820
2694
  "signature": "() => Promise<boolean>",
@@ -2910,6 +2784,12 @@ export class LayerTable {
2910
2784
  "target": "window",
2911
2785
  "capture": false,
2912
2786
  "passive": false
2787
+ }, {
2788
+ "name": "closeEdit",
2789
+ "method": "closeEdit",
2790
+ "target": "window",
2791
+ "capture": false,
2792
+ "passive": false
2913
2793
  }, {
2914
2794
  "name": "selectionChanged",
2915
2795
  "method": "selectionChanged",