@arcgis/map-components 4.29.0-beta.4 → 4.29.0-beta.40

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 (608) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/arcgis-map-components/arcgis-map-components.esm.js +2 -1
  3. package/dist/arcgis-map-components/arcgis-map-components.esm.js.map +1 -0
  4. package/dist/arcgis-map-components/index.esm.js +2 -0
  5. package/dist/arcgis-map-components/index.esm.js.map +1 -0
  6. package/dist/arcgis-map-components/p-00f30dbd.entry.js +2 -0
  7. package/dist/arcgis-map-components/p-00f30dbd.entry.js.map +1 -0
  8. package/dist/arcgis-map-components/p-05478da4.entry.js +2 -0
  9. package/dist/arcgis-map-components/p-05478da4.entry.js.map +1 -0
  10. package/dist/arcgis-map-components/p-06dc39eb.entry.js +2 -0
  11. package/dist/arcgis-map-components/p-06dc39eb.entry.js.map +1 -0
  12. package/dist/arcgis-map-components/p-07325369.entry.js +2 -0
  13. package/dist/arcgis-map-components/p-07325369.entry.js.map +1 -0
  14. package/dist/arcgis-map-components/p-07e7d7b2.js +2 -0
  15. package/dist/arcgis-map-components/p-07e7d7b2.js.map +1 -0
  16. package/dist/arcgis-map-components/p-09b972be.entry.js +2 -0
  17. package/dist/arcgis-map-components/p-09b972be.entry.js.map +1 -0
  18. package/dist/arcgis-map-components/p-0e42e14b.entry.js +2 -0
  19. package/dist/arcgis-map-components/p-0e42e14b.entry.js.map +1 -0
  20. package/dist/arcgis-map-components/p-14f542a3.entry.js +2 -0
  21. package/dist/arcgis-map-components/p-14f542a3.entry.js.map +1 -0
  22. package/dist/arcgis-map-components/p-181101b2.entry.js +2 -0
  23. package/dist/arcgis-map-components/p-181101b2.entry.js.map +1 -0
  24. package/dist/arcgis-map-components/p-1aa22ffc.entry.js +2 -0
  25. package/dist/arcgis-map-components/p-1aa22ffc.entry.js.map +1 -0
  26. package/dist/arcgis-map-components/p-1ed5d647.entry.js +2 -0
  27. package/dist/arcgis-map-components/p-1ed5d647.entry.js.map +1 -0
  28. package/dist/arcgis-map-components/p-22738a30.entry.js +2 -0
  29. package/dist/arcgis-map-components/p-22738a30.entry.js.map +1 -0
  30. package/dist/arcgis-map-components/p-2a78610a.entry.js +2 -0
  31. package/dist/arcgis-map-components/p-2a78610a.entry.js.map +1 -0
  32. package/dist/arcgis-map-components/p-3209d063.entry.js +2 -0
  33. package/dist/arcgis-map-components/p-3209d063.entry.js.map +1 -0
  34. package/dist/arcgis-map-components/p-3a4ee895.entry.js +2 -0
  35. package/dist/arcgis-map-components/p-3a4ee895.entry.js.map +1 -0
  36. package/dist/arcgis-map-components/p-3ce612f0.entry.js +2 -0
  37. package/dist/arcgis-map-components/p-3ce612f0.entry.js.map +1 -0
  38. package/dist/arcgis-map-components/p-4280d545.js +2 -0
  39. package/dist/arcgis-map-components/p-4280d545.js.map +1 -0
  40. package/dist/arcgis-map-components/p-43e08c8e.entry.js +2 -0
  41. package/dist/arcgis-map-components/p-43e08c8e.entry.js.map +1 -0
  42. package/dist/arcgis-map-components/p-45a6ec08.entry.js +2 -0
  43. package/dist/arcgis-map-components/p-45a6ec08.entry.js.map +1 -0
  44. package/dist/arcgis-map-components/p-4edb69dc.entry.js +2 -0
  45. package/dist/arcgis-map-components/p-4edb69dc.entry.js.map +1 -0
  46. package/dist/arcgis-map-components/p-5245bc16.entry.js +2 -0
  47. package/dist/arcgis-map-components/p-5245bc16.entry.js.map +1 -0
  48. package/dist/arcgis-map-components/p-530503e3.js +2 -0
  49. package/dist/arcgis-map-components/p-530503e3.js.map +1 -0
  50. package/dist/arcgis-map-components/p-55d0f5ad.entry.js +2 -0
  51. package/dist/arcgis-map-components/p-55d0f5ad.entry.js.map +1 -0
  52. package/dist/arcgis-map-components/p-60a88ea8.entry.js +2 -0
  53. package/dist/arcgis-map-components/p-60a88ea8.entry.js.map +1 -0
  54. package/dist/arcgis-map-components/p-62249867.entry.js +2 -0
  55. package/dist/arcgis-map-components/p-62249867.entry.js.map +1 -0
  56. package/dist/arcgis-map-components/p-63bfa89a.entry.js +2 -0
  57. package/dist/arcgis-map-components/p-63bfa89a.entry.js.map +1 -0
  58. package/dist/arcgis-map-components/p-6eb31c62.entry.js +2 -0
  59. package/dist/arcgis-map-components/p-6eb31c62.entry.js.map +1 -0
  60. package/dist/arcgis-map-components/p-70d39dcf.entry.js +2 -0
  61. package/dist/arcgis-map-components/p-70d39dcf.entry.js.map +1 -0
  62. package/dist/arcgis-map-components/p-75c5fd05.entry.js +2 -0
  63. package/dist/arcgis-map-components/p-75c5fd05.entry.js.map +1 -0
  64. package/dist/arcgis-map-components/p-761ac7d4.entry.js +2 -0
  65. package/dist/arcgis-map-components/p-761ac7d4.entry.js.map +1 -0
  66. package/dist/arcgis-map-components/p-786c1915.entry.js +2 -0
  67. package/dist/arcgis-map-components/p-786c1915.entry.js.map +1 -0
  68. package/dist/arcgis-map-components/p-81207d02.entry.js +2 -0
  69. package/dist/arcgis-map-components/p-81207d02.entry.js.map +1 -0
  70. package/dist/arcgis-map-components/p-82ba1e5d.entry.js +2 -0
  71. package/dist/arcgis-map-components/p-82ba1e5d.entry.js.map +1 -0
  72. package/dist/arcgis-map-components/p-883490a4.entry.js +2 -0
  73. package/dist/arcgis-map-components/p-883490a4.entry.js.map +1 -0
  74. package/dist/arcgis-map-components/p-8a36eefa.entry.js +2 -0
  75. package/dist/arcgis-map-components/p-8a36eefa.entry.js.map +1 -0
  76. package/dist/arcgis-map-components/p-8c9da1b9.entry.js +2 -0
  77. package/dist/arcgis-map-components/p-8c9da1b9.entry.js.map +1 -0
  78. package/dist/arcgis-map-components/p-943108f9.entry.js +2 -0
  79. package/dist/arcgis-map-components/p-943108f9.entry.js.map +1 -0
  80. package/dist/arcgis-map-components/p-983881aa.entry.js +2 -0
  81. package/dist/arcgis-map-components/p-983881aa.entry.js.map +1 -0
  82. package/dist/arcgis-map-components/p-9d965bf8.entry.js +2 -0
  83. package/dist/arcgis-map-components/p-9d965bf8.entry.js.map +1 -0
  84. package/dist/arcgis-map-components/p-9de4c65d.entry.js +2 -0
  85. package/dist/arcgis-map-components/p-9de4c65d.entry.js.map +1 -0
  86. package/dist/arcgis-map-components/p-9efd1c60.entry.js +2 -0
  87. package/dist/arcgis-map-components/p-9efd1c60.entry.js.map +1 -0
  88. package/dist/arcgis-map-components/p-a096c52f.entry.js +2 -0
  89. package/dist/arcgis-map-components/p-a096c52f.entry.js.map +1 -0
  90. package/dist/arcgis-map-components/p-a29e5958.entry.js +2 -0
  91. package/dist/arcgis-map-components/p-a29e5958.entry.js.map +1 -0
  92. package/dist/arcgis-map-components/p-a4367c0d.entry.js +2 -0
  93. package/dist/arcgis-map-components/p-a4367c0d.entry.js.map +1 -0
  94. package/dist/arcgis-map-components/p-b28da40c.entry.js +2 -0
  95. package/dist/arcgis-map-components/p-b28da40c.entry.js.map +1 -0
  96. package/dist/arcgis-map-components/p-ba7bfe2a.entry.js +2 -0
  97. package/dist/arcgis-map-components/p-ba7bfe2a.entry.js.map +1 -0
  98. package/dist/arcgis-map-components/p-c1eb12b2.entry.js +2 -0
  99. package/dist/arcgis-map-components/p-c1eb12b2.entry.js.map +1 -0
  100. package/dist/arcgis-map-components/p-c8faa156.entry.js +2 -0
  101. package/dist/arcgis-map-components/p-c8faa156.entry.js.map +1 -0
  102. package/dist/arcgis-map-components/p-c95d50be.entry.js +2 -0
  103. package/dist/arcgis-map-components/p-c95d50be.entry.js.map +1 -0
  104. package/dist/arcgis-map-components/p-d0fb9a2a.entry.js +2 -0
  105. package/dist/arcgis-map-components/p-d0fb9a2a.entry.js.map +1 -0
  106. package/dist/arcgis-map-components/p-d142ff74.js +2 -0
  107. package/dist/arcgis-map-components/p-d142ff74.js.map +1 -0
  108. package/dist/arcgis-map-components/p-dbc82e69.js +3 -0
  109. package/dist/arcgis-map-components/p-dbc82e69.js.map +1 -0
  110. package/dist/arcgis-map-components/p-dbf111db.entry.js +2 -0
  111. package/dist/arcgis-map-components/p-dbf111db.entry.js.map +1 -0
  112. package/dist/arcgis-map-components/p-e4a12f83.entry.js +2 -0
  113. package/dist/arcgis-map-components/p-e4a12f83.entry.js.map +1 -0
  114. package/dist/arcgis-map-components/p-ee414323.entry.js +2 -0
  115. package/dist/arcgis-map-components/p-ee414323.entry.js.map +1 -0
  116. package/dist/arcgis-map-components/p-f66a4365.entry.js +2 -0
  117. package/dist/arcgis-map-components/p-f66a4365.entry.js.map +1 -0
  118. package/dist/arcgis-map-components/p-f674b7f4.entry.js +2 -0
  119. package/dist/arcgis-map-components/p-f674b7f4.entry.js.map +1 -0
  120. package/dist/cjs/arcgis-area-measurement-2d.cjs.entry.js +20 -16
  121. package/dist/cjs/arcgis-area-measurement-2d.cjs.entry.js.map +1 -0
  122. package/dist/cjs/arcgis-area-measurement-3d.cjs.entry.js +18 -14
  123. package/dist/cjs/arcgis-area-measurement-3d.cjs.entry.js.map +1 -0
  124. package/dist/cjs/arcgis-attachments.cjs.entry.js +47 -13
  125. package/dist/cjs/arcgis-attachments.cjs.entry.js.map +1 -0
  126. package/dist/cjs/arcgis-basemap-gallery_3.cjs.entry.js +509 -0
  127. package/dist/cjs/arcgis-basemap-gallery_3.cjs.entry.js.map +1 -0
  128. package/dist/cjs/arcgis-basemap-layer-list.cjs.entry.js +63 -34
  129. package/dist/cjs/arcgis-basemap-layer-list.cjs.entry.js.map +1 -0
  130. package/dist/cjs/arcgis-basemap-toggle.cjs.entry.js +35 -29
  131. package/dist/cjs/arcgis-basemap-toggle.cjs.entry.js.map +1 -0
  132. package/dist/cjs/arcgis-bookmarks.cjs.entry.js +33 -25
  133. package/dist/cjs/arcgis-bookmarks.cjs.entry.js.map +1 -0
  134. package/dist/cjs/arcgis-building-explorer.cjs.entry.js +48 -23
  135. package/dist/cjs/arcgis-building-explorer.cjs.entry.js.map +1 -0
  136. package/dist/cjs/arcgis-compass.cjs.entry.js +14 -18
  137. package/dist/cjs/arcgis-compass.cjs.entry.js.map +1 -0
  138. package/dist/cjs/arcgis-coordinate-conversion.cjs.entry.js +60 -30
  139. package/dist/cjs/arcgis-coordinate-conversion.cjs.entry.js.map +1 -0
  140. package/dist/cjs/arcgis-daylight.cjs.entry.js +24 -21
  141. package/dist/cjs/arcgis-daylight.cjs.entry.js.map +1 -0
  142. package/dist/cjs/arcgis-directions.cjs.entry.js +51 -29
  143. package/dist/cjs/arcgis-directions.cjs.entry.js.map +1 -0
  144. package/dist/cjs/arcgis-directline-measurement-3d.cjs.entry.js +18 -22
  145. package/dist/cjs/arcgis-directline-measurement-3d.cjs.entry.js.map +1 -0
  146. package/dist/cjs/arcgis-distance-measurement-2d.cjs.entry.js +16 -20
  147. package/dist/cjs/arcgis-distance-measurement-2d.cjs.entry.js.map +1 -0
  148. package/dist/cjs/arcgis-editor.cjs.entry.js +35 -29
  149. package/dist/cjs/arcgis-editor.cjs.entry.js.map +1 -0
  150. package/dist/cjs/arcgis-elevation-profile.cjs.entry.js +35 -22
  151. package/dist/cjs/arcgis-elevation-profile.cjs.entry.js.map +1 -0
  152. package/dist/cjs/arcgis-feature-form.cjs.entry.js +120 -7
  153. package/dist/cjs/arcgis-feature-form.cjs.entry.js.map +1 -0
  154. package/dist/cjs/arcgis-feature-table.cjs.entry.js +72 -43
  155. package/dist/cjs/arcgis-feature-table.cjs.entry.js.map +1 -0
  156. package/dist/cjs/arcgis-feature-templates.cjs.entry.js +77 -13
  157. package/dist/cjs/arcgis-feature-templates.cjs.entry.js.map +1 -0
  158. package/dist/cjs/arcgis-feature.cjs.entry.js +52 -22
  159. package/dist/cjs/arcgis-feature.cjs.entry.js.map +1 -0
  160. package/dist/cjs/arcgis-features.cjs.entry.js +52 -25
  161. package/dist/cjs/arcgis-features.cjs.entry.js.map +1 -0
  162. package/dist/cjs/arcgis-floor-filter.cjs.entry.js +21 -25
  163. package/dist/cjs/arcgis-floor-filter.cjs.entry.js.map +1 -0
  164. package/dist/cjs/arcgis-fullscreen.cjs.entry.js +18 -22
  165. package/dist/cjs/arcgis-fullscreen.cjs.entry.js.map +1 -0
  166. package/dist/cjs/arcgis-histogram-range-slider.cjs.entry.js +140 -12
  167. package/dist/cjs/arcgis-histogram-range-slider.cjs.entry.js.map +1 -0
  168. package/dist/cjs/arcgis-histogram.cjs.entry.js +119 -7
  169. package/dist/cjs/arcgis-histogram.cjs.entry.js.map +1 -0
  170. package/dist/cjs/arcgis-home.cjs.entry.js +29 -23
  171. package/dist/cjs/arcgis-home.cjs.entry.js.map +1 -0
  172. package/dist/cjs/arcgis-layer-list.cjs.entry.js +47 -22
  173. package/dist/cjs/arcgis-layer-list.cjs.entry.js.map +1 -0
  174. package/dist/cjs/arcgis-legend.cjs.entry.js +19 -23
  175. package/dist/cjs/arcgis-legend.cjs.entry.js.map +1 -0
  176. package/dist/cjs/arcgis-line-of-sight.cjs.entry.js +16 -20
  177. package/dist/cjs/arcgis-line-of-sight.cjs.entry.js.map +1 -0
  178. package/dist/cjs/arcgis-locate.cjs.entry.js +27 -32
  179. package/dist/cjs/arcgis-locate.cjs.entry.js.map +1 -0
  180. package/dist/cjs/arcgis-map-components.cjs.js +5 -3
  181. package/dist/cjs/arcgis-map-components.cjs.js.map +1 -0
  182. package/dist/cjs/arcgis-measurement.cjs.entry.js +28 -23
  183. package/dist/cjs/arcgis-measurement.cjs.entry.js.map +1 -0
  184. package/dist/cjs/arcgis-navigation-toggle.cjs.entry.js +14 -18
  185. package/dist/cjs/arcgis-navigation-toggle.cjs.entry.js.map +1 -0
  186. package/dist/cjs/arcgis-placement.cjs.entry.js +52 -0
  187. package/dist/cjs/arcgis-placement.cjs.entry.js.map +1 -0
  188. package/dist/cjs/arcgis-print.cjs.entry.js +41 -27
  189. package/dist/cjs/arcgis-print.cjs.entry.js.map +1 -0
  190. package/dist/cjs/arcgis-scale-bar.cjs.entry.js +17 -21
  191. package/dist/cjs/arcgis-scale-bar.cjs.entry.js.map +1 -0
  192. package/dist/cjs/arcgis-scale-range-slider.cjs.entry.js +40 -34
  193. package/dist/cjs/arcgis-scale-range-slider.cjs.entry.js.map +1 -0
  194. package/dist/cjs/arcgis-scene.cjs.entry.js +205 -0
  195. package/dist/cjs/arcgis-scene.cjs.entry.js.map +1 -0
  196. package/dist/cjs/arcgis-search.cjs.entry.js +320 -0
  197. package/dist/cjs/arcgis-search.cjs.entry.js.map +1 -0
  198. package/dist/cjs/arcgis-shadow-cast.cjs.entry.js +26 -29
  199. package/dist/cjs/arcgis-shadow-cast.cjs.entry.js.map +1 -0
  200. package/dist/cjs/arcgis-sketch.cjs.entry.js +43 -37
  201. package/dist/cjs/arcgis-sketch.cjs.entry.js.map +1 -0
  202. package/dist/cjs/arcgis-slice.cjs.entry.js +18 -31
  203. package/dist/cjs/arcgis-slice.cjs.entry.js.map +1 -0
  204. package/dist/cjs/arcgis-slider.cjs.entry.js +41 -43
  205. package/dist/cjs/arcgis-slider.cjs.entry.js.map +1 -0
  206. package/dist/cjs/arcgis-swipe.cjs.entry.js +9 -6
  207. package/dist/cjs/arcgis-swipe.cjs.entry.js.map +1 -0
  208. package/dist/cjs/arcgis-table-list.cjs.entry.js +47 -27
  209. package/dist/cjs/arcgis-table-list.cjs.entry.js.map +1 -0
  210. package/dist/cjs/arcgis-time-slider.cjs.entry.js +37 -31
  211. package/dist/cjs/arcgis-time-slider.cjs.entry.js.map +1 -0
  212. package/dist/cjs/arcgis-track.cjs.entry.js +26 -30
  213. package/dist/cjs/arcgis-track.cjs.entry.js.map +1 -0
  214. package/dist/cjs/arcgis-utility-network-associations.cjs.entry.js +30 -31
  215. package/dist/cjs/arcgis-utility-network-associations.cjs.entry.js.map +1 -0
  216. package/dist/cjs/arcgis-utility-network-trace.cjs.entry.js +43 -23
  217. package/dist/cjs/arcgis-utility-network-trace.cjs.entry.js.map +1 -0
  218. package/dist/cjs/arcgis-utility-network-validate-topology.cjs.entry.js +21 -32
  219. package/dist/cjs/arcgis-utility-network-validate-topology.cjs.entry.js.map +1 -0
  220. package/dist/cjs/arcgis-value-picker.cjs.entry.js +44 -27
  221. package/dist/cjs/arcgis-value-picker.cjs.entry.js.map +1 -0
  222. package/dist/cjs/arcgis-weather.cjs.entry.js +25 -19
  223. package/dist/cjs/arcgis-weather.cjs.entry.js.map +1 -0
  224. package/dist/cjs/arcgis-zoom.cjs.entry.js +23 -24
  225. package/dist/cjs/arcgis-zoom.cjs.entry.js.map +1 -0
  226. package/dist/cjs/{component-utils-cbd20e88.js → component-utils-70169d9c.js} +59 -5
  227. package/dist/cjs/component-utils-70169d9c.js.map +1 -0
  228. package/dist/cjs/disconnected-efe16c70.js +40 -0
  229. package/dist/cjs/disconnected-efe16c70.js.map +1 -0
  230. package/dist/cjs/{index-bfda1cdc.js → index-3c85172f.js} +2 -0
  231. package/dist/cjs/index-3c85172f.js.map +1 -0
  232. package/dist/cjs/{index-6b51d5a0.js → index-f95f0426.js} +752 -71
  233. package/dist/cjs/index-f95f0426.js.map +1 -0
  234. package/dist/cjs/index.cjs.js +2 -0
  235. package/dist/cjs/index.cjs.js.map +1 -0
  236. package/dist/cjs/loader.cjs.js +5 -12
  237. package/dist/cjs/loader.cjs.js.map +1 -0
  238. package/dist/cjs/mapping-utils-2c2f871e.js +42 -0
  239. package/dist/cjs/mapping-utils-2c2f871e.js.map +1 -0
  240. package/dist/components/arcgis-area-measurement-2d.js +25 -15
  241. package/dist/components/arcgis-area-measurement-2d.js.map +1 -0
  242. package/dist/components/arcgis-area-measurement-3d.js +24 -14
  243. package/dist/components/arcgis-area-measurement-3d.js.map +1 -0
  244. package/dist/components/arcgis-attachments.js +56 -13
  245. package/dist/components/arcgis-attachments.js.map +1 -0
  246. package/dist/components/arcgis-basemap-gallery.js +31 -22
  247. package/dist/components/arcgis-basemap-gallery.js.map +1 -0
  248. package/dist/components/arcgis-basemap-layer-list.js +80 -36
  249. package/dist/components/arcgis-basemap-layer-list.js.map +1 -0
  250. package/dist/components/arcgis-basemap-toggle.js +43 -29
  251. package/dist/components/arcgis-basemap-toggle.js.map +1 -0
  252. package/dist/components/arcgis-bookmarks.js +44 -25
  253. package/dist/components/arcgis-bookmarks.js.map +1 -0
  254. package/dist/components/arcgis-building-explorer.js +57 -23
  255. package/dist/components/arcgis-building-explorer.js.map +1 -0
  256. package/dist/components/arcgis-compass.js +18 -17
  257. package/dist/components/arcgis-compass.js.map +1 -0
  258. package/dist/components/arcgis-coordinate-conversion.js +75 -30
  259. package/dist/components/arcgis-coordinate-conversion.js.map +1 -0
  260. package/dist/components/arcgis-daylight.js +34 -21
  261. package/dist/components/arcgis-daylight.js.map +1 -0
  262. package/dist/components/arcgis-directions.js +65 -29
  263. package/dist/components/arcgis-directions.js.map +1 -0
  264. package/dist/components/arcgis-directline-measurement-3d.js +25 -22
  265. package/dist/components/arcgis-directline-measurement-3d.js.map +1 -0
  266. package/dist/components/arcgis-distance-measurement-2d.js +23 -20
  267. package/dist/components/arcgis-distance-measurement-2d.js.map +1 -0
  268. package/dist/components/arcgis-editor.js +48 -29
  269. package/dist/components/arcgis-editor.js.map +1 -0
  270. package/dist/components/arcgis-elevation-profile.js +48 -23
  271. package/dist/components/arcgis-elevation-profile.js.map +1 -0
  272. package/dist/components/arcgis-expand.js +3 -1
  273. package/dist/components/arcgis-expand.js.map +1 -0
  274. package/dist/components/arcgis-feature-form.js +146 -10
  275. package/dist/components/arcgis-feature-form.js.map +1 -0
  276. package/dist/components/arcgis-feature-table.js +97 -42
  277. package/dist/components/arcgis-feature-table.js.map +1 -0
  278. package/dist/components/arcgis-feature-templates.js +93 -14
  279. package/dist/components/arcgis-feature-templates.js.map +1 -0
  280. package/dist/components/arcgis-feature.js +67 -23
  281. package/dist/components/arcgis-feature.js.map +1 -0
  282. package/dist/components/arcgis-features.js +65 -27
  283. package/dist/components/arcgis-features.js.map +1 -0
  284. package/dist/components/arcgis-floor-filter.js +30 -25
  285. package/dist/components/arcgis-floor-filter.js.map +1 -0
  286. package/dist/components/arcgis-fullscreen.js +23 -21
  287. package/dist/components/arcgis-fullscreen.js.map +1 -0
  288. package/dist/components/arcgis-histogram-range-slider.js +170 -12
  289. package/dist/components/arcgis-histogram-range-slider.js.map +1 -0
  290. package/dist/components/arcgis-histogram.js +147 -9
  291. package/dist/components/arcgis-histogram.js.map +1 -0
  292. package/dist/components/arcgis-home.js +36 -22
  293. package/dist/components/arcgis-home.js.map +1 -0
  294. package/dist/components/arcgis-layer-list.js +60 -23
  295. package/dist/components/arcgis-layer-list.js.map +1 -0
  296. package/dist/components/arcgis-legend.js +30 -23
  297. package/dist/components/arcgis-legend.js.map +1 -0
  298. package/dist/components/arcgis-line-of-sight.js +21 -20
  299. package/dist/components/arcgis-line-of-sight.js.map +1 -0
  300. package/dist/components/arcgis-locate.js +38 -32
  301. package/dist/components/arcgis-locate.js.map +1 -0
  302. package/dist/components/arcgis-map.js +100 -40
  303. package/dist/components/arcgis-map.js.map +1 -0
  304. package/dist/components/arcgis-measurement.js +36 -23
  305. package/dist/components/arcgis-measurement.js.map +1 -0
  306. package/dist/components/arcgis-navigation-toggle.js +19 -17
  307. package/dist/components/arcgis-navigation-toggle.js.map +1 -0
  308. package/dist/components/arcgis-placement.d.ts +11 -0
  309. package/dist/components/arcgis-placement.js +73 -0
  310. package/dist/components/arcgis-placement.js.map +1 -0
  311. package/dist/components/arcgis-print.js +54 -27
  312. package/dist/components/arcgis-print.js.map +1 -0
  313. package/dist/components/arcgis-scale-bar.js +24 -21
  314. package/dist/components/arcgis-scale-bar.js.map +1 -0
  315. package/dist/components/arcgis-scale-range-slider.js +54 -35
  316. package/dist/components/arcgis-scale-range-slider.js.map +1 -0
  317. package/dist/components/arcgis-scene.js +98 -34
  318. package/dist/components/arcgis-scene.js.map +1 -0
  319. package/dist/components/arcgis-search.js +107 -41
  320. package/dist/components/arcgis-search.js.map +1 -0
  321. package/dist/components/arcgis-shadow-cast.js +34 -31
  322. package/dist/components/arcgis-shadow-cast.js.map +1 -0
  323. package/dist/components/arcgis-sketch.js +59 -37
  324. package/dist/components/arcgis-sketch.js.map +1 -0
  325. package/dist/components/arcgis-slice.js +24 -33
  326. package/dist/components/arcgis-slice.js.map +1 -0
  327. package/dist/components/arcgis-slider.js +57 -43
  328. package/dist/components/arcgis-slider.js.map +1 -0
  329. package/dist/components/arcgis-swipe.js +18 -5
  330. package/dist/components/arcgis-swipe.js.map +1 -0
  331. package/dist/components/arcgis-table-list.js +58 -27
  332. package/dist/components/arcgis-table-list.js.map +1 -0
  333. package/dist/components/arcgis-time-slider.js +54 -31
  334. package/dist/components/arcgis-time-slider.js.map +1 -0
  335. package/dist/components/arcgis-track.js +36 -30
  336. package/dist/components/arcgis-track.js.map +1 -0
  337. package/dist/components/arcgis-utility-network-associations.js +50 -31
  338. package/dist/components/arcgis-utility-network-associations.js.map +1 -0
  339. package/dist/components/arcgis-utility-network-trace.js +56 -23
  340. package/dist/components/arcgis-utility-network-trace.js.map +1 -0
  341. package/dist/components/arcgis-utility-network-validate-topology.js +28 -32
  342. package/dist/components/arcgis-utility-network-validate-topology.js.map +1 -0
  343. package/dist/components/arcgis-value-picker.js +54 -27
  344. package/dist/components/arcgis-value-picker.js.map +1 -0
  345. package/dist/components/arcgis-weather.js +32 -19
  346. package/dist/components/arcgis-weather.js.map +1 -0
  347. package/dist/components/arcgis-zoom.js +28 -23
  348. package/dist/components/arcgis-zoom.js.map +1 -0
  349. package/dist/{esm/component-utils-2ebdae59.js → components/component-utils.js} +56 -4
  350. package/dist/components/component-utils.js.map +1 -0
  351. package/dist/components/disconnected.js +13 -97
  352. package/dist/components/disconnected.js.map +1 -0
  353. package/dist/components/expand.js +256 -0
  354. package/dist/components/expand.js.map +1 -0
  355. package/dist/components/index.d.ts +5 -55
  356. package/dist/components/index.js +3 -54
  357. package/dist/components/index.js.map +1 -0
  358. package/dist/components/index2.js +3 -1
  359. package/dist/components/index2.js.map +1 -0
  360. package/dist/components/mapping-utils.js +12 -10
  361. package/dist/components/mapping-utils.js.map +1 -0
  362. package/dist/esm/arcgis-area-measurement-2d.entry.js +20 -16
  363. package/dist/esm/arcgis-area-measurement-2d.entry.js.map +1 -0
  364. package/dist/esm/arcgis-area-measurement-3d.entry.js +18 -14
  365. package/dist/esm/arcgis-area-measurement-3d.entry.js.map +1 -0
  366. package/dist/esm/arcgis-attachments.entry.js +46 -12
  367. package/dist/esm/arcgis-attachments.entry.js.map +1 -0
  368. package/dist/esm/arcgis-basemap-gallery_3.entry.js +503 -0
  369. package/dist/esm/arcgis-basemap-gallery_3.entry.js.map +1 -0
  370. package/dist/esm/arcgis-basemap-layer-list.entry.js +63 -34
  371. package/dist/esm/arcgis-basemap-layer-list.entry.js.map +1 -0
  372. package/dist/esm/arcgis-basemap-toggle.entry.js +35 -29
  373. package/dist/esm/arcgis-basemap-toggle.entry.js.map +1 -0
  374. package/dist/esm/arcgis-bookmarks.entry.js +33 -25
  375. package/dist/esm/arcgis-bookmarks.entry.js.map +1 -0
  376. package/dist/esm/arcgis-building-explorer.entry.js +48 -23
  377. package/dist/esm/arcgis-building-explorer.entry.js.map +1 -0
  378. package/dist/esm/arcgis-compass.entry.js +14 -18
  379. package/dist/esm/arcgis-compass.entry.js.map +1 -0
  380. package/dist/esm/arcgis-coordinate-conversion.entry.js +60 -30
  381. package/dist/esm/arcgis-coordinate-conversion.entry.js.map +1 -0
  382. package/dist/esm/arcgis-daylight.entry.js +24 -21
  383. package/dist/esm/arcgis-daylight.entry.js.map +1 -0
  384. package/dist/esm/arcgis-directions.entry.js +51 -29
  385. package/dist/esm/arcgis-directions.entry.js.map +1 -0
  386. package/dist/esm/arcgis-directline-measurement-3d.entry.js +18 -22
  387. package/dist/esm/arcgis-directline-measurement-3d.entry.js.map +1 -0
  388. package/dist/esm/arcgis-distance-measurement-2d.entry.js +16 -20
  389. package/dist/esm/arcgis-distance-measurement-2d.entry.js.map +1 -0
  390. package/dist/esm/arcgis-editor.entry.js +35 -29
  391. package/dist/esm/arcgis-editor.entry.js.map +1 -0
  392. package/dist/esm/arcgis-elevation-profile.entry.js +35 -22
  393. package/dist/esm/arcgis-elevation-profile.entry.js.map +1 -0
  394. package/dist/esm/arcgis-feature-form.entry.js +120 -7
  395. package/dist/esm/arcgis-feature-form.entry.js.map +1 -0
  396. package/dist/esm/arcgis-feature-table.entry.js +72 -43
  397. package/dist/esm/arcgis-feature-table.entry.js.map +1 -0
  398. package/dist/esm/arcgis-feature-templates.entry.js +77 -13
  399. package/dist/esm/arcgis-feature-templates.entry.js.map +1 -0
  400. package/dist/esm/arcgis-feature.entry.js +52 -22
  401. package/dist/esm/arcgis-feature.entry.js.map +1 -0
  402. package/dist/esm/arcgis-features.entry.js +52 -25
  403. package/dist/esm/arcgis-features.entry.js.map +1 -0
  404. package/dist/esm/arcgis-floor-filter.entry.js +21 -25
  405. package/dist/esm/arcgis-floor-filter.entry.js.map +1 -0
  406. package/dist/esm/arcgis-fullscreen.entry.js +18 -22
  407. package/dist/esm/arcgis-fullscreen.entry.js.map +1 -0
  408. package/dist/esm/arcgis-histogram-range-slider.entry.js +140 -12
  409. package/dist/esm/arcgis-histogram-range-slider.entry.js.map +1 -0
  410. package/dist/esm/arcgis-histogram.entry.js +119 -7
  411. package/dist/esm/arcgis-histogram.entry.js.map +1 -0
  412. package/dist/esm/arcgis-home.entry.js +29 -23
  413. package/dist/esm/arcgis-home.entry.js.map +1 -0
  414. package/dist/esm/arcgis-layer-list.entry.js +47 -22
  415. package/dist/esm/arcgis-layer-list.entry.js.map +1 -0
  416. package/dist/esm/arcgis-legend.entry.js +19 -23
  417. package/dist/esm/arcgis-legend.entry.js.map +1 -0
  418. package/dist/esm/arcgis-line-of-sight.entry.js +16 -20
  419. package/dist/esm/arcgis-line-of-sight.entry.js.map +1 -0
  420. package/dist/esm/arcgis-locate.entry.js +27 -32
  421. package/dist/esm/arcgis-locate.entry.js.map +1 -0
  422. package/dist/esm/arcgis-map-components.js +6 -4
  423. package/dist/esm/arcgis-map-components.js.map +1 -0
  424. package/dist/esm/arcgis-measurement.entry.js +28 -23
  425. package/dist/esm/arcgis-measurement.entry.js.map +1 -0
  426. package/dist/esm/arcgis-navigation-toggle.entry.js +14 -18
  427. package/dist/esm/arcgis-navigation-toggle.entry.js.map +1 -0
  428. package/dist/esm/arcgis-placement.entry.js +48 -0
  429. package/dist/esm/arcgis-placement.entry.js.map +1 -0
  430. package/dist/esm/arcgis-print.entry.js +41 -27
  431. package/dist/esm/arcgis-print.entry.js.map +1 -0
  432. package/dist/esm/arcgis-scale-bar.entry.js +17 -21
  433. package/dist/esm/arcgis-scale-bar.entry.js.map +1 -0
  434. package/dist/esm/arcgis-scale-range-slider.entry.js +40 -34
  435. package/dist/esm/arcgis-scale-range-slider.entry.js.map +1 -0
  436. package/dist/esm/arcgis-scene.entry.js +201 -0
  437. package/dist/esm/arcgis-scene.entry.js.map +1 -0
  438. package/dist/esm/arcgis-search.entry.js +316 -0
  439. package/dist/esm/arcgis-search.entry.js.map +1 -0
  440. package/dist/esm/arcgis-shadow-cast.entry.js +26 -29
  441. package/dist/esm/arcgis-shadow-cast.entry.js.map +1 -0
  442. package/dist/esm/arcgis-sketch.entry.js +43 -37
  443. package/dist/esm/arcgis-sketch.entry.js.map +1 -0
  444. package/dist/esm/arcgis-slice.entry.js +18 -31
  445. package/dist/esm/arcgis-slice.entry.js.map +1 -0
  446. package/dist/esm/arcgis-slider.entry.js +41 -43
  447. package/dist/esm/arcgis-slider.entry.js.map +1 -0
  448. package/dist/esm/arcgis-swipe.entry.js +9 -6
  449. package/dist/esm/arcgis-swipe.entry.js.map +1 -0
  450. package/dist/esm/arcgis-table-list.entry.js +47 -27
  451. package/dist/esm/arcgis-table-list.entry.js.map +1 -0
  452. package/dist/esm/arcgis-time-slider.entry.js +37 -31
  453. package/dist/esm/arcgis-time-slider.entry.js.map +1 -0
  454. package/dist/esm/arcgis-track.entry.js +26 -30
  455. package/dist/esm/arcgis-track.entry.js.map +1 -0
  456. package/dist/esm/arcgis-utility-network-associations.entry.js +30 -31
  457. package/dist/esm/arcgis-utility-network-associations.entry.js.map +1 -0
  458. package/dist/esm/arcgis-utility-network-trace.entry.js +43 -23
  459. package/dist/esm/arcgis-utility-network-trace.entry.js.map +1 -0
  460. package/dist/esm/arcgis-utility-network-validate-topology.entry.js +21 -32
  461. package/dist/esm/arcgis-utility-network-validate-topology.entry.js.map +1 -0
  462. package/dist/esm/arcgis-value-picker.entry.js +44 -27
  463. package/dist/esm/arcgis-value-picker.entry.js.map +1 -0
  464. package/dist/esm/arcgis-weather.entry.js +25 -19
  465. package/dist/esm/arcgis-weather.entry.js.map +1 -0
  466. package/dist/esm/arcgis-zoom.entry.js +23 -24
  467. package/dist/esm/arcgis-zoom.entry.js.map +1 -0
  468. package/dist/esm/component-utils-42a79acb.js +125 -0
  469. package/dist/esm/component-utils-42a79acb.js.map +1 -0
  470. package/dist/esm/disconnected-bf72f8e5.js +38 -0
  471. package/dist/esm/disconnected-bf72f8e5.js.map +1 -0
  472. package/dist/esm/{index-eb3ead33.js → index-05f887cd.js} +752 -71
  473. package/dist/esm/index-05f887cd.js.map +1 -0
  474. package/dist/esm/{index-334b0bde.js → index-fd2cea51.js} +3 -1
  475. package/dist/esm/index-fd2cea51.js.map +1 -0
  476. package/dist/esm/index.js +2 -0
  477. package/dist/esm/index.js.map +1 -0
  478. package/dist/esm/loader.js +6 -13
  479. package/dist/esm/loader.js.map +1 -0
  480. package/dist/esm/mapping-utils-a935fed9.js +40 -0
  481. package/dist/esm/mapping-utils-a935fed9.js.map +1 -0
  482. package/dist/loader/index.d.ts +2 -2
  483. package/dist/types/components/{arcgis-area-measurement-2d/arcgis-area-measurement-2d.d.ts → area-measurement-2d/area-measurement-2d.d.ts} +5 -3
  484. package/dist/types/components/{arcgis-area-measurement-3d/arcgis-area-measurement-3d.d.ts → area-measurement-3d/area-measurement-3d.d.ts} +5 -3
  485. package/dist/types/components/{arcgis-attachments/arcgis-attachments.d.ts → attachments/attachments.d.ts} +10 -1
  486. package/dist/types/components/{arcgis-basemap-gallery/arcgis-basemap-gallery.d.ts → basemap-gallery/basemap-gallery.d.ts} +5 -3
  487. package/dist/types/components/{arcgis-basemap-layer-list/arcgis-basemap-layer-list.d.ts → basemap-layer-list/basemap-layer-list.d.ts} +15 -8
  488. package/dist/types/components/{arcgis-basemap-toggle/arcgis-basemap-toggle.d.ts → basemap-toggle/basemap-toggle.d.ts} +7 -4
  489. package/dist/types/components/{arcgis-bookmarks/arcgis-bookmarks.d.ts → bookmarks/bookmarks.d.ts} +10 -7
  490. package/dist/types/components/{arcgis-building-explorer/arcgis-building-explorer.d.ts → building-explorer/building-explorer.d.ts} +9 -3
  491. package/dist/types/components/{arcgis-compass/arcgis-compass.d.ts → compass/compass.d.ts} +4 -3
  492. package/dist/types/components/{arcgis-coordinate-conversion/arcgis-coordinate-conversion.d.ts → coordinate-conversion/coordinate-conversion.d.ts} +14 -11
  493. package/dist/types/components/{arcgis-daylight/arcgis-daylight.d.ts → daylight/daylight.d.ts} +9 -6
  494. package/dist/types/components/{arcgis-directions/arcgis-directions.d.ts → directions/directions.d.ts} +13 -9
  495. package/dist/types/components/{arcgis-directline-measurement-3d/arcgis-directline-measurement-3d.d.ts → directline-measurement-3d/directline-measurement-3d.d.ts} +6 -5
  496. package/dist/types/components/{arcgis-distance-measurement-2d/arcgis-distance-measurement-2d.d.ts → distance-measurement-2d/distance-measurement-2d.d.ts} +6 -5
  497. package/dist/types/components/{arcgis-editor/arcgis-editor.d.ts → editor/editor.d.ts} +12 -9
  498. package/dist/types/components/{arcgis-elevation-profile/arcgis-elevation-profile.d.ts → elevation-profile/elevation-profile.d.ts} +12 -8
  499. package/dist/types/components/expand/expand.d.ts +48 -0
  500. package/dist/types/components/{arcgis-feature/arcgis-feature.d.ts → feature/feature.d.ts} +13 -5
  501. package/dist/types/components/feature-form/feature-form.d.ts +42 -0
  502. package/dist/types/components/{arcgis-feature-table/arcgis-feature-table.d.ts → feature-table/feature-table.d.ts} +25 -18
  503. package/dist/types/components/feature-templates/feature-templates.d.ts +38 -0
  504. package/dist/types/components/{arcgis-features/arcgis-features.d.ts → features/features.d.ts} +13 -4
  505. package/dist/types/components/{arcgis-floor-filter/arcgis-floor-filter.d.ts → floor-filter/floor-filter.d.ts} +8 -7
  506. package/dist/types/components/{arcgis-fullscreen/arcgis-fullscreen.d.ts → fullscreen/fullscreen.d.ts} +5 -4
  507. package/dist/types/components/histogram/histogram.d.ts +41 -0
  508. package/dist/types/components/histogram-range-slider/histogram-range-slider.d.ts +52 -0
  509. package/dist/types/components/{arcgis-home/arcgis-home.d.ts → home/home.d.ts} +7 -4
  510. package/dist/types/components/{arcgis-layer-list/arcgis-layer-list.d.ts → layer-list/layer-list.d.ts} +11 -6
  511. package/dist/types/components/{arcgis-legend/arcgis-legend.d.ts → legend/legend.d.ts} +10 -9
  512. package/dist/types/components/{arcgis-line-of-sight/arcgis-line-of-sight.d.ts → line-of-sight/line-of-sight.d.ts} +4 -3
  513. package/dist/types/components/{arcgis-locate/arcgis-locate.d.ts → locate/locate.d.ts} +11 -10
  514. package/dist/types/components/{arcgis-map/arcgis-map.d.ts → map/map.d.ts} +9 -2
  515. package/dist/types/components/{arcgis-measurement/arcgis-measurement.d.ts → measurement/measurement.d.ts} +7 -6
  516. package/dist/types/components/{arcgis-navigation-toggle/arcgis-navigation-toggle.d.ts → navigation-toggle/navigation-toggle.d.ts} +5 -4
  517. package/dist/types/components/{arcgis-expand/arcgis-expand.d.ts → placement/placement.d.ts} +8 -13
  518. package/dist/types/components/{arcgis-print/arcgis-print.d.ts → print/print.d.ts} +14 -13
  519. package/dist/types/components/{arcgis-scale-bar/arcgis-scale-bar.d.ts → scale-bar/scale-bar.d.ts} +6 -5
  520. package/dist/types/components/{arcgis-scale-range-slider/arcgis-scale-range-slider.d.ts → scale-range-slider/scale-range-slider.d.ts} +12 -9
  521. package/dist/types/components/{arcgis-scene/arcgis-scene.d.ts → scene/scene.d.ts} +9 -2
  522. package/dist/types/components/{arcgis-search/arcgis-search.d.ts → search/search.d.ts} +21 -20
  523. package/dist/types/components/{arcgis-shadow-cast/arcgis-shadow-cast.d.ts → shadow-cast/shadow-cast.d.ts} +6 -5
  524. package/dist/types/components/{arcgis-sketch/arcgis-sketch.d.ts → sketch/sketch.d.ts} +15 -12
  525. package/dist/types/components/{arcgis-slice/arcgis-slice.d.ts → slice/slice.d.ts} +4 -5
  526. package/dist/types/components/{arcgis-slider/arcgis-slider.d.ts → slider/slider.d.ts} +15 -14
  527. package/dist/types/components/{arcgis-swipe/arcgis-swipe.d.ts → swipe/swipe.d.ts} +1 -0
  528. package/dist/types/components/{arcgis-table-list/arcgis-table-list.d.ts → table-list/table-list.d.ts} +10 -5
  529. package/dist/types/components/{arcgis-time-slider/arcgis-time-slider.d.ts → time-slider/time-slider.d.ts} +16 -13
  530. package/dist/types/components/{arcgis-track/arcgis-track.d.ts → track/track.d.ts} +10 -9
  531. package/dist/types/components/{arcgis-utility-network-associations/arcgis-utility-network-associations.d.ts → utility-network-associations/utility-network-associations.d.ts} +20 -17
  532. package/dist/types/components/{arcgis-utility-network-trace/arcgis-utility-network-trace.d.ts → utility-network-trace/utility-network-trace.d.ts} +12 -11
  533. package/dist/types/components/{arcgis-utility-network-validate-topology/arcgis-utility-network-validate-topology.d.ts → utility-network-validate-topology/utility-network-validate-topology.d.ts} +6 -5
  534. package/dist/types/components/{arcgis-value-picker/arcgis-value-picker.d.ts → value-picker/value-picker.d.ts} +9 -6
  535. package/dist/types/components/{arcgis-weather/arcgis-weather.d.ts → weather/weather.d.ts} +6 -3
  536. package/dist/types/components/{arcgis-zoom/arcgis-zoom.d.ts → zoom/zoom.d.ts} +5 -4
  537. package/dist/types/components.d.ts +953 -62
  538. package/dist/types/stencil-public-runtime.d.ts +53 -17
  539. package/dist/types/utils/component-utils.d.ts +9 -4
  540. package/dist/types/utils/expandable.d.ts +1 -0
  541. package/dist/types/utils/mapping-utils.d.ts +1 -1
  542. package/package.json +21 -23
  543. package/dist/arcgis-map-components/p-037a3bb6.entry.js +0 -1
  544. package/dist/arcgis-map-components/p-064bf907.entry.js +0 -1
  545. package/dist/arcgis-map-components/p-08015460.entry.js +0 -1
  546. package/dist/arcgis-map-components/p-0d492ad6.entry.js +0 -1
  547. package/dist/arcgis-map-components/p-0ee8ea5a.entry.js +0 -1
  548. package/dist/arcgis-map-components/p-11168df4.entry.js +0 -1
  549. package/dist/arcgis-map-components/p-1680f044.entry.js +0 -1
  550. package/dist/arcgis-map-components/p-1a6dcf6a.entry.js +0 -1
  551. package/dist/arcgis-map-components/p-1e5e5ed9.js +0 -2
  552. package/dist/arcgis-map-components/p-29c81862.entry.js +0 -1
  553. package/dist/arcgis-map-components/p-2d3406f7.js +0 -1
  554. package/dist/arcgis-map-components/p-347dba98.entry.js +0 -1
  555. package/dist/arcgis-map-components/p-3673ae6e.entry.js +0 -1
  556. package/dist/arcgis-map-components/p-367c6986.entry.js +0 -1
  557. package/dist/arcgis-map-components/p-3b2623c6.entry.js +0 -1
  558. package/dist/arcgis-map-components/p-4722bbad.entry.js +0 -1
  559. package/dist/arcgis-map-components/p-48c89578.entry.js +0 -1
  560. package/dist/arcgis-map-components/p-5299aa69.entry.js +0 -1
  561. package/dist/arcgis-map-components/p-52c3388d.entry.js +0 -1
  562. package/dist/arcgis-map-components/p-5d2f53bd.entry.js +0 -1
  563. package/dist/arcgis-map-components/p-615399dd.entry.js +0 -1
  564. package/dist/arcgis-map-components/p-658a2499.entry.js +0 -1
  565. package/dist/arcgis-map-components/p-7031c422.entry.js +0 -1
  566. package/dist/arcgis-map-components/p-7084f84f.entry.js +0 -1
  567. package/dist/arcgis-map-components/p-74b7f2c3.entry.js +0 -1
  568. package/dist/arcgis-map-components/p-86a82586.entry.js +0 -1
  569. package/dist/arcgis-map-components/p-8a60074a.entry.js +0 -1
  570. package/dist/arcgis-map-components/p-8b4cf5da.entry.js +0 -1
  571. package/dist/arcgis-map-components/p-922bbfed.entry.js +0 -1
  572. package/dist/arcgis-map-components/p-932be58c.entry.js +0 -1
  573. package/dist/arcgis-map-components/p-99d486cb.entry.js +0 -1
  574. package/dist/arcgis-map-components/p-9fdd4596.entry.js +0 -1
  575. package/dist/arcgis-map-components/p-a0f092fc.entry.js +0 -1
  576. package/dist/arcgis-map-components/p-a1e2e59f.entry.js +0 -1
  577. package/dist/arcgis-map-components/p-a249c2fa.entry.js +0 -1
  578. package/dist/arcgis-map-components/p-a508d7c6.entry.js +0 -1
  579. package/dist/arcgis-map-components/p-a89102b6.entry.js +0 -1
  580. package/dist/arcgis-map-components/p-ac7e9294.entry.js +0 -1
  581. package/dist/arcgis-map-components/p-adcfd40d.entry.js +0 -1
  582. package/dist/arcgis-map-components/p-ae96d72a.entry.js +0 -1
  583. package/dist/arcgis-map-components/p-b026950f.entry.js +0 -1
  584. package/dist/arcgis-map-components/p-b5904340.entry.js +0 -1
  585. package/dist/arcgis-map-components/p-b813c9e6.js +0 -1
  586. package/dist/arcgis-map-components/p-c57f270d.entry.js +0 -1
  587. package/dist/arcgis-map-components/p-c63d9e91.entry.js +0 -1
  588. package/dist/arcgis-map-components/p-c8516f87.entry.js +0 -1
  589. package/dist/arcgis-map-components/p-d3f3affa.entry.js +0 -1
  590. package/dist/arcgis-map-components/p-d5ac71b2.entry.js +0 -1
  591. package/dist/arcgis-map-components/p-dcf3861b.entry.js +0 -1
  592. package/dist/arcgis-map-components/p-e1201530.entry.js +0 -1
  593. package/dist/arcgis-map-components/p-eb95717e.entry.js +0 -1
  594. package/dist/arcgis-map-components/p-ee1086de.entry.js +0 -1
  595. package/dist/arcgis-map-components/p-f28d6d27.js +0 -1
  596. package/dist/arcgis-map-components/p-f8353590.entry.js +0 -1
  597. package/dist/cjs/arcgis-basemap-gallery.cjs.entry.js +0 -97
  598. package/dist/cjs/arcgis-expand_4.cjs.entry.js +0 -693
  599. package/dist/cjs/disconnected-306cb220.js +0 -55
  600. package/dist/components/arcgis-expand2.js +0 -107
  601. package/dist/esm/arcgis-basemap-gallery.entry.js +0 -93
  602. package/dist/esm/arcgis-expand_4.entry.js +0 -686
  603. package/dist/esm/disconnected-bc5fc8bc.js +0 -52
  604. package/dist/esm/polyfills/css-shim.js +0 -1
  605. package/dist/types/components/arcgis-feature-form/arcgis-feature-form.d.ts +0 -18
  606. package/dist/types/components/arcgis-feature-templates/arcgis-feature-templates.d.ts +0 -24
  607. package/dist/types/components/arcgis-histogram/arcgis-histogram.d.ts +0 -18
  608. package/dist/types/components/arcgis-histogram-range-slider/arcgis-histogram-range-slider.d.ts +0 -25
@@ -1,4 +1,5 @@
1
1
  const NAMESPACE = 'arcgis-map-components';
2
+ const BUILD = /* arcgis-map-components */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: true, hydratedClass: false, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: false, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: false, vdomListener: false, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: false, vdomText: false, vdomXlink: false, watchCallback: true };
2
3
 
3
4
  /**
4
5
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -8,6 +9,11 @@ const NAMESPACE = 'arcgis-map-components';
8
9
  *
9
10
  * Modified for Stencil's renderer and slot projection
10
11
  */
12
+ let contentRef;
13
+ let hostTagName;
14
+ let useNativeShadowDom = false;
15
+ let checkSlotFallbackVisibility = false;
16
+ let checkSlotRelocate = false;
11
17
  let isSvgMode = false;
12
18
  let queuePending = false;
13
19
  const createTime = (fnName, tagName = '') => {
@@ -33,6 +39,13 @@ const HYDRATED_CSS = '{visibility:hidden}[hydrated]{visibility:inherit}';
33
39
  * Don't add values to these!!
34
40
  */
35
41
  const EMPTY_OBJ = {};
42
+ /**
43
+ * Check whether a value is a 'complex type', defined here as an object or a
44
+ * function.
45
+ *
46
+ * @param o the value to check
47
+ * @returns whether it's a complex type or not
48
+ */
36
49
  const isComplexType = (o) => {
37
50
  // https://jsperf.com/typeof-fn-object/5
38
51
  o = typeof o;
@@ -62,6 +75,7 @@ function queryNonceMetaTagContent(doc) {
62
75
  // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
63
76
  const h = (nodeName, vnodeData, ...children) => {
64
77
  let child = null;
78
+ let slotName = null;
65
79
  let simple = false;
66
80
  let lastSimple = false;
67
81
  const vNodeChildren = [];
@@ -89,6 +103,10 @@ const h = (nodeName, vnodeData, ...children) => {
89
103
  };
90
104
  walk(children);
91
105
  if (vnodeData) {
106
+ if (vnodeData.name) {
107
+ slotName = vnodeData.name;
108
+ }
109
+ // normalize class / className attributes
92
110
  {
93
111
  const classData = vnodeData.className || vnodeData.class;
94
112
  if (classData) {
@@ -106,6 +124,9 @@ const h = (nodeName, vnodeData, ...children) => {
106
124
  if (vNodeChildren.length > 0) {
107
125
  vnode.$children$ = vNodeChildren;
108
126
  }
127
+ {
128
+ vnode.$name$ = slotName;
129
+ }
109
130
  return vnode;
110
131
  };
111
132
  /**
@@ -127,6 +148,9 @@ const newVNode = (tag, text) => {
127
148
  {
128
149
  vnode.$attrs$ = null;
129
150
  }
151
+ {
152
+ vnode.$name$ = null;
153
+ }
130
154
  return vnode;
131
155
  };
132
156
  const Host = {};
@@ -227,9 +251,9 @@ const registerStyle = (scopeId, cssText, allowCS) => {
227
251
  }
228
252
  styles.set(scopeId, style);
229
253
  };
230
- const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
254
+ const addStyle = (styleContainerNode, cmpMeta, mode) => {
231
255
  var _a;
232
- let scopeId = getScopeId(cmpMeta);
256
+ const scopeId = getScopeId(cmpMeta);
233
257
  const style = styles.get(scopeId);
234
258
  // if an element is NOT connected then getRootNode() will return the wrong root node
235
259
  // so the fallback is to always use the document for the root node in those cases
@@ -244,10 +268,8 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
244
268
  }
245
269
  if (!appliedStyles.has(scopeId)) {
246
270
  {
247
- {
248
- styleElm = doc.createElement('style');
249
- styleElm.innerHTML = style;
250
- }
271
+ styleElm = doc.createElement('style');
272
+ styleElm.innerHTML = style;
251
273
  // Apply CSP nonce to the style tag if it exists
252
274
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
253
275
  if (nonce != null) {
@@ -282,6 +304,21 @@ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
282
304
  *
283
305
  * Modified for Stencil's compiler and vdom
284
306
  */
307
+ /**
308
+ * When running a VDom render set properties present on a VDom node onto the
309
+ * corresponding HTML element.
310
+ *
311
+ * Note that this function has special functionality for the `class`,
312
+ * `style`, `key`, and `ref` attributes, as well as event handlers (like
313
+ * `onClick`, etc). All others are just passed through as-is.
314
+ *
315
+ * @param elm the HTMLElement onto which attributes should be set
316
+ * @param memberName the name of the attribute to set
317
+ * @param oldValue the old value for the attribute
318
+ * @param newValue the new value for the attribute
319
+ * @param isSvg whether we're in an svg context or not
320
+ * @param flags bitflags for Vdom variables
321
+ */
285
322
  const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
286
323
  if (oldValue !== newValue) {
287
324
  let isProp = isMemberInElement(elm, memberName);
@@ -371,14 +408,34 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
371
408
  * @returns the newly created node
372
409
  */
373
410
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
411
+ var _a;
374
412
  // tslint:disable-next-line: prefer-const
375
413
  const newVNode = newParentVNode.$children$[childIndex];
376
414
  let i = 0;
377
415
  let elm;
378
416
  let childNode;
379
- {
417
+ let oldVNode;
418
+ if (!useNativeShadowDom) {
419
+ // remember for later we need to check to relocate nodes
420
+ checkSlotRelocate = true;
421
+ if (newVNode.$tag$ === 'slot') {
422
+ newVNode.$flags$ |= newVNode.$children$
423
+ ? // slot element has fallback content
424
+ 2 /* VNODE_FLAGS.isSlotFallback */
425
+ : // slot element does not have fallback content
426
+ 1 /* VNODE_FLAGS.isSlotReference */;
427
+ }
428
+ }
429
+ if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {
430
+ // create a slot reference node
431
+ elm = newVNode.$elm$ =
432
+ doc.createTextNode('');
433
+ }
434
+ else {
380
435
  // create element
381
- elm = newVNode.$elm$ = (doc.createElement(newVNode.$tag$));
436
+ elm = newVNode.$elm$ = (doc.createElement(newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */
437
+ ? 'slot-fb'
438
+ : newVNode.$tag$));
382
439
  // add css classes, attrs, props, listeners, etc.
383
440
  {
384
441
  updateElement(null, newVNode, isSvgMode);
@@ -395,8 +452,61 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
395
452
  }
396
453
  }
397
454
  }
455
+ {
456
+ elm['s-hn'] = hostTagName;
457
+ if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
458
+ // remember the content reference comment
459
+ elm['s-sr'] = true;
460
+ // Persist the name of the slot that this slot was going to be projected into.
461
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
462
+ // remember the content reference comment
463
+ elm['s-cr'] = contentRef;
464
+ // remember the slot name, or empty string for default slot
465
+ elm['s-sn'] = newVNode.$name$ || '';
466
+ // check if we've got an old vnode for this slot
467
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
468
+ if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {
469
+ // we've got an old slot vnode and the wrapper is being replaced
470
+ // so let's move the old slot content back to it's original location
471
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
472
+ }
473
+ }
474
+ }
398
475
  return elm;
399
476
  };
477
+ const putBackInOriginalLocation = (parentElm, recursive) => {
478
+ var _a;
479
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
480
+ const oldSlotChildNodes = parentElm.childNodes;
481
+ for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
482
+ const childNode = oldSlotChildNodes[i];
483
+ if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {
484
+ // // this child node in the old element is from another component
485
+ // // remove this node from the old slot's parent
486
+ // childNode.remove();
487
+ // and relocate it back to it's original location
488
+ parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
489
+ // remove the old original location comment entirely
490
+ // later on the patch function will know what to do
491
+ // and move this to the correct spot if need be
492
+ childNode['s-ol'].remove();
493
+ childNode['s-ol'] = undefined;
494
+ // Reset so we can correctly move the node around again.
495
+ childNode['s-sh'] = undefined;
496
+ // When putting an element node back in its original location,
497
+ // we need to reset the `slot` attribute back to the value it originally had
498
+ // so we can correctly relocate it again in the future
499
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
500
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
501
+ }
502
+ checkSlotRelocate = true;
503
+ }
504
+ if (recursive) {
505
+ putBackInOriginalLocation(childNode, recursive);
506
+ }
507
+ }
508
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
509
+ };
400
510
  /**
401
511
  * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
402
512
  * add them to the DOM in the appropriate place.
@@ -413,14 +523,14 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
413
523
  * creating DOM nodes (inclusive)
414
524
  */
415
525
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
416
- let containerElm = (parentElm);
526
+ let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
417
527
  let childNode;
418
528
  for (; startIdx <= endIdx; ++startIdx) {
419
529
  if (vnodes[startIdx]) {
420
530
  childNode = createElm(null, parentVNode, startIdx);
421
531
  if (childNode) {
422
532
  vnodes[startIdx].$elm$ = childNode;
423
- containerElm.insertBefore(childNode, before);
533
+ containerElm.insertBefore(childNode, referenceNode(before) );
424
534
  }
425
535
  }
426
536
  }
@@ -435,16 +545,31 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
435
545
  * @param vnodes a list of virtual DOM nodes to remove
436
546
  * @param startIdx the index at which to start removing nodes (inclusive)
437
547
  * @param endIdx the index at which to stop removing nodes (inclusive)
438
- * @param vnode a VNode
439
- * @param elm an element
440
548
  */
441
- const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
442
- for (; startIdx <= endIdx; ++startIdx) {
443
- if ((vnode = vnodes[startIdx])) {
444
- elm = vnode.$elm$;
445
- callNodeRefs(vnode);
446
- // remove the vnode's element from the dom
447
- elm.remove();
549
+ const removeVnodes = (vnodes, startIdx, endIdx) => {
550
+ for (let index = startIdx; index <= endIdx; ++index) {
551
+ const vnode = vnodes[index];
552
+ if (vnode) {
553
+ const elm = vnode.$elm$;
554
+ nullifyVNodeRefs(vnode);
555
+ if (elm) {
556
+ {
557
+ // we're removing this element
558
+ // so it's possible we need to show slot fallback content now
559
+ checkSlotFallbackVisibility = true;
560
+ if (elm['s-ol']) {
561
+ // remove the original location comment
562
+ elm['s-ol'].remove();
563
+ }
564
+ else {
565
+ // it's possible that child nodes of the node
566
+ // that's being removed are slot nodes
567
+ putBackInOriginalLocation(elm, true);
568
+ }
569
+ }
570
+ // remove the vnode's element from the dom
571
+ elm.remove();
572
+ }
448
573
  }
449
574
  }
450
575
  };
@@ -558,6 +683,23 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
558
683
  newEndVnode = newCh[--newEndIdx];
559
684
  }
560
685
  else if (isSameVnode(oldStartVnode, newEndVnode)) {
686
+ // case: "Vnode moved right"
687
+ //
688
+ // We've found that the last node in our window on the new children is
689
+ // the same VNode as the _first_ node in our window on the old children
690
+ // we're dealing with now. Visually, this is the layout of these two
691
+ // nodes:
692
+ //
693
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
694
+ // ^^^^^^^^^^^
695
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
696
+ // ^^^^^^^^^^^^^
697
+ //
698
+ // In this situation we need to patch `newEndVnode` onto `oldStartVnode`
699
+ // and move the DOM element for `oldStartVnode`.
700
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
701
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
702
+ }
561
703
  patch(oldStartVnode, newEndVnode);
562
704
  // We need to move the element for `oldStartVnode` into a position which
563
705
  // will be appropriate for `newEndVnode`. For this we can use
@@ -581,6 +723,24 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
581
723
  newEndVnode = newCh[--newEndIdx];
582
724
  }
583
725
  else if (isSameVnode(oldEndVnode, newStartVnode)) {
726
+ // case: "Vnode moved left"
727
+ //
728
+ // We've found that the first node in our window on the new children is
729
+ // the same VNode as the _last_ node in our window on the old children.
730
+ // Visually, this is the layout of these two nodes:
731
+ //
732
+ // newCh: [..., newStartVnode , ... , newEndVnode , ...]
733
+ // ^^^^^^^^^^^^^
734
+ // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
735
+ // ^^^^^^^^^^^
736
+ //
737
+ // In this situation we need to patch `newStartVnode` onto `oldEndVnode`
738
+ // (which will handle updating any changed attributes, reconciling their
739
+ // children etc) but we also need to move the DOM node to which
740
+ // `oldEndVnode` corresponds.
741
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
742
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
743
+ }
584
744
  patch(oldEndVnode, newStartVnode);
585
745
  // We've already checked above if `oldStartVnode` and `newStartVnode` are
586
746
  // the same node, so since we're here we know that they are not. Thus we
@@ -603,7 +763,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
603
763
  if (node) {
604
764
  // if we created a new node then handle inserting it to the DOM
605
765
  {
606
- oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);
766
+ parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));
607
767
  }
608
768
  }
609
769
  }
@@ -641,10 +801,21 @@ const isSameVnode = (leftVNode, rightVNode) => {
641
801
  // compare if two vnode to see if they're "technically" the same
642
802
  // need to have the same element tag, and same key to be the same
643
803
  if (leftVNode.$tag$ === rightVNode.$tag$) {
804
+ if (leftVNode.$tag$ === 'slot') {
805
+ return leftVNode.$name$ === rightVNode.$name$;
806
+ }
644
807
  return true;
645
808
  }
646
809
  return false;
647
810
  };
811
+ const referenceNode = (node) => {
812
+ // this node was relocated to a new location in the dom
813
+ // because of some other component's slot
814
+ // but we still have an html comment in place of where
815
+ // it's original location was according to it's original vdom
816
+ return (node && node['s-ol']) || node;
817
+ };
818
+ const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;
648
819
  /**
649
820
  * Handle reconciling an outdated VNode with a new one which corresponds to
650
821
  * it. This function handles flushing updates to the DOM and reconciling the
@@ -657,9 +828,12 @@ const patch = (oldVNode, newVNode) => {
657
828
  const elm = (newVNode.$elm$ = oldVNode.$elm$);
658
829
  const oldChildren = oldVNode.$children$;
659
830
  const newChildren = newVNode.$children$;
831
+ const tag = newVNode.$tag$;
660
832
  {
661
833
  {
662
- {
834
+ if (tag === 'slot')
835
+ ;
836
+ else {
663
837
  // either this is the first render of an element OR it's an update
664
838
  // AND we already know it's possible it could have changed
665
839
  // this updates the element's css classes, attrs, props, listeners, etc.
@@ -681,10 +855,194 @@ const patch = (oldVNode, newVNode) => {
681
855
  }
682
856
  }
683
857
  };
684
- const callNodeRefs = (vNode) => {
858
+ /**
859
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
860
+ * are slot fallbacks nodes.
861
+ *
862
+ * A slot fallback node should be visible by default. Then, it should be
863
+ * conditionally hidden if:
864
+ *
865
+ * - it has a sibling with a `slot` property set to its slot name or if
866
+ * - it is a default fallback slot node, in which case we hide if it has any
867
+ * content
868
+ *
869
+ * @param elm the element of interest
870
+ */
871
+ const updateFallbackSlotVisibility = (elm) => {
872
+ const childNodes = elm.childNodes;
873
+ for (const childNode of childNodes) {
874
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
875
+ if (childNode['s-sr']) {
876
+ // this is a slot fallback node
877
+ // get the slot name for this slot reference node
878
+ const slotName = childNode['s-sn'];
879
+ // by default always show a fallback slot node
880
+ // then hide it if there are other slots in the light dom
881
+ childNode.hidden = false;
882
+ // we need to check all of its sibling nodes in order to see if
883
+ // `childNode` should be hidden
884
+ for (const siblingNode of childNodes) {
885
+ // Don't check the node against itself
886
+ if (siblingNode !== childNode) {
887
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
888
+ // this sibling node is from a different component OR is a named
889
+ // fallback slot node
890
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
891
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
892
+ childNode.hidden = true;
893
+ break;
894
+ }
895
+ }
896
+ else {
897
+ // this is a default fallback slot node
898
+ // any element or text node (with content)
899
+ // should hide the default fallback slot node
900
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
901
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
902
+ childNode.hidden = true;
903
+ break;
904
+ }
905
+ }
906
+ }
907
+ }
908
+ }
909
+ // keep drilling down
910
+ updateFallbackSlotVisibility(childNode);
911
+ }
912
+ }
913
+ };
914
+ /**
915
+ * Component-global information about nodes which are either currently being
916
+ * relocated or will be shortly.
917
+ */
918
+ const relocateNodes = [];
919
+ /**
920
+ * Mark the contents of a slot for relocation via adding references to them to
921
+ * the {@link relocateNodes} data structure. The actual work of relocating them
922
+ * will then be handled in {@link renderVdom}.
923
+ *
924
+ * @param elm a render node whose child nodes need to be relocated
925
+ */
926
+ const markSlotContentForRelocation = (elm) => {
927
+ // tslint:disable-next-line: prefer-const
928
+ let node;
929
+ let hostContentNodes;
930
+ let j;
931
+ for (const childNode of elm.childNodes) {
932
+ // we need to find child nodes which are slot references so we can then try
933
+ // to match them up with nodes that need to be relocated
934
+ if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
935
+ // first get the content reference comment node ('s-cr'), then we get
936
+ // its parent, which is where all the host content is now
937
+ hostContentNodes = node.parentNode.childNodes;
938
+ const slotName = childNode['s-sn'];
939
+ // iterate through all the nodes under the location where the host was
940
+ // originally rendered
941
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
942
+ node = hostContentNodes[j];
943
+ // check that the node is not a content reference node or a node
944
+ // reference and then check that the host name does not match that of
945
+ // childNode.
946
+ // In addition, check that the slot either has not already been relocated, or
947
+ // that its current location's host is not childNode's host. This is essentially
948
+ // a check so that we don't try to relocate (and then hide) a node that is already
949
+ // where it should be.
950
+ if (!node['s-cn'] &&
951
+ !node['s-nr'] &&
952
+ node['s-hn'] !== childNode['s-hn'] &&
953
+ (!BUILD.experimentalSlotFixes )) {
954
+ // if `node` is located in the slot that `childNode` refers to (via the
955
+ // `'s-sn'` property) then we need to relocate it from it's current spot
956
+ // (under the host element parent) to the right slot location
957
+ if (isNodeLocatedInSlot(node, slotName)) {
958
+ // it's possible we've already decided to relocate this node
959
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
960
+ // made some changes to slots
961
+ // let's make sure we also double check
962
+ // fallbacks are correctly hidden or shown
963
+ checkSlotFallbackVisibility = true;
964
+ // ensure that the slot-name attr is correct
965
+ node['s-sn'] = node['s-sn'] || slotName;
966
+ if (relocateNodeData) {
967
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
968
+ // we marked this node for relocation previously but didn't find
969
+ // out the slot reference node to which it needs to be relocated
970
+ // so write it down now!
971
+ relocateNodeData.$slotRefNode$ = childNode;
972
+ }
973
+ else {
974
+ node['s-sh'] = childNode['s-hn'];
975
+ // add to our list of nodes to relocate
976
+ relocateNodes.push({
977
+ $slotRefNode$: childNode,
978
+ $nodeToRelocate$: node,
979
+ });
980
+ }
981
+ if (node['s-sr']) {
982
+ relocateNodes.map((relocateNode) => {
983
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
984
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
985
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
986
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
987
+ }
988
+ }
989
+ });
990
+ }
991
+ }
992
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
993
+ // the node is not found within the slot (`childNode`) that we're
994
+ // currently looking at, so we stick it into `relocateNodes` to
995
+ // handle later. If we never find a home for this element then
996
+ // we'll need to hide it
997
+ relocateNodes.push({
998
+ $nodeToRelocate$: node,
999
+ });
1000
+ }
1001
+ }
1002
+ }
1003
+ }
1004
+ // if we're dealing with any type of element (capable of itself being a
1005
+ // slot reference or containing one) then we recur
1006
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1007
+ markSlotContentForRelocation(childNode);
1008
+ }
1009
+ }
1010
+ };
1011
+ /**
1012
+ * Check whether a node is located in a given named slot.
1013
+ *
1014
+ * @param nodeToRelocate the node of interest
1015
+ * @param slotName the slot name to check
1016
+ * @returns whether the node is located in the slot or not
1017
+ */
1018
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1019
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1020
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1021
+ // if the node doesn't have a slot attribute, and the slot we're checking
1022
+ // is not a named slot, then we assume the node should be within the slot
1023
+ return true;
1024
+ }
1025
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1026
+ return true;
1027
+ }
1028
+ return false;
1029
+ }
1030
+ if (nodeToRelocate['s-sn'] === slotName) {
1031
+ return true;
1032
+ }
1033
+ return slotName === '';
1034
+ };
1035
+ /**
1036
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1037
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1038
+ * node has been removed from the DOM.
1039
+ *
1040
+ * @param vNode a virtual DOM node
1041
+ */
1042
+ const nullifyVNodeRefs = (vNode) => {
685
1043
  {
686
1044
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
687
- vNode.$children$ && vNode.$children$.map(callNodeRefs);
1045
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
688
1046
  }
689
1047
  };
690
1048
  /**
@@ -698,22 +1056,141 @@ const callNodeRefs = (vNode) => {
698
1056
  * @param hostRef data needed to root and render the virtual DOM tree, such as
699
1057
  * the DOM node into which it should be rendered.
700
1058
  * @param renderFnResults the virtual DOM nodes to be rendered
1059
+ * @param isInitialLoad whether or not this is the first call after page load
701
1060
  */
702
- const renderVdom = (hostRef, renderFnResults) => {
1061
+ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1062
+ var _a, _b;
703
1063
  const hostElm = hostRef.$hostElement$;
704
1064
  const cmpMeta = hostRef.$cmpMeta$;
705
1065
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
1066
+ // if `renderFnResults` is a Host node then we can use it directly. If not,
1067
+ // we need to call `h` again to wrap the children of our component in a
1068
+ // 'dummy' Host node (well, an empty vnode) since `renderVdom` assumes
1069
+ // implicitly that the top-level vdom node is 1) an only child and 2)
1070
+ // contains attrs that need to be set on the host element.
706
1071
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
1072
+ hostTagName = hostElm.tagName;
707
1073
  if (cmpMeta.$attrsToReflect$) {
708
1074
  rootVnode.$attrs$ = rootVnode.$attrs$ || {};
709
1075
  cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));
710
1076
  }
1077
+ // On the first render and *only* on the first render we want to check for
1078
+ // any attributes set on the host element which are also set on the vdom
1079
+ // node. If we find them, we override the value on the VDom node attrs with
1080
+ // the value from the host element, which allows developers building apps
1081
+ // with Stencil components to override e.g. the `role` attribute on a
1082
+ // component even if it's already set on the `Host`.
1083
+ if (isInitialLoad && rootVnode.$attrs$) {
1084
+ for (const key of Object.keys(rootVnode.$attrs$)) {
1085
+ // We have a special implementation in `setAccessor` for `style` and
1086
+ // `class` which reconciles values coming from the VDom with values
1087
+ // already present on the DOM element, so we don't want to override those
1088
+ // attributes on the VDom tree with values from the host element if they
1089
+ // are present.
1090
+ //
1091
+ // Likewise, `ref` and `key` are special internal values for the Stencil
1092
+ // runtime and we don't want to override those either.
1093
+ if (hostElm.hasAttribute(key) && !['key', 'ref', 'style', 'class'].includes(key)) {
1094
+ rootVnode.$attrs$[key] = hostElm[key];
1095
+ }
1096
+ }
1097
+ }
711
1098
  rootVnode.$tag$ = null;
712
1099
  rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;
713
1100
  hostRef.$vnode$ = rootVnode;
714
1101
  rootVnode.$elm$ = oldVNode.$elm$ = (hostElm);
1102
+ {
1103
+ contentRef = hostElm['s-cr'];
1104
+ useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
1105
+ // always reset
1106
+ checkSlotFallbackVisibility = false;
1107
+ }
715
1108
  // synchronous patch
716
1109
  patch(oldVNode, rootVnode);
1110
+ {
1111
+ // while we're moving nodes around existing nodes, temporarily disable
1112
+ // the disconnectCallback from working
1113
+ plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1114
+ if (checkSlotRelocate) {
1115
+ markSlotContentForRelocation(rootVnode.$elm$);
1116
+ for (const relocateData of relocateNodes) {
1117
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1118
+ if (!nodeToRelocate['s-ol']) {
1119
+ // add a reference node marking this node's original location
1120
+ // keep a reference to this node for later lookups
1121
+ const orgLocationNode = doc.createTextNode('');
1122
+ orgLocationNode['s-nr'] = nodeToRelocate;
1123
+ nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1124
+ }
1125
+ }
1126
+ for (const relocateData of relocateNodes) {
1127
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1128
+ const slotRefNode = relocateData.$slotRefNode$;
1129
+ if (slotRefNode) {
1130
+ const parentNodeRef = slotRefNode.parentNode;
1131
+ // When determining where to insert content, the most simple case would be
1132
+ // to relocate the node immediately following the slot reference node. We do this
1133
+ // by getting a reference to the node immediately following the slot reference node
1134
+ // since we will use `insertBefore` to manipulate the DOM.
1135
+ //
1136
+ // If there is no node immediately following the slot reference node, then we will just
1137
+ // end up appending the node as the last child of the parent.
1138
+ let insertBeforeNode = slotRefNode.nextSibling;
1139
+ // If the node we're currently planning on inserting the new node before is an element,
1140
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1141
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1142
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1143
+ //
1144
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1145
+ {
1146
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1147
+ while (orgLocationNode) {
1148
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1149
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1150
+ refNode = refNode.nextSibling;
1151
+ if (!refNode || !refNode['s-nr']) {
1152
+ insertBeforeNode = refNode;
1153
+ break;
1154
+ }
1155
+ }
1156
+ orgLocationNode = orgLocationNode.previousSibling;
1157
+ }
1158
+ }
1159
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1160
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
1161
+ // we've checked that it's worth while to relocate
1162
+ // since that the node to relocate
1163
+ // has a different next sibling or parent relocated
1164
+ if (nodeToRelocate !== insertBeforeNode) {
1165
+ if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1166
+ // probably a component in the index.html that doesn't have its hostname set
1167
+ nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1168
+ }
1169
+ // Add it back to the dom but in its new home
1170
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1171
+ // we're just going to append the node as the last child of the parent. Passing
1172
+ // `null` as the second arg here will trigger that behavior.
1173
+ parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1174
+ }
1175
+ }
1176
+ }
1177
+ else {
1178
+ // this node doesn't have a slot home to go to, so let's hide it
1179
+ if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1180
+ nodeToRelocate.hidden = true;
1181
+ }
1182
+ }
1183
+ }
1184
+ }
1185
+ if (checkSlotFallbackVisibility) {
1186
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1187
+ }
1188
+ // done moving nodes around
1189
+ // allow the disconnect callback to work again
1190
+ plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1191
+ // always reset
1192
+ relocateNodes.length = 0;
1193
+ }
717
1194
  };
718
1195
  const attachToAncestor = (hostRef, ancestorComponent) => {
719
1196
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
@@ -735,20 +1212,86 @@ const scheduleUpdate = (hostRef, isInitialLoad) => {
735
1212
  const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
736
1213
  return writeTask(dispatch) ;
737
1214
  };
1215
+ /**
1216
+ * Dispatch initial-render and update lifecycle hooks, enqueuing calls to
1217
+ * component lifecycle methods like `componentWillLoad` as well as
1218
+ * {@link updateComponent}, which will kick off the virtual DOM re-render.
1219
+ *
1220
+ * @param hostRef a reference to a host DOM node
1221
+ * @param isInitialLoad whether we're on the initial load or not
1222
+ * @returns an empty Promise which is used to enqueue a series of operations for
1223
+ * the component
1224
+ */
738
1225
  const dispatchHooks = (hostRef, isInitialLoad) => {
739
1226
  const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);
740
1227
  const instance = hostRef.$lazyInstance$ ;
741
- let promise;
1228
+ // We're going to use this variable together with `enqueue` to implement a
1229
+ // little promise-based queue. We start out with it `undefined`. When we add
1230
+ // the first function to the queue we'll set this variable to be that
1231
+ // function's return value. When we attempt to add subsequent values to the
1232
+ // queue we'll check that value and, if it was a `Promise`, we'll then chain
1233
+ // the new function off of that `Promise` using `.then()`. This will give our
1234
+ // queue two nice properties:
1235
+ //
1236
+ // 1. If all functions added to the queue are synchronous they'll be called
1237
+ // synchronously right away.
1238
+ // 2. If all functions added to the queue are asynchronous they'll all be
1239
+ // called in order after `dispatchHooks` exits.
1240
+ let maybePromise;
742
1241
  if (isInitialLoad) {
743
1242
  {
744
- promise = safeCall(instance, 'componentWillLoad');
1243
+ // If `componentWillLoad` returns a `Promise` then we want to wait on
1244
+ // whatever's going on in that `Promise` before we launch into
1245
+ // rendering the component, doing other lifecycle stuff, etc. So
1246
+ // in that case we assign the returned promise to the variable we
1247
+ // declared above to hold a possible 'queueing' Promise
1248
+ maybePromise = safeCall(instance, 'componentWillLoad');
745
1249
  }
746
1250
  }
747
1251
  endSchedule();
748
- return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));
1252
+ return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
749
1253
  };
1254
+ /**
1255
+ * This function uses a Promise to implement a simple first-in, first-out queue
1256
+ * of functions to be called.
1257
+ *
1258
+ * The queue is ordered on the basis of the first argument. If it's
1259
+ * `undefined`, then nothing is on the queue yet, so the provided function can
1260
+ * be called synchronously (although note that this function may return a
1261
+ * `Promise`). The idea is that then the return value of that enqueueing
1262
+ * operation is kept around, so that if it was a `Promise` then subsequent
1263
+ * functions can be enqueued by calling this function again with that `Promise`
1264
+ * as the first argument.
1265
+ *
1266
+ * @param maybePromise either a `Promise` which should resolve before the next function is called or an 'empty' sentinel
1267
+ * @param fn a function to enqueue
1268
+ * @returns either a `Promise` or the return value of the provided function
1269
+ */
1270
+ const enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn) : fn();
1271
+ /**
1272
+ * Check that a value is a `Promise`. To check, we first see if the value is an
1273
+ * instance of the `Promise` global. In a few circumstances, in particular if
1274
+ * the global has been overwritten, this is could be misleading, so we also do
1275
+ * a little 'duck typing' check to see if the `.then` property of the value is
1276
+ * defined and a function.
1277
+ *
1278
+ * @param maybePromise it might be a promise!
1279
+ * @returns whether it is or not
1280
+ */
1281
+ const isPromisey = (maybePromise) => maybePromise instanceof Promise ||
1282
+ (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');
1283
+ /**
1284
+ * Update a component given reference to its host elements and so on.
1285
+ *
1286
+ * @param hostRef an object containing references to the element's host node,
1287
+ * VDom nodes, and other metadata
1288
+ * @param instance a reference to the underlying host element where it will be
1289
+ * rendered
1290
+ * @param isInitialLoad whether or not this function is being called as part of
1291
+ * the first render cycle
1292
+ */
750
1293
  const updateComponent = async (hostRef, instance, isInitialLoad) => {
751
- // updateComponent
1294
+ var _a;
752
1295
  const elm = hostRef.$hostElement$;
753
1296
  const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);
754
1297
  const rc = elm['s-rc'];
@@ -758,7 +1301,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
758
1301
  }
759
1302
  const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);
760
1303
  {
761
- callRender(hostRef, instance);
1304
+ callRender(hostRef, instance, elm, isInitialLoad);
762
1305
  }
763
1306
  if (rc) {
764
1307
  // ok, so turns out there are some child host elements
@@ -770,7 +1313,7 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
770
1313
  endRender();
771
1314
  endUpdate();
772
1315
  {
773
- const childrenPromises = elm['s-p'];
1316
+ const childrenPromises = (_a = elm['s-p']) !== null && _a !== void 0 ? _a : [];
774
1317
  const postUpdate = () => postUpdateComponent(hostRef);
775
1318
  if (childrenPromises.length === 0) {
776
1319
  postUpdate();
@@ -782,9 +1325,25 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
782
1325
  }
783
1326
  }
784
1327
  };
785
- const callRender = (hostRef, instance, elm) => {
1328
+ /**
1329
+ * Handle making the call to the VDom renderer with the proper context given
1330
+ * various build variables
1331
+ *
1332
+ * @param hostRef an object containing references to the element's host node,
1333
+ * VDom nodes, and other metadata
1334
+ * @param instance a reference to the underlying host element where it will be
1335
+ * rendered
1336
+ * @param elm the Host element for the component
1337
+ * @param isInitialLoad whether or not this function is being called as part of
1338
+ * @returns an empty promise
1339
+ */
1340
+ const callRender = (hostRef, instance, elm, isInitialLoad) => {
786
1341
  try {
787
- instance = instance.render && instance.render();
1342
+ /**
1343
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1344
+ * method, so we can call the method immediately. If not, check before calling it.
1345
+ */
1346
+ instance = instance.render() ;
788
1347
  {
789
1348
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
790
1349
  }
@@ -797,7 +1356,7 @@ const callRender = (hostRef, instance, elm) => {
797
1356
  // or we need to update the css class/attrs on the host element
798
1357
  // DOM WRITE!
799
1358
  {
800
- renderVdom(hostRef, instance);
1359
+ renderVdom(hostRef, instance, isInitialLoad);
801
1360
  }
802
1361
  }
803
1362
  }
@@ -863,6 +1422,16 @@ const appDidLoad = (who) => {
863
1422
  }
864
1423
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
865
1424
  };
1425
+ /**
1426
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1427
+ * e.g. custom element node. If a build figures out that e.g. no component
1428
+ * has a `componentDidLoad` method, the instance method gets removed from the
1429
+ * output bundle and this function returns `undefined`.
1430
+ * @param instance any object that may or may not contain methods
1431
+ * @param method method name
1432
+ * @param arg single arbitrary argument
1433
+ * @returns result of method call if it exists, otherwise `undefined`
1434
+ */
866
1435
  const safeCall = (instance, method, arg) => {
867
1436
  if (instance && instance[method]) {
868
1437
  try {
@@ -874,9 +1443,6 @@ const safeCall = (instance, method, arg) => {
874
1443
  }
875
1444
  return undefined;
876
1445
  };
877
- const then = (promise, thenFn) => {
878
- return promise && promise.then ? promise.then(thenFn) : thenFn();
879
- };
880
1446
  const addHydratedFlag = (elm) => elm.setAttribute('hydrated', '')
881
1447
  ;
882
1448
  const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
@@ -933,6 +1499,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
933
1499
  * @returns a reference to the same constructor passed in (but now mutated)
934
1500
  */
935
1501
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1502
+ var _a;
936
1503
  if (cmpMeta.$members$) {
937
1504
  if (Cstr.watchers) {
938
1505
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -970,7 +1537,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
970
1537
  });
971
1538
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
972
1539
  const attrNameToPropName = new Map();
973
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1540
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
974
1541
  plt.jmp(() => {
975
1542
  const propName = attrNameToPropName.get(attrName);
976
1543
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -993,12 +1560,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
993
1560
  // customElements.define('my-component', MyComponent);
994
1561
  // </script>
995
1562
  // ```
996
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1563
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
997
1564
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
998
1565
  // to the value that was set inline i.e. "some-value" from above example. When
999
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1566
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
1000
1567
  //
1001
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1568
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
1002
1569
  // by connectedCallback as this attributeChangedCallback will not fire.
1003
1570
  //
1004
1571
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1018,31 +1585,70 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1018
1585
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1019
1586
  return;
1020
1587
  }
1588
+ else if (propName == null) {
1589
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
1590
+ // on a vanilla web component
1591
+ const hostRef = getHostRef(this);
1592
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
1593
+ // We only want to trigger the callback(s) if:
1594
+ // 1. The instance is ready
1595
+ // 2. The watchers are ready
1596
+ // 3. The value has changed
1597
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1598
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1599
+ newValue !== oldValue) {
1600
+ const instance = hostRef.$lazyInstance$ ;
1601
+ const entry = cmpMeta.$watchers$[attrName];
1602
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1603
+ if (instance[callbackName] != null) {
1604
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
1605
+ }
1606
+ });
1607
+ }
1608
+ return;
1609
+ }
1021
1610
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1022
1611
  });
1023
1612
  };
1024
- // create an array of attributes to observe
1025
- // and also create a map of html attribute name to js property name
1026
- Cstr.observedAttributes = members
1027
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1028
- .map(([propName, m]) => {
1029
- const attrName = m[1] || propName;
1030
- attrNameToPropName.set(attrName, propName);
1031
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1032
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1033
- }
1034
- return attrName;
1035
- });
1613
+ // Create an array of attributes to observe
1614
+ // This list in comprised of all strings used within a `@Watch()` decorator
1615
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
1616
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
1617
+ // an invalid attribute.
1618
+ Cstr.observedAttributes = Array.from(new Set([
1619
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
1620
+ ...members
1621
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1622
+ .map(([propName, m]) => {
1623
+ const attrName = m[1] || propName;
1624
+ attrNameToPropName.set(attrName, propName);
1625
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1626
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
1627
+ }
1628
+ return attrName;
1629
+ }),
1630
+ ]));
1036
1631
  }
1037
1632
  }
1038
1633
  return Cstr;
1039
1634
  };
1040
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1635
+ /**
1636
+ * Initialize a Stencil component given a reference to its host element, its
1637
+ * runtime bookkeeping data structure, runtime metadata about the component,
1638
+ * and (optionally) an HMR version ID.
1639
+ *
1640
+ * @param elm a host element
1641
+ * @param hostRef the element's runtime bookkeeping object
1642
+ * @param cmpMeta runtime metadata for the Stencil component
1643
+ * @param hmrVersionId an (optional) HMR version ID
1644
+ */
1645
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1646
+ let Cstr;
1041
1647
  // initializeComponent
1042
1648
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1649
+ // Let the runtime know that the component has been initialized
1650
+ hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;
1043
1651
  {
1044
- // we haven't initialized this element yet
1045
- hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;
1046
1652
  // lazy loaded components
1047
1653
  // request the component's implementation to be
1048
1654
  // wired up with the host element
@@ -1115,6 +1721,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1115
1721
  schedule();
1116
1722
  }
1117
1723
  };
1724
+ const fireConnectedCallback = (instance) => {
1725
+ };
1118
1726
  const connectedCallback = (elm) => {
1119
1727
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1120
1728
  const hostRef = getHostRef(elm);
@@ -1123,6 +1731,16 @@ const connectedCallback = (elm) => {
1123
1731
  if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {
1124
1732
  // first time this component has connected
1125
1733
  hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;
1734
+ {
1735
+ // initUpdate
1736
+ // if the slot polyfill is required we'll need to put some nodes
1737
+ // in here to act as original content anchors as we move nodes around
1738
+ // host element has been connected to the DOM
1739
+ if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1740
+ cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {
1741
+ setContentReference(elm);
1742
+ }
1743
+ }
1126
1744
  {
1127
1745
  // find the first ancestor component (if there is one) and register
1128
1746
  // this component as one of the actively loading child components for its ancestor
@@ -1153,15 +1771,40 @@ const connectedCallback = (elm) => {
1153
1771
  initializeComponent(elm, hostRef, cmpMeta);
1154
1772
  }
1155
1773
  }
1774
+ else {
1775
+ // fire off connectedCallback() on component instance
1776
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) ;
1777
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1778
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback());
1779
+ }
1780
+ }
1156
1781
  endConnected();
1157
1782
  }
1158
1783
  };
1159
- const disconnectedCallback = (elm) => {
1784
+ const setContentReference = (elm) => {
1785
+ // only required when we're NOT using native shadow dom (slot)
1786
+ // or this browser doesn't support native shadow dom
1787
+ // and this host element was NOT created with SSR
1788
+ // let's pick out the inner content for slot projection
1789
+ // create a node to represent where the original
1790
+ // content was first placed, which is useful later on
1791
+ const contentRefElm = (elm['s-cr'] = doc.createComment(''));
1792
+ contentRefElm['s-cn'] = true;
1793
+ elm.insertBefore(contentRefElm, elm.firstChild);
1794
+ };
1795
+ const disconnectInstance = (instance) => {
1796
+ {
1797
+ safeCall(instance, 'disconnectedCallback');
1798
+ }
1799
+ };
1800
+ const disconnectedCallback = async (elm) => {
1160
1801
  if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1161
1802
  const hostRef = getHostRef(elm);
1162
- const instance = hostRef.$lazyInstance$ ;
1163
- {
1164
- safeCall(instance, 'disconnectedCallback');
1803
+ if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$lazyInstance$) {
1804
+ disconnectInstance(hostRef.$lazyInstance$);
1805
+ }
1806
+ else if (hostRef === null || hostRef === void 0 ? void 0 : hostRef.$onReadyPromise$) {
1807
+ hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$));
1165
1808
  }
1166
1809
  }
1167
1810
  };
@@ -1181,6 +1824,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1181
1824
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
1182
1825
  lazyBundles.map((lazyBundle) => {
1183
1826
  lazyBundle[1].map((compactMeta) => {
1827
+ var _a;
1184
1828
  const cmpMeta = {
1185
1829
  $flags$: compactMeta[0],
1186
1830
  $tagName$: compactMeta[1],
@@ -1194,7 +1838,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1194
1838
  cmpMeta.$attrsToReflect$ = [];
1195
1839
  }
1196
1840
  {
1197
- cmpMeta.$watchers$ = {};
1841
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
1198
1842
  }
1199
1843
  const tagName = cmpMeta.$tagName$;
1200
1844
  const HostElement = class extends HTMLElement {
@@ -1262,13 +1906,40 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1262
1906
  * @returns void
1263
1907
  */
1264
1908
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
1909
+ /**
1910
+ * A WeakMap mapping runtime component references to their corresponding host reference
1911
+ * instances.
1912
+ */
1265
1913
  const hostRefs = /*@__PURE__*/ new WeakMap();
1914
+ /**
1915
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
1916
+ *
1917
+ * @param ref the runtime ref of interest
1918
+ * @returns the Host reference (if found) or undefined
1919
+ */
1266
1920
  const getHostRef = (ref) => hostRefs.get(ref);
1921
+ /**
1922
+ * Register a lazy instance with the {@link hostRefs} object so it's
1923
+ * corresponding {@link d.HostRef} can be retrieved later.
1924
+ *
1925
+ * @param lazyInstance the lazy instance of interest
1926
+ * @param hostRef that instances `HostRef` object
1927
+ * @returns a reference to the host ref WeakMap
1928
+ */
1267
1929
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
1268
- const registerHost = (elm, cmpMeta) => {
1930
+ /**
1931
+ * Register a host element for a Stencil component, setting up various metadata
1932
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
1933
+ * metadata.
1934
+ *
1935
+ * @param hostElement the host element to register
1936
+ * @param cmpMeta runtime metadata for that component
1937
+ * @returns a reference to the host ref WeakMap
1938
+ */
1939
+ const registerHost = (hostElement, cmpMeta) => {
1269
1940
  const hostRef = {
1270
1941
  $flags$: 0,
1271
- $hostElement$: elm,
1942
+ $hostElement$: hostElement,
1272
1943
  $cmpMeta$: cmpMeta,
1273
1944
  $instanceValues$: new Map(),
1274
1945
  };
@@ -1277,10 +1948,10 @@ const registerHost = (elm, cmpMeta) => {
1277
1948
  }
1278
1949
  {
1279
1950
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
1280
- elm['s-p'] = [];
1281
- elm['s-rc'] = [];
1951
+ hostElement['s-p'] = [];
1952
+ hostElement['s-rc'] = [];
1282
1953
  }
1283
- return hostRefs.set(elm, hostRef);
1954
+ return hostRefs.set(hostElement, hostRef);
1284
1955
  };
1285
1956
  const isMemberInElement = (elm, memberName) => memberName in elm;
1286
1957
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -1301,10 +1972,10 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1301
1972
  }
1302
1973
  switch(bundleId) {
1303
1974
 
1304
- case 'arcgis-expand_4':
1975
+ case 'arcgis-basemap-gallery_3':
1305
1976
  return import(
1306
1977
  /* webpackMode: "lazy" */
1307
- './arcgis-expand_4.entry.js').then(processMod, consoleError);
1978
+ './arcgis-basemap-gallery_3.entry.js').then(processMod, consoleError);
1308
1979
  case 'arcgis-area-measurement-2d':
1309
1980
  return import(
1310
1981
  /* webpackMode: "lazy" */
@@ -1317,10 +1988,6 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1317
1988
  return import(
1318
1989
  /* webpackMode: "lazy" */
1319
1990
  './arcgis-attachments.entry.js').then(processMod, consoleError);
1320
- case 'arcgis-basemap-gallery':
1321
- return import(
1322
- /* webpackMode: "lazy" */
1323
- './arcgis-basemap-gallery.entry.js').then(processMod, consoleError);
1324
1991
  case 'arcgis-basemap-layer-list':
1325
1992
  return import(
1326
1993
  /* webpackMode: "lazy" */
@@ -1433,6 +2100,10 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1433
2100
  return import(
1434
2101
  /* webpackMode: "lazy" */
1435
2102
  './arcgis-navigation-toggle.entry.js').then(processMod, consoleError);
2103
+ case 'arcgis-placement':
2104
+ return import(
2105
+ /* webpackMode: "lazy" */
2106
+ './arcgis-placement.entry.js').then(processMod, consoleError);
1436
2107
  case 'arcgis-print':
1437
2108
  return import(
1438
2109
  /* webpackMode: "lazy" */
@@ -1445,6 +2116,14 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1445
2116
  return import(
1446
2117
  /* webpackMode: "lazy" */
1447
2118
  './arcgis-scale-range-slider.entry.js').then(processMod, consoleError);
2119
+ case 'arcgis-scene':
2120
+ return import(
2121
+ /* webpackMode: "lazy" */
2122
+ './arcgis-scene.entry.js').then(processMod, consoleError);
2123
+ case 'arcgis-search':
2124
+ return import(
2125
+ /* webpackMode: "lazy" */
2126
+ './arcgis-search.entry.js').then(processMod, consoleError);
1448
2127
  case 'arcgis-shadow-cast':
1449
2128
  return import(
1450
2129
  /* webpackMode: "lazy" */
@@ -1581,3 +2260,5 @@ const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1581
2260
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1582
2261
 
1583
2262
  export { bootstrapLazy as b, createEvent as c, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2263
+
2264
+ //# sourceMappingURL=index-05f887cd.js.map