@arcgis/core 4.23.0-next.20220124 → 4.23.0-next.20220126

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 (217) hide show
  1. package/Graphic.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/00c5bb5eecb0e89266df.js +1 -0
  4. package/assets/esri/core/workers/chunks/021a37e2b191298e80b7.js +1 -0
  5. package/assets/esri/core/workers/chunks/1370c92c40fd6271553c.js +1 -0
  6. package/assets/esri/core/workers/chunks/1fbcc8424452d0256bd6.js +1 -0
  7. package/assets/esri/core/workers/chunks/{fe864d01e72aa24574b6.js → 23b15e7c2f96d260e16c.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{b2ae5fc4f787ea568b88.js → 2460f3b6ada6ae900dec.js} +1 -1
  9. package/assets/esri/core/workers/chunks/2792ca40f1e92849247c.js +1 -0
  10. package/assets/esri/core/workers/chunks/2a96f1bba9ce6883e5e0.js +1 -0
  11. package/assets/esri/core/workers/chunks/2e899ef5881b4ec6fa55.js +1 -0
  12. package/assets/esri/core/workers/chunks/3231ee3e090bb4cac3fc.js +1 -0
  13. package/assets/esri/core/workers/chunks/{0c3e3a5baf54bd5e210c.js → 36e250278b5622ccf068.js} +1 -1
  14. package/assets/esri/core/workers/chunks/395ba088d4864588ff66.js +1 -0
  15. package/assets/esri/core/workers/chunks/3cc77692b2eee27b9c9e.js +1 -0
  16. package/assets/esri/core/workers/chunks/3f343f792fd9f44d6f25.js +1 -0
  17. package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +1 -0
  18. package/assets/esri/core/workers/chunks/{625d2663daa8e0cf64b0.js → 434b16731c6a81f868ef.js} +1 -1
  19. package/assets/esri/core/workers/chunks/4385a268c2a64281d1c1.js +1 -0
  20. package/assets/esri/core/workers/chunks/{44b01d42d4ec72913229.js → 438f0b5ae5c53ae4f06a.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{4d539878bfbd7c549e60.js → 46b4bb66a54bbd8e2e57.js} +1 -1
  22. package/assets/esri/core/workers/chunks/4c76146014dc15143ba3.js +1 -0
  23. package/assets/esri/core/workers/chunks/5d991b74d958005c26c4.js +1 -0
  24. package/assets/esri/core/workers/chunks/5dfe1f8d520025e2118b.js +1 -0
  25. package/assets/esri/core/workers/chunks/601e697dc7414bda128a.js +1 -0
  26. package/assets/esri/core/workers/chunks/{9cdaba126ac7fa5f33f0.js → 6cd5e4380d29b9a3c344.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{a7b1b75643ed31489495.js → 6f50a9647f026a8d4729.js} +1 -1
  28. package/assets/esri/core/workers/chunks/7d661129a0d8c466eeec.js +1 -0
  29. package/assets/esri/core/workers/chunks/{64276aacaafa4c8a15bd.js → 7dcf52d3db3903c8eb9f.js} +1 -1
  30. package/assets/esri/core/workers/chunks/8070972c0efb78523b68.js +1 -0
  31. package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +1 -0
  32. package/assets/esri/core/workers/chunks/97a28641b3b2fd31bea2.js +1 -0
  33. package/assets/esri/core/workers/chunks/{d1454155ee1b8a421cbb.js → 97ec9eef0048760fa260.js} +1 -1
  34. package/assets/esri/core/workers/chunks/98986e6601b0366376b4.js +1 -0
  35. package/assets/esri/core/workers/chunks/9cdcf9309d6feda70185.js +1 -0
  36. package/assets/esri/core/workers/chunks/aa04b90b82bf70caaae4.js +1 -0
  37. package/assets/esri/core/workers/chunks/aace7e1fef256bb961c9.js +1 -0
  38. package/assets/esri/core/workers/chunks/{c080114a69fa95b88d22.js → af5694b4d278cf1db2d9.js} +1 -1
  39. package/assets/esri/core/workers/chunks/afbb4f802ca5774f0326.js +1 -0
  40. package/assets/esri/core/workers/chunks/b2c5f92e3d7606297ca9.js +1 -0
  41. package/assets/esri/core/workers/chunks/b2d2de935487257c568b.js +1 -0
  42. package/assets/esri/core/workers/chunks/b2ebe4f6d100e15b512d.js +1 -0
  43. package/assets/esri/core/workers/chunks/b8316c6469a543029bc6.js +1 -0
  44. package/assets/esri/core/workers/chunks/{4c9084a04948b6924749.js → ba5eb394f098968c22d2.js} +1 -1
  45. package/assets/esri/core/workers/chunks/bf0a65b4be31959f921d.js +1 -0
  46. package/assets/esri/core/workers/chunks/c890c7fca27170e3341f.js +1 -0
  47. package/assets/esri/core/workers/chunks/c976785f2391c77d8a30.js +1 -0
  48. package/assets/esri/core/workers/chunks/{d39b7983b68d6e5b404d.js → cdbc005eebec1503b99d.js} +1 -1
  49. package/assets/esri/core/workers/chunks/e4b84ca8ddfd48dd79b1.js +1 -0
  50. package/assets/esri/core/workers/chunks/e4e2036373166c1d5cf5.js +1 -0
  51. package/assets/esri/core/workers/chunks/e4f93c55eaefab4192b5.js +1 -0
  52. package/assets/esri/core/workers/chunks/e6165e17fbb07bfc40a1.js +1 -0
  53. package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +1 -0
  54. package/assets/esri/core/workers/chunks/{f678293de9a6d8f5b5db.js → ec89466f76d0ba22525e.js} +1 -1
  55. package/assets/esri/core/workers/chunks/ee45618c45806ab654cb.js +1 -0
  56. package/assets/esri/core/workers/chunks/f4baa5ea2e42b1317941.js +1 -0
  57. package/assets/esri/core/workers/chunks/f760a3e030b0f358a92a.js +1 -0
  58. package/assets/esri/core/workers/chunks/face43cf5abcd2f5bd9d.js +1 -0
  59. package/assets/esri/themes/base/_mixins.scss +4 -1
  60. package/assets/esri/themes/base/icons/style.scss +11 -2
  61. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +13 -10
  62. package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +4 -2
  63. package/assets/esri/themes/base/widgets/_Directions.scss +5 -3
  64. package/assets/esri/themes/base/widgets/_Editor.scss +5 -2
  65. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +6 -4
  66. package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
  67. package/assets/esri/themes/base/widgets/_LayerList.scss +13 -9
  68. package/assets/esri/themes/base/widgets/_Popup.scss +4 -2
  69. package/assets/esri/themes/base/widgets/_Print.scss +24 -11
  70. package/assets/esri/themes/base/widgets/_Search.scss +4 -2
  71. package/assets/esri/themes/base/widgets/_TableList.scss +9 -7
  72. package/assets/esri/themes/base/widgets/_Weather.scss +12 -0
  73. package/assets/esri/themes/base/widgets/_Widget.scss +18 -9
  74. package/assets/esri/themes/dark/main.css +1 -1
  75. package/assets/esri/themes/dark-blue/main.css +1 -1
  76. package/assets/esri/themes/dark-green/main.css +1 -1
  77. package/assets/esri/themes/dark-purple/main.css +1 -1
  78. package/assets/esri/themes/dark-red/main.css +1 -1
  79. package/assets/esri/themes/light/main.css +1 -1
  80. package/assets/esri/themes/light/view.css +1 -1
  81. package/assets/esri/themes/light-blue/main.css +1 -1
  82. package/assets/esri/themes/light-green/main.css +1 -1
  83. package/assets/esri/themes/light-purple/main.css +1 -1
  84. package/assets/esri/themes/light-red/main.css +1 -1
  85. package/assets/esri/widgets/Weather/t9n/Weather.json +1 -1
  86. package/assets/esri/widgets/Weather/t9n/Weather_en.json +1 -1
  87. package/chunks/ComponentShader.glsl.js +19 -19
  88. package/chunks/Terrain.glsl.js +11 -11
  89. package/chunks/WaterSurface.glsl.js +21 -21
  90. package/chunks/pe.js +1 -1
  91. package/chunks/vec3.js +1 -1
  92. package/core/accessorSupport/read.js +1 -1
  93. package/core/accessorSupport/write.js +1 -1
  94. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  95. package/geometry/pe.js +1 -1
  96. package/geometry/support/axisAngleDegrees.js +1 -1
  97. package/interfaces.d.ts +36 -2
  98. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  99. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  100. package/package.json +2 -2
  101. package/popup/content/AttachmentsContent.js +1 -1
  102. package/popup/content/support/mediaInfoTypes.js +1 -1
  103. package/support/revision.js +1 -1
  104. package/symbols/LabelSymbol3D.js +1 -1
  105. package/symbols/PointSymbol3D.js +1 -1
  106. package/symbols/cim/CIMSymbolHelper.js +1 -1
  107. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  108. package/symbols/cim/cimAnalyzer.js +1 -1
  109. package/symbols/support/Symbol3DVerticalOffset.js +1 -1
  110. package/symbols/support/previewCIMSymbol.js +1 -1
  111. package/symbols/support/previewSymbol2D.js +1 -1
  112. package/symbols/support/previewSymbol3D.js +1 -1
  113. package/symbols/support/previewWebStyleSymbol.js +1 -1
  114. package/symbols/support/svgUtils.js +1 -1
  115. package/symbols.js +1 -1
  116. package/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js +1 -1
  117. package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
  118. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  119. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  120. package/views/3d/environment/CloudsComposition.js +1 -1
  121. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  122. package/views/3d/environment/Fog.js +1 -1
  123. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  124. package/views/3d/environment/weather.js +1 -1
  125. package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
  126. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  127. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  128. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  129. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  130. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  131. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  132. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  133. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  134. package/views/3d/terrain/OverlayRenderer.js +1 -1
  135. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +21 -13
  136. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  137. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  138. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  139. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  140. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  141. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  142. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  143. package/views/interactive/dragEventPipeline.js +1 -1
  144. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  145. package/views/webgl/Program.js +1 -1
  146. package/views/webgl/rasterUtils.js +1 -1
  147. package/widgets/Attachments.js +1 -1
  148. package/widgets/FeatureForm/InputField.js +1 -1
  149. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  150. package/widgets/Popup/PopupViewModel.js +1 -1
  151. package/widgets/Popup/actionUtils.js +1 -1
  152. package/widgets/Slice/SliceViewModel.js +1 -1
  153. package/widgets/Slider/SliderViewModel.js +1 -1
  154. package/widgets/Slider.js +1 -1
  155. package/widgets/Weather/WeatherViewModel.js +1 -1
  156. package/widgets/Weather/css.js +1 -1
  157. package/widgets/Weather.js +1 -1
  158. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  159. package/widgets/support/InteractiveToolViewModel.js +1 -1
  160. package/assets/components/assets/calcite-icon/checkSquareF16.json +0 -1
  161. package/assets/components/assets/calcite-icon/checkSquareF24.json +0 -1
  162. package/assets/components/assets/calcite-icon/checkSquareF32.json +0 -1
  163. package/assets/components/assets/calcite-icon/lineSolid4.json +0 -1
  164. package/assets/components/assets/calcite-icon/squareF16.json +0 -1
  165. package/assets/components/assets/calcite-icon/squareF24.json +0 -1
  166. package/assets/components/assets/calcite-icon/squareF32.json +0 -1
  167. package/assets/components/assets/calcite-icon/xHexagon16.json +0 -1
  168. package/assets/components/assets/calcite-icon/xHexagon24.json +0 -1
  169. package/assets/components/assets/calcite-icon/xHexagon32.json +0 -1
  170. package/assets/components/assets/calcite-icon/xHexagonF16.json +0 -1
  171. package/assets/components/assets/calcite-icon/xHexagonF24.json +0 -1
  172. package/assets/components/assets/calcite-icon/xHexagonF32.json +0 -1
  173. package/assets/components/assets/calcite-icon/xOctagonF16.json +0 -1
  174. package/assets/components/assets/calcite-icon/xOctagonF24.json +0 -1
  175. package/assets/components/assets/calcite-icon/xOctagonF32.json +0 -1
  176. package/assets/esri/core/workers/chunks/09da224052976e290828.js +0 -1
  177. package/assets/esri/core/workers/chunks/0bf079e752ab79468478.js +0 -1
  178. package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +0 -1
  179. package/assets/esri/core/workers/chunks/23745a5ab47c840dc452.js +0 -1
  180. package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +0 -1
  181. package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +0 -1
  182. package/assets/esri/core/workers/chunks/32f8c4af7e70ebdcb19e.js +0 -1
  183. package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +0 -1
  184. package/assets/esri/core/workers/chunks/3a9740dccda6a733313c.js +0 -1
  185. package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +0 -1
  186. package/assets/esri/core/workers/chunks/5538639a49c7cc2eca63.js +0 -1
  187. package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +0 -1
  188. package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +0 -1
  189. package/assets/esri/core/workers/chunks/739e579150bf466d43ae.js +0 -1
  190. package/assets/esri/core/workers/chunks/74df1f3e1e2e524a89d2.js +0 -1
  191. package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +0 -1
  192. package/assets/esri/core/workers/chunks/7baf6b1f3f050aa67ae4.js +0 -1
  193. package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +0 -1
  194. package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +0 -1
  195. package/assets/esri/core/workers/chunks/9cb2ae42a8e328b1d98d.js +0 -1
  196. package/assets/esri/core/workers/chunks/9d3c58a0ef634d95b7bd.js +0 -1
  197. package/assets/esri/core/workers/chunks/a6ff3db3493543df81bc.js +0 -1
  198. package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +0 -1
  199. package/assets/esri/core/workers/chunks/a96afc176041f698c7a1.js +0 -1
  200. package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +0 -1
  201. package/assets/esri/core/workers/chunks/afa6912454f2a5ffadce.js +0 -1
  202. package/assets/esri/core/workers/chunks/b2beb6e1fd2ee6503830.js +0 -1
  203. package/assets/esri/core/workers/chunks/bab1cfd0a901181622af.js +0 -1
  204. package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +0 -1
  205. package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +0 -1
  206. package/assets/esri/core/workers/chunks/c6bd943fe8fd13bb4806.js +0 -1
  207. package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +0 -1
  208. package/assets/esri/core/workers/chunks/cd7d83d127e085d52584.js +0 -1
  209. package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +0 -1
  210. package/assets/esri/core/workers/chunks/da1c2873bdbc0956dca0.js +0 -1
  211. package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +0 -1
  212. package/assets/esri/core/workers/chunks/e079cb1d53aca15b7df2.js +0 -1
  213. package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +0 -1
  214. package/assets/esri/core/workers/chunks/e97e986120aaadad7d4c.js +0 -1
  215. package/assets/esri/core/workers/chunks/f8e7755240a94b499e1f.js +0 -1
  216. package/assets/esri/core/workers/chunks/fd3e5d823dc7917f4b8f.js +0 -1
  217. package/views/3d/layers/graphics/IGraphics3DFeatureProcessor.js +0 -4
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import t from"../../core/Accessor.js";import{isNone as i,get as r,isSome as n}from"../../core/maybe.js";import{property as l}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../../layers/support/CodedValueDomain.js";import"../../layers/support/Domain.js";import"../../layers/support/InheritedDomain.js";import"../../layers/support/RangeDomain.js";import{validateDomainValue as a,DomainValidationError as u,getDomainRange as d}from"../../layers/support/domainUtils.js";import{isNumericField as p,isStringField as m,isDateField as c,TypeValidationError as y,validateFieldValue as h,getFeatureEditFields as f,getFeatureGeometryFields as v,NumericRangeValidationError as g,getFieldRange as b}from"../../layers/support/fieldUtils.js";import{substitute as E}from"../../intl/substitute.js";var _,O;!function(e){e.Text="text",e.Number="number",e.Date="date",e.Unsupported="unsupported"}(_||(_={})),function(e){e.TOO_SHORT="length-validation-error::too-short"}(O||(O={}));const F={type:"number"},T={type:"number",intlOptions:{notation:"scientific"}},x={type:"date",intlOptions:{day:"2-digit",month:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}};let D=class extends t{constructor(e){super(e),this.arcade=null,this.visibilityFunction=null,this.requiredFunction=null,this.feature=null,this.field=null,this.fieldElement=null,this.initialFeature=null,this.layer=null,this.description=null,this.inputType=null,this.error=null,this.group=null,this.hint=null,this.messages=null,this.name=null}get evaluatedRequirement(){const{requiredFunction:e}=this;if(i(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get evaluatedVisibility(){const{visibilityFunction:e}=this;if(i(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get domain(){var e;const{typeIdField:t}=this.layer,i=t===this.name,l=null==(e=this.field)?void 0:e.domain;if(i&&!l){const{layer:e}=this,t="subtype-group"===e.type?e.sublayers.map((({subtypeCode:e,title:t})=>({id:e,name:t}))):e.types.map((({id:e,name:t})=>({code:e,name:t})));return new s({name:"__internal-type-based-coded-value-domain__",codedValues:t})}const{feature:o}=this,a=t&&this.layer.getFieldDomain(this.name,{feature:o})||l,u=r(this.fieldElement,"domain");return n(u)&&this._isDomainCompatible(u)?u:a}get editable(){var e,t;const{field:i,fieldElement:r,layer:l,name:o}=this,s=l.capabilities.operations.supportsEditing&&i.editable;if("subtype-group"===l.type)return s;const a=null==(e=l.popupTemplate)||null==(t=e.fieldInfos)?void 0:t.find((({fieldName:e})=>e===o)),u=n(r)?!1!==r.editable:!1!==(null==a?void 0:a.isEditable);return s&&u}get errorMessage(){return this._toErrorMessage()}get includeTime(){const{fieldElement:e}=this,t=n(e)&&"datetime-picker"===e.input.type?e.input.includeTime:void 0;return void 0===t||t}get label(){return n(this.fieldElement)&&this.fieldElement.label||this.field.alias||this.field.name}get maxLength(){const e=-1;if(this.type===_.Date)return e;const{field:t,fieldElement:i}=this,r=null==t?void 0:t.length,l=n(i)&&N(i.input)?i.input.maxLength:NaN;return!isNaN(l)&&l>=e&&(r===e||l<=r)?l:r}get minLength(){const e=-1;if(this.type===_.Date)return e;const{field:t,fieldElement:i}=this,r=null==t?void 0:t.length,l=n(i)&&N(i.input)?i.input.minLength:NaN;return!isNaN(l)&&l>=e&&(r===e||l<=r)?l:e}get required(){var e,t;if(!this.editable)return!1;return!(null==(e=this.field)?void 0:e.nullable)||null!=(t=this.evaluatedRequirement)&&t}get type(){const{field:e}=this;return p(e)?_.Number:m(e)?_.Text:c(e)?_.Date:_.Unsupported}get valid(){const e=this.editable?this._validate():null;return this._set("error",e),null===e}get value(){return this._get("value")}set value(e){this.notifyChange("evaluatedVisibility"),this._set("value",e)}get visible(){return!this._isEditorField()&&(n(this.fieldElement)?null==(e=this.evaluatedVisibility)||e:this._isVisibleByDefault());var e}_isDomainCompatible(e){const{field:t}=this;if("coded-value"===(null==e?void 0:e.type)){const i=typeof e.codedValues[0].code;if("string"===i&&m(t)||"number"===i&&p(t))return!0}return!!("range"===(null==e?void 0:e.type)&&p(t)||c(t))}_validate(){const{domain:e,field:t,initialFeature:i,minLength:r,required:n,type:l,valid:o,value:s}=this,u=n&&null===s,d=void 0!==o;return!u&&i.getAttribute(t.name)===s&&d?null:"text"===l&&r>-1&&"string"==typeof s&&s.length<r?O.TOO_SHORT:e?null!==s||n?a(e,s):null:u?y.INVALID_TYPE:h(t,s)}_isVisibleByDefault(){var e;const t=null==(e=this.field)?void 0:e.type;return"oid"!==t&&"global-id"!==t&&!this._isGeometryField()}_isEditorField(){return f(this.layer).indexOf(this.name)>-1}_isGeometryField(){return v(this.layer).indexOf(this.name)>-1}_toErrorMessage(){const{domain:e,field:t,messages:i,minLength:r,value:n,required:l,type:o}=this,s=this.error;if(l&&null===n)return i.validationErrors.cannotBeNull;if(s===u.VALUE_OUT_OF_RANGE||s===g.OUT_OF_RANGE){const r=d(e)||b(t);return E(i.validationErrors.outsideRange,r,{format:{max:"date"===o?x:r.isInteger?F:T,min:"date"===o?x:r.isInteger?F:T}})}return s===u.INVALID_CODED_VALUE?i.validationErrors.invalidCodedValue:s===y.INVALID_TYPE?i.validationErrors.invalidType:s===O.TOO_SHORT?E(i.validationErrors.tooShort,{min:r}):null}};function N(e){return!!e&&"maxLength"in e}e([l()],D.prototype,"arcade",void 0),e([l()],D.prototype,"visibilityFunction",void 0),e([l()],D.prototype,"requiredFunction",void 0),e([l()],D.prototype,"evaluatedRequirement",null),e([l()],D.prototype,"evaluatedVisibility",null),e([l()],D.prototype,"feature",void 0),e([l()],D.prototype,"field",void 0),e([l()],D.prototype,"fieldElement",void 0),e([l()],D.prototype,"initialFeature",void 0),e([l()],D.prototype,"layer",void 0),e([l({aliasOf:"fieldElement.description"})],D.prototype,"description",void 0),e([l()],D.prototype,"domain",null),e([l()],D.prototype,"editable",null),e([l({aliasOf:"fieldElement.input.type"})],D.prototype,"inputType",void 0),e([l({readOnly:!0})],D.prototype,"error",void 0),e([l({dependsOn:["error","messages","value"]})],D.prototype,"errorMessage",null),e([l()],D.prototype,"group",void 0),e([l({aliasOf:"fieldElement.hint"})],D.prototype,"hint",void 0),e([l()],D.prototype,"includeTime",null),e([l()],D.prototype,"label",null),e([l()],D.prototype,"maxLength",null),e([l()],D.prototype,"minLength",null),e([l()],D.prototype,"messages",void 0),e([l({aliasOf:"field.name"})],D.prototype,"name",void 0),e([l()],D.prototype,"required",null),e([l()],D.prototype,"type",null),e([l()],D.prototype,"valid",null),e([l({value:null})],D.prototype,"value",null),e([l()],D.prototype,"visible",null),D=e([o("esri.widgets.FeatureForm.InputField")],D);const j=D;export{j as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import t from"../../core/Accessor.js";import{isSome as i,isNone as l,get as r}from"../../core/maybe.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../../layers/support/CodedValueDomain.js";import"../../layers/support/Domain.js";import"../../layers/support/InheritedDomain.js";import"../../layers/support/RangeDomain.js";import{validateDomainValue as a,DomainValidationError as u,getDomainRange as d}from"../../layers/support/domainUtils.js";import{isNumericField as p,isStringField as c,isDateField as m,TypeValidationError as h,validateFieldValue as y,getFeatureEditFields as f,getFeatureGeometryFields as v,NumericRangeValidationError as g,getFieldRange as E}from"../../layers/support/fieldUtils.js";import{substitute as b}from"../../intl/substitute.js";var _,x;!function(e){e.Text="text",e.Number="number",e.Date="date",e.Unsupported="unsupported"}(_||(_={})),function(e){e.TOO_SHORT="length-validation-error::too-short"}(x||(x={}));const F={type:"number"},O={type:"number",intlOptions:{notation:"scientific"}},V={type:"date",intlOptions:{day:"2-digit",month:"2-digit",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"}};let T=class extends t{constructor(e){super(e),this._storedValue=null,this.arcade=null,this.editableFunction=null,this.requiredFunction=null,this.valueFunction=null,this.visibilityFunction=null,this.feature=null,this.field=null,this.fieldElement=null,this.initialFeature=null,this.layer=null,this.description=null,this.inputType=null,this.error=null,this.group=null,this.hint=null,this.messages=null,this.name=null}get _configAllowsEdits(){var e,t,l;const{fieldElement:r,layer:n,name:o}=this;if(i(r))return!1!==r.editable;const s="subtype-group"!==n.type?null==(e=n.popupTemplate)||null==(t=e.fieldInfos)?void 0:t.find((({fieldName:e})=>e===o)):null;return null==(l=null==s?void 0:s.isEditable)||l}get _layerFieldAllowsEdits(){const{field:e,layer:t}=this;return t.capabilities.operations.supportsEditing&&e.editable}get evaluatedEditableExpression(){const{editableFunction:e}=this;if(l(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get evaluatedRequiredExpression(){const{requiredFunction:e}=this;if(l(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get evaluatedVisibilityExpression(){const{visibilityFunction:e}=this;if(l(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get evaluatedValueExpression(){const{valueFunction:e}=this;if(l(e))return null;const{arcade:t}=this;return t.arcadeUtils.executeFunction(e,t.arcadeUtils.createExecContext(this.feature))}get domain(){var e;const{typeIdField:t}=this.layer,l=t===this.name,n=null==(e=this.field)?void 0:e.domain;if(l&&!n){const{layer:e}=this,t="subtype-group"===e.type?e.sublayers.map((({subtypeCode:e,title:t})=>({id:e,name:t}))):e.types.map((({id:e,name:t})=>({code:e,name:t})));return new s({name:"__internal-type-based-coded-value-domain__",codedValues:t})}const{feature:o}=this,a=t&&this.layer.getFieldDomain(this.name,{feature:o})||n,u=r(this.fieldElement,"domain");return i(u)&&this._isDomainCompatible(u)?u:a}get editable(){var e;return!!this._layerFieldAllowsEdits&&(null!=(e=this.evaluatedEditableExpression)?e:this._configAllowsEdits)}get errorMessage(){return this._toErrorMessage()}get includeTime(){const{fieldElement:e}=this,t=i(e)&&"datetime-picker"===e.input.type?e.input.includeTime:void 0;return void 0===t||t}get label(){return i(this.fieldElement)&&this.fieldElement.label||this.field.alias||this.field.name}get maxLength(){const e=-1;if(this.type===_.Date)return e;const{field:t,fieldElement:l}=this,r=null==t?void 0:t.length,n=i(l)&&D(l.input)?l.input.maxLength:NaN;return!isNaN(n)&&n>=e&&(r===e||n<=r)?n:r}get minLength(){const e=-1;if(this.type===_.Date)return e;const{field:t,fieldElement:l}=this,r=null==t?void 0:t.length,n=i(l)&&D(l.input)?l.input.minLength:NaN;return!isNaN(n)&&n>=e&&(r===e||n<=r)?n:e}get required(){var e,t;return!!this.editable&&(!1===(null==(e=this.field)?void 0:e.nullable)||null!=(t=this.evaluatedRequiredExpression)&&t)}get type(){const{field:e}=this;return p(e)?_.Number:c(e)?_.Text:m(e)?_.Date:_.Unsupported}get valid(){const e=this.editable?this._validate():null;return this._set("error",e),null===e}get value(){const{_layerFieldAllowsEdits:e,_configAllowsEdits:t,valueFunction:l}=this;return e&&!t&&i(l)?this.evaluatedValueExpression:this.get("_storedValue")}set value(e){this.notifyChange("evaluatedVisibilityExpression"),this.set("_storedValue",e)}get visible(){return!this._isEditorField()&&(i(this.fieldElement)?null==(e=this.evaluatedVisibilityExpression)||e:this._isVisibleByDefault());var e}_isDomainCompatible(e){const{field:t}=this;if("coded-value"===(null==e?void 0:e.type)){const i=typeof e.codedValues[0].code;if("string"===i&&c(t)||"number"===i&&p(t))return!0}return!!("range"===(null==e?void 0:e.type)&&p(t)||m(t))}_validate(){const{domain:e,field:t,initialFeature:i,minLength:l,required:r,type:n,valid:o,value:s}=this,u=r&&null===s,d=void 0!==o;return!u&&i.getAttribute(t.name)===s&&d?null:"text"===n&&l>-1&&"string"==typeof s&&s.length<l?x.TOO_SHORT:e?null!==s||r?a(e,s):null:u?h.INVALID_TYPE:y(t,s)}_isVisibleByDefault(){var e;const t=null==(e=this.field)?void 0:e.type;return"oid"!==t&&"global-id"!==t&&!this._isGeometryField()}_isEditorField(){return f(this.layer).indexOf(this.name)>-1}_isGeometryField(){return v(this.layer).indexOf(this.name)>-1}_toErrorMessage(){const{domain:e,field:t,messages:i,minLength:l,value:r,required:n,type:o}=this,s=this.error;if(n&&null===r)return i.validationErrors.cannotBeNull;if(s===u.VALUE_OUT_OF_RANGE||s===g.OUT_OF_RANGE){const l=d(e)||E(t);return b(i.validationErrors.outsideRange,l,{format:{max:"date"===o?V:l.isInteger?F:O,min:"date"===o?V:l.isInteger?F:O}})}return s===u.INVALID_CODED_VALUE?i.validationErrors.invalidCodedValue:s===h.INVALID_TYPE?i.validationErrors.invalidType:s===x.TOO_SHORT?b(i.validationErrors.tooShort,{min:l}):null}};function D(e){return!!e&&"maxLength"in e}e([n()],T.prototype,"_storedValue",void 0),e([n()],T.prototype,"_configAllowsEdits",null),e([n()],T.prototype,"_layerFieldAllowsEdits",null),e([n()],T.prototype,"arcade",void 0),e([n()],T.prototype,"editableFunction",void 0),e([n()],T.prototype,"requiredFunction",void 0),e([n()],T.prototype,"valueFunction",void 0),e([n()],T.prototype,"visibilityFunction",void 0),e([n()],T.prototype,"evaluatedEditableExpression",null),e([n()],T.prototype,"evaluatedRequiredExpression",null),e([n()],T.prototype,"evaluatedVisibilityExpression",null),e([n()],T.prototype,"evaluatedValueExpression",null),e([n()],T.prototype,"feature",void 0),e([n()],T.prototype,"field",void 0),e([n()],T.prototype,"fieldElement",void 0),e([n()],T.prototype,"initialFeature",void 0),e([n()],T.prototype,"layer",void 0),e([n({aliasOf:"fieldElement.description"})],T.prototype,"description",void 0),e([n()],T.prototype,"domain",null),e([n()],T.prototype,"editable",null),e([n({aliasOf:"fieldElement.input.type"})],T.prototype,"inputType",void 0),e([n({readOnly:!0})],T.prototype,"error",void 0),e([n({dependsOn:["error","messages","value"]})],T.prototype,"errorMessage",null),e([n()],T.prototype,"group",void 0),e([n({aliasOf:"fieldElement.hint"})],T.prototype,"hint",void 0),e([n()],T.prototype,"includeTime",null),e([n()],T.prototype,"label",null),e([n()],T.prototype,"maxLength",null),e([n()],T.prototype,"minLength",null),e([n()],T.prototype,"messages",void 0),e([n({aliasOf:"field.name"})],T.prototype,"name",void 0),e([n()],T.prototype,"required",null),e([n()],T.prototype,"type",null),e([n()],T.prototype,"valid",null),e([n({value:null})],T.prototype,"value",null),e([n()],T.prototype,"visible",null),T=e([o("esri.widgets.FeatureForm.InputField")],T);const A=T;export{A as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import"../../intl.js";import s from"../../core/Collection.js";import{HandleOwnerMixin as i}from"../../core/HandleOwner.js";import r from"../../core/Handles.js";import{on as o,watch as l}from"../../core/watchUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{highlightsSupported as d}from"../../views/support/layerViewUtils.js";import h from"./AttachmentsColumn.js";import m from"./FieldColumn.js";import c from"./Grid/Grid.js";import g from"./Grid/GridViewModel.js";import u from"./support/FeatureStore.js";import{onLocaleChange as p}from"../../intl/locale.js";import{fetchMessageBundle as f}from"../../intl/messages.js";let y=class extends(i(g)){constructor(e){super(e),this._defaultHiddenFields=["CreationDate","Creator","EditDate","Editor","GlobalID"],this._highlights=new r,this.cellClassNameGenerator=(e,t)=>e.path||null,this.dataProvider=async(e,t)=>{const{store:s}=this,{page:i,pageSize:r,sortOrders:o}=e,l=this._sortOrdersToLayerOrderByFields(o);t&&(s?(await s.set({orderByFields:l}),"loaded"!==s.state&&"loading"!==s.state&&await s.load(),t&&t(await s.fetchItems({page:i,pageSize:r}))):t&&t([]))},this.editingEnabled=!1,this.grid=null,this.hiddenFields=new s,this.highlightOnRowSelectEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.relatedRecordsEnabled=!1,this.store=null,this.view=null;const{hiddenFields:t,itemIdPath:i}=this;t.addMany(this._defaultHiddenFields),this._set("store",new u),this._set("grid",new c({itemIdPath:i,viewModel:this}))}initialize(){const e=async()=>{this.messages=await f("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await f("esri/t9n/common")};e(),this.handles.add([p(e),o(this,"grid.selectedItems","change",(e=>this._onSelectionChange(e))),l(this,"relatedRecordsEnabled",(e=>this.store.relatedRecordsEnabled=e)),l(this,["layer.loaded"],(()=>{var e;null!=(e=this.layer)&&e.loaded&&this._onLayerLoad()})),l(this.store,"state",(e=>{var t;"loaded"===e&&(null==(t=this.grid)||t.scrollToTop())})),l(this,["editingEnabled","messages"],(()=>{var e;return(null==(e=this.layer)?void 0:e.loaded)&&this._generateColumns()})),l(this,"layer.definitionExpression",((e,t)=>(e||t)&&"loaded"===this.store.state&&this.refresh()))])}destroy(){var e,t;this._resetColumns(),this.handles.removeAll(),this._highlights.removeAll(),this._highlights.destroy(),null==(e=this.grid)||e.destroy(),null==(t=this.columns)||t.destroy(),this.layer=null,this.view=null}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set fieldConfigs(e){var t;this._set("fieldConfigs",e),(null==(t=this.layer)?void 0:t.loaded)&&this._generateColumns()}set filterGeometry(e){(this.filterGeometry||e)&&(this.clearSelection(),this._set("filterGeometry",e),this.store.filterGeometry=e)}set layer(e){var t;this._set("layer",e),null==(t=this.grid)||t.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}set messages(e){var t;null==(t=this.grid)||t.set("messages",e),this._set("messages",e)}clearHighlights(){this._highlights.removeAll()}clearSelection(){var e;null==(e=this.grid)||e.clearSelection()}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid.deselectRows(t)}getObjectIdIndex(e){var t;return null==(t=this.store)?void 0:t.getObjectIdIndex(e)}getValue(e,t){var s;const i=this.store.getItemByObjectId(e);return null==i||null==(s=i.feature)?void 0:s.attributes[t]}refresh(){var e;null==(e=this.grid)||e.refresh()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid.selectRows(t)}scrollToIndex(e){var t;null==(t=this.grid)||t.scrollToIndex(e)}_onLayerLoad(){const e=this.layer.capabilities.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_generateColumns(){this._resetColumns(),this.columns.addMany([...this._createFieldColumns()]),this.attachmentsEnabled&&this.columns.push(this._createAttachmentsColumn())}_createFieldColumns(){return this.fieldConfigs&&this.fieldConfigs.length?this._createColumnsFromConfigs():this._createColumnsFromFields()}_createColumnsFromConfigs(){var e,t;const{editingEnabled:s,fieldConfigs:i,grid:r,hiddenFields:o,layer:l,messages:a,messagesCommon:n,store:d}=this,h=null!=(e=null==(t=this.layer)?void 0:t.fields)?e:[];return i.filter((e=>(h||[]).find((t=>e.name===t.name)))).map((e=>{const t=e.direction||null,i=e.formatFunction||null,c=e.textAlign||null,g=(h||[]).find((t=>e.name===t.name)),u=!1===e.visible||!0!==e.visible&&o.indexOf(g.name)>-1;return new m({config:e,direction:t,editingEnabled:s,field:g,formatFunction:i,grid:r,hidden:u,layer:l,store:d,messages:a,messagesCommon:n,textAlign:c})}))}_createColumnsFromFields(){var e,t;const{editingEnabled:s,grid:i,hiddenFields:r,layer:o,messages:l,messagesCommon:a,store:n}=this;return(null!=(e=null==(t=this.layer)?void 0:t.fields)?e:[]).map((e=>{const t=r.indexOf(e.name)>-1;return new m({editingEnabled:s,field:e,grid:i,hidden:t,layer:o,store:n,messages:l,messagesCommon:a})}))}_createAttachmentsColumn(){var e;return new h({header:null==(e=this.messages)?void 0:e.attachments})}_sortOrdersToLayerOrderByFields(e){return e&&e.length?e.filter(((e,t,s)=>s.map((e=>e.path)).indexOf(e.path)===t)).map((({direction:e,path:t})=>e?t+" "+e.toUpperCase():"")):[]}_highlight(e){const{view:t}=this,s=t&&e&&t.allLayerViews.items.find((({layer:t})=>t===e.layer));d(s)&&this._highlights.add(s.highlight(e),`feature-${e.getObjectId()}`)}_unhighlight(e){e&&this._highlights.remove(`feature-${e.getObjectId()}`)}_getStoreItemsFromSelectionParams(e){const s=[];return(e=e instanceof Array?e:[e]).forEach((e=>{let i=e instanceof t?e:null;const r=i?i.getObjectId():e;if("number"==typeof r||"string"==typeof r){if(!i){const e=this.store.getItemByObjectId(r);e&&(i=e.feature)}s.push({objectId:r,feature:i})}})),s}_onSelectionChange(e){const{highlightOnRowSelectEnabled:t}=this,{added:s,removed:i}=e;t&&s.forEach((e=>this._highlight(e.feature))),t&&i.forEach((e=>this._unhighlight(e.feature)))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([a()],y.prototype,"attachmentsEnabled",null),e([a()],y.prototype,"cellClassNameGenerator",void 0),e([a()],y.prototype,"dataProvider",void 0),e([a()],y.prototype,"editingEnabled",void 0),e([a()],y.prototype,"fieldConfigs",null),e([a()],y.prototype,"filterGeometry",null),e([a({readOnly:!0})],y.prototype,"grid",void 0),e([a()],y.prototype,"hiddenFields",void 0),e([a()],y.prototype,"highlightOnRowSelectEnabled",void 0),e([a({readOnly:!0})],y.prototype,"itemIdPath",void 0),e([a()],y.prototype,"layer",null),e([a()],y.prototype,"messages",null),e([a()],y.prototype,"messagesCommon",void 0),e([a()],y.prototype,"relatedRecordsEnabled",void 0),e([a({readOnly:!0,type:u})],y.prototype,"store",void 0),e([a()],y.prototype,"view",void 0),y=e([n("esri.widgets.FeatureTable.FeatureTableViewModel")],y);const v=y;export{v as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import"../../intl.js";import s from"../../core/Collection.js";import{HandleOwnerMixin as i}from"../../core/HandleOwner.js";import r from"../../core/Handles.js";import{on as o,watch as l}from"../../core/watchUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{highlightsSupported as d}from"../../views/support/layerViewUtils.js";import h from"./AttachmentsColumn.js";import m from"./FieldColumn.js";import c from"./Grid/Grid.js";import g from"./Grid/GridViewModel.js";import u from"./support/FeatureStore.js";import{onLocaleChange as p}from"../../intl/locale.js";import{fetchMessageBundle as f}from"../../intl/messages.js";let y=class extends(i(g)){constructor(e){super(e),this._defaultHiddenFields=["CreationDate","Creator","EditDate","Editor","GlobalID"],this._highlights=new r,this.cellClassNameGenerator=(e,t)=>e.path||null,this.dataProvider=async(e,t)=>{const{store:s}=this,{page:i,pageSize:r,sortOrders:o}=e,l=this._sortOrdersToLayerOrderByFields(o);t&&(s?(await s.set({orderByFields:l}),"loaded"!==s.state&&"loading"!==s.state&&await s.load(),t&&t(await s.fetchItems({page:i,pageSize:r}))):t&&t([]))},this.editingEnabled=!1,this.grid=null,this.hiddenFields=new s,this.highlightOnRowSelectEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.relatedRecordsEnabled=!1,this.store=null,this.view=null;const{hiddenFields:t,itemIdPath:i}=this;t.addMany(this._defaultHiddenFields),this._set("store",new u),this._set("grid",new c({itemIdPath:i,viewModel:this}))}initialize(){const e=async()=>{this.messages=await f("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await f("esri/t9n/common")};e(),this.handles.add([p(e),o(this,"grid.selectedItems","change",(e=>this._onSelectionChange(e))),l(this,"relatedRecordsEnabled",(e=>this.store.relatedRecordsEnabled=e)),l(this,["layer.loaded"],(()=>{var e;null!=(e=this.layer)&&e.loaded&&this._onLayerLoad()})),l(this.store,"state",(e=>{var t;"loaded"===e&&(null==(t=this.grid)||t.scrollToTop())})),l(this,["editingEnabled","messages"],(()=>{var e;return(null==(e=this.layer)?void 0:e.loaded)&&this._generateColumns()})),l(this,"layer.definitionExpression",((e,t)=>(e||t)&&"loaded"===this.store.state&&this.refresh()))])}destroy(){var e,t;this._resetColumns(),this.handles.removeAll(),this._highlights.removeAll(),this._highlights.destroy(),null==(e=this.grid)||e.destroy(),null==(t=this.columns)||t.destroy(),this.layer=null,this.view=null}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set fieldConfigs(e){var t;this._set("fieldConfigs",e),(null==(t=this.layer)?void 0:t.loaded)&&this._generateColumns()}set filterGeometry(e){(this.filterGeometry||e)&&(this.clearSelection(),this._set("filterGeometry",e),this.store.filterGeometry=e)}set layer(e){var t;this._set("layer",e),null==(t=this.grid)||t.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}set messages(e){var t;null==(t=this.grid)||t.set("messages",e),this._set("messages",e)}clearHighlights(){this._highlights.removeAll()}clearSelection(){var e;null==(e=this.grid)||e.clearSelection()}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid.deselectRows(t)}getObjectIdIndex(e){var t;return null==(t=this.store)?void 0:t.getObjectIdIndex(e)}getValue(e,t){var s;const i=this.store.getItemByObjectId(e);return null==i||null==(s=i.feature)?void 0:s.attributes[t]}refresh(){var e;null==(e=this.grid)||e.refresh()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid.selectRows(t)}scrollToIndex(e){var t;null==(t=this.grid)||t.scrollToIndex(e)}_onLayerLoad(){const e=this.layer.capabilities.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_generateColumns(){this._resetColumns(),this.columns.addMany([...this._createFieldColumns()]),this.attachmentsEnabled&&this.columns.push(this._createAttachmentsColumn())}_createFieldColumns(){return this.fieldConfigs&&this.fieldConfigs.length?this._createColumnsFromConfigs():this._createColumnsFromFields()}_createColumnsFromConfigs(){var e,t;const{editingEnabled:s,fieldConfigs:i,grid:r,hiddenFields:o,layer:l,messages:a,messagesCommon:n,store:d}=this,h=null!=(e=null==(t=this.layer)?void 0:t.fields)?e:[];return i.filter((e=>(h||[]).find((t=>e.name===t.name)))).map((e=>{const t=e.direction||null,i=e.formatFunction||null,c=e.textAlign||null,g=(h||[]).find((t=>e.name===t.name)),u=!1===e.visible||!0!==e.visible&&o.indexOf(g.name)>-1;return new m({config:e,direction:t,editingEnabled:s,field:g,formatFunction:i,grid:r,hidden:u,layer:l,store:d,messages:a,messagesCommon:n,textAlign:c})}))}_createColumnsFromFields(){var e,t;const{editingEnabled:s,grid:i,hiddenFields:r,layer:o,messages:l,messagesCommon:a,store:n}=this;return(null!=(e=null==(t=this.layer)?void 0:t.fields)?e:[]).map((e=>{const t=r.indexOf(e.name)>-1;return new m({editingEnabled:s,field:e,grid:i,hidden:t,layer:o,store:n,messages:l,messagesCommon:a})}))}_createAttachmentsColumn(){var e;return new h({header:null==(e=this.messages)?void 0:e.attachments})}_sortOrdersToLayerOrderByFields(e){return e&&e.length?e.filter(((e,t,s)=>s.map((e=>e.path)).indexOf(e.path)===t)).filter((({direction:e})=>!!e)).map((({direction:e,path:t})=>t+" "+e.toUpperCase())):[]}_highlight(e){const{view:t}=this,s=t&&e&&t.allLayerViews.items.find((({layer:t})=>t===e.layer));d(s)&&this._highlights.add(s.highlight(e),`feature-${e.getObjectId()}`)}_unhighlight(e){e&&this._highlights.remove(`feature-${e.getObjectId()}`)}_getStoreItemsFromSelectionParams(e){const s=[];return(e=e instanceof Array?e:[e]).forEach((e=>{let i=e instanceof t?e:null;const r=i?i.getObjectId():e;if("number"==typeof r||"string"==typeof r){if(!i){const e=this.store.getItemByObjectId(r);e&&(i=e.feature)}s.push({objectId:r,feature:i})}})),s}_onSelectionChange(e){const{highlightOnRowSelectEnabled:t}=this,{added:s,removed:i}=e;t&&s.forEach((e=>this._highlight(e.feature))),t&&i.forEach((e=>this._unhighlight(e.feature)))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([a()],y.prototype,"attachmentsEnabled",null),e([a()],y.prototype,"cellClassNameGenerator",void 0),e([a()],y.prototype,"dataProvider",void 0),e([a()],y.prototype,"editingEnabled",void 0),e([a()],y.prototype,"fieldConfigs",null),e([a()],y.prototype,"filterGeometry",null),e([a({readOnly:!0})],y.prototype,"grid",void 0),e([a()],y.prototype,"hiddenFields",void 0),e([a()],y.prototype,"highlightOnRowSelectEnabled",void 0),e([a({readOnly:!0})],y.prototype,"itemIdPath",void 0),e([a()],y.prototype,"layer",null),e([a()],y.prototype,"messages",null),e([a()],y.prototype,"messagesCommon",void 0),e([a()],y.prototype,"relatedRecordsEnabled",void 0),e([a({readOnly:!0,type:u})],y.prototype,"store",void 0),e([a()],y.prototype,"view",void 0),y=e([n("esri.widgets.FeatureTable.FeatureTableViewModel")],y);const v=y;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../Graphic.js";import"../../symbols.js";import s from"../../core/Collection.js";import i from"../../core/Error.js";import o from"../../core/Handles.js";import r from"../../core/Logger.js";import{unwrap as n,isNone as a}from"../../core/maybe.js";import{init as l,watch as u,whenFalse as h}from"../../core/watchUtils.js";import{property as c}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import{geographicToWebMercator as d}from"../../geometry/support/webMercatorUtils.js";import g from"../../layers/Layer.js";import f from"../../support/actions/ActionBase.js";import m from"../../support/actions/ActionButton.js";import y from"../../support/actions/ActionToggle.js";import{getDisplayedSymbol as w}from"../../symbols/support/symbolUtils.js";import{ViewEventPriorities as v}from"../../views/input/InputManager.js";import{highlightsSupported as F}from"../../views/support/layerViewUtils.js";import _ from"../Feature/FeatureViewModel.js";import{zoomToClusteredFeatures as b,browseClusteredFeatures as C,zoomToFeature as P}from"./actions.js";import{triggerAction as E,getSelectedTarget as A,removeClusteredFeaturesForBrowsing as M,displayClusterExtent as j,browseAggregateFeatures as V}from"./actionUtils.js";import O from"../support/AnchorElementViewModel.js";import{GoToMixin as x}from"../support/GoTo.js";import I from"../../symbols/SimpleFillSymbol.js";import L from"../../geometry/Point.js";const T=s.ofType({key:"type",defaultKeyValue:"button",base:f,typeMap:{button:m,toggle:y}}),S=()=>[P.clone()],B=()=>[b.clone(),C.clone()],R="esri.widgets.Popup.PopupViewModel",G=r.getLogger(R);let z=class extends(x(O)){constructor(e){super(e),this._handles=new o,this._pendingPromises=new Set,this._fetchFeaturesController=null,this._selectedClusterFeature=null,this.featurePage=null,this.actions=new T,this.defaultPopupTemplateEnabled=!1,this.autoCloseEnabled=!1,this.autoOpenEnabled=!0,this.browseClusterEnabled=!1,this.content=null,this.featuresPerPage=20,this.featureViewModelAbilities=null,this.featureViewModels=[],this.highlightEnabled=!0,this.includeDefaultActions=!0,this.selectedClusterBoundaryFeature=new t({symbol:new I({outline:{width:1.5,color:"cyan"},style:"none"})}),this.title=null,this.updateLocationEnabled=!1,this.view=null,this.visible=!1,this.zoomFactor=4,this.zoomToLocation=null}get isLoadingFeature(){return this.featureViewModels.some((e=>e.waitingForContent))}initialize(){this._handles.add([l(this,["autoOpenEnabled","view"],(()=>this._autoOpenEnabledChange())),this.on("view-change",(()=>this._autoClose())),u(this,["highlightEnabled","selectedFeature","visible","view"],(()=>this._highlightFeature())),u(this,"view.animation.state",(e=>this._animationStateChange(e))),u(this,"location",(e=>this._locationChange(e))),u(this,"selectedFeature",(e=>this._selectedFeatureChange(e))),u(this,["selectedFeatureIndex","featureCount","featuresPerPage"],(()=>this._selectedFeatureIndexChange())),u(this,["featurePage","selectedFeatureIndex","featureCount","featuresPerPage, featureViewModels"],(()=>this._setGraphicOnFeatureViewModels())),u(this,"featureViewModels",(()=>this._featureViewModelsChange())),this.on("trigger-action",(e=>E({event:e,view:this.view}))),h(this,"waitingForResult",(()=>this._waitingForResultChange()),!0),u(this,["features","view","view.map","view.spatialReference"],(()=>this._updateFeatureVMs())),u(this,["view.scale"],this._viewScaleChange),h(this,"visible",(()=>this.browseClusterEnabled=!1)),u(this,"browseClusterEnabled",(e=>e?this.enableClusterBrowsing():this.disableClusterBrowsing()))])}destroy(){this._cancelFetchingFeatures(),this._handles.destroy(),this._handles=null,this._pendingPromises.clear(),this.browseClusterEnabled=!1,this.view=null}get active(){return!(!this.visible||this.waitingForResult)}get allActions(){const e=this._get("allActions")||new T;e.removeAll();const{actions:t,defaultActions:s,defaultPopupTemplateEnabled:i,includeDefaultActions:o,selectedFeature:r}=this,n=o?s.concat(t):t,a=r&&("function"==typeof r.getEffectivePopupTemplate&&r.getEffectivePopupTemplate(i)||r.popupTemplate),l=a&&a.actions,u=a&&a.overwriteActions?l:l?l.concat(n):n;return u&&u.filter(Boolean).forEach((t=>e.add(t))),e}get defaultActions(){var e;const t=this._get("defaultActions")||new T;return t.removeAll(),t.addMany(null!=(e=this.selectedFeature)&&e.isAggregate?B():S()),t}get featureCount(){return this.features.length}get features(){return this._get("features")||[]}set features(e){const t=e||[];this._set("features",t);const{pendingPromisesCount:s,promiseCount:i,selectedFeatureIndex:o}=this,r=i&&t.length;r&&s&&-1===o?this.selectedFeatureIndex=0:r&&-1!==o||(this.selectedFeatureIndex=t.length?0:-1)}get location(){return this._get("location")||null}set location(e){const t=this.get("view.spatialReference.isWebMercator");e&&e.get("spatialReference.isWGS84")&&t&&(e=d(e)),this._set("location",e)}get pendingPromisesCount(){return this._pendingPromises.size}get waitingForResult(){return!(!(!!this._fetchFeaturesController||this.pendingPromisesCount>0)||0!==this.featureCount)}get promiseCount(){return this.promises.length}get promises(){return this._get("promises")||[]}set promises(e){if(this._pendingPromises.clear(),this.features=[],!Array.isArray(e)||!e.length)return this._set("promises",[]),void this.notifyChange("pendingPromisesCount");this._set("promises",e),(e=e.slice(0)).forEach((e=>{this._pendingPromises.add(e);const t=t=>{this._pendingPromises.has(e)&&this._updateFeatures(t),this._updatePendingPromises(e)},s=()=>this._updatePendingPromises(e);e.then(t,s)})),this.notifyChange("pendingPromisesCount")}get selectedFeature(){const{features:e,selectedFeatureIndex:t}=this;if(-1===t)return null;return e[t]||null}get selectedFeatureIndex(){const e=this._get("selectedFeatureIndex");return"number"==typeof e?e:-1}set selectedFeatureIndex(e){const{featureCount:t}=this;e=isNaN(e)||e<-1||!t?-1:(e+t)%t,this._set("selectedFeatureIndex",e)}get selectedFeatureViewModel(){return this.featureViewModels[this.selectedFeatureIndex]||null}get state(){return this.get("view.ready")?"ready":"disabled"}centerAtLocation(){const{view:e}=this,t=A(this);if(!t){const s=new i("center-at-location:invalid-target-or-view","Cannot center at a location without a target and view.",{target:t,view:e});return G.error(s),Promise.reject(s)}return this.callGoTo({target:{target:t,scale:e.scale}})}clear(){this.set({promises:[],features:[],content:null,title:null,location:null})}fetchFeatures(e,t){const{view:s}=this;if(!s||!e){const t=new i("fetch-features:invalid-screenpoint-or-view","Cannot fetch features without a screenPoint and view.",{screenPoint:e,view:s});return G.error(t),Promise.reject(t)}return s.fetchPopupFeatures(e,{event:t&&t.event,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,signal:t&&t.signal})}open(e){const t={updateLocationEnabled:!1,promises:[],fetchFeatures:!1,...e,visible:!0},{fetchFeatures:s}=t;delete t.fetchFeatures,s&&this._setFetchFeaturesPromises(t.location);const i=["actionsMenuOpen","collapsed","featureMenuOpen"];for(const o of i)delete t[o];this.set(t)}triggerAction(e){const t=this.allActions.getItemAt(e);t&&!t.disabled&&this.emit("trigger-action",{action:t})}next(){return this.selectedFeatureIndex=this.selectedFeatureIndex+1,this}previous(){return this.selectedFeatureIndex=this.selectedFeatureIndex-1,this}disableClusterBrowsing(){M(this),this._clearBrowsedClusterGraphics()}async enableClusterBrowsing(){await j(this),await V(this)}_animationStateChange(e){this.zoomToLocation||(P.disabled="waiting-for-target"===e)}_clearBrowsedClusterGraphics(){var e;const t=null==(e=this.view)?void 0:e.graphics;t&&(t.remove(this.selectedClusterBoundaryFeature),t.remove(this._selectedClusterFeature)),this._selectedClusterFeature=null,this.selectedClusterBoundaryFeature.geometry=null}_viewScaleChange(){var e;(null!=(e=this.selectedFeature)&&e.isAggregate||this.browseClusterEnabled)&&(this.browseClusterEnabled=!1,this.visible=!1)}_locationChange(e){const{selectedFeature:t,updateLocationEnabled:s}=this;s&&e&&(!t||t.geometry)&&this.centerAtLocation()}_selectedFeatureIndexChange(){this.featurePage=this.featureCount>1?Math.floor(this.selectedFeatureIndex/this.featuresPerPage)+1:null}_featureViewModelsChange(){this.featurePage=this.featureCount>1?1:null}_setGraphicOnFeatureViewModels(){const{features:e,featureCount:t,featurePage:s,featuresPerPage:i,featureViewModels:o}=this;if(null===s)return;const r=((s-1)*i+t)%t,n=r+i;o.slice(r,n).forEach(((t,s)=>{t&&!t.graphic&&(t.graphic=e[r+s])}))}async _selectedFeatureChange(e){if(!e)return;const{location:t,updateLocationEnabled:s,view:i}=this;if(this.browseClusterEnabled){if(this._selectedClusterFeature&&(i.graphics.remove(this._selectedClusterFeature),this._selectedClusterFeature=null),e.isAggregate)return;return e.symbol=await w(e),this._selectedClusterFeature=e,void i.graphics.add(this._selectedClusterFeature)}!s&&t||!e.geometry?s&&!e.geometry&&this.centerAtLocation().then((()=>{this.location=i.center.clone()})):this.location=n(this._getPointFromGeometry(e.geometry))}_waitingForResultChange(){!this.featureCount&&this.promises&&(this.visible=!1)}_setFetchFeaturesPromises(e){return this._fetchFeaturesWithController(this._getScreenPoint(e||this.location)).then((e=>{const{clientOnlyGraphics:t,promisesPerLayerView:s}=e,i=Promise.resolve(t),o=s.map((e=>e.promise));this.promises=[i,...o]}))}_destroyFeatureVMs(){this.featureViewModels.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",[])}_updateFeatureVMs(){const{selectedFeature:e,features:t,featureViewModels:s}=this;if(null!=e&&e.isAggregate||(this.browseClusterEnabled=!1),this._destroyFeatureVMs(),!t||!t.length)return;const i=s.slice(0),o=[];t.forEach(((t,s)=>{if(!t)return;let r=null;if(i.some(((e,s)=>(e&&e.graphic===t&&(r=e,i.splice(s,1)),!!r))),r)o[s]=r;else{var n,a;const i=new _({abilities:this.featureViewModelAbilities,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,spatialReference:null==(n=this.view)?void 0:n.spatialReference,graphic:t===e?t:null,map:null==(a=this.view)?void 0:a.map,view:this.view});o[s]=i}})),i.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",o)}_getScreenPoint(e){const{view:t}=this;return t&&e&&"function"==typeof t.toScreen?t.toScreen(e):null}_autoOpenEnabledChange(){const e="auto-fetch-features",{_handles:t,autoOpenEnabled:s}=this;if(t.remove(e),s&&this.view){const s=this.view.on("click",(e=>{"mouse"===e.pointerType&&0!==e.button||this._fetchFeaturesAndOpen(e)}),v.WIDGET);t.add(s,e)}}_cancelFetchingFeatures(){const e=this._fetchFeaturesController;e&&e.abort(),this._fetchFeaturesController=null,this.notifyChange("waitingForResult")}_fetchFeaturesWithController(e,t){this._cancelFetchingFeatures();const s=new AbortController,{signal:i}=s;this._fetchFeaturesController=s,this.notifyChange("waitingForResult");const o=this.fetchFeatures(e,{signal:i,event:t});return o.catch((()=>{})).then((()=>{this._fetchFeaturesController=null,this.notifyChange("waitingForResult")})),o}_fetchFeaturesAndOpen(e){const{screenPoint:t,mapPoint:s}=e,{view:i}=this;this._fetchFeaturesWithController(t,e).then((e=>{const{clientOnlyGraphics:t,promisesPerLayerView:o,location:r}=e,n=[Promise.resolve(t),...o.map((e=>e.promise))];return i.popup.open({location:r||s,promises:n}),e}))}_updatePendingPromises(e){e&&this._pendingPromises.has(e)&&(this._pendingPromises.delete(e),this.notifyChange("pendingPromisesCount"))}_autoClose(){this.autoCloseEnabled&&(this.visible=!1)}_getPointFromGeometry(e){return a(e)?null:"point"===e.type?e:"extent"===e.type?e.center:"polygon"===e.type?e.centroid:"multipoint"===e.type||"polyline"===e.type?e.extent.center:null}async _getLayerView(e,t){return await e.when(),e.whenLayerView(t)}async _highlightFeature(){const e="highlight";this._handles.remove(e);const{selectedFeature:t,highlightEnabled:s,view:i,visible:o}=this;if(!(t&&i&&s&&o))return;let{layer:r,sourceLayer:n}=t;if("map-notes"!==(null==n?void 0:n.type)&&"subtype-group"!==(null==n?void 0:n.type)||(r=n),!(r&&r instanceof g))return;const a=this._getLayerView(i,r);this._highlightPromise=a;const l=await a;if(!(l&&F(l)&&this._highlightPromise===a&&this.selectedFeature&&this.highlightEnabled&&this.visible))return;const u="imagery"===r.type?void 0:"objectIdField"in r&&r.objectIdField,h=t.attributes,c=h&&u&&h[u],p=l.highlight(c||t);this._handles.add(p,e)}_updateFeatures(e){const{features:t}=this;if(!e||!e.length)return;if(!t.length)return void(this.features=e);const s=e.filter((e=>-1===t.indexOf(e)));this.features=t.concat(s)}};e([c()],z.prototype,"featurePage",void 0),e([c()],z.prototype,"isLoadingFeature",null),e([c({type:T})],z.prototype,"actions",void 0),e([c({readOnly:!0})],z.prototype,"active",null),e([c({readOnly:!0})],z.prototype,"allActions",null),e([c({type:Boolean})],z.prototype,"defaultPopupTemplateEnabled",void 0),e([c()],z.prototype,"autoCloseEnabled",void 0),e([c()],z.prototype,"autoOpenEnabled",void 0),e([c()],z.prototype,"browseClusterEnabled",void 0),e([c()],z.prototype,"content",void 0),e([c({type:T,readOnly:!0})],z.prototype,"defaultActions",null),e([c({readOnly:!0})],z.prototype,"featureCount",null),e([c()],z.prototype,"features",null),e([c()],z.prototype,"featuresPerPage",void 0),e([c()],z.prototype,"featureViewModelAbilities",void 0),e([c({readOnly:!0})],z.prototype,"featureViewModels",void 0),e([c()],z.prototype,"highlightEnabled",void 0),e([c()],z.prototype,"includeDefaultActions",void 0),e([c({type:L})],z.prototype,"location",null),e([c({readOnly:!0})],z.prototype,"pendingPromisesCount",null),e([c({readOnly:!0})],z.prototype,"selectedClusterBoundaryFeature",void 0),e([c({readOnly:!0})],z.prototype,"waitingForResult",null),e([c({readOnly:!0})],z.prototype,"promiseCount",null),e([c()],z.prototype,"promises",null),e([c({value:null,readOnly:!0})],z.prototype,"selectedFeature",null),e([c({value:-1})],z.prototype,"selectedFeatureIndex",null),e([c({readOnly:!0})],z.prototype,"selectedFeatureViewModel",null),e([c({readOnly:!0})],z.prototype,"state",null),e([c()],z.prototype,"title",void 0),e([c()],z.prototype,"updateLocationEnabled",void 0),e([c()],z.prototype,"view",void 0),e([c()],z.prototype,"visible",void 0),e([c()],z.prototype,"zoomFactor",void 0),e([c()],z.prototype,"zoomToLocation",void 0),e([c()],z.prototype,"centerAtLocation",null),z=e([p(R)],z);const U=z;export{U as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../Graphic.js";import"../../symbols.js";import s from"../../core/Collection.js";import i from"../../core/Error.js";import o from"../../core/Handles.js";import r from"../../core/Logger.js";import{unwrap as n,isNone as a}from"../../core/maybe.js";import{init as l,watch as u,whenFalse as h}from"../../core/watchUtils.js";import{property as c}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import{geographicToWebMercator as d}from"../../geometry/support/webMercatorUtils.js";import g from"../../layers/Layer.js";import f from"../../support/actions/ActionBase.js";import m from"../../support/actions/ActionButton.js";import y from"../../support/actions/ActionToggle.js";import{getDisplayedSymbol as w}from"../../symbols/support/symbolUtils.js";import{ViewEventPriorities as v}from"../../views/input/InputManager.js";import{highlightsSupported as F}from"../../views/support/layerViewUtils.js";import _ from"../Feature/FeatureViewModel.js";import{zoomToClusteredFeatures as b,browseClusteredFeatures as C,zoomToFeature as P}from"./actions.js";import{triggerAction as E,getSelectedTarget as A,removeClusteredFeaturesForBrowsing as M,displayClusterExtent as j,browseAggregateFeatures as V}from"./actionUtils.js";import O from"../support/AnchorElementViewModel.js";import{GoToMixin as x}from"../support/GoTo.js";import I from"../../symbols/SimpleFillSymbol.js";import L from"../../geometry/Point.js";const T=s.ofType({key:"type",defaultKeyValue:"button",base:f,typeMap:{button:m,toggle:y}}),S=()=>[P.clone()],B=()=>[b.clone(),C.clone()],R="esri.widgets.Popup.PopupViewModel",G=r.getLogger(R);let z=class extends(x(O)){constructor(e){super(e),this._handles=new o,this._pendingPromises=new Set,this._fetchFeaturesController=null,this._selectedClusterFeature=null,this.featurePage=null,this.actions=new T,this.defaultPopupTemplateEnabled=!1,this.autoCloseEnabled=!1,this.autoOpenEnabled=!0,this.browseClusterEnabled=!1,this.content=null,this.featuresPerPage=20,this.featureViewModelAbilities=null,this.featureViewModels=[],this.highlightEnabled=!0,this.includeDefaultActions=!0,this.selectedClusterBoundaryFeature=new t({symbol:new I({outline:{width:1.5,color:"cyan"},style:"none"})}),this.title=null,this.updateLocationEnabled=!1,this.view=null,this.visible=!1,this.zoomFactor=4,this.zoomToLocation=null}get isLoadingFeature(){return this.featureViewModels.some((e=>e.waitingForContent))}initialize(){this._handles.add([l(this,["autoOpenEnabled","view"],(()=>this._autoOpenEnabledChange())),this.on("view-change",(()=>this._autoClose())),u(this,["highlightEnabled","selectedFeature","visible","view"],(()=>this._highlightFeature())),u(this,"view.animation.state",(e=>this._animationStateChange(e))),u(this,"location",(e=>this._locationChange(e))),u(this,"selectedFeature",(e=>this._selectedFeatureChange(e))),u(this,["selectedFeatureIndex","featureCount","featuresPerPage"],(()=>this._selectedFeatureIndexChange())),u(this,["featurePage","selectedFeatureIndex","featureCount","featuresPerPage, featureViewModels"],(()=>this._setGraphicOnFeatureViewModels())),u(this,"featureViewModels",(()=>this._featureViewModelsChange())),this.on("trigger-action",(e=>E({event:e,view:this.view}))),h(this,"waitingForResult",(()=>this._waitingForResultChange()),!0),u(this,["features","view","view.map","view.spatialReference"],(()=>this._updateFeatureVMs())),u(this,["view.scale"],this._viewScaleChange),h(this,"visible",(()=>this.browseClusterEnabled=!1)),u(this,"browseClusterEnabled",(e=>e?this.enableClusterBrowsing():this.disableClusterBrowsing()))])}destroy(){this._cancelFetchingFeatures(),this._handles.destroy(),this._handles=null,this._pendingPromises.clear(),this.browseClusterEnabled=!1,this.view=null}get active(){return!(!this.visible||this.waitingForResult)}get allActions(){const e=this._get("allActions")||new T;e.removeAll();const{actions:t,defaultActions:s,defaultPopupTemplateEnabled:i,includeDefaultActions:o,selectedFeature:r}=this,n=o?s.concat(t):t,a=r&&("function"==typeof r.getEffectivePopupTemplate&&r.getEffectivePopupTemplate(i)||r.popupTemplate),l=a&&a.actions,u=a&&a.overwriteActions?l:l?l.concat(n):n;return u&&u.filter(Boolean).forEach((t=>e.add(t))),e}get defaultActions(){var e;const t=this._get("defaultActions")||new T;return t.removeAll(),t.addMany(null!=(e=this.selectedFeature)&&e.isAggregate?B():S()),t}get featureCount(){return this.features.length}get features(){return this._get("features")||[]}set features(e){const t=e||[];this._set("features",t);const{pendingPromisesCount:s,promiseCount:i,selectedFeatureIndex:o}=this,r=i&&t.length;r&&s&&-1===o?this.selectedFeatureIndex=0:r&&-1!==o||(this.selectedFeatureIndex=t.length?0:-1)}get location(){return this._get("location")||null}set location(e){const t=this.get("view.spatialReference.isWebMercator");e&&e.get("spatialReference.isWGS84")&&t&&(e=d(e)),this._set("location",e)}get pendingPromisesCount(){return this._pendingPromises.size}get waitingForResult(){return!(!(!!this._fetchFeaturesController||this.pendingPromisesCount>0)||0!==this.featureCount)}get promiseCount(){return this.promises.length}get promises(){return this._get("promises")||[]}set promises(e){if(this._pendingPromises.clear(),this.features=[],!Array.isArray(e)||!e.length)return this._set("promises",[]),void this.notifyChange("pendingPromisesCount");this._set("promises",e),(e=e.slice(0)).forEach((e=>{this._pendingPromises.add(e);const t=t=>{this._pendingPromises.has(e)&&this._updateFeatures(t),this._updatePendingPromises(e)},s=()=>this._updatePendingPromises(e);e.then(t,s)})),this.notifyChange("pendingPromisesCount")}get selectedFeature(){const{features:e,selectedFeatureIndex:t}=this;if(-1===t)return null;return e[t]||null}get selectedFeatureIndex(){const e=this._get("selectedFeatureIndex");return"number"==typeof e?e:-1}set selectedFeatureIndex(e){const{featureCount:t}=this;e=isNaN(e)||e<-1||!t?-1:(e+t)%t,this._set("selectedFeatureIndex",e)}get selectedFeatureViewModel(){return this.featureViewModels[this.selectedFeatureIndex]||null}get state(){return this.get("view.ready")?"ready":"disabled"}centerAtLocation(){const{view:e}=this,t=A(this);if(!t){const s=new i("center-at-location:invalid-target-or-view","Cannot center at a location without a target and view.",{target:t,view:e});return G.error(s),Promise.reject(s)}return this.callGoTo({target:{target:t,scale:e.scale}})}clear(){this.set({promises:[],features:[],content:null,title:null,location:null})}fetchFeatures(e,t){const{view:s}=this;if(!s||!e){const t=new i("fetch-features:invalid-screenpoint-or-view","Cannot fetch features without a screenPoint and view.",{screenPoint:e,view:s});return G.error(t),Promise.reject(t)}return s.fetchPopupFeatures(e,{event:t&&t.event,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,signal:t&&t.signal})}open(e){const t={updateLocationEnabled:!1,promises:[],fetchFeatures:!1,...e,visible:!0},{fetchFeatures:s}=t;delete t.fetchFeatures,s&&this._setFetchFeaturesPromises(t.location);const i=["actionsMenuOpen","collapsed","featureMenuOpen"];for(const o of i)delete t[o];this.set(t)}triggerAction(e){const t=this.allActions.getItemAt(e);t&&!t.disabled&&this.emit("trigger-action",{action:t})}next(){return this.selectedFeatureIndex=this.selectedFeatureIndex+1,this}previous(){return this.selectedFeatureIndex=this.selectedFeatureIndex-1,this}disableClusterBrowsing(){M(this),this._clearBrowsedClusterGraphics()}async enableClusterBrowsing(){await j(this),await V(this)}_animationStateChange(e){this.zoomToLocation||(P.disabled="waiting-for-target"===e)}_clearBrowsedClusterGraphics(){var e;const t=null==(e=this.view)?void 0:e.graphics;t&&(t.remove(this.selectedClusterBoundaryFeature),t.remove(this._selectedClusterFeature)),this._selectedClusterFeature=null,this.selectedClusterBoundaryFeature.geometry=null}_viewScaleChange(){var e;if(null!=(e=this.selectedFeature)&&e.isAggregate)return this.browseClusterEnabled=!1,this.visible=!1,void this.clear();this.browseClusterEnabled&&(this.browseClusterEnabled=!1,this.features=[this.selectedFeature])}_locationChange(e){const{selectedFeature:t,updateLocationEnabled:s}=this;s&&e&&(!t||t.geometry)&&this.centerAtLocation()}_selectedFeatureIndexChange(){this.featurePage=this.featureCount>1?Math.floor(this.selectedFeatureIndex/this.featuresPerPage)+1:null}_featureViewModelsChange(){this.featurePage=this.featureCount>1?1:null}_setGraphicOnFeatureViewModels(){const{features:e,featureCount:t,featurePage:s,featuresPerPage:i,featureViewModels:o}=this;if(null===s)return;const r=((s-1)*i+t)%t,n=r+i;o.slice(r,n).forEach(((t,s)=>{t&&!t.graphic&&(t.graphic=e[r+s])}))}async _selectedFeatureChange(e){if(!e)return;const{location:t,updateLocationEnabled:s,view:i}=this;if(this.browseClusterEnabled){if(this._selectedClusterFeature&&(i.graphics.remove(this._selectedClusterFeature),this._selectedClusterFeature=null),e.isAggregate)return;return e.symbol=await w(e),this._selectedClusterFeature=e,void i.graphics.add(this._selectedClusterFeature)}!s&&t||!e.geometry?s&&!e.geometry&&this.centerAtLocation().then((()=>{this.location=i.center.clone()})):this.location=n(this._getPointFromGeometry(e.geometry))}_waitingForResultChange(){!this.featureCount&&this.promises&&(this.visible=!1)}_setFetchFeaturesPromises(e){return this._fetchFeaturesWithController(this._getScreenPoint(e||this.location)).then((e=>{const{clientOnlyGraphics:t,promisesPerLayerView:s}=e,i=Promise.resolve(t),o=s.map((e=>e.promise));this.promises=[i,...o]}))}_destroyFeatureVMs(){this.featureViewModels.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",[])}_updateFeatureVMs(){const{selectedFeature:e,features:t,featureViewModels:s}=this;if(null!=e&&e.isAggregate||(this.browseClusterEnabled=!1),this._destroyFeatureVMs(),!t||!t.length)return;const i=s.slice(0),o=[];t.forEach(((t,s)=>{if(!t)return;let r=null;if(i.some(((e,s)=>(e&&e.graphic===t&&(r=e,i.splice(s,1)),!!r))),r)o[s]=r;else{var n,a;const i=new _({abilities:this.featureViewModelAbilities,defaultPopupTemplateEnabled:this.defaultPopupTemplateEnabled,spatialReference:null==(n=this.view)?void 0:n.spatialReference,graphic:t===e?t:null,map:null==(a=this.view)?void 0:a.map,view:this.view});o[s]=i}})),i.forEach((e=>e&&!e.destroyed&&e.destroy())),this._set("featureViewModels",o)}_getScreenPoint(e){const{view:t}=this;return t&&e&&"function"==typeof t.toScreen?t.toScreen(e):null}_autoOpenEnabledChange(){const e="auto-fetch-features",{_handles:t,autoOpenEnabled:s}=this;if(t.remove(e),s&&this.view){const s=this.view.on("click",(e=>{"mouse"===e.pointerType&&0!==e.button||this._fetchFeaturesAndOpen(e)}),v.WIDGET);t.add(s,e)}}_cancelFetchingFeatures(){const e=this._fetchFeaturesController;e&&e.abort(),this._fetchFeaturesController=null,this.notifyChange("waitingForResult")}_fetchFeaturesWithController(e,t){this._cancelFetchingFeatures();const s=new AbortController,{signal:i}=s;this._fetchFeaturesController=s,this.notifyChange("waitingForResult");const o=this.fetchFeatures(e,{signal:i,event:t});return o.catch((()=>{})).then((()=>{this._fetchFeaturesController=null,this.notifyChange("waitingForResult")})),o}_fetchFeaturesAndOpen(e){const{screenPoint:t,mapPoint:s}=e,{view:i}=this;this._fetchFeaturesWithController(t,e).then((e=>{const{clientOnlyGraphics:t,promisesPerLayerView:o,location:r}=e,n=[Promise.resolve(t),...o.map((e=>e.promise))];return i.popup.open({location:r||s,promises:n}),e}))}_updatePendingPromises(e){e&&this._pendingPromises.has(e)&&(this._pendingPromises.delete(e),this.notifyChange("pendingPromisesCount"))}_autoClose(){this.autoCloseEnabled&&(this.visible=!1)}_getPointFromGeometry(e){return a(e)?null:"point"===e.type?e:"extent"===e.type?e.center:"polygon"===e.type?e.centroid:"multipoint"===e.type||"polyline"===e.type?e.extent.center:null}async _getLayerView(e,t){return await e.when(),e.whenLayerView(t)}async _highlightFeature(){const e="highlight";this._handles.remove(e);const{selectedFeature:t,highlightEnabled:s,view:i,visible:o}=this;if(!(t&&i&&s&&o))return;let{layer:r,sourceLayer:n}=t;if("map-notes"!==(null==n?void 0:n.type)&&"subtype-group"!==(null==n?void 0:n.type)||(r=n),!(r&&r instanceof g))return;const a=this._getLayerView(i,r);this._highlightPromise=a;const l=await a;if(!(l&&F(l)&&this._highlightPromise===a&&this.selectedFeature&&this.highlightEnabled&&this.visible))return;const u="imagery"===r.type?void 0:"objectIdField"in r&&r.objectIdField,h=t.attributes,c=h&&u&&h[u],p=l.highlight(c||t);this._handles.add(p,e)}_updateFeatures(e){const{features:t}=this;if(!e||!e.length)return;if(!t.length)return void(this.features=e);const s=e.filter((e=>-1===t.indexOf(e)));this.features=t.concat(s)}};e([c()],z.prototype,"featurePage",void 0),e([c()],z.prototype,"isLoadingFeature",null),e([c({type:T})],z.prototype,"actions",void 0),e([c({readOnly:!0})],z.prototype,"active",null),e([c({readOnly:!0})],z.prototype,"allActions",null),e([c({type:Boolean})],z.prototype,"defaultPopupTemplateEnabled",void 0),e([c()],z.prototype,"autoCloseEnabled",void 0),e([c()],z.prototype,"autoOpenEnabled",void 0),e([c()],z.prototype,"browseClusterEnabled",void 0),e([c()],z.prototype,"content",void 0),e([c({type:T,readOnly:!0})],z.prototype,"defaultActions",null),e([c({readOnly:!0})],z.prototype,"featureCount",null),e([c()],z.prototype,"features",null),e([c()],z.prototype,"featuresPerPage",void 0),e([c()],z.prototype,"featureViewModelAbilities",void 0),e([c({readOnly:!0})],z.prototype,"featureViewModels",void 0),e([c()],z.prototype,"highlightEnabled",void 0),e([c()],z.prototype,"includeDefaultActions",void 0),e([c({type:L})],z.prototype,"location",null),e([c({readOnly:!0})],z.prototype,"pendingPromisesCount",null),e([c({readOnly:!0})],z.prototype,"selectedClusterBoundaryFeature",void 0),e([c({readOnly:!0})],z.prototype,"waitingForResult",null),e([c({readOnly:!0})],z.prototype,"promiseCount",null),e([c()],z.prototype,"promises",null),e([c({value:null,readOnly:!0})],z.prototype,"selectedFeature",null),e([c({value:-1})],z.prototype,"selectedFeatureIndex",null),e([c({readOnly:!0})],z.prototype,"selectedFeatureViewModel",null),e([c({readOnly:!0})],z.prototype,"state",null),e([c()],z.prototype,"title",void 0),e([c()],z.prototype,"updateLocationEnabled",void 0),e([c()],z.prototype,"view",void 0),e([c()],z.prototype,"visible",void 0),e([c()],z.prototype,"zoomFactor",void 0),e([c()],z.prototype,"zoomToLocation",void 0),e([c()],z.prototype,"centerAtLocation",null),z=e([p(R)],z);const U=z;export{U as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import t from"../../core/Logger.js";import{throwIfNotAbortError as r}from"../../core/promiseUtils.js";import{zoomToFeature as i,zoomToClusteredFeatures as o,browseClusteredFeatures as n,removeSelectedFeature as a}from"./actions.js";const s="esri.widgets.Popup.PopupViewModel",c=t.getLogger(s),u=function(t){const{event:s,view:c}=t,{action:u}=s,d=c&&c.popup;if(!u)return Promise.reject(new e("trigger-action:missing-arguments","Event has no action"));if(!d)return Promise.reject(new e("trigger-action:missing-arguments","view.popup is missing"));const{disabled:l,id:v}=u;if(!v)return Promise.reject(new e("trigger-action:invalid-action","action.id is missing"));if(l)return Promise.reject(new e("trigger-action:invalid-action","Action is disabled"));if(v===i.id)return g(d.viewModel).catch(r);if(v===o.id)return w(d.viewModel);if(v===n.id)return d.featureMenuOpen=!d.featureMenuOpen,d.viewModel.browseClusterEnabled=!d.viewModel.browseClusterEnabled,Promise.resolve();if(d.viewModel.browseClusterEnabled=!1,v===a.id){d.close();const{selectedFeature:t}=d;if(!t)return Promise.reject(new e(`trigger-action:${a.id}`,"selectedFeature is required",{selectedFeature:t}));const{sourceLayer:r}=t;return r?r.remove(t):c.graphics.remove(t),Promise.resolve()}return Promise.resolve()};function d(e){const{selectedFeature:t,location:r,view:i}=e;if(!i)return null;if("3d"===i.type)return t||r;return e.get("selectedFeature.geometry")||r}function l(t,r){if("3d"!==(null==r?void 0:r.type)||!t||"esri.Graphic"!==t.declaredClass)return!0;const i=r.getViewForGraphic(t);if(i&&"whenGraphicBounds"in i){let r=!1;return i.whenGraphicBounds(t,{useViewElevation:!0}).then((e=>{r=!e||!e.boundingBox||e.boundingBox[0]===e.boundingBox[3]&&e.boundingBox[1]===e.boundingBox[4]&&e.boundingBox[2]===e.boundingBox[5]})).catch((()=>{const r=new e("zoom-to:invalid-graphic","Could not zoom to the location of the graphic.",{graphic:t});c.error(r)})),r}return!0}async function g(t){const{location:r,selectedFeature:o,view:n,zoomFactor:a}=t,s=d(t);if(!s){const t=new e("zoom-to:invalid-target-or-view","Cannot zoom to location without a target and view.",{target:s,view:n});return c.error(t),Promise.reject(t)}const u=n.scale/a,g=t.get("selectedFeature.geometry")||r,w=g&&"point"===g.type&&l(o,n);i.active=!0,i.disabled=!0;try{await t.view.goTo({target:s,scale:w?u:void 0})}finally{i.active=!1,i.disabled=!1,t.zoomToLocation=null,w&&(t.location=g)}}async function w(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("zoomToCluster:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const n=r.sourceLayer,a=await i.whenLayerView(n),s=a.createQuery();s.aggregateIds=[r.getObjectId()],o.active=!0,o.disabled=!0;const{extent:u}=await a.queryExtent(s);await i.goTo({target:u}),o.active=!1,o.disabled=!1}async function v(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("displayClusterExtent:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const o=r.sourceLayer,n=await i.whenLayerView(o),a=n.createQuery();a.aggregateIds=[r.getObjectId()];const{extent:s}=await n.queryExtent(a);t.selectedClusterBoundaryFeature.geometry=s,i.graphics.add(t.selectedClusterBoundaryFeature)}async function p(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("browseAggregateFeatures:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("browseAggregateFeatures:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const o=r.sourceLayer,a=await i.whenLayerView(o),s=a.createQuery();s.aggregateIds=[r.getObjectId()],n.active=!0,n.disabled=!0;const{features:u}=await a.queryFeatures(s);n.active=!1,n.disabled=!1,i.popup.open({features:[r].concat(u),featureMenuOpen:!0})}function f(e){e.features=e.features.filter((e=>e.isAggregate))}export{p as browseAggregateFeatures,v as displayClusterExtent,d as getSelectedTarget,l as isZoomScreenSize,f as removeClusteredFeaturesForBrowsing,u as triggerAction,w as zoomToClusterExtent,g as zoomToLocation};
5
+ import e from"../../core/Error.js";import t from"../../core/Logger.js";import{throwIfNotAbortError as r}from"../../core/promiseUtils.js";import{zoomToFeature as i,zoomToClusteredFeatures as o,browseClusteredFeatures as n,removeSelectedFeature as a}from"./actions.js";const s="esri.widgets.Popup.PopupViewModel",c=t.getLogger(s),u=function(t){const{event:s,view:c}=t,{action:u}=s,d=c&&c.popup;if(!u)return Promise.reject(new e("trigger-action:missing-arguments","Event has no action"));if(!d)return Promise.reject(new e("trigger-action:missing-arguments","view.popup is missing"));const{disabled:l,id:v}=u;if(!v)return Promise.reject(new e("trigger-action:invalid-action","action.id is missing"));if(l)return Promise.reject(new e("trigger-action:invalid-action","Action is disabled"));if(v===i.id)return g(d.viewModel).catch(r);if(v===o.id)return w(d.viewModel);if(v===n.id)return d.featureMenuOpen=!d.featureMenuOpen,d.viewModel.browseClusterEnabled=!d.viewModel.browseClusterEnabled,Promise.resolve();if(d.viewModel.browseClusterEnabled=!1,v===a.id){d.close();const{selectedFeature:t}=d;if(!t)return Promise.reject(new e(`trigger-action:${a.id}`,"selectedFeature is required",{selectedFeature:t}));const{sourceLayer:r}=t;return r?r.remove(t):c.graphics.remove(t),Promise.resolve()}return Promise.resolve()};function d(e){const{selectedFeature:t,location:r,view:i}=e;if(!i)return null;if("3d"===i.type)return t||r;return e.get("selectedFeature.geometry")||r}function l(t,r){if("3d"!==(null==r?void 0:r.type)||!t||"esri.Graphic"!==t.declaredClass)return!0;const i=r.getViewForGraphic(t);if(i&&"whenGraphicBounds"in i){let r=!1;return i.whenGraphicBounds(t,{useViewElevation:!0}).then((e=>{r=!e||!e.boundingBox||e.boundingBox[0]===e.boundingBox[3]&&e.boundingBox[1]===e.boundingBox[4]&&e.boundingBox[2]===e.boundingBox[5]})).catch((()=>{const r=new e("zoom-to:invalid-graphic","Could not zoom to the location of the graphic.",{graphic:t});c.error(r)})),r}return!0}async function g(t){const{location:r,selectedFeature:o,view:n,zoomFactor:a}=t,s=d(t);if(!s){const t=new e("zoom-to:invalid-target-or-view","Cannot zoom to location without a target and view.",{target:s,view:n});return c.error(t),Promise.reject(t)}const u=n.scale/a,g=t.get("selectedFeature.geometry")||r,w=g&&"point"===g.type&&l(o,n);i.active=!0,i.disabled=!0;try{await t.view.goTo({target:s,scale:w?u:void 0})}finally{i.active=!1,i.disabled=!1,t.zoomToLocation=null,w&&(t.location=g)}}async function w(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("zoomToCluster:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const n=r.sourceLayer,a=await i.whenLayerView(n),s=a.createQuery();s.aggregateIds=[r.getObjectId()],o.active=!0,o.disabled=!0;const{extent:u}=await a.queryExtent(s);await i.goTo({target:u}),o.active=!1,o.disabled=!1}async function v(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("displayClusterExtent:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const o=r.sourceLayer,n=await i.whenLayerView(o),a=n.createQuery();a.aggregateIds=[r.getObjectId()];const{extent:s}=await n.queryExtent(a);t.selectedClusterBoundaryFeature.geometry=s,i.graphics.add(t.selectedClusterBoundaryFeature)}async function p(t){const{selectedFeature:r,view:i}=t;if("2d"!==(null==i?void 0:i.type)){const t=new e("browseAggregateFeatures:invalid-view","View must be 2d MapView.",{view:i});throw c.error(t),t}if(!r.isAggregate){const t=new e("browseAggregateFeatures:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw c.error(t),t}const o=r.sourceLayer,a=await i.whenLayerView(o),s=a.createQuery();s.aggregateIds=[r.getObjectId()],n.active=!0,n.disabled=!0;const{features:u}=await a.queryFeatures(s);n.active=!1,n.disabled=!1,i.popup.open({features:[r].concat(u),featureMenuOpen:!0})}function f(e){var t;null!=(t=e.selectedFeature)&&t.isAggregate&&(e.features=e.features.filter((e=>e.isAggregate)))}export{p as browseAggregateFeatures,v as displayClusterExtent,d as getSelectedTarget,l as isZoomScreenSize,f as removeClusteredFeaturesForBrowsing,u as triggerAction,w as zoomToClusterExtent,g as zoomToLocation};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import s from"../../analysis/Slice.js";import t from"../../core/Handles.js";import o from"../../core/Logger.js";import{isNone as i,isSome as r,destroyMaybe as l,unwrap as a}from"../../core/maybe.js";import{ignoreAbortErrors as n}from"../../core/promiseUtils.js";import{watch as d,sync as c}from"../../core/reactiveUtils.js";import{whenTrueOnce as h}from"../../core/watchUtils.js";import{aliasOf as p}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{property as u}from"../../core/accessorSupport/decorators/property.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import m from"../../views/3d/interactive/analysisTools/slice/SliceTool.js";import{InteractiveAnalysisViewModel as w}from"../support/InteractiveAnalysisViewModel.js";const f=o.getLogger("esri.widgets.Slice.SliceViewModel"),x=new Set;let g=class extends w{constructor(e){super(e),this.analysisView=null,this.logger=f,this.supportedViewType="3d",this.unsupportedErrorMessage="SliceViewModel is only supported in 3D views.",this.handles=new t,this.shape=null,this.ready=!1,x.add(this)}initialize(){this.handles.add(d((()=>this.shape),((e,s)=>{i(s)&&r(e)?i(this.tool)&&!this.creatingTool&&this.createTool():r(s)&&i(e)&&this.removeTool()}),c))}destroy(){this.handles=l(this.handles),x.delete(this)}get state(){return this.disabled||!this.ready?"disabled":i(this.tool)||"pending"===this.tool.toolState?"ready":this.tool.state}get tiltEnabled(){return this.analysis.tiltEnabled}set tiltEnabled(e){this.analysis.tiltEnabled=e}get excludedLayers(){return this.analysis.excludedLayers}set excludedLayers(e){this.analysis.excludedLayers=e}get excludeGroundSurface(){return this.analysis.excludeGroundSurface}set excludeGroundSurface(e){this.analysis.excludeGroundSurface=e}async start(){return this.clear(),this.ready||await h(this,"ready"),x.forEach((e=>{e.view===this.view&&e!==this&&e.clear()})),this.createTool()}clear(){this.removeTool(),this.shape=null}enterExcludeLayerMode(){r(this.tool)&&this.tool.enterExcludeLayerMode()}exitExcludeLayerMode(){r(this.tool)&&this.tool.exitExcludeLayerMode()}_updateToolOrRecreate(e){r(this.tool)?e(this.tool):this.creatingTool&&n(this.createTool())}onConnectToAnalysisView(e){this.analysisView=e,this.ready=!0}onDisconnectFromAnalysisView(){this.ready=!1,this.analysisView=null}constructAnalysis(){return new s}constructTool(){return new m({view:a(this.view),analysis:this.analysis,visible:this.visible})}};e([u()],g.prototype,"analysisView",void 0),e([u({readOnly:!0})],g.prototype,"state",null),e([u({aliasOf:"analysis.shape"})],g.prototype,"shape",void 0),e([u()],g.prototype,"tiltEnabled",null),e([p("tool.layersMode")],g.prototype,"layersMode",void 0),e([u()],g.prototype,"excludedLayers",null),e([u({nonNullable:!0})],g.prototype,"excludeGroundSurface",null),e([u()],g.prototype,"ready",void 0),g=e([y("esri.widgets.slice.SliceViewModel")],g);const v=g;export{v as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import s from"../../analysis/Slice.js";import t from"../../core/Handles.js";import o from"../../core/Logger.js";import{isNone as i,isSome as r,destroyMaybe as l,applySome as a,unwrapOr as n,unwrap as d}from"../../core/maybe.js";import{ignoreAbortErrors as c}from"../../core/promiseUtils.js";import{watch as h,sync as p,whenOnce as u}from"../../core/reactiveUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import w from"../../views/3d/interactive/analysisTools/slice/SliceTool.js";import{InteractiveAnalysisViewModel as g}from"../support/InteractiveAnalysisViewModel.js";const f=o.getLogger("esri.widgets.Slice.SliceViewModel"),x=new Set;let S=class extends g{constructor(e){super(e),this._handles=new t,this.analysisView=null,this.logger=f,this.supportedViewType="3d",this.unsupportedErrorMessage="SliceViewModel is only supported in 3D views.",this.ready=!1,x.add(this)}initialize(){this._handles.add(h((()=>this.shape),((e,s)=>{i(s)&&r(e)?i(this.tool)&&!this.creatingTool&&this.createTool():r(s)&&i(e)&&this.removeTool()}),p)),r(this.shape)&&this.createTool()}destroy(){this._handles=l(this._handles),x.delete(this)}get state(){return this.disabled||!this.ready?"disabled":i(this.tool)||"pending"===this.tool.toolState?"ready":this.tool.state}get shape(){return this.analysis.shape}set shape(e){this.analysis.shape=e}get tiltEnabled(){return this.analysis.tiltEnabled}set tiltEnabled(e){this.analysis.tiltEnabled=e}get layersMode(){const e=a(this.tool,(e=>e.layersMode));return n(e,"none")}get excludedLayers(){return this.analysis.excludedLayers}set excludedLayers(e){this.analysis.excludedLayers=e}get excludeGroundSurface(){return this.analysis.excludeGroundSurface}set excludeGroundSurface(e){this.analysis.excludeGroundSurface=e}async start(){return this.clear(),this.ready||await u((()=>this.ready)),x.forEach((e=>{e.view===this.view&&e!==this&&e.clear()})),this.createTool()}clear(){this.removeTool(),this.shape=null}enterExcludeLayerMode(){r(this.tool)&&this.tool.enterExcludeLayerMode()}exitExcludeLayerMode(){r(this.tool)&&this.tool.exitExcludeLayerMode()}_updateToolOrRecreate(e){r(this.tool)?e(this.tool):this.creatingTool&&c(this.createTool())}onConnectToAnalysisView(e){this.analysisView=e,this.ready=!0}onDisconnectFromAnalysisView(){this.ready=!1,this.analysisView=null}constructAnalysis(){return new s}constructTool(){return new w({view:d(this.view),analysis:this.analysis,visible:this.visible})}};e([y({readOnly:!0})],S.prototype,"state",null),e([y()],S.prototype,"shape",null),e([y()],S.prototype,"tiltEnabled",null),e([y()],S.prototype,"layersMode",null),e([y()],S.prototype,"excludedLayers",null),e([y({nonNullable:!0})],S.prototype,"excludeGroundSurface",null),e([y()],S.prototype,"analysisView",void 0),e([y()],S.prototype,"ready",void 0),S=e([m("esri.widgets.slice.SliceViewModel")],S);const v=S;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import s from"../../core/Error.js";import r from"../../core/Logger.js";import{isSome as o}from"../../core/maybe.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";const a="esri.widgets.Slider.SliderViewModel",l=r.getLogger(a);let u=class extends e{constructor(t){super(t),this.precision=4,this.thumbsConstrained=!0}set labelFormatFunction(t){this._set("labelFormatFunction",t)}set inputFormatFunction(t){this._set("inputFormatFunction",t)}set inputParseFunction(t){this._set("inputParseFunction",t)}get labels(){const{max:t,min:e,values:s}=this,r=s&&s.length?s.map(((t,e)=>this.getLabelForValue(t,"value",e))):[];return{max:this.getLabelForValue(t,"max"),min:this.getLabelForValue(e,"min"),values:r}}set max(t){this.setMax(t)}set min(t){this.setMin(t)}get state(){const{max:t,min:e}=this;return o(t)&&o(e)&&t>e?"ready":"disabled"}set values(t){const{max:e,min:s}=this,r=this.values;r&&t&&r.length===t.length&&r.every(((e,s)=>e===t[s]))||(this._set("values",null),t&&t.length&&(o(s)&&t.some((t=>t<s))&&(this.min=Math.min(...t)),o(e)&&t.some((t=>t>e))&&(this.max=Math.max(...t))),this._set("values",t))}toPrecision(t){return parseFloat(t.toFixed(this.precision))}defaultLabelFormatFunction(t){const{max:e,min:s,precision:r}=this,o=e-s>10?2:r;return parseFloat(t.toFixed(o)).toString()}defaultInputFormatFunction(t){return t.toString()}defaultInputParseFunction(t){return parseFloat(t)}getBoundsForValueAtIndex(t){const{thumbsConstrained:e,max:s,min:r,values:i}=this;if(e){const e=t-1,n=t+1;return{min:o(i[e])?i[e]:r,max:o(i[n])?i[n]:s}}return{min:r,max:s}}getLabelForValue(t,e,s){return o(t)?this.labelFormatFunction?this.labelFormatFunction(t,e,s):this.defaultLabelFormatFunction(t):null}setMax(t){const{max:e,values:s}=this;if(isNaN(t))return void this._logError("slider:invalid-value","Property 'max' must of type 'number'.");if(null===t)return void this._set("max",null);const r=this.toPrecision(t);if(e!==r&&(this._set("max",r),s&&s.length))for(let o=0;o<s.length;o++)r<s[o]&&this.setValue(o,r)}setMin(t){const{min:e,values:s}=this;if(isNaN(t))return void this._logError("slider:invalid-value","Property 'min' must of type 'number'.");if(null===t)return void this._set("min",null);const r=this.toPrecision(t);if(e!==r&&(this._set("min",r),s&&s.length))for(let o=0;o<s.length;o++)r>s[o]&&this.setValue(o,r)}setValue(t,e){if(isNaN(e))return void this._logError("slider:invalid-value","Members of property 'values' must of type 'number'.");const{values:s}=this,r=s[t],o=this.toPrecision(e);if(r===o)return;const i=[...s];i[t]=o,this._set("values",i),this.notifyChange("labels")}_logError(t,e,r){l.error(new s(t,e,r))}};t([i()],u.prototype,"labelFormatFunction",null),t([i()],u.prototype,"inputFormatFunction",null),t([i()],u.prototype,"inputParseFunction",null),t([i({readOnly:!0})],u.prototype,"labels",null),t([i()],u.prototype,"max",null),t([i()],u.prototype,"min",null),t([i()],u.prototype,"precision",void 0),t([i({readOnly:!0})],u.prototype,"state",null),t([i()],u.prototype,"thumbsConstrained",void 0),t([i()],u.prototype,"values",null),u=t([n(a)],u);const m=u;export{m as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import i from"../../core/Error.js";import s from"../../core/Logger.js";import{isSome as r}from"../../core/maybe.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";const a="esri.widgets.Slider.SliderViewModel",l=s.getLogger(a);let u=class extends e{constructor(t){super(t),this.precision=4,this.thumbsConstrained=!0}set effectiveMax(t){this.setEffectiveMax(t)}set effectiveMin(t){this.setEffectiveMin(t)}set labelFormatFunction(t){this._set("labelFormatFunction",t)}set inputFormatFunction(t){this._set("inputFormatFunction",t)}set inputParseFunction(t){this._set("inputParseFunction",t)}get labels(){const{max:t,min:e,values:i}=this,s=i&&i.length?i.map(((t,e)=>this.getLabelForValue(t,"value",e))):[];return{max:this.getLabelForValue(t,"max"),min:this.getLabelForValue(e,"min"),values:s}}set max(t){this.setMax(t)}set min(t){this.setMin(t)}get state(){const{max:t,min:e}=this;return r(t)&&r(e)&&t>e?"ready":"disabled"}set values(t){const{max:e,min:i}=this,s=this.values;s&&t&&s.length===t.length&&s.every(((e,i)=>e===t[i]))||(this._set("values",null),t&&t.length&&(r(i)&&t.some((t=>t<i))&&(this.min=Math.min(...t)),r(e)&&t.some((t=>t>e))&&(this.max=Math.max(...t))),this._set("values",t))}toPrecision(t){return parseFloat(t.toFixed(this.precision))}defaultLabelFormatFunction(t){const{max:e,min:i,precision:s}=this,r=e-i>10?2:s;return parseFloat(t.toFixed(r)).toString()}defaultInputFormatFunction(t){return t.toString()}defaultInputParseFunction(t){return parseFloat(t)}getBounds(){const{effectiveMax:t,effectiveMin:e,max:i,min:s}=this;return{min:r(e)?Math.max(s,e):s,max:r(t)?Math.min(i,t):i}}getBoundsForValueAtIndex(t){const{thumbsConstrained:e,values:i}=this,{min:s,max:o}=this.getBounds();if(e){const e=t-1,n=t+1;return{min:r(i[e])?i[e]:s,max:r(i[n])?i[n]:o}}return{min:s,max:o}}getLabelForValue(t,e,i){return r(t)?this.labelFormatFunction?this.labelFormatFunction(t,e,i):this.defaultLabelFormatFunction(t):null}setMax(t){const{max:e,values:i}=this;if(isNaN(t))return void this._logError("slider:invalid-value","Supplied value for property 'max' is NaN.");if(null===t)return void this._set("max",null);const s=this.toPrecision(t);if(e!==s&&(this._set("max",s),i&&i.length))for(let r=0;r<i.length;r++)s<i[r]&&this.setValue(r,s)}setMin(t){const{min:e,values:i}=this;if(isNaN(t))return void this._logError("slider:invalid-value","Supplied value for property 'min' is NaN.");if(null===t)return void this._set("min",null);const s=this.toPrecision(t);if(e!==s&&(this._set("min",s),i&&i.length))for(let r=0;r<i.length;r++)s>i[r]&&this.setValue(r,s)}setEffectiveMax(t){if(isNaN(t))return void this._logError("slider:invalid-value","Supplied value for property 'effectiveMax' is NaN.");if(null===t)return void this._set("effectiveMax",null);const e=this.toPrecision(t);this.effectiveMax!==e&&this._set("effectiveMax",this._applyBoundsToValue(e))}setEffectiveMin(t){if(isNaN(t))return void this._logError("slider:invalid-value","Supplied value for property 'effectiveMin' is NaN.");if(null===t)return void this._set("effectiveMin",null);const e=this.toPrecision(t);this.effectiveMin!==e&&this._set("effectiveMin",this._applyBoundsToValue(e))}setValue(t,e){if(isNaN(e))return void this._logError("slider:invalid-value","Supplied value for member of property 'values' is NaN.");const{values:i}=this,s=i[t],r=this.toPrecision(e);if(s===r)return;const o=[...i];o[t]=r,this._set("values",o),this.notifyChange("labels")}_applyBoundsToValue(t){const{max:e,min:i}=this;return r(i)&&t<i?i:r(e)&&t>e?e:t}_logError(t,e,s){l.error(new i(t,e,s))}};t([o()],u.prototype,"effectiveMax",null),t([o()],u.prototype,"effectiveMin",null),t([o()],u.prototype,"labelFormatFunction",null),t([o()],u.prototype,"inputFormatFunction",null),t([o()],u.prototype,"inputParseFunction",null),t([o({readOnly:!0})],u.prototype,"labels",null),t([o()],u.prototype,"max",null),t([o()],u.prototype,"min",null),t([o()],u.prototype,"precision",void 0),t([o({readOnly:!0})],u.prototype,"state",null),t([o()],u.prototype,"thumbsConstrained",void 0),t([o()],u.prototype,"values",null),u=t([n(a)],u);const p=u;export{p as default};
package/widgets/Slider.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{deprecatedProperty as i}from"../core/deprecate.js";import{eventKey as n}from"../core/events.js";import s from"../core/Logger.js";import{isSome as o}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./Slider/SliderViewModel.js";import{onResize as u}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as p}from"../intl/substitute.js";const v={base:"esri-slider",reversed:"esri-slider--reversed",horizontalLayout:"esri-slider--horizontal",verticalLayout:"esri-slider--vertical",contentElement:"esri-slider__content",extraContentElement:"esri-slider__extra-content",trackElement:"esri-slider__track",ticksContainerElement:"esri-slider__ticks",tickElement:"esri-slider__tick",tickLabelElement:"esri-slider__tick-label",maxElement:"esri-slider__max",minElement:"esri-slider__min",maxElementInteractive:"esri-slider__max--interactive",minElementInteractive:"esri-slider__min--interactive",rangeInput:"esri-slider__range-input",anchorElement:"esri-slider__anchor",movingAnchorElement:"esri-slider__anchor--moving",lastMovedAnchorElement:"esri-slider__anchor--moved",anchorElementActive:"esri-slider__anchor--active",anchorElementIndexPrefix:"esri-slider__anchor-",segmentElement:"esri-slider__segment",segmentElementIndexPrefix:"esri-slider__segment-",segmentElementInteractive:"esri-slider__segment--interactive",segmentElementActive:"esri-slider__segment--active",thumbElement:"esri-slider__thumb",labelElement:"esri-slider__label",labelElementInteractive:"esri-slider__label--interactive",labelInput:"esri-slider__label-input",esriWidget:"esri-widget",widgetIcon:"esri-icon-edit",disabled:"esri-disabled",hidden:"esri-hidden"},g={showInput:"Enter",hideInput1:"Enter",hideInput2:"Escape",hideInput3:"Tab",moveAnchorUp:"ArrowUp",moveAnchorDown:"ArrowDown",moveAnchorLeft:"ArrowLeft",moveAnchorRight:"ArrowRight",moveAnchorToMax:"End",moveAnchorToMin:"Home"},b="esri.widgets.Slider",f=s.getLogger("esri.widgets.Slider"),E={labels:!1,rangeLabels:!1};let x=class extends d{constructor(e,i){super(e,i),this._activeLabelInputIndex=null,this._anchorElements=[],this._dragged=!1,this._dragStartInfo=null,this._focusedAnchorIndex=null,this._isMinInputActive=!1,this._isMaxInputActive=!1,this._lastMovedHandleIndex=null,this._positionPrecision=5,this._segmentDragStartInfo=null,this._trackHeight=null,this._trackWidth=null,this._zIndices=null,this._zIndexOffset=3,this.disabled=!1,this.extraNodes=[],this.draggableSegmentsEnabled=!0,this.inputCreatedFunction=null,this.inputFormatFunction=null,this.inputParseFunction=null,this.label=void 0,this.labelElements=new t,this.labelInputsEnabled=!1,this.labelFormatFunction=null,this.labels=null,this.max=null,this.maxLabelElement=null,this.messages=null,this.min=null,this.minLabelElement=null,this.precision=4,this.rangeLabelInputsEnabled=!1,this.segmentElements=new t,this.snapOnClickEnabled=!0,this.steps=null,this.syncedSegmentsEnabled=!1,this.thumbsConstrained=!0,this.thumbCreatedFunction=null,this.thumbElements=new t,this.tickElements=new t,this.trackElement=null,this.values=null,this.viewModel=new c,this.visibleElements={...E},this._onAnchorPointerDown=this._onAnchorPointerDown.bind(this),this._onAnchorPointerMove=this._onAnchorPointerMove.bind(this),this._onAnchorPointerUp=this._onAnchorPointerUp.bind(this),this._onLabelPointerDown=this._onLabelPointerDown.bind(this),this._onLabelPointerUp=this._onLabelPointerUp.bind(this),this._onSegmentPointerDown=this._onSegmentPointerDown.bind(this),this._onSegmentPointerMove=this._onSegmentPointerMove.bind(this),this._onSegmentPointerUp=this._onSegmentPointerUp.bind(this),this._onTrackPointerDown=this._onTrackPointerDown.bind(this),this._onTrackPointerMove=this._onTrackPointerMove.bind(this),this._onTrackPointerUp=this._onTrackPointerUp.bind(this)}destroy(){document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove),document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),this.labelElements.removeAll(),this.labelElements.destroy(),this.segmentElements.removeAll(),this.segmentElements.destroy(),this.thumbElements.removeAll(),this.thumbElements.destroy(),this.tickElements.removeAll(),this.tickElements.destroy()}set labelsVisible(e){i(f,"labelsVisible",{replacement:"visibleElements.labels",version:"4.15"}),this.visibleElements={...this.visibleElements,labels:e}}set layout(e){-1===["vertical","vertical-reversed","horizontal","horizontal-reversed"].indexOf(e)&&(e="horizontal"),this._set("layout",e)}set rangeLabelsVisible(e){i(f,"rangeLabelsVisible",{replacement:"visibleElements.rangeLabels",version:"4.15"}),this.visibleElements={...this.visibleElements,rangeLabels:e}}get state(){const{_activeLabelInputIndex:e,_isMaxInputActive:t,_isMinInputActive:i,_dragStartInfo:n,_segmentDragStartInfo:s,disabled:r,viewModel:a}=this,l=o(n)||o(s);return r?"disabled":!(null===e&&!t&&!i)?"editing":l?"dragging":a.state}set tickConfigs(e){this._set("tickConfigs",e),this.scheduleRender()}castVisibleElements(e){return{...E,...e}}render(){const{label:e}=this,t=this.classes(v.base,v.esriWidget,this._isHorizontalLayout()?v.horizontalLayout:v.verticalLayout,this._isReversedLayout()?v.reversed:null,this._isDisabled()?v.disabled:null);return this._storeTrackDimensions(),_("div",{"aria-label":e,class:t,"touch-action":"none",bind:this,afterCreate:this._afterContainerCreate},this.renderContent())}toNextStep(e){this._toStep(e,1)}toPreviousStep(e){this._toStep(e,-1)}renderContent(){const{max:e,min:t}=this;if(o(t)&&o(e)&&!(t>=e))return[this.renderMin(),this.renderSliderContainer(),this.renderMax()]}renderSliderContainer(){return _("div",{key:"slider-container",bind:this,class:v.contentElement},this.renderTrackElement(),this.renderTicksContainer(),this.renderExtraContentElements())}renderTrackElement(){return _("div",{afterCreate:this._afterTrackCreate,afterRemoved:this._afterTrackRemoved,bind:this,class:v.trackElement,"data-node-ref":"trackElement","touch-action":"none"},this.renderSegmentElements(),this.renderAnchorElements())}renderSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=this.values.length+1,t=[];for(let i=0;i<e;i++)t.push(this.renderSegmentElement(i));return t}renderSegmentElement(e){const{_trackHeight:t,_trackWidth:i,draggableSegmentsEnabled:n,id:s,state:r,values:a}=this,l=this._isHorizontalLayout(),h=l?i:t,d=e===a.length?null:e,c=0===e?null:e-1,u=o(d),m=o(c);let p,g;const b=[...a].sort(((e,t)=>e-t));this._isReversedLayout()?(p=m?this._positionFromValue(b[c]):l?h:0,g=u?this._positionFromValue(b[d]):l?0:h):(p=u?this._positionFromValue(b[d]):l?h:0,g=m?this._positionFromValue(b[c]):l?0:h);const f=this._applyPrecisionToPosition(100*g/h),E=(p-g)/h,x=l?`transform: translate(${f}%, 0px) scale(${E}, 1);`:`transform: translate(0px, ${f}%) scale(1, ${E});`,k=this.classes(v.segmentElement,v.segmentElementIndexPrefix+e,n&&u&&m&&"disabled"!==r?v.segmentElementInteractive:null);return _("div",{afterCreate:this._afterSegmentCreate,afterRemoved:this._afterSegmentRemoved,bind:this,class:k,"data-max-thumb-index":d,"data-min-thumb-index":c,"data-segment-index":e,key:`${s}-segment-${e}`,style:x,"touch-action":"none"})}renderAnchorElements(){const{trackElement:e,values:t}=this;if(t&&t.length)return this._zIndices=t.map(((e,i)=>{const n=this._positionFromValue(e),s=this._positionToPercent(n),o=(this._isHorizontalLayout()?s>50:s<50)?-1:1;return this._zIndexOffset+(t.length+o*i)})),e&&t&&t.length?t.map(((e,t)=>this.renderAnchorElement(e,t))):null}renderAnchorElement(e,t){const i=this._positionFromValue(e),n=this._valueFromPosition(i);if(!o(n)||isNaN(n))return;const{_dragStartInfo:s,_lastMovedHandleIndex:r,id:a,layout:l,values:h,visibleElements:{labels:d}}=this,c=s&&s.index===t,u=r===t,m=this.classes(v.anchorElement,v.anchorElementIndexPrefix+t,c?v.movingAnchorElement:null,u?v.lastMovedAnchorElement:null),g=this.labels.values[t],b=this._getStyleForAnchor(e,t,c||u),{min:f,max:E}=this.viewModel.getBoundsForValueAtIndex(t),{messages:x}=this,k=2===h.length?p(0===t?x.rangeMinimum:x.rangeMaximum,{value:e}):g,y=1===h.length?null:0===t?`${a}-handle-${t+1}`:t===h.length-1?`${a}-handle-${t-1}`:`${a}-handle-${t-1} ${a}-handle-${t+1}`;return _("div",{afterCreate:this._afterAnchorCreate,afterUpdate:this._afterAnchorUpdate,afterRemoved:this._afterAnchorRemoved,"aria-controls":y,"aria-label":x.sliderValue,"aria-labelledby":d?`${a}-label-${t}`:null,"aria-orientation":l,"aria-valuemax":E.toString(),"aria-valuemin":f.toString(),"aria-valuenow":e.toString(),"aria-valuetext":k,bind:this,class:m,"data-thumb-index":t,"data-value":e,id:`${a}-handle-${t}`,key:`${a}-handle-${t}`,onkeydown:this._onAnchorKeyDown,"touch-action":"none",role:"slider",style:b,tabIndex:0},_("span",{afterCreate:this._afterThumbCreate,afterRemoved:this._afterThumbRemoved,bind:this,class:v.thumbElement,"data-thumb-index":t,"touch-action":"none"}),this.renderThumbLabel(t))}renderThumbLabel(e){const{id:t,labels:i,labelInputsEnabled:n,state:s}=this,o=this.visibleElements.labels,r=i.values[e],a=this.classes(v.labelElement,o?null:v.hidden,n&&"disabled"!==s?v.labelElementInteractive:null);return _("span",{afterCreate:this._afterLabelCreate,afterRemoved:this._afterLabelRemoved,"aria-hidden":(!o).toString(),bind:this,class:a,"data-thumb-index":e,key:`${t}-label-${e}`,id:`${t}-label-${e}`,role:n?"button":null,"touch-action":"none"},this._activeLabelInputIndex===e?this.renderValueInput(e):r)}renderValueInput(e){const t=this.values[e];return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.sliderValue,bind:this,class:v.labelInput,"data-input-type":"thumb","data-input-index":e,required:!0,tabIndex:0,type:"text",value:this._formatInputValue(t,"value",e),onblur:this._onLabelInputBlur,onkeydown:this._onInputKeyDown})}renderMax(){const{_isMaxInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.maxElement,s?null:v.hidden,i&&"disabled"!==n?v.maxElementInteractive:null);return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMaxLabelCreate,bind:this,class:o,onclick:this._onMaxLabelClick,onkeydown:this._onMaxLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMaxInput():t.max)}renderMin(){const{_isMinInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.minElement,s?null:v.hidden,i&&"disabled"!==n?v.minElementInteractive:null);return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMinLabelCreate,bind:this,class:o,onclick:this._onMinLabelClick,onkeydown:this._onMinLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMinInput():t.min)}renderMaxInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.maximumValue,bind:this,class:v.rangeInput,"data-input-type":"max",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.max,"max"),onblur:this._onMaxInputBlur,onkeydown:this._onInputKeyDown})}renderMinInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.minimumValue,bind:this,class:v.rangeInput,"data-input-type":"min",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.min,"min"),onblur:this._onMinInputBlur,onkeydown:this._onInputKeyDown})}renderExtraContentElements(){return _("div",{bind:this,class:v.extraContentElement},this.extraNodes)}renderTicksContainer(){if(this.tickConfigs&&this.trackElement&&(0!==this._trackHeight||0!==this._trackWidth))return this.tickConfigs.map(((e,t)=>_("div",{key:"ticks-container",class:this.classes(v.ticksContainerElement)},this.renderTicks(e,t))))}renderTicks(e,i){const{mode:n,values:s}=e;if(this.tickElements.getItemAt(i)||this.tickElements.add(new t,i),"position"===n){const t=Array.isArray(s)?s:[s];return this._calculateTickPositions(t).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}if("percent"===n&&Array.isArray(s)){const{max:t,min:n}=this,o=t-n,r=s.map((e=>this._applyPrecisionToPosition(e/100*o+n)));return this._calculateTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}const o=Array.isArray(s)&&s.length?s[0]:isNaN(s)?null:s,r=this._getTickCounts(o,e);return this._calculateEquidistantTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}renderTickGroup(e,t,i,n){const s="position"===e.mode?Array.isArray(e.values)?e.values[t]:e.values:this._valueFromPosition(n);if(o(s)&&!isNaN(s))return _("div",{afterCreate:this._afterTickGroupCreate,afterRemoved:this._afterTickGroupRemoved,bind:this,"data-config":e,"data-position":n,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":s,onclick:this._onTickGroupClick,key:`tick-group-${t}`},this.renderTickLine(e,t,i,s),e.labelsVisible?this.renderTickLabel(e,t,i,s):null)}renderTickLine(e,t,i,n){return _("div",{afterCreate:this._afterTickLineCreate,"aria-valuenow":n.toString(),bind:this,class:v.tickElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:this._getPositionStyleForElement(n)})}renderTickLabel(e,t,i,n){const s=e.labelFormatFunction?e.labelFormatFunction(n,"tick",t):this.viewModel.getLabelForValue(n,"tick",t);return _("div",{afterCreate:this._afterTickLabelCreate,"aria-label":s,"aria-valuenow":n.toString(),"aria-valuetext":s,bind:this,class:v.tickLabelElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:`transform: translate(-50%); ${this._getPositionStyleForElement(n)}`},s)}_afterContainerCreate(e){this.own(u(e,(()=>this.scheduleRender())))}_afterTrackCreate(e){this._set("trackElement",e),e.addEventListener("pointerdown",this._onTrackPointerDown),this.scheduleRender()}_afterTrackRemoved(e){e.removeEventListener("pointerdown",this._onTrackPointerDown),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp)}_afterSegmentCreate(e){this.segmentElements.add(e),e.addEventListener("pointerdown",this._onSegmentPointerDown)}_afterSegmentRemoved(e){this.segmentElements.remove(e),e.removeEventListener("pointerdown",this._onSegmentPointerDown)}_afterAnchorCreate(e){if(this._anchorElements.push(e),e.addEventListener("pointerdown",this._onAnchorPointerDown),this.thumbCreatedFunction){const t=e["data-thumb-index"],i=e["data-value"],n=this.thumbElements.getItemAt(t)||null,s=this.labelElements.getItemAt(t)||null;this.thumbCreatedFunction(t,i,n,s)}}_afterAnchorUpdate(e){if(o(this._focusedAnchorIndex)){e["data-thumb-index"]===this._focusedAnchorIndex&&(e.focus(),this._focusedAnchorIndex=null)}}_afterAnchorRemoved(e){const t=this._anchorElements.indexOf(e,0);t>-1&&this._anchorElements.splice(t,1),e.removeEventListener("pointerdown",this._onAnchorPointerDown)}_afterThumbCreate(e){this.thumbElements.add(e)}_afterThumbRemoved(e){this.thumbElements.remove(e)}_afterLabelCreate(e){this.labelElements.add(e),e.addEventListener("pointerdown",this._onLabelPointerDown),e.addEventListener("pointerup",this._onLabelPointerUp)}_afterLabelRemoved(e){this.labelElements.remove(e),e.removeEventListener("pointerdown",this._onLabelPointerDown),e.removeEventListener("pointerup",this._onLabelPointerUp)}_afterInputCreate(e){if(e.focus(),e.select(),this.inputCreatedFunction){const t=e.getAttribute("data-input-type"),i="thumb"===t?e["data-input-index"]:null;this.inputCreatedFunction(e,t,i)}}_afterTickLineCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).tickElement=e:n.add({groupElement:null,tickElement:e,labelElement:null},i)}_afterTickLabelCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).labelElement=e:n.add({groupElement:null,labelElement:e,tickElement:null},i)}_afterTickGroupRemoved(e){const t=e["data-tick-config-index"],i=this.tickElements.items[t],n=null==i?void 0:i.find((t=>t.groupElement===e));n&&i.remove(n)}_afterTickGroupCreate(e){const t=e["data-config"];if(t&&t.tickCreatedFunction){var i,n;const s=e["data-tick-config-index"],o=e["data-tick-group-index"],r=e["data-value"],a=null==(i=this.tickElements)||null==(n=i.getItemAt(s))?void 0:n.getItemAt(o);if(a){a.groupElement=e;const i=a.tickElement||null,n=a.labelElement||null;t.tickCreatedFunction(r,i,n)}}}_afterMaxLabelCreate(e){this._set("maxLabelElement",e)}_afterMinLabelCreate(e){this._set("minLabelElement",e)}_onAnchorKeyDown(e){if(this._isDisabled()||"editing"===this.state)return;const{target:t}=e,i=n(e),{_anchorElements:s,values:r}=this,a=t["data-thumb-index"],l=s[a],h=r[a],d=this._isHorizontalLayout(),c=[g.moveAnchorUp,g.moveAnchorDown,g.moveAnchorLeft,g.moveAnchorRight];if(i===g.showInput&&this.labelInputsEnabled)this._activeLabelInputIndex=a,this.notifyChange("state");else if(c.indexOf(i)>-1){e.preventDefault();const{steps:t}=this,n=i===g.moveAnchorUp||i===g.moveAnchorRight?1:-1;if(o(t))this._toStep(a,this._isReversedLayout()?-1*n:n);else{const{precision:e}=this,t=this._getPositionOfElement(l),i=this._valueFromPosition(t),s=this._isHorizontalLayout()?n:-1*n;let o;o=0===e?this._positionFromValue(i+s):1===e?this._positionFromValue(i+.1*s):t+s,this._toPosition(a,o)}const s=this.values[a];h!==s&&this._emitThumbChangeEvent({index:a,oldValue:h,value:s})}else if(i===g.moveAnchorToMax||i===g.moveAnchorToMin){e.preventDefault();const{min:t,max:n}=this._getAnchorBoundsInPixels(a),s=d?i===g.moveAnchorToMax?n:t:i===g.moveAnchorToMin?n:t;this._toPosition(a,s);const o=this.values[a];h!==o&&this._emitThumbChangeEvent({index:a,oldValue:h,value:o})}}_onAnchorPointerDown(e){if(this._isDisabled())return;const{target:t,clientX:i,clientY:n}=e,s=t["data-thumb-index"];void 0!==s&&(e.preventDefault(),this._anchorElements[s]&&this._anchorElements[s].focus(),this._storeTrackDimensions(),this._dragStartInfo={clientX:i,clientY:n,index:s,position:this._getPositionOfElement(this._anchorElements[s])},this.notifyChange("state"),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onAnchorPointerMove(e){if("editing"===this.state||!this._dragStartInfo)return;e.preventDefault();const{values:t,_anchorElements:i,_dragged:n,_dragStartInfo:s,_dragStartInfo:{index:o,position:r}}=this,{clientX:a,clientY:l}=e,h=n?"drag":"start",d=i[o],c=this._getPositionOfElement(d),u=this._applyPrecisionToPosition(this._isHorizontalLayout()?r+a-s.clientX:r+l-s.clientY);if(c===u)return;const m=t[o];this._dragged=!0,this._toPosition(o,u);const _=this.values[o];n?m!==_&&this._emitThumbDragEvent({index:o,state:h,value:_}):this._emitThumbDragEvent({index:o,state:h,value:m})}_onAnchorPointerUp(e){if(document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),!this._dragStartInfo)return;e.preventDefault();const{index:t}=this._dragStartInfo,i=this._dragged,n=this.values[t];this._dragged=!1,this._dragStartInfo=null,this._lastMovedHandleIndex=t,this.notifyChange("state"),i?this._emitThumbDragEvent({index:t,state:"stop",value:n}):(this.scheduleRender(),"editing"!==this.state&&this._emitThumbClickEvent({index:t,value:n}))}_onTrackPointerDown(e){const{_dragStartInfo:t,snapOnClickEnabled:i,state:n,values:s}=this;if(this._isDisabled()||"editing"===n||t)return;if(document.addEventListener("pointermove",this._onTrackPointerMove),document.addEventListener("pointerup",this._onTrackPointerUp),!i||!s.length)return;const{steps:r}=this,{clientX:a,clientY:l}=e,h=this._getCursorPositionFromEvent(e),d=this._valueFromPosition(h),c=this._getIndexOfNearestValue(d),u=s[c],m=s.some(((e,t)=>e===u&&t!==c))&&d>u?this.values.lastIndexOf(u):c;if(!o(m))return;const _=s[m],p=o(r)?this._calculateNearestStepPosition(h):h;this._toPosition(m,p),this._dragged=!0,this._dragStartInfo={clientX:a,clientY:l,index:m,position:p},this._focusedAnchorIndex=m,this.notifyChange("state"),this._emitThumbDragEvent({index:m,state:"start",value:_});const v=this.values[m];_!==v&&this._emitThumbDragEvent({index:m,state:"drag",value:v}),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove)}_onTrackPointerMove(e){e.preventDefault(),this._dragged=!0}_onTrackPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp),this.snapOnClickEnabled||(this._dragged=!1),!this._dragged){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitTrackClickEvent({value:i})}}_onSegmentPointerDown(e){e.preventDefault();const t=e.target,i=t["data-segment-index"],n=t["data-min-thumb-index"],s=t["data-max-thumb-index"];if(this._isDisabled()||!o(n)||!o(s))return;e.stopPropagation(),this._storeTrackDimensions(),document.addEventListener("pointerup",this._onSegmentPointerUp);const r=this._getAnchorDetails(n),a=this._getAnchorDetails(s);var l,h;this.syncedSegmentsEnabled?(this.segmentElements.forEach((e=>e.classList.add(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.add(v.anchorElementActive)))):(this.segmentElements.getItemAt(i).classList.add(v.segmentElementActive),null==(l=this._anchorElements[r.index])||l.classList.add(v.anchorElementActive),null==(h=this._anchorElements[a.index])||h.classList.add(v.anchorElementActive));this._segmentDragStartInfo={cursorPosition:this._getCursorPositionFromEvent(e),index:i,details:this._normalizeSegmentDetails({min:r,max:a})},this.draggableSegmentsEnabled&&(document.addEventListener("pointermove",this._onSegmentPointerMove),this.notifyChange("state"),this._emitSegmentDragEvent({index:i,state:"start",thumbIndices:[n,s]}))}_onSegmentPointerMove(e){if(!this._segmentDragStartInfo)return;e.preventDefault();const{_trackHeight:t,_trackWidth:i,_segmentDragStartInfo:{index:n,cursorPosition:s,details:{min:o,max:r}}}=this,{index:a,position:l,value:h}=o,{index:d,position:c,value:u}=r;this._dragged=!0;const m=this._getCursorPositionFromEvent(e);if(m===s)return;const _=this._positionToPercent(s),p=this._positionToPercent(m)-_,v=this._positionToPercent(l)+p,g=this._positionToPercent(c)+p,{min:b}=this._getAnchorBoundsAsPercents(a),{max:f}=this._getAnchorBoundsAsPercents(d);let E=!1,x=!1;if(v<b?E=!0:g>f&&(x=!0),E){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(a),i=this._isPositionInverted()?t:e,n=i,s=u+(i-h),o=s-this.values[d];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[n,s]))}if(x){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(d),i=this._isPositionInverted()?e:t,n=i,s=h+(i-u),o=s-this.values[a];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[s,n]))}const k=this._isHorizontalLayout()?i:t,y=g/100*k,I=v/100*k,P=this.values,A=[P[a],P[d]],L=this._getValueForAnchorAtPosition(a,I),C=this._getValueForAnchorAtPosition(d,y);this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(L-A[0]):this._updateAnchorValues([a,d],[L,C]);[this.values[a],this.values[d]].every(((e,t)=>e===A[t]))||this._emitSegmentDragEvent({index:n,state:"drag",thumbIndices:[a,d]})}_onSegmentPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointerup",this._onSegmentPointerUp),document.removeEventListener("pointermove",this._onSegmentPointerMove),!this._segmentDragStartInfo)return;const{_dragged:t,max:i,min:n,values:s}=this,{index:o,details:{min:{index:r},max:{index:a}}}=this._segmentDragStartInfo;if(this.segmentElements.forEach((e=>e.classList.remove(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.remove(v.anchorElementActive))),this.draggableSegmentsEnabled){const e=i-n,t=s[r],l=s[a];this._lastMovedHandleIndex=t===l?t>e/2?r:a:null,this._dragged=!1,this._segmentDragStartInfo=null,this.notifyChange("state"),this._emitSegmentDragEvent({index:o,state:"stop",thumbIndices:[r,a]})}if(!t){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitSegmentClickEvent({index:o,value:i,thumbIndices:[r,a]})}}_onTickGroupClick(e){const t=e.target;if(t["data-config"]){const e=t["data-tick-config-index"],i=t["data-tick-group-index"],n=t["data-value"];this._emitTickClickEvent({configIndex:e,groupIndex:i,value:n})}}_storeTrackDimensions(){if(this.trackElement){const e=this._getDimensions(this.trackElement);this._trackHeight=e.height,this._trackWidth=e.width}}_onLabelPointerDown(){this._isDisabled()||(this._dragged=!1,document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onLabelPointerMove(){this._isDisabled()||(this._dragged=!0)}_onLabelPointerUp(e){if(this._isDisabled())return;const t=e.target["data-thumb-index"];this.labelInputsEnabled&&!this._dragged&&o(t)&&(this._activeLabelInputIndex=t),this._dragged=!1,this.notifyChange("state"),document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove)}_onLabelInputBlur(e){const{_activeLabelInputIndex:t,values:i,viewModel:n}=this,s=e.target.value;if(this._activeLabelInputIndex=null,this.notifyChange("state"),!s)return;const o=this._parseInputValue(s,"value",t),r=i[t],{min:a,max:l}=this.viewModel.getBoundsForValueAtIndex(t);if(o<a||o>l)return;n.setValue(t,o);const h=this.values[t];r!==h&&this._emitThumbChangeEvent({index:t,oldValue:r,value:h})}_onInputKeyDown(e){if(this._isDisabled())return;const{target:t}=e,i=n(e),{hideInput1:s,hideInput2:r,hideInput3:a}=g,{_activeLabelInputIndex:l,_anchorElements:h}=this,d=t;if(i===s||i===r||i===a){e.stopPropagation();const t=l;d.blur(),o(t)?h[t].focus():d.parentElement.focus()}}_onMaxLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"max-click",value:this.max}),this.rangeLabelInputsEnabled&&(this._isMaxInputActive=!0,this.notifyChange("state")))}_onMaxLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMaxInputActive=!0,this.notifyChange("state"))}_onMaxInputBlur(e){const t=e.target.value;if(this._isMaxInputActive=!1,this.notifyChange("state"),!t)return;const i=this.max,n=this._parseInputValue(t,"max");n<=this.min||(this.viewModel.set("max",n),this.max!==i&&this._emitMaxChangeEvent({oldValue:i,value:this.max}))}_onMinLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"min-click",value:this.min}),this.rangeLabelInputsEnabled&&(this._isMinInputActive=!0,this.notifyChange("state")))}_onMinLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMinInputActive=!0,this.notifyChange("state"))}_onMinInputBlur(e){const t=e.target.value;if(this._isMinInputActive=!1,this.notifyChange("state"),!t)return;const i=this.min,n=this._parseInputValue(t,"min");n>=this.max||(this.viewModel.set("min",n),this.min!==i&&this._emitMinChangeEvent({oldValue:i,value:this.min}))}_isDisabled(){return this.disabled||"disabled"===this.state}_positionFromValue(e){const{max:t,min:i}=this,n=t-i;if(0===n)return 0;const{_trackHeight:s,_trackWidth:o}=this,r=this._isHorizontalLayout();let a=r?parseFloat((o*(e-i)/n).toFixed(2)):parseFloat((s*(t-e)/n).toFixed(2));return this._isReversedLayout()&&(a=r?o-a:s-a),a}_valueFromPosition(e){const{_trackHeight:t,_trackWidth:i,max:n,min:s,precision:o}=this,r=n-s;let a=this._isHorizontalLayout()?e*r/i+s:r*(1e3-e/t*1e3)/1e3+s;return this._isReversedLayout()&&(a=n+s-a),parseFloat(a.toFixed(o))}_positionToPercent(e){const{_trackHeight:t,_trackWidth:i}=this,n=100*e/(this._isHorizontalLayout()?i:t);return this._applyPrecisionToPosition(n)}_applyPrecisionToPosition(e){return parseFloat(e.toFixed(this._positionPrecision))}_isPositionInverted(){const{layout:e}=this;return"horizontal-reversed"===e||"vertical"===e}_isHorizontalLayout(){return this.layout.indexOf("horizontal")>-1}_isReversedLayout(){return this.layout.indexOf("reversed")>-1}_normalizeSegmentDetails(e){if(this._isPositionInverted()){const{min:t,max:i}=e;return{min:i,max:t}}return e}_parseInputValue(e,t,i){return this.inputParseFunction?this.inputParseFunction(e,t,i):this.viewModel.defaultInputParseFunction(e)}_formatInputValue(e,t,i){return this.inputFormatFunction?this.inputFormatFunction(e,t,i):this.viewModel.defaultInputFormatFunction(e)}_getAnchorDetails(e){const t=[...this.values].sort(((e,t)=>e-t))[e],i=this.values.indexOf(t);return{index:i,position:this._getPositionOfElement(this._anchorElements[i]),value:t}}_updateAnchorStyle(e,t){const i=this._anchorElements[e];i&&(this._isHorizontalLayout()?i.style.left=`${t}`:i.style.top=`${t}`)}_getStyleForAnchor(e,t,i){const n=this._getPositionStyleForElement(e);if(1===this.values.length)return`${n}`;const s=this._zIndices[t];return`${n}; z-index: ${i?this._zIndexOffset+s:s}`}_getPositionStyleForElement(e){const t=this._positionFromValue(e),i=this._positionToPercent(t);return`${this._isHorizontalLayout()?"left":"top"}: ${i+"%"}`}_getPositionOfElement(e){const t=this._getDimensions(e.offsetParent),i=this._getDimensions(e);return this._isHorizontalLayout()?this._applyPrecisionToPosition(i.left-t.left):this._applyPrecisionToPosition(i.top-t.top)}_updateAnchorValues(e,t){e.forEach(((e,i)=>this._toValue(e,t[i])))}_updateAnchorValuesByDifference(e){const{min:t,max:i,values:n}=this;n.forEach(((n,s)=>this._toValue(s,Math.max(Math.min(n+e,i),t))))}_toValue(e,t){if(o(this.steps)){t=this._getStepValues()[this._getIndexOfNearestStepValue(t)]}this._updateAnchorStyle(e,this._getPositionStyleForElement(t)),this.viewModel.setValue(e,t)}_toPosition(e,t){const i=o(this.steps)?this._getStepValueForAnchorAtPosition(e,t):this._getValueForAnchorAtPosition(e,t);this._updateAnchorStyle(e,this._getPositionStyleForElement(i)),this.viewModel.setValue(e,i)}_getValueForAnchorAtPosition(e,t){const{min:i,max:n}=this._getAnchorBoundsInPixels(e),{min:s,max:o}=this.viewModel.getBoundsForValueAtIndex(e);let r,a,l=null;return this._isPositionInverted()?(r=s,a=o):(r=o,a=s),l=t>n?r:t<i?a:this._valueFromPosition(t),l>o?l=o:l<s&&(l=s),l}_getStepValueForAnchorAtPosition(e,t){const i=this._getStepValues(),n=this._calculateNearestStepPosition(t),s=this._getValueForAnchorAtPosition(e,n);return i[this._getIndexOfNearestStepValue(s)]}_getAnchorBoundsAsPercents(e){const{min:t,max:i}=this._getAnchorBoundsInPixels(e);return{min:this._positionToPercent(t),max:this._positionToPercent(i)}}_getAnchorBoundsInPixels(e){const{_anchorElements:t,_trackHeight:i,_trackWidth:n,thumbsConstrained:s}=this,o=t[e-1],r=t[e+1],a=this._isHorizontalLayout()?n:i;return s?this._isPositionInverted()?{max:o?this._getPositionOfElement(o):a,min:r?this._getPositionOfElement(r):0}:{max:r?this._getPositionOfElement(r):a,min:o?this._getPositionOfElement(o):0}:{max:a,min:0}}_getIndexOfNearestValue(e){return this.values.indexOf(this.values.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t)))}_getCursorPositionFromEvent(e){const t=this._getDimensions(this.trackElement);return this._isHorizontalLayout()?e.clientX-t.left:e.clientY-t.top}_getStepValues(){const{steps:e}=this;if(Array.isArray(e))return e;const{max:t,min:i}=this,n=Math.ceil((t-i)/e),s=[];for(let o=0;o<=n;o++){const n=i+e*o;s.push(n>t?t:n)}return s}_toStep(e,t){const{values:i,viewModel:n}=this,s=i[e],o=this._getStepValues(),r=o.indexOf(s);let a=null;if(r>-1){const i=o[r+t],n=this._positionFromValue(i);a=this._getStepValueForAnchorAtPosition(e,n)}else{a=o[this._getIndexOfNearestStepValue(s)+t]}n.setValue(e,a)}_getIndexOfNearestStepValue(e){const{steps:t}=this;if(!o(t))return null;const i=this._getStepValues(),n=i.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t));return i.indexOf(n)}_calculateNearestStepPosition(e){const t=this._valueFromPosition(e),i=this._getIndexOfNearestStepValue(t),n=this._getStepValues();return this._positionFromValue(n[i])}_getTickCounts(e,t){const{mode:i}=t;return"count"===i||"position"===i?e||0:"percent"===i&&100/e||0}_calculateTickPositions(e){return e.map((e=>this._positionFromValue(e)))}_calculateEquidistantTickPositions(e){const{_trackWidth:t,_trackHeight:i}=this,n=this._isHorizontalLayout()?t:i,s=n/(e-1),o=[];if(1===e)return[n/2];for(let r=0;r<e;r++){const e=r*s;e<=n&&o.push(e)}return o}_getDimensions(e){try{return e.getBoundingClientRect()}catch(t){if("object"==typeof t&&null!==t)return new DOMRect(0,0,0,0);throw t}}_emitTrackClickEvent(e){this.emit("track-click",{...e,type:"track-click"})}_emitTickClickEvent(e){this.emit("tick-click",{...e,type:"tick-click"})}_emitMaxChangeEvent(e){this.emit("max-change",{...e,type:"max-change"})}_emitMinChangeEvent(e){this.emit("min-change",{...e,type:"min-change"})}_emitThumbChangeEvent(e){this.emit("thumb-change",{...e,type:"thumb-change"})}_emitThumbClickEvent(e){this.emit("thumb-click",{...e,type:"thumb-click"})}_emitThumbDragEvent(e){this.emit("thumb-drag",{...e,type:"thumb-drag"})}_emitSegmentClickEvent(e){this.emit("segment-click",{...e,type:"segment-click"})}_emitSegmentDragEvent(e){this.emit("segment-drag",{...e,type:"segment-drag"})}_emitRangeLabelClickEvent(e){this.emit(e.type,{...e})}};e([l()],x.prototype,"disabled",void 0),e([l()],x.prototype,"extraNodes",void 0),e([l()],x.prototype,"draggableSegmentsEnabled",void 0),e([l()],x.prototype,"inputCreatedFunction",void 0),e([r("viewModel.inputFormatFunction")],x.prototype,"inputFormatFunction",void 0),e([r("viewModel.inputParseFunction")],x.prototype,"inputParseFunction",void 0),e([l({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([l({readOnly:!0})],x.prototype,"labelElements",void 0),e([l()],x.prototype,"labelInputsEnabled",void 0),e([r("viewModel.labelFormatFunction")],x.prototype,"labelFormatFunction",void 0),e([r("viewModel.labels")],x.prototype,"labels",void 0),e([l()],x.prototype,"labelsVisible",null),e([l({value:"horizontal"})],x.prototype,"layout",null),e([r("viewModel.max")],x.prototype,"max",void 0),e([l({readOnly:!0})],x.prototype,"maxLabelElement",void 0),e([l(),m("esri/widgets/Slider/t9n/Slider")],x.prototype,"messages",void 0),e([r("viewModel.min")],x.prototype,"min",void 0),e([l({readOnly:!0})],x.prototype,"minLabelElement",void 0),e([r("viewModel.precision")],x.prototype,"precision",void 0),e([l()],x.prototype,"rangeLabelInputsEnabled",void 0),e([l()],x.prototype,"rangeLabelsVisible",null),e([l({readOnly:!0})],x.prototype,"segmentElements",void 0),e([l()],x.prototype,"snapOnClickEnabled",void 0),e([l({readOnly:!0})],x.prototype,"state",null),e([l()],x.prototype,"steps",void 0),e([l()],x.prototype,"syncedSegmentsEnabled",void 0),e([r("viewModel.thumbsConstrained")],x.prototype,"thumbsConstrained",void 0),e([l()],x.prototype,"thumbCreatedFunction",void 0),e([l({readOnly:!0})],x.prototype,"thumbElements",void 0),e([l()],x.prototype,"tickConfigs",null),e([l({readOnly:!0})],x.prototype,"tickElements",void 0),e([l({readOnly:!0})],x.prototype,"trackElement",void 0),e([r("viewModel.values")],x.prototype,"values",void 0),e([l()],x.prototype,"viewModel",void 0),e([l()],x.prototype,"visibleElements",void 0),e([a("visibleElements")],x.prototype,"castVisibleElements",null),x=e([h(b)],x);const k=x;export{k as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{deprecatedProperty as i}from"../core/deprecate.js";import{eventKey as n}from"../core/events.js";import s from"../core/Logger.js";import{isSome as o}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./Slider/SliderViewModel.js";import{onResize as m}from"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as _}from"./support/jsxFactory.js";import{substitute as p}from"../intl/substitute.js";const v={base:"esri-slider",reversed:"esri-slider--reversed",horizontalLayout:"esri-slider--horizontal",verticalLayout:"esri-slider--vertical",contentElement:"esri-slider__content",extraContentElement:"esri-slider__extra-content",trackElement:"esri-slider__track",ticksContainerElement:"esri-slider__ticks",tickElement:"esri-slider__tick",tickLabelElement:"esri-slider__tick-label",maxElement:"esri-slider__max",minElement:"esri-slider__min",maxElementInteractive:"esri-slider__max--interactive",minElementInteractive:"esri-slider__min--interactive",rangeInput:"esri-slider__range-input",anchorElement:"esri-slider__anchor",movingAnchorElement:"esri-slider__anchor--moving",lastMovedAnchorElement:"esri-slider__anchor--moved",anchorElementActive:"esri-slider__anchor--active",anchorElementIndexPrefix:"esri-slider__anchor-",segmentElement:"esri-slider__segment",segmentElementIndexPrefix:"esri-slider__segment-",segmentElementInteractive:"esri-slider__segment--interactive",segmentElementActive:"esri-slider__segment--active",effectiveSegmentElement:"esri-slider__effective-segment",effectiveMaxSegmentElement:"esri-slider__effective-max-segment",effectiveMinSegmentElement:"esri-slider__effective-min-segment",thumbElement:"esri-slider__thumb",labelElement:"esri-slider__label",labelElementInteractive:"esri-slider__label--interactive",labelInput:"esri-slider__label-input",esriWidget:"esri-widget",widgetIcon:"esri-icon-edit",disabled:"esri-disabled",hidden:"esri-hidden"},g={showInput:"Enter",hideInput1:"Enter",hideInput2:"Escape",hideInput3:"Tab",moveAnchorUp:"ArrowUp",moveAnchorDown:"ArrowDown",moveAnchorLeft:"ArrowLeft",moveAnchorRight:"ArrowRight",moveAnchorToMax:"End",moveAnchorToMin:"Home"},f="esri.widgets.Slider",b=s.getLogger("esri.widgets.Slider"),E={labels:!1,rangeLabels:!1};let x=class extends d{constructor(e,i){super(e,i),this._activeLabelInputIndex=null,this._anchorElements=[],this._dragged=!1,this._dragStartInfo=null,this._focusedAnchorIndex=null,this._isMinInputActive=!1,this._isMaxInputActive=!1,this._lastMovedHandleIndex=null,this._positionPrecision=5,this._segmentDragStartInfo=null,this._trackHeight=null,this._trackWidth=null,this._zIndices=null,this._zIndexOffset=3,this.disabled=!1,this.draggableSegmentsEnabled=!0,this.effectiveMax=null,this.effectiveMin=null,this.effectiveSegmentElements=new t,this.extraNodes=[],this.inputCreatedFunction=null,this.inputFormatFunction=null,this.inputParseFunction=null,this.label=void 0,this.labelElements=new t,this.labelInputsEnabled=!1,this.labelFormatFunction=null,this.labels=null,this.max=null,this.maxLabelElement=null,this.messages=null,this.min=null,this.minLabelElement=null,this.precision=4,this.rangeLabelInputsEnabled=!1,this.segmentElements=new t,this.snapOnClickEnabled=!0,this.steps=null,this.syncedSegmentsEnabled=!1,this.thumbsConstrained=!0,this.thumbCreatedFunction=null,this.thumbElements=new t,this.tickElements=new t,this.trackElement=null,this.values=null,this.viewModel=new c,this.visibleElements={...E},this._onAnchorPointerDown=this._onAnchorPointerDown.bind(this),this._onAnchorPointerMove=this._onAnchorPointerMove.bind(this),this._onAnchorPointerUp=this._onAnchorPointerUp.bind(this),this._onLabelPointerDown=this._onLabelPointerDown.bind(this),this._onLabelPointerUp=this._onLabelPointerUp.bind(this),this._onSegmentPointerDown=this._onSegmentPointerDown.bind(this),this._onSegmentPointerMove=this._onSegmentPointerMove.bind(this),this._onSegmentPointerUp=this._onSegmentPointerUp.bind(this),this._onTrackPointerDown=this._onTrackPointerDown.bind(this),this._onTrackPointerMove=this._onTrackPointerMove.bind(this),this._onTrackPointerUp=this._onTrackPointerUp.bind(this)}destroy(){document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove),document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),this.labelElements.removeAll(),this.labelElements.destroy(),this.segmentElements.removeAll(),this.segmentElements.destroy(),this.effectiveSegmentElements.removeAll(),this.effectiveSegmentElements.destroy(),this.thumbElements.removeAll(),this.thumbElements.destroy(),this.tickElements.removeAll(),this.tickElements.destroy()}set labelsVisible(e){i(b,"labelsVisible",{replacement:"visibleElements.labels",version:"4.15"}),this.visibleElements={...this.visibleElements,labels:e}}set layout(e){-1===["vertical","vertical-reversed","horizontal","horizontal-reversed"].indexOf(e)&&(e="horizontal"),this._set("layout",e)}set rangeLabelsVisible(e){i(b,"rangeLabelsVisible",{replacement:"visibleElements.rangeLabels",version:"4.15"}),this.visibleElements={...this.visibleElements,rangeLabels:e}}get state(){const{_activeLabelInputIndex:e,_isMaxInputActive:t,_isMinInputActive:i,_dragStartInfo:n,_segmentDragStartInfo:s,disabled:r,viewModel:a}=this,l=o(n)||o(s);return r?"disabled":!(null===e&&!t&&!i)?"editing":l?"dragging":a.state}set tickConfigs(e){this._set("tickConfigs",e),this.scheduleRender()}castVisibleElements(e){return{...E,...e}}render(){const{label:e}=this,t=this.classes(v.base,v.esriWidget,this._isHorizontalLayout()?v.horizontalLayout:v.verticalLayout,this._isReversedLayout()?v.reversed:null,this._isDisabled()?v.disabled:null);return this._storeTrackDimensions(),_("div",{"aria-label":e,class:t,"touch-action":"none",bind:this,afterCreate:this._afterContainerCreate},this.renderContent())}toNextStep(e){this._toStep(e,1)}toPreviousStep(e){this._toStep(e,-1)}renderContent(){const{max:e,min:t}=this;if(o(t)&&o(e)&&!(t>=e))return[this.renderMin(),this.renderSliderContainer(),this.renderMax()]}renderSliderContainer(){return _("div",{key:"slider-container",bind:this,class:v.contentElement},this.renderTrackElement(),this.renderTicksContainer(),this.renderExtraContentElements())}renderTrackElement(){return _("div",{afterCreate:this._afterTrackCreate,afterRemoved:this._afterTrackRemoved,bind:this,class:v.trackElement,"data-node-ref":"trackElement","touch-action":"none"},this.renderEffectiveSegmentElements(),this.renderSegmentElements(),this.renderAnchorElements())}renderEffectiveSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=o(this.effectiveMax),t=o(this.effectiveMin);if(!e&&!t)return;const{max:i,min:n,viewModel:s}=this,r=s.getBounds(),a=[];return t&&a.push(this.renderEffectiveSegmentElement(n,r.min,v.effectiveMinSegmentElement)),e&&a.push(this.renderEffectiveSegmentElement(r.max,i,v.effectiveMaxSegmentElement)),a}renderSegmentElements(){if(!this.trackElement||!this.values||!this.values.length)return;const e=this.values.length,t=[];for(let i=0;i<=e;i++)t.push(this.renderSegmentElement(i));return t}renderSegmentElement(e){const{_trackHeight:t,_trackWidth:i,draggableSegmentsEnabled:n,id:s,state:r,values:a}=this,l=this._isHorizontalLayout(),h=l?i:t,d=this.viewModel.getBounds(),c=this._positionFromValue(d.max),m=this._positionFromValue(d.min),u=e===a.length?null:e,p=0===e?null:e-1,g=o(u),f=o(p);let b,E;const x=[...a].sort(((e,t)=>e-t));this._isReversedLayout()?(b=f?this._positionFromValue(x[p]):l?c:m,E=g?this._positionFromValue(x[u]):l?m:c):(b=g?this._positionFromValue(x[u]):l?c:m,E=f?this._positionFromValue(x[p]):l?m:c);const k=this._applyPrecisionToPosition(100*E/h),y=(b-E)/h,I=l?`transform: translate(${k}%, 0px) scale(${y}, 1);`:`transform: translate(0px, ${k}%) scale(1, ${y});`,P=this.classes(v.segmentElement,v.segmentElementIndexPrefix+e,n&&g&&f&&"disabled"!==r?v.segmentElementInteractive:null);return _("div",{afterCreate:this._afterSegmentCreate,afterRemoved:this._afterSegmentRemoved,bind:this,class:P,"data-max-thumb-index":u,"data-min-thumb-index":p,"data-segment-index":e,key:`${s}-segment-${e}`,style:I,"touch-action":"none"})}renderEffectiveSegmentElement(e,t,i){const{_trackHeight:n,_trackWidth:s}=this,o=this._positionFromValue(e),r=this._positionFromValue(t),a=this._isHorizontalLayout(),l=a?s:n,h=this._applyPrecisionToPosition(100*o/l),d=(r-o)/l,c=a?`transform: translate(${h}%, 0px) scale(${d}, 1);`:`transform: translate(0px, ${h}%) scale(1, ${d});`,m=this.classes(v.segmentElement,v.effectiveSegmentElement,i);return _("div",{afterCreate:this._afterEffectiveSegmentCreate,afterRemoved:this._afterEffectiveSegmentRemoved,bind:this,class:m,style:c,"touch-action":"none"})}renderAnchorElements(){const{trackElement:e,values:t}=this;if(t&&t.length)return this._zIndices=t.map(((e,i)=>{const n=this._positionFromValue(e),s=this._positionToPercent(n),o=(this._isHorizontalLayout()?s>50:s<50)?-1:1;return this._zIndexOffset+(t.length+o*i)})),e&&t&&t.length?t.map(((e,t)=>this.renderAnchorElement(e,t))):null}renderAnchorElement(e,t){const i=this._positionFromValue(e),n=this._valueFromPosition(i);if(!o(n)||isNaN(n))return;const{_dragStartInfo:s,_lastMovedHandleIndex:r,id:a,layout:l,values:h,visibleElements:{labels:d}}=this,c=s&&s.index===t,m=r===t,u=this.classes(v.anchorElement,v.anchorElementIndexPrefix+t,c?v.movingAnchorElement:null,m?v.lastMovedAnchorElement:null),g=this.labels.values[t],f=this._getStyleForAnchor(e,t,c||m),{min:b,max:E}=this.viewModel.getBoundsForValueAtIndex(t),{messages:x}=this,k=2===h.length?p(0===t?x.rangeMinimum:x.rangeMaximum,{value:e}):g,y=1===h.length?null:0===t?`${a}-handle-${t+1}`:t===h.length-1?`${a}-handle-${t-1}`:`${a}-handle-${t-1} ${a}-handle-${t+1}`;return _("div",{afterCreate:this._afterAnchorCreate,afterUpdate:this._afterAnchorUpdate,afterRemoved:this._afterAnchorRemoved,"aria-controls":y,"aria-label":x.sliderValue,"aria-labelledby":d?`${a}-label-${t}`:null,"aria-orientation":l,"aria-valuemax":E.toString(),"aria-valuemin":b.toString(),"aria-valuenow":e.toString(),"aria-valuetext":k,bind:this,class:u,"data-thumb-index":t,"data-value":e,id:`${a}-handle-${t}`,key:`${a}-handle-${t}`,onkeydown:this._onAnchorKeyDown,"touch-action":"none",role:"slider",style:f,tabIndex:0},_("span",{afterCreate:this._afterThumbCreate,afterRemoved:this._afterThumbRemoved,bind:this,class:v.thumbElement,"data-thumb-index":t,"touch-action":"none"}),this.renderThumbLabel(t))}renderThumbLabel(e){const{id:t,labels:i,labelInputsEnabled:n,state:s}=this,o=this.visibleElements.labels,r=i.values[e],a=this.classes(v.labelElement,o?null:v.hidden,n&&"disabled"!==s?v.labelElementInteractive:null);return _("span",{afterCreate:this._afterLabelCreate,afterRemoved:this._afterLabelRemoved,"aria-hidden":(!o).toString(),bind:this,class:a,"data-thumb-index":e,key:`${t}-label-${e}`,id:`${t}-label-${e}`,role:n?"button":null,"touch-action":"none"},this._activeLabelInputIndex===e?this.renderValueInput(e):r)}renderValueInput(e){const t=this.values[e];return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.sliderValue,bind:this,class:v.labelInput,"data-input-type":"thumb","data-input-index":e,required:!0,tabIndex:0,type:"text",value:this._formatInputValue(t,"value",e),onblur:this._onLabelInputBlur,onkeydown:this._onInputKeyDown})}renderMax(){const{_isMaxInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.maxElement,s?null:v.hidden,i&&"disabled"!==n?v.maxElementInteractive:null);return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMaxLabelCreate,bind:this,class:o,onclick:this._onMaxLabelClick,onkeydown:this._onMaxLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMaxInput():t.max)}renderMin(){const{_isMinInputActive:e,labels:t,rangeLabelInputsEnabled:i,state:n}=this,s=this.visibleElements.rangeLabels,o=this.classes(v.minElement,s?null:v.hidden,i&&"disabled"!==n?v.minElementInteractive:null);return _("div",{"aria-hidden":(!s).toString(),afterCreate:this._afterMinLabelCreate,bind:this,class:o,onclick:this._onMinLabelClick,onkeydown:this._onMinLabelKeyDown,role:i?"button":null,tabIndex:i?0:null},e?this.renderMinInput():t.min)}renderMaxInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.maximumValue,bind:this,class:v.rangeInput,"data-input-type":"max",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.max,"max"),onblur:this._onMaxInputBlur,onkeydown:this._onInputKeyDown})}renderMinInput(){return _("input",{afterCreate:this._afterInputCreate,"aria-label":this.messages.minimumValue,bind:this,class:v.rangeInput,"data-input-type":"min",required:!0,tabIndex:0,type:"text",value:this._formatInputValue(this.min,"min"),onblur:this._onMinInputBlur,onkeydown:this._onInputKeyDown})}renderExtraContentElements(){return _("div",{bind:this,class:v.extraContentElement},this.extraNodes)}renderTicksContainer(){if(this.tickConfigs&&this.trackElement&&(0!==this._trackHeight||0!==this._trackWidth))return this.tickConfigs.map(((e,t)=>_("div",{key:"ticks-container",class:this.classes(v.ticksContainerElement)},this.renderTicks(e,t))))}renderTicks(e,i){const{mode:n,values:s}=e;if(this.tickElements.getItemAt(i)||this.tickElements.add(new t,i),"position"===n){const t=Array.isArray(s)?s:[s];return this._calculateTickPositions(t).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}if("percent"===n&&Array.isArray(s)){const{max:t,min:n}=this,o=t-n,r=s.map((e=>this._applyPrecisionToPosition(e/100*o+n)));return this._calculateTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}const o=Array.isArray(s)&&s.length?s[0]:isNaN(s)?null:s,r=this._getTickCounts(o,e);return this._calculateEquidistantTickPositions(r).map(((t,n)=>this.renderTickGroup(e,n,i,t)))}renderTickGroup(e,t,i,n){const s="position"===e.mode?Array.isArray(e.values)?e.values[t]:e.values:this._valueFromPosition(n);if(o(s)&&!isNaN(s))return _("div",{afterCreate:this._afterTickGroupCreate,afterRemoved:this._afterTickGroupRemoved,bind:this,"data-config":e,"data-position":n,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":s,onclick:this._onTickGroupClick,key:`tick-group-${t}`},this.renderTickLine(e,t,i,s),e.labelsVisible?this.renderTickLabel(e,t,i,s):null)}renderTickLine(e,t,i,n){return _("div",{afterCreate:this._afterTickLineCreate,"aria-valuenow":n.toString(),bind:this,class:v.tickElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:this._getPositionStyleForElement(n)})}renderTickLabel(e,t,i,n){const s=e.labelFormatFunction?e.labelFormatFunction(n,"tick",t):this.viewModel.getLabelForValue(n,"tick",t);return _("div",{afterCreate:this._afterTickLabelCreate,"aria-label":s,"aria-valuenow":n.toString(),"aria-valuetext":s,bind:this,class:v.tickLabelElement,"data-config":e,"data-tick-config-index":i,"data-tick-group-index":t,"data-value":n,key:`tick-label-${t}`,style:`transform: translate(-50%); ${this._getPositionStyleForElement(n)}`},s)}_afterContainerCreate(e){this.own(m(e,(()=>this.scheduleRender())))}_afterTrackCreate(e){this._set("trackElement",e),e.addEventListener("pointerdown",this._onTrackPointerDown),this.scheduleRender()}_afterTrackRemoved(e){e.removeEventListener("pointerdown",this._onTrackPointerDown),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp)}_afterSegmentCreate(e){this.segmentElements.add(e),e.addEventListener("pointerdown",this._onSegmentPointerDown)}_afterSegmentRemoved(e){this.segmentElements.remove(e),e.removeEventListener("pointerdown",this._onSegmentPointerDown)}_afterEffectiveSegmentCreate(e){this.effectiveSegmentElements.add(e)}_afterEffectiveSegmentRemoved(e){this.effectiveSegmentElements.remove(e)}_afterAnchorCreate(e){if(this._anchorElements.push(e),e.addEventListener("pointerdown",this._onAnchorPointerDown),this.thumbCreatedFunction){const t=e["data-thumb-index"],i=e["data-value"],n=this.thumbElements.getItemAt(t)||null,s=this.labelElements.getItemAt(t)||null;this.thumbCreatedFunction(t,i,n,s)}}_afterAnchorUpdate(e){if(o(this._focusedAnchorIndex)){e["data-thumb-index"]===this._focusedAnchorIndex&&(e.focus(),this._focusedAnchorIndex=null)}}_afterAnchorRemoved(e){const t=this._anchorElements.indexOf(e,0);t>-1&&this._anchorElements.splice(t,1),e.removeEventListener("pointerdown",this._onAnchorPointerDown)}_afterThumbCreate(e){this.thumbElements.add(e)}_afterThumbRemoved(e){this.thumbElements.remove(e)}_afterLabelCreate(e){this.labelElements.add(e),e.addEventListener("pointerdown",this._onLabelPointerDown),e.addEventListener("pointerup",this._onLabelPointerUp)}_afterLabelRemoved(e){this.labelElements.remove(e),e.removeEventListener("pointerdown",this._onLabelPointerDown),e.removeEventListener("pointerup",this._onLabelPointerUp)}_afterInputCreate(e){if(e.focus(),e.select(),this.inputCreatedFunction){const t=e.getAttribute("data-input-type"),i="thumb"===t?e["data-input-index"]:null;this.inputCreatedFunction(e,t,i)}}_afterTickLineCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).tickElement=e:n.add({groupElement:null,tickElement:e,labelElement:null},i)}_afterTickLabelCreate(e){const t=e["data-tick-config-index"],i=e["data-tick-group-index"],n=this.tickElements.getItemAt(t);n.getItemAt(i)?n.getItemAt(i).labelElement=e:n.add({groupElement:null,labelElement:e,tickElement:null},i)}_afterTickGroupRemoved(e){const t=e["data-tick-config-index"],i=this.tickElements.items[t],n=null==i?void 0:i.find((t=>t.groupElement===e));n&&i.remove(n)}_afterTickGroupCreate(e){const t=e["data-config"];if(t&&t.tickCreatedFunction){var i,n;const s=e["data-tick-config-index"],o=e["data-tick-group-index"],r=e["data-value"],a=null==(i=this.tickElements)||null==(n=i.getItemAt(s))?void 0:n.getItemAt(o);if(a){a.groupElement=e;const i=a.tickElement||null,n=a.labelElement||null;t.tickCreatedFunction(r,i,n)}}}_afterMaxLabelCreate(e){this._set("maxLabelElement",e)}_afterMinLabelCreate(e){this._set("minLabelElement",e)}_onAnchorKeyDown(e){if(this._isDisabled()||"editing"===this.state)return;const{target:t}=e,i=n(e),{_anchorElements:s,values:r}=this,a=t["data-thumb-index"],l=s[a],h=r[a],d=[g.moveAnchorUp,g.moveAnchorDown,g.moveAnchorLeft,g.moveAnchorRight];if(i===g.showInput&&this.labelInputsEnabled)this._activeLabelInputIndex=a,this.notifyChange("state");else if(d.indexOf(i)>-1){e.preventDefault();const{steps:t}=this,n=i===g.moveAnchorUp||i===g.moveAnchorRight?1:-1;if(o(t))this._toStep(a,this._isReversedLayout()?-1*n:n);else{const{precision:e}=this,t=this._getPositionOfElement(l),i=this._valueFromPosition(t),s=this._isHorizontalLayout()?n:-1*n;let o;o=0===e?this._positionFromValue(i+s):1===e?this._positionFromValue(i+.1*s):t+s,this._toPosition(a,o)}const s=this.values[a];h!==s&&this._emitThumbChangeEvent({index:a,oldValue:h,value:s})}else if(i===g.moveAnchorToMax||i===g.moveAnchorToMin){e.preventDefault();const{min:t,max:n}=this._getAnchorBoundsInPixels(a),s=this._isPositionInverted()?i===g.moveAnchorToMax?t:n:i===g.moveAnchorToMin?t:n;this._toPosition(a,s);const o=this.values[a];h!==o&&this._emitThumbChangeEvent({index:a,oldValue:h,value:o})}}_onAnchorPointerDown(e){if(this._isDisabled())return;const{target:t,clientX:i,clientY:n}=e,s=t["data-thumb-index"];void 0!==s&&(e.preventDefault(),this._anchorElements[s]&&this._anchorElements[s].focus(),this._storeTrackDimensions(),this._dragStartInfo={clientX:i,clientY:n,index:s,position:this._getPositionOfElement(this._anchorElements[s])},this.notifyChange("state"),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onAnchorPointerMove(e){if("editing"===this.state||!this._dragStartInfo)return;e.preventDefault();const{values:t,_anchorElements:i,_dragged:n,_dragStartInfo:s,_dragStartInfo:{index:o,position:r}}=this,{clientX:a,clientY:l}=e,h=n?"drag":"start",d=i[o],c=this._getPositionOfElement(d),m=this._applyPrecisionToPosition(this._isHorizontalLayout()?r+a-s.clientX:r+l-s.clientY);if(c===m)return;const u=t[o];this._dragged=!0,this._toPosition(o,m);const _=this.values[o];n?u!==_&&this._emitThumbDragEvent({index:o,state:h,value:_}):this._emitThumbDragEvent({index:o,state:h,value:u})}_onAnchorPointerUp(e){if(document.removeEventListener("pointerup",this._onAnchorPointerUp),document.removeEventListener("pointermove",this._onAnchorPointerMove),!this._dragStartInfo)return;e.preventDefault();const{index:t}=this._dragStartInfo,i=this._dragged,n=this.values[t];this._dragged=!1,this._dragStartInfo=null,this._lastMovedHandleIndex=t,this.notifyChange("state"),i?this._emitThumbDragEvent({index:t,state:"stop",value:n}):(this.scheduleRender(),"editing"!==this.state&&this._emitThumbClickEvent({index:t,value:n}))}_onTrackPointerDown(e){const{_dragStartInfo:t,snapOnClickEnabled:i,state:n,values:s}=this;if(this._isDisabled()||"editing"===n||t)return;if(document.addEventListener("pointermove",this._onTrackPointerMove),document.addEventListener("pointerup",this._onTrackPointerUp),!i||!s.length)return;const{steps:r}=this,{clientX:a,clientY:l}=e,h=this._getCursorPositionFromEvent(e),d=this._valueFromPosition(h),c=this._getIndexOfNearestValue(d),m=s[c],u=s.some(((e,t)=>e===m&&t!==c))&&d>m?this.values.lastIndexOf(m):c;if(!o(u))return;const _=s[u],p=o(r)?this._calculateNearestStepPosition(h):h;this._toPosition(u,p),this._dragged=!0,this._dragStartInfo={clientX:a,clientY:l,index:u,position:p},this._focusedAnchorIndex=u,this.notifyChange("state"),this._emitThumbDragEvent({index:u,state:"start",value:_});const v=this.values[u];_!==v&&this._emitThumbDragEvent({index:u,state:"drag",value:v}),document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove)}_onTrackPointerMove(e){e.preventDefault(),this._dragged=!0}_onTrackPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointermove",this._onTrackPointerMove),document.removeEventListener("pointerup",this._onTrackPointerUp),this.snapOnClickEnabled||(this._dragged=!1),!this._dragged){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitTrackClickEvent({value:i})}}_onSegmentPointerDown(e){e.preventDefault();const t=e.target,i=t["data-segment-index"],n=t["data-min-thumb-index"],s=t["data-max-thumb-index"];if(this._isDisabled()||!o(n)||!o(s))return;e.stopPropagation(),this._storeTrackDimensions(),document.addEventListener("pointerup",this._onSegmentPointerUp);const r=this._getAnchorDetails(n),a=this._getAnchorDetails(s);var l,h;this.syncedSegmentsEnabled?(this.segmentElements.forEach((e=>e.classList.add(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.add(v.anchorElementActive)))):(this.segmentElements.getItemAt(i).classList.add(v.segmentElementActive),null==(l=this._anchorElements[r.index])||l.classList.add(v.anchorElementActive),null==(h=this._anchorElements[a.index])||h.classList.add(v.anchorElementActive));this._segmentDragStartInfo={cursorPosition:this._getCursorPositionFromEvent(e),index:i,details:this._normalizeSegmentDetails({min:r,max:a})},this.draggableSegmentsEnabled&&(document.addEventListener("pointermove",this._onSegmentPointerMove),this.notifyChange("state"),this._emitSegmentDragEvent({index:i,state:"start",thumbIndices:[n,s]}))}_onSegmentPointerMove(e){if(!this._segmentDragStartInfo)return;e.preventDefault();const{_trackHeight:t,_trackWidth:i,_segmentDragStartInfo:{index:n,cursorPosition:s,details:{min:o,max:r}}}=this,{index:a,position:l,value:h}=o,{index:d,position:c,value:m}=r;this._dragged=!0;const u=this._getCursorPositionFromEvent(e);if(u===s)return;const _=this._positionToPercent(s),p=this._positionToPercent(u)-_,v=this._positionToPercent(l)+p,g=this._positionToPercent(c)+p,{min:f}=this._getAnchorBoundsAsPercents(a),{max:b}=this._getAnchorBoundsAsPercents(d);let E=!1,x=!1;if(v<f?E=!0:g>b&&(x=!0),E){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(a),i=this._isPositionInverted()?t:e,n=i,s=m+(i-h),o=s-this.values[d];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[n,s]))}if(x){const{min:e,max:t}=this.viewModel.getBoundsForValueAtIndex(d),i=this._isPositionInverted()?e:t,n=i,s=h+(i-m),o=s-this.values[a];return void(this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(o):this._updateAnchorValues([a,d],[s,n]))}const k=this._isHorizontalLayout()?i:t,y=g/100*k,I=v/100*k,P=this.values,A=[P[a],P[d]],L=this._getValueForAnchorAtPosition(a,I),S=this._getValueForAnchorAtPosition(d,y);this.syncedSegmentsEnabled?this._updateAnchorValuesByDifference(L-A[0]):this._updateAnchorValues([a,d],[L,S]);[this.values[a],this.values[d]].every(((e,t)=>e===A[t]))||this._emitSegmentDragEvent({index:n,state:"drag",thumbIndices:[a,d]})}_onSegmentPointerUp(e){if(e.preventDefault(),document.removeEventListener("pointerup",this._onSegmentPointerUp),document.removeEventListener("pointermove",this._onSegmentPointerMove),!this._segmentDragStartInfo)return;const{_dragged:t,max:i,min:n,values:s}=this,{index:o,details:{min:{index:r},max:{index:a}}}=this._segmentDragStartInfo;if(this.segmentElements.forEach((e=>e.classList.remove(v.segmentElementActive))),this._anchorElements.forEach((e=>e.classList.remove(v.anchorElementActive))),this.draggableSegmentsEnabled){const e=i-n,t=s[r],l=s[a];this._lastMovedHandleIndex=t===l?t>e/2?r:a:null,this._dragged=!1,this._segmentDragStartInfo=null,this.notifyChange("state"),this._emitSegmentDragEvent({index:o,state:"stop",thumbIndices:[r,a]})}if(!t){const t=this._getCursorPositionFromEvent(e),i=this._valueFromPosition(t);this._emitSegmentClickEvent({index:o,value:i,thumbIndices:[r,a]})}}_onTickGroupClick(e){const t=e.target;if(t["data-config"]){const e=t["data-tick-config-index"],i=t["data-tick-group-index"],n=t["data-value"];this._emitTickClickEvent({configIndex:e,groupIndex:i,value:n})}}_storeTrackDimensions(){if(this.trackElement){const e=this._getDimensions(this.trackElement);this._trackHeight=e.height,this._trackWidth=e.width}}_onLabelPointerDown(){this._isDisabled()||(this._dragged=!1,document.addEventListener("pointerup",this._onAnchorPointerUp),document.addEventListener("pointermove",this._onAnchorPointerMove))}_onLabelPointerMove(){this._isDisabled()||(this._dragged=!0)}_onLabelPointerUp(e){if(this._isDisabled())return;const t=e.target["data-thumb-index"];this.labelInputsEnabled&&!this._dragged&&o(t)&&(this._activeLabelInputIndex=t),this._dragged=!1,this.notifyChange("state"),document.removeEventListener("pointerup",this._onLabelPointerUp),document.removeEventListener("pointermove",this._onLabelPointerMove)}_onLabelInputBlur(e){const{_activeLabelInputIndex:t,values:i,viewModel:n}=this,s=e.target.value;if(this._activeLabelInputIndex=null,this.notifyChange("state"),!s)return;const o=this._parseInputValue(s,"value",t),r=i[t],{min:a,max:l}=this.viewModel.getBoundsForValueAtIndex(t);if(o<a||o>l)return;n.setValue(t,o);const h=this.values[t];r!==h&&this._emitThumbChangeEvent({index:t,oldValue:r,value:h})}_onInputKeyDown(e){if(this._isDisabled())return;const{target:t}=e,i=n(e),{hideInput1:s,hideInput2:r,hideInput3:a}=g,{_activeLabelInputIndex:l,_anchorElements:h}=this,d=t;if(i===s||i===r||i===a){e.stopPropagation();const t=l;d.blur(),o(t)?h[t].focus():d.parentElement.focus()}}_onMaxLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"max-click",value:this.max}),this.rangeLabelInputsEnabled&&(this._isMaxInputActive=!0,this.notifyChange("state")))}_onMaxLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMaxInputActive=!0,this.notifyChange("state"))}_onMaxInputBlur(e){const t=e.target.value;if(this._isMaxInputActive=!1,this.notifyChange("state"),!t)return;const i=this.max,n=this._parseInputValue(t,"max");n<=this.min||(this.viewModel.set("max",n),this.max!==i&&this._emitMaxChangeEvent({oldValue:i,value:this.max}))}_onMinLabelClick(){this._isDisabled()||(this._emitRangeLabelClickEvent({type:"min-click",value:this.min}),this.rangeLabelInputsEnabled&&(this._isMinInputActive=!0,this.notifyChange("state")))}_onMinLabelKeyDown(e){this._isDisabled()||n(e)!==g.showInput||(this._isMinInputActive=!0,this.notifyChange("state"))}_onMinInputBlur(e){const t=e.target.value;if(this._isMinInputActive=!1,this.notifyChange("state"),!t)return;const i=this.min,n=this._parseInputValue(t,"min");n>=this.max||(this.viewModel.set("min",n),this.min!==i&&this._emitMinChangeEvent({oldValue:i,value:this.min}))}_isDisabled(){return this.disabled||"disabled"===this.state}_positionFromValue(e){const{max:t,min:i}=this,n=t-i;if(0===n)return 0;const{_trackHeight:s,_trackWidth:o}=this,r=this._isHorizontalLayout();let a=r?parseFloat((o*(e-i)/n).toFixed(2)):parseFloat((s*(t-e)/n).toFixed(2));return this._isReversedLayout()&&(a=r?o-a:s-a),a}_valueFromPosition(e){const{_trackHeight:t,_trackWidth:i,max:n,min:s,precision:o}=this,r=n-s;let a=this._isHorizontalLayout()?e*r/i+s:r*(1e3-e/t*1e3)/1e3+s;return this._isReversedLayout()&&(a=n+s-a),parseFloat(a.toFixed(o))}_positionToPercent(e){const{_trackHeight:t,_trackWidth:i}=this,n=100*e/(this._isHorizontalLayout()?i:t);return this._applyPrecisionToPosition(n)}_applyPrecisionToPosition(e){return parseFloat(e.toFixed(this._positionPrecision))}_isPositionInverted(){const{layout:e}=this;return"horizontal-reversed"===e||"vertical"===e}_isHorizontalLayout(){return this.layout.indexOf("horizontal")>-1}_isReversedLayout(){return this.layout.indexOf("reversed")>-1}_normalizeSegmentDetails(e){if(this._isPositionInverted()){const{min:t,max:i}=e;return{min:i,max:t}}return e}_parseInputValue(e,t,i){return this.inputParseFunction?this.inputParseFunction(e,t,i):this.viewModel.defaultInputParseFunction(e)}_formatInputValue(e,t,i){return this.inputFormatFunction?this.inputFormatFunction(e,t,i):this.viewModel.defaultInputFormatFunction(e)}_getAnchorDetails(e){const t=[...this.values].sort(((e,t)=>e-t))[e],i=this.values.indexOf(t);return{index:i,position:this._getPositionOfElement(this._anchorElements[i]),value:t}}_updateAnchorStyle(e,t){const i=this._anchorElements[e];i&&(this._isHorizontalLayout()?i.style.left=`${t}`:i.style.top=`${t}`)}_getStyleForAnchor(e,t,i){const n=this._getPositionStyleForElement(e);if(1===this.values.length)return`${n}`;const s=this._zIndices[t];return`${n}; z-index: ${i?this._zIndexOffset+s:s}`}_getPositionStyleForElement(e){const t=this._positionFromValue(e),i=this._positionToPercent(t);return`${this._isHorizontalLayout()?"left":"top"}: ${i+"%"}`}_getPositionOfElement(e){const t=this._getDimensions(e.offsetParent),i=this._getDimensions(e);return this._isHorizontalLayout()?this._applyPrecisionToPosition(i.left-t.left):this._applyPrecisionToPosition(i.top-t.top)}_updateAnchorValues(e,t){e.forEach(((e,i)=>this._toValue(e,t[i])))}_updateAnchorValuesByDifference(e){const{min:t,max:i,values:n}=this;n.forEach(((n,s)=>this._toValue(s,Math.max(Math.min(n+e,i),t))))}_toValue(e,t){if(o(this.steps)){t=this._getStepValues()[this._getIndexOfNearestStepValue(t)]}this._updateAnchorStyle(e,this._getPositionStyleForElement(t)),this.viewModel.setValue(e,t)}_toPosition(e,t){const i=o(this.steps)?this._getStepValueForAnchorAtPosition(e,t):this._getValueForAnchorAtPosition(e,t);this._updateAnchorStyle(e,this._getPositionStyleForElement(i)),this.viewModel.setValue(e,i)}_getValueForAnchorAtPosition(e,t){const{min:i,max:n}=this._getAnchorBoundsInPixels(e),{min:s,max:o}=this.viewModel.getBoundsForValueAtIndex(e);let r,a,l=null;return this._isPositionInverted()?(r=s,a=o):(r=o,a=s),l=t>n?r:t<i?a:this._valueFromPosition(t),l>o?l=o:l<s&&(l=s),l}_getStepValueForAnchorAtPosition(e,t){const i=this._getStepValues(),n=this._calculateNearestStepPosition(t),s=this._getValueForAnchorAtPosition(e,n);return i[this._getIndexOfNearestStepValue(s)]}_getAnchorBoundsAsPercents(e){const{min:t,max:i}=this._getAnchorBoundsInPixels(e);return{min:this._positionToPercent(t),max:this._positionToPercent(i)}}_getAnchorBoundsInPixels(e){const{_anchorElements:t,_trackHeight:i,_trackWidth:n,effectiveMax:s,effectiveMin:r,thumbsConstrained:a}=this,l=t[e-1],h=t[e+1],d=this._isHorizontalLayout()?n:i,c=o(s)?this._isPositionInverted()?d-this._positionFromValue(s):this._positionFromValue(s):d,m=o(r)?this._isPositionInverted()?d-this._positionFromValue(r):this._positionFromValue(r):0;return a?this._isPositionInverted()?{max:l?this._getPositionOfElement(l):c,min:h?this._getPositionOfElement(h):m}:{max:h?this._getPositionOfElement(h):c,min:l?this._getPositionOfElement(l):m}:{max:c,min:m}}_getIndexOfNearestValue(e){return this.values.indexOf(this.values.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t)))}_getCursorPositionFromEvent(e){const t=this._getDimensions(this.trackElement);return this._isHorizontalLayout()?e.clientX-t.left:e.clientY-t.top}_getStepValues(){const{steps:e}=this;if(Array.isArray(e))return e;const{max:t,min:i}=this,n=Math.ceil((t-i)/e),s=[];for(let o=0;o<=n;o++){const n=i+e*o;s.push(n>t?t:n)}return s}_toStep(e,t){const{values:i,viewModel:n}=this,s=i[e],o=this._getStepValues(),r=o.indexOf(s);let a=null;if(r>-1){let i=o[r+t];isNaN(i)&&(i=o[r]);const n=this._positionFromValue(i);a=this._getStepValueForAnchorAtPosition(e,n)}else{a=o[this._getIndexOfNearestStepValue(s)+t]}n.setValue(e,a)}_getIndexOfNearestStepValue(e){const{steps:t}=this;if(!o(t))return null;const i=this._getStepValues(),n=i.reduce(((t,i)=>Math.abs(i-e)<Math.abs(t-e)?i:t));return i.indexOf(n)}_calculateNearestStepPosition(e){const t=this._valueFromPosition(e),i=this._getIndexOfNearestStepValue(t),n=this._getStepValues();return this._positionFromValue(n[i])}_getTickCounts(e,t){const{mode:i}=t;return"count"===i||"position"===i?e||0:"percent"===i&&100/e||0}_calculateTickPositions(e){return e.map((e=>this._positionFromValue(e)))}_calculateEquidistantTickPositions(e){const{_trackWidth:t,_trackHeight:i}=this,n=this._isHorizontalLayout()?t:i,s=n/(e-1),o=[];if(1===e)return[n/2];for(let r=0;r<e;r++){const e=r*s;e<=n&&o.push(e)}return o}_getDimensions(e){try{return e.getBoundingClientRect()}catch(t){if("object"==typeof t&&null!==t)return new DOMRect(0,0,0,0);throw t}}_emitTrackClickEvent(e){this.emit("track-click",{...e,type:"track-click"})}_emitTickClickEvent(e){this.emit("tick-click",{...e,type:"tick-click"})}_emitMaxChangeEvent(e){this.emit("max-change",{...e,type:"max-change"})}_emitMinChangeEvent(e){this.emit("min-change",{...e,type:"min-change"})}_emitThumbChangeEvent(e){this.emit("thumb-change",{...e,type:"thumb-change"})}_emitThumbClickEvent(e){this.emit("thumb-click",{...e,type:"thumb-click"})}_emitThumbDragEvent(e){this.emit("thumb-drag",{...e,type:"thumb-drag"})}_emitSegmentClickEvent(e){this.emit("segment-click",{...e,type:"segment-click"})}_emitSegmentDragEvent(e){this.emit("segment-drag",{...e,type:"segment-drag"})}_emitRangeLabelClickEvent(e){this.emit(e.type,{...e})}};e([l()],x.prototype,"disabled",void 0),e([l()],x.prototype,"draggableSegmentsEnabled",void 0),e([r("viewModel.effectiveMax")],x.prototype,"effectiveMax",void 0),e([r("viewModel.effectiveMin")],x.prototype,"effectiveMin",void 0),e([l({readOnly:!0})],x.prototype,"effectiveSegmentElements",void 0),e([l()],x.prototype,"extraNodes",void 0),e([l()],x.prototype,"inputCreatedFunction",void 0),e([r("viewModel.inputFormatFunction")],x.prototype,"inputFormatFunction",void 0),e([r("viewModel.inputParseFunction")],x.prototype,"inputParseFunction",void 0),e([l({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],x.prototype,"label",void 0),e([l({readOnly:!0})],x.prototype,"labelElements",void 0),e([l()],x.prototype,"labelInputsEnabled",void 0),e([r("viewModel.labelFormatFunction")],x.prototype,"labelFormatFunction",void 0),e([r("viewModel.labels")],x.prototype,"labels",void 0),e([l()],x.prototype,"labelsVisible",null),e([l({value:"horizontal"})],x.prototype,"layout",null),e([r("viewModel.max")],x.prototype,"max",void 0),e([l({readOnly:!0})],x.prototype,"maxLabelElement",void 0),e([l(),u("esri/widgets/Slider/t9n/Slider")],x.prototype,"messages",void 0),e([r("viewModel.min")],x.prototype,"min",void 0),e([l({readOnly:!0})],x.prototype,"minLabelElement",void 0),e([r("viewModel.precision")],x.prototype,"precision",void 0),e([l()],x.prototype,"rangeLabelInputsEnabled",void 0),e([l()],x.prototype,"rangeLabelsVisible",null),e([l({readOnly:!0})],x.prototype,"segmentElements",void 0),e([l()],x.prototype,"snapOnClickEnabled",void 0),e([l({readOnly:!0})],x.prototype,"state",null),e([l()],x.prototype,"steps",void 0),e([l()],x.prototype,"syncedSegmentsEnabled",void 0),e([r("viewModel.thumbsConstrained")],x.prototype,"thumbsConstrained",void 0),e([l()],x.prototype,"thumbCreatedFunction",void 0),e([l({readOnly:!0})],x.prototype,"thumbElements",void 0),e([l()],x.prototype,"tickConfigs",null),e([l({readOnly:!0})],x.prototype,"tickElements",void 0),e([l({readOnly:!0})],x.prototype,"trackElement",void 0),e([r("viewModel.values")],x.prototype,"values",void 0),e([l()],x.prototype,"viewModel",void 0),e([l()],x.prototype,"visibleElements",void 0),e([a("visibleElements")],x.prototype,"castVisibleElements",null),x=e([h(f)],x);const k=x;export{k as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import r from"../../core/Handles.js";import{isNone as s,applySome as i,destroyMaybe as o,isSome as n,unwrapOr as h}from"../../core/maybe.js";import{watch as a,syncAndInitial as p}from"../../core/reactiveUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import w from"../../views/3d/environment/CloudyWeather.js";import c from"../../views/3d/environment/FoggyWeather.js";import d from"../../views/3d/environment/RainyWeather.js";import v from"../../views/3d/environment/SunnyWeather.js";let l=class extends t{constructor(e){super(e),this.view=null,this._handles=new r,this._settingWeather=!1,this._weatherByType={sunny:new v,cloudy:new w,rainy:new d,foggy:new c}}initialize(){this._handles.add([a((()=>i(this.view,(e=>e.environment.weather))),(e=>{this._settingWeather||s(e)||(this._weatherByType={...this._weatherByType,[e.type]:e})}),p)])}destroy(){this._handles=o(this._handles)}get state(){return n(this.view)&&this.view.ready?"ready":"disabled"}get current(){const e=i(this.view,(e=>e.environment.weather));return h(e,this._weatherByType.sunny)}set current(e){i(this.view,(t=>t.environment.weather=e))}get test(){return{...this._weatherByType}}setWeatherByType(e){n(this.view)&&(this._settingWeather=!0,this.view.environment.weather=this._weatherByType[e],this._settingWeather=!1)}};e([y()],l.prototype,"view",void 0),e([y()],l.prototype,"state",null),e([y()],l.prototype,"current",null),l=e([m("esri.widgets.Weather.WeatherViewModel")],l);const u=l;export{u as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import r from"../../core/Handles.js";import{isNone as s,applySome as i,destroyMaybe as n,unwrapOr as o,isSome as a}from"../../core/maybe.js";import{watch as h,syncAndInitial as c}from"../../core/reactiveUtils.js";import{property as l}from"../../core/accessorSupport/decorators/property.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import y from"../../views/3d/environment/CloudyWeather.js";import w from"../../views/3d/environment/FoggyWeather.js";import m from"../../views/3d/environment/RainyWeather.js";import d from"../../views/3d/environment/SunnyWeather.js";let v=class extends t{constructor(e){super(e),this.view=null,this._handles=new r,this._settingWeather=!1,this._weatherByType={sunny:new d,cloudy:new y,rainy:new m,foggy:new w}}initialize(){this._handles.add([h((()=>i(this.view,(e=>e.environment.weather))),(e=>{this._settingWeather||s(e)||(this._weatherByType={...this._weatherByType,[e.type]:e})}),c)])}destroy(){this._handles=n(this._handles)}get state(){const e=this.error;if(s(e))return"ready";switch(e){case"not-visible":return"ready";case"invalid-view":case"local-scene":return"disabled"}}get error(){const e=this.view;return s(e)||!e.ready||"3d"!==e.type?"invalid-view":"local"===e.viewingMode?"local-scene":e.environmentManager.weatherVisible?null:"not-visible"}get current(){const e=i(this.view,(e=>e.environment.weather));return o(e,this._weatherByType.sunny)}set current(e){i(this.view,(t=>t.environment.weather=e))}get test(){return{...this._weatherByType}}setWeatherByType(e){a(this.view)&&(this._settingWeather=!0,this.view.environment.weather=this._weatherByType[e],this._settingWeather=!1)}};e([l()],v.prototype,"view",void 0),e([l()],v.prototype,"state",null),e([l()],v.prototype,"error",null),e([l()],v.prototype,"current",null),v=e([p("esri.widgets.Weather.WeatherViewModel")],v);const u=v;export{u as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- const e="esri-weather",i={base:`${e}`,esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",widgetIcon:"esri-icon-partly-cloudy",content:`${e}__content`,selector:`${e}__selector`},t={base:`${`${e}__coverage-slider`}`};export{t as COVERAGE_SLIDER_CSS,i as CSS};
5
+ const e="esri-weather",r={base:`${e}`,esriWidget:"esri-widget",esriWidgetDisabled:"esri-widget--disabled",widgetIcon:"esri-icon-partly-cloudy",content:`${e}__content`,selector:`${e}__selector`,error:`${e}__error`},i={base:`${`${e}__coverage-slider`}`};export{i as COVERAGE_SLIDER_CSS,r as CSS};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{memoize as t}from"../core/memoize.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{weatherTypes as i}from"../views/3d/environment/weather.js";import a from"./Widget.js";import{Heading as l}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as n}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";import{CoverageSlider as c}from"./Weather/CoverageSlider.js";import{CSS as p}from"./Weather/css.js";import h from"./Weather/WeatherViewModel.js";const g={sunny:"brightness",cloudy:"partly-cloudy",rainy:"rain",foggy:"fog"},u=Object.keys(i.typeMap);let m=class extends a{constructor(e){super(e),this.viewModel=new h,this.headingLevel=4,this.iconClass=p.widgetIcon,this.label=void 0,this._renderWeatherTypeButton=e=>{var t,s;const o=this.viewModel,r=null==(t=this.messages)||null==(s=t[e])?void 0:s.label,i=this._disabled,a=!i&&o.current.type===e;return d("calcite-button",{appearance:a?"solid":"outline","aria-checked":a?"true":"false",color:a?"blue":"neutral",disabled:i,"icon-start":g[e],key:`${e}-type-button`,label:r,role:"radio",scale:"l",title:r,onclick:()=>{a||o.setWeatherByType(e)}})},this._getOnSunnyChange=t((e=>t=>{e.cloudCover=t})),this._getOnCloudyChange=t((e=>t=>{e.cloudCover=t})),this._getOnRainyChange=t((e=>t=>{e.cloudCover=t})),this._getOnFoggyChange=t((e=>t=>{e.fogStrength=t}))}render(){const e=this.messages;return d("div",{class:this.classes(p.base,p.esriWidget,this._disabled&&p.esriWidgetDisabled),role:"region","aria-label":null==e?void 0:e.widgetLabelAccessible},d(l,{level:this.headingLevel},null==e?void 0:e.widgetLabel),d("div",{class:p.content},d("div",{class:p.selector,role:"radiogroup","aria-label":null==e?void 0:e.weatherType},u.map(this._renderWeatherTypeButton)),this._renderOptions()))}async loadDependencies(){await Promise.all([import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-label.js")])}get view(){var e;return null==(e=this.viewModel)?void 0:e.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get _disabled(){return"disabled"===this.viewModel.state}_renderOptions(){const e=this.viewModel.current;switch(e.type){case"sunny":return d(c,{key:"sunny-slider",disabled:this._disabled,label:this._getLabel(e),value:e.cloudCover,onChange:this._getOnSunnyChange(e)});case"cloudy":return d(c,{key:"cloudy-slider",disabled:this._disabled,label:this._getLabel(e),value:e.cloudCover,onChange:this._getOnCloudyChange(e)});case"rainy":return d(c,{key:"rainy-slider",disabled:this._disabled,label:this._getLabel(e),value:e.cloudCover,onChange:this._getOnRainyChange(e)});case"foggy":return d(c,{key:"foggy-slider",disabled:this._disabled,label:this._getLabel(e),value:e.fogStrength,onChange:this._getOnFoggyChange(e)})}}_getLabel(e){var t,s;return null==(t=this.messages)||null==(s=t[e.type])?void 0:s.sliderLabel}};e([o()],m.prototype,"viewModel",void 0),e([o()],m.prototype,"view",null),e([o()],m.prototype,"headingLevel",void 0),e([o()],m.prototype,"iconClass",void 0),e([s("messages.widgetLabel",{overridable:!0})],m.prototype,"label",void 0),e([o(),n("esri/widgets/Weather/t9n/Weather")],m.prototype,"messages",void 0),e([o()],m.prototype,"_disabled",null),m=e([r("esri.widgets.Weather")],m);const y=m;export{y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{applySome as r}from"../core/maybe.js";import{memoize as o}from"../core/memoize.js";import{aliasOf as t}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import{weatherTypes as l}from"../views/3d/environment/weather.js";import a from"./Widget.js";import{Heading as n}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as d}from"./support/jsxFactory.js";import{CoverageSlider as p}from"./Weather/CoverageSlider.js";import{CSS as u}from"./Weather/css.js";import g from"./Weather/WeatherViewModel.js";const h={sunny:"brightness",cloudy:"partly-cloudy",rainy:"rain",foggy:"fog"},v=Object.keys(l.typeMap);let m=class extends a{constructor(e){super(e),this.viewModel=new g,this.headingLevel=4,this.iconClass=u.widgetIcon,this.label=void 0,this._renderWeatherTypeButton=e=>{var r,o;const t=this.viewModel,s=null==(r=this.messages)||null==(o=r[e])?void 0:o.label,i="disabled"===t.state,l=!i&&t.current.type===e;return d("calcite-button",{appearance:l?"solid":"outline","aria-checked":l?"true":"false",color:l?"blue":"neutral",disabled:i,"icon-start":h[e],key:`${e}-type-button`,label:s,role:"radio",scale:"l",title:s,onclick:()=>{l||t.setWeatherByType(e)}})},this._getOnSunnyChange=o((e=>r=>{e.cloudCover=r})),this._getOnCloudyChange=o((e=>r=>{e.cloudCover=r})),this._getOnRainyChange=o((e=>r=>{e.cloudCover=r})),this._getOnFoggyChange=o((e=>r=>{e.fogStrength=r}))}render(){const e=this.messages,o="disabled"===this.viewModel.state;return d("div",{class:this.classes(u.base,u.esriWidget,o&&u.esriWidgetDisabled),role:"region","aria-label":null==e?void 0:e.widgetLabelAccessible},d(n,{level:this.headingLevel},null==e?void 0:e.widgetLabel),d("div",{class:u.content},d("div",{class:u.selector,role:"radiogroup","aria-label":null==e?void 0:e.weatherType},v.map(this._renderWeatherTypeButton)),this._renderOptions(),r(this.errorMessage,(e=>this._renderError(e)))))}async loadDependencies(){await Promise.all([import("@esri/calcite-components/dist/components/calcite-button.js"),import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-label.js")])}get view(){var e;return null==(e=this.viewModel)?void 0:e.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get errorMessage(){var e,r;switch(this.viewModel.error){case"local-scene":return null==(e=this.messages)?void 0:e.error.localScene;case"not-visible":return null==(r=this.messages)?void 0:r.error.notVisible;default:return null}}_renderOptions(){const e=this.viewModel,r="disabled"===e.state,o=e.current,t=this.messages;switch(o.type){case"sunny":return d(p,{key:"sunny-slider",disabled:r,label:null==t?void 0:t.sunny.cloudCover,value:o.cloudCover,onChange:this._getOnSunnyChange(o)});case"cloudy":return d(p,{key:"cloudy-slider",disabled:r,label:null==t?void 0:t.cloudy.cloudCover,value:o.cloudCover,onChange:this._getOnCloudyChange(o)});case"rainy":return d(p,{key:"rainy-slider",disabled:r,label:null==t?void 0:t.rainy.cloudCover,value:o.cloudCover,onChange:this._getOnRainyChange(o)});case"foggy":return d(p,{key:"foggy-slider",disabled:r,label:null==t?void 0:t.foggy.fogStrength,value:o.fogStrength,onChange:this._getOnFoggyChange(o)})}}_renderError(e){return d("div",{key:"error",class:u.error},d("calcite-icon",{icon:"exclamation-mark-triangle",scale:"s"}),e)}};e([s()],m.prototype,"viewModel",void 0),e([s()],m.prototype,"view",null),e([s()],m.prototype,"headingLevel",void 0),e([s()],m.prototype,"iconClass",void 0),e([t("messages.widgetLabel",{overridable:!0})],m.prototype,"label",void 0),e([s(),c("esri/widgets/Weather/t9n/Weather")],m.prototype,"messages",void 0),e([s()],m.prototype,"errorMessage",null),m=e([i("esri.widgets.Weather")],m);const y=m;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as s}from"../../chunks/tslib.es6.js";import e from"../../core/Handles.js";import{isSome as i,applySome as t,destroyMaybe as n,abortMaybe as o,isNone as r}from"../../core/maybe.js";import{createTask as a,throwIfAborted as c,isAborted as h}from"../../core/promiseUtils.js";import{watch as l,sync as y,syncAndInitial as w}from"../../core/reactiveUtils.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{InteractiveToolViewModel as d}from"./InteractiveToolViewModel.js";let _=class extends d{constructor(s){super(s),this.analysis=this.constructAnalysis(),this._analysisBaseHandles=new e,this._isAnalysisOwner=!0,this._parentChangeFromReconnect=!1,this._reconnectViewTask=null}initialize(){this._analysisBaseHandles.add([l((()=>t(this.analysis,(({parent:s})=>s))),(s=>{this._isAnalysisOwner&&i(s)&&s!==this.view&&(this._isAnalysisOwner=!1),this._parentChangeFromReconnect||this._scheduleViewReconnect()}),y),l((()=>({view:this.view,ready:i(this.view)&&this.view.ready,supported:this.supported})),(({view:s},{view:e})=>{s!==e&&this._disconnectFromView(e),this._scheduleViewReconnect()}),w)])}destroy(){this._analysisBaseHandles=n(this._analysisBaseHandles),this._reconnectViewTask=o(this._reconnectViewTask),this._disconnectFromView(this.view),this._isAnalysisOwner&&i(this.analysis)&&(this.analysis.destroy(),this._set("analysis",null))}onConnectToAnalysisView(s){}onDisconnectFromAnalysisView(){}_scheduleViewReconnect(){this._reconnectViewTask=o(this._reconnectViewTask),this._reconnectViewTask=a((s=>this._reconnectView(s)))}async _reconnectView(s){const{view:e}=this,t=i(e)&&e.ready&&this.supported;if(c(s),this._disconnectFromView(e),!t||r(e)||r(this.analysis))return;if(this._isAnalysisOwner){if(i(this.analysis.parent))return void this.logError("expected owned analysis to have null parent when connecting to view");this._parentChangeFromReconnect=!0,e.analyses.add(this.analysis),this._parentChangeFromReconnect=!1}const n=await e.whenAnalysisView(this.analysis);h(s)?this._disconnectFromView(e):r(n)?this.logError("Unable to retrieve analysis view for analysis. Analysis may not be part of the scene."):this.onConnectToAnalysisView(n)}_disconnectFromView(s){i(this.analysis)&&(i(s)&&this._isAnalysisOwner&&(this._parentChangeFromReconnect=!0,s.analyses.remove(this.analysis),this._parentChangeFromReconnect=!1),this.onDisconnectFromAnalysisView())}};s([p({constructOnly:!0})],_.prototype,"analysis",void 0),_=s([m("esri.widgets.support.InteractiveAnalysisViewModel")],_);export{_ as InteractiveAnalysisViewModel};
5
+ import{_ as s}from"../../chunks/tslib.es6.js";import e from"../../core/Handles.js";import{isSome as i,applySome as n,destroyMaybe as t,abortMaybe as o,isNone as r}from"../../core/maybe.js";import{createTask as a,throwIfAborted as c,isAborted as l}from"../../core/promiseUtils.js";import{watch as h,sync as y,syncAndInitial as w}from"../../core/reactiveUtils.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{InteractiveToolViewModel as d}from"./InteractiveToolViewModel.js";let _=class extends d{constructor(s){super(s),this._analysisBaseHandles=new e,this._parentChangeFromReconnect=!1,this._reconnectViewTask=null;const n=null==s?void 0:s.analysis;i(n)?(this.analysis=n,this._isAnalysisOwner=!1):(this.analysis=this.constructAnalysis(),this._isAnalysisOwner=!0)}normalizeCtorArgs(s){if(!s)return{};const{analysis:e,...i}=s;return i}initialize(){this._analysisBaseHandles.add([h((()=>n(this.analysis,(({parent:s})=>s))),(s=>{this._isAnalysisOwner&&i(s)&&s!==this.view&&(this._isAnalysisOwner=!1),this._parentChangeFromReconnect||this._scheduleViewReconnect()}),y),h((()=>({view:this.view,ready:i(this.view)&&this.view.ready,supported:this.supported})),(({view:s},{view:e})=>{s!==e&&this._disconnectFromView(e),this._scheduleViewReconnect()}),w)])}destroy(){this._analysisBaseHandles=t(this._analysisBaseHandles),this._reconnectViewTask=o(this._reconnectViewTask),this._disconnectFromView(this.view),this._isAnalysisOwner&&i(this.analysis)&&(this.analysis.destroy(),this._set("analysis",null))}onConnectToAnalysisView(s){}onDisconnectFromAnalysisView(){}_scheduleViewReconnect(){this._reconnectViewTask=o(this._reconnectViewTask),this._reconnectViewTask=a((s=>this._reconnectView(s)))}async _reconnectView(s){const{view:e}=this,n=i(e)&&e.ready&&this.supported;if(c(s),this._disconnectFromView(e),!n||r(e)||r(this.analysis))return;if(this._isAnalysisOwner){if(i(this.analysis.parent))return void this.logError("expected owned analysis to have null parent when connecting to view");this._parentChangeFromReconnect=!0,e.analyses.add(this.analysis),this._parentChangeFromReconnect=!1}const t=await e.whenAnalysisView(this.analysis);l(s)?this._disconnectFromView(e):r(t)?this.logError("Unable to retrieve analysis view for analysis. Analysis may not be part of the scene."):this.onConnectToAnalysisView(t)}_disconnectFromView(s){i(this.analysis)&&(i(s)&&this._isAnalysisOwner&&(this._parentChangeFromReconnect=!0,s.analyses.remove(this.analysis),this._parentChangeFromReconnect=!1),this.onDisconnectFromAnalysisView())}};s([p({constructOnly:!0})],_.prototype,"analysis",void 0),_=s([m("esri.widgets.support.InteractiveAnalysisViewModel")],_);export{_ as InteractiveAnalysisViewModel};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import o from"../../core/Accessor.js";import e from"../../core/Error.js";import s from"../../core/Handles.js";import{isSome as i,destroyMaybe as r,isNone as l,abortMaybe as a,unwrap as n}from"../../core/maybe.js";import{createTask as h,throwIfAborted as p,isAborted as d}from"../../core/promiseUtils.js";import{watch as c,syncAndInitial as u,when as v}from"../../core/reactiveUtils.js";import{property as w}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";let y=class extends o{constructor(t){super(t),this.tool=null,this._baseHandles=new s,this._loggedUnsupportedErrorOnce=!1,this._toolCreationTask=null,t&&null!=t.visible&&(this.visible=t.visible)}initialize(){this._baseHandles.add(c((()=>({ready:i(this.view)&&this.view.ready,supported:this.supported})),(({ready:t,supported:o})=>{!t||o||this._loggedUnsupportedErrorOnce||(this.logError(this.unsupportedErrorMessage),this._loggedUnsupportedErrorOnce=!0)}),u))}destroy(){this.removeTool("Tool creation was interrupted by the view model being destroyed."),this.view=null,this._baseHandles=r(this._baseHandles)}get supported(){return l(this.view)||this.view.type===this.supportedViewType}get view(){return this._get("view")}set view(t){if(t===this.view)return;this.removeTool("Tool creation was interrupted by the view property changing."),this._set("view",t);const o="tools";this._baseHandles.remove(o),l(t)||this._baseHandles.add(t.tools.on("after-remove",(t=>{t.item===this.tool&&this._set("tool",null)})),o)}set visible(t){this._set("visible",t),i(this.tool)&&(this.tool.visible=t),t||(this._toolCreationTask=a(this._toolCreationTask),i(this.tool)&&this.tool.rejectCreation("Tool creation was interrupted by the tool being hidden."))}get active(){return i(this._toolCreationTask)&&!this._toolCreationTask.finished||i(this.tool)&&this.tool.active}get disabled(){return l(this.view)||!this.view.ready||!this.supported}get creatingTool(){return i(this._toolCreationTask)&&!this._toolCreationTask.finished}async createTool(){if(this.removeTool("Tool creation was interrupted by another tool being created."),l(this.view)||!this.supported)return Promise.reject(new e("tool:create","The view does not support the tool.",this.unsupportedErrorMessage));this._toolCreationTask=h((async t=>{await n(this.view).whenReady();const o="Tool creation was interrupted.";p(t,o);const e=this.constructTool();return await e.whenCreationStarted(),d(t)&&(e.destroy(),p(t,o)),e}));const t=await this._toolCreationTask.promise;this._set("tool",t),t.created?this.view.tools.add(t):(this.view.addAndActivateTool(t),v((()=>t.created),(()=>{t.active&&i(this.view)&&(this.view.activeTool=null)}),{initial:!0,once:!0}))}removeTool(t="Tool creation was interrupted by tool being removed."){this._toolCreationTask=a(this._toolCreationTask),l(this.tool)||(this.tool.rejectCreation(t),i(this.view)&&this.view.tools?this.view.tools.remove(this.tool):this.tool.destroy(),this._set("tool",null))}logError(...t){this.logger.error(...t)}};t([w({constructOnly:!0})],y.prototype,"tool",void 0),t([w()],y.prototype,"supported",null),t([w({value:null})],y.prototype,"view",null),t([w({type:Boolean,value:!0})],y.prototype,"visible",null),t([w()],y.prototype,"active",null),t([w()],y.prototype,"disabled",null),t([w()],y.prototype,"_toolCreationTask",void 0),t([w({readOnly:!0})],y.prototype,"creatingTool",null),y=t([m("esri.widgets.support.InteractiveToolViewModel")],y);export{y as InteractiveToolViewModel};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import o from"../../core/Error.js";import r from"../../core/Handles.js";import{isSome as s,destroyMaybe as i,isNone as l,abortMaybe as a,unwrap as n,applySome as p}from"../../core/maybe.js";import{createTask as h,throwIfAborted as d,isAborted as c}from"../../core/promiseUtils.js";import{watch as u,syncAndInitial as v,when as w}from"../../core/reactiveUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";let T=class extends e{constructor(t){super(t),this.tool=null,this._baseHandles=new r,this._loggedUnsupportedErrorOnce=!1,this._toolCreationTask=null,t&&null!=t.visible&&(this.visible=t.visible)}initialize(){this._baseHandles.add(u((()=>({ready:s(this.view)&&this.view.ready,supported:this.supported})),(({ready:t,supported:e})=>{!t||e||this._loggedUnsupportedErrorOnce||(this.logError(this.unsupportedErrorMessage),this._loggedUnsupportedErrorOnce=!0)}),v))}destroy(){this.removeTool("Tool creation was interrupted by the view model being destroyed."),this.view=null,this._baseHandles=i(this._baseHandles)}get supported(){return l(this.view)||this.view.type===this.supportedViewType}get view(){return this._get("view")}set view(t){if(t===this.view)return;this.removeTool("Tool creation was interrupted by the view property changing."),this._set("view",t);const e="tools";this._baseHandles.remove(e),l(t)||this._baseHandles.add(t.tools.on("after-remove",(t=>{t.item===this.tool&&this._set("tool",null)})),e)}set visible(t){this._set("visible",t),s(this.tool)&&(this.tool.visible=t),t||(this._toolCreationTask=a(this._toolCreationTask),s(this.tool)&&this.tool.rejectCreation("Tool creation was interrupted by the tool being hidden."))}get active(){return s(this._toolCreationTask)&&!this._toolCreationTask.finished||s(this.tool)&&this.tool.active}get disabled(){return l(this.view)||!this.view.ready||!this.supported}get creatingTool(){return s(this._toolCreationTask)&&!this._toolCreationTask.finished}async createTool(){if(this.removeTool("Tool creation was interrupted by another tool being created."),l(this.view)||!this.supported)return Promise.reject(new o("tool:create","The view does not support the tool.",this.unsupportedErrorMessage));this._toolCreationTask=h((async t=>{await n(this.view).whenReady();const e="Tool creation was interrupted.";d(t,e);const o=this.constructTool();return await o.whenCreationStarted(),c(t)&&(o.destroy(),d(t,e)),o}));const t=await this._toolCreationTask.promise;this._set("tool",t),t.created?this.view.tools.add(t):(this.view.addAndActivateTool(t),w((()=>t.created),(()=>{t.active&&s(this.view)&&(this.view.activeTool=null)}),{initial:!0,once:!0}))}removeTool(t="Tool creation was interrupted by tool being removed."){this._toolCreationTask=a(this._toolCreationTask);const e=this.tool;if(l(e))return;e.rejectCreation(t);const o=p(this.view,(t=>t.tools));s(o)?o.remove(e):e.destroy(),this._set("tool",null)}logError(...t){this.logger.error(...t)}};t([m({constructOnly:!0})],T.prototype,"tool",void 0),t([m()],T.prototype,"supported",null),t([m({value:null})],T.prototype,"view",null),t([m({type:Boolean,value:!0})],T.prototype,"visible",null),t([m()],T.prototype,"active",null),t([m()],T.prototype,"disabled",null),t([m()],T.prototype,"_toolCreationTask",void 0),t([m({readOnly:!0})],T.prototype,"creatingTool",null),T=t([y("esri.widgets.support.InteractiveToolViewModel")],T);export{T as InteractiveToolViewModel};
@@ -1 +0,0 @@
1
- "M14.071 2H2.93a.929.929 0 0 0-.93.929V14.07a.929.929 0 0 0 .929.929H14.07a.929.929 0 0 0 .929-.929V2.93a.929.929 0 0 0-.928-.93zM7.557 12.451L4.452 9.346l1.02-1.022 2.085 2.09 4.77-4.771 1.02 1.02z"