@arcgis/core 4.27.0-next.20230516 → 4.27.0-next.20230518

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 (194) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/03dba2a2bbc363369a0f.js +1 -0
  3. package/assets/esri/core/workers/chunks/12714d64a0154688072e.js +1 -0
  4. package/assets/esri/core/workers/chunks/{a507135977d83aea4421.js → 1827a3da6b5b9272ffe1.js} +1 -1
  5. package/assets/esri/core/workers/chunks/1edc5c06874cb12c5478.js +1 -0
  6. package/assets/esri/core/workers/chunks/{395ef46b635f9e9a5643.js → 20e8e18e4bd2fd5da47c.js} +1 -1
  7. package/assets/esri/core/workers/chunks/23f73f81aea461c0c6e6.js +1 -0
  8. package/assets/esri/core/workers/chunks/{15dda462b979e90b58fe.js → 3cebdd77a8401495097f.js} +1 -1
  9. package/assets/esri/core/workers/chunks/3eb75b6c3c4b3aea2325.js +1 -0
  10. package/assets/esri/core/workers/chunks/48cb634255e39711a720.js +1 -0
  11. package/assets/esri/core/workers/chunks/4d5f71d84c85f45c97ea.js +1 -0
  12. package/assets/esri/core/workers/chunks/55ca6ba8b40921025181.js +2 -0
  13. package/assets/esri/core/workers/chunks/{ef141014ed21a7fd1ff3.js.LICENSE.txt → 55ca6ba8b40921025181.js.LICENSE.txt} +1 -1
  14. package/assets/esri/core/workers/chunks/6312783626bacf52df7a.js +1 -0
  15. package/assets/esri/core/workers/chunks/{a3822a97701890c12d63.js → 6b3b277a21de7c434717.js} +1 -1
  16. package/assets/esri/core/workers/chunks/6d80f81bf6ad97a7e69e.js +1 -0
  17. package/assets/esri/core/workers/chunks/887a630c5c980c5028e1.js +1 -0
  18. package/assets/esri/core/workers/chunks/{522660da4589739a70c3.js → c7fb48ea5d907883bcce.js} +1 -1
  19. package/assets/esri/core/workers/chunks/d0ff968e42116f592065.js +1 -0
  20. package/assets/esri/core/workers/chunks/{fdf64f23529a22c79fbd.js → d52c920acf08c95277c3.js} +19 -19
  21. package/assets/esri/core/workers/chunks/d64c271c173797d98286.js +1 -0
  22. package/assets/esri/core/workers/chunks/e1b2076d0040fcb7d864.js +1 -0
  23. package/assets/esri/core/workers/chunks/e3397036e060dac3b4d5.js +1 -0
  24. package/assets/esri/core/workers/chunks/e6836c84470fb6bd25bf.js +1 -0
  25. package/assets/esri/core/workers/chunks/f3f6035a17f7dcd19675.js +1 -0
  26. package/assets/esri/core/workers/chunks/{bff317b08e91414f6edc.js → f720967ba8c5486a26a2.js} +1 -1
  27. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +20 -11
  28. package/assets/esri/themes/base/widgets/_Editor.scss +0 -9
  29. package/assets/esri/themes/base/widgets/_FeatureForm.scss +4 -2
  30. package/assets/esri/themes/base/widgets/_ItemList.scss +0 -49
  31. package/assets/esri/themes/base/widgets/_ValuePicker.scss +27 -10
  32. package/assets/esri/themes/dark/main.css +1 -1
  33. package/assets/esri/themes/light/main.css +1 -1
  34. package/assets/esri/themes/light/view.css +1 -1
  35. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ar.json +1 -1
  36. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_bg.json +1 -1
  37. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_bs.json +1 -1
  38. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ca.json +1 -1
  39. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_cs.json +1 -1
  40. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_da.json +1 -1
  41. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_de.json +1 -1
  42. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_el.json +1 -1
  43. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_es.json +1 -1
  44. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_et.json +1 -1
  45. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_fi.json +1 -1
  46. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_fr.json +1 -1
  47. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_he.json +1 -1
  48. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_hr.json +1 -1
  49. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_hu.json +1 -1
  50. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_id.json +1 -1
  51. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_it.json +1 -1
  52. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ja.json +1 -1
  53. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ko.json +1 -1
  54. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_lt.json +1 -1
  55. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_lv.json +1 -1
  56. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_nb.json +1 -1
  57. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_nl.json +1 -1
  58. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pl.json +1 -1
  59. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pt-BR.json +1 -1
  60. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pt-PT.json +1 -1
  61. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ro.json +1 -1
  62. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ru.json +1 -1
  63. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sk.json +1 -1
  64. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sl.json +1 -1
  65. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sr.json +1 -1
  66. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sv.json +1 -1
  67. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_th.json +1 -1
  68. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_tr.json +1 -1
  69. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_uk.json +1 -1
  70. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_vi.json +1 -1
  71. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-CN.json +1 -1
  72. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-HK.json +1 -1
  73. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-TW.json +1 -1
  74. package/chunks/DefaultMaterial.glsl.js +4 -4
  75. package/chunks/HUDMaterial.glsl.js +22 -22
  76. package/chunks/HeatmapDensity.glsl.js +5 -5
  77. package/chunks/LineMarker.glsl.js +35 -35
  78. package/chunks/RibbonLine.glsl.js +47 -47
  79. package/chunks/ShadowCastVisualize.glsl.js +2 -2
  80. package/core/Queue.js +1 -1
  81. package/core/a11yUtils.js +5 -0
  82. package/interfaces.d.ts +769 -25
  83. package/intl/date.js +1 -1
  84. package/layers/ImageryTileLayer.js +1 -1
  85. package/layers/WMSLayer.js +1 -1
  86. package/layers/graphics/data/QueryEngine.js +1 -1
  87. package/layers/graphics/data/attributeSupport.js +1 -1
  88. package/layers/mixins/ArcGISImageService.js +1 -1
  89. package/layers/support/RasterBandInfo.d.ts +4 -0
  90. package/layers/support/RasterSensorInfo.d.ts +4 -0
  91. package/layers/support/infoFor3D.js +1 -1
  92. package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
  93. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  94. package/layers/support/rasterFunctions/rasterFunctionHelper.js +1 -1
  95. package/package.json +2 -2
  96. package/popup/FieldInfo.js +1 -1
  97. package/popup/support/FieldInfoFormat.js +1 -1
  98. package/portal/schemas/definitions.js +1 -1
  99. package/rest/support/BaseImageMeasureParameters.d.ts +4 -0
  100. package/rest/support/BaseImageMeasureParameters.js +1 -1
  101. package/rest/support/ImageHistogramParameters.js +1 -1
  102. package/rest/support/ImageIdentifyParameters.js +1 -1
  103. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  104. package/smartMapping/raster/support/adapters/ImageryTileLayerAdapter.js +1 -1
  105. package/support/revision.js +1 -1
  106. package/views/2d/engine/vectorTiles/GlyphMosaic.js +1 -1
  107. package/views/2d/engine/vectorTiles/GlyphSource.js +1 -1
  108. package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
  109. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
  110. package/views/2d/engine/webgl/GlyphSource.js +1 -1
  111. package/views/2d/layers/MediaLayerView2D.js +1 -1
  112. package/views/2d/layers/TileLayerView2D.js +1 -1
  113. package/views/2d/layers/support/cimSymbolUtils.js +1 -1
  114. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  115. package/views/3d/support/DisplayQualityProfile.js +1 -1
  116. package/views/3d/support/QualitySettings.js +1 -1
  117. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  118. package/views/3d/terrain/Overlay.js +1 -1
  119. package/views/3d/terrain/OverlayManager.js +1 -1
  120. package/views/3d/terrain/OverlayRenderer.js +1 -1
  121. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +13 -13
  122. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +18 -18
  123. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +8 -8
  124. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  125. package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
  126. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  127. package/views/3d/webgl-engine/lib/RenderTargetHelper.js +1 -1
  128. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  129. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  130. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  131. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  132. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  133. package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
  134. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  135. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  136. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  137. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  138. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  139. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  140. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  141. package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
  142. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  143. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  144. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  145. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  146. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  147. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  148. package/views/DOMContainer.js +1 -1
  149. package/views/PopupView.js +1 -1
  150. package/views/draw/DrawOperation.js +1 -1
  151. package/views/webgl/ValidatedTextureDescriptor.js +1 -1
  152. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  153. package/widgets/Editor/CreateWorkflow.js +1 -1
  154. package/widgets/Editor/EditorViewModel.js +1 -1
  155. package/widgets/Editor/UpdateWorkflow.js +1 -1
  156. package/widgets/Editor/Upload.js +1 -1
  157. package/widgets/Editor/Workflow.js +1 -1
  158. package/widgets/Editor/modelUploadUtils.js +1 -1
  159. package/widgets/Editor/workflowUtils.js +1 -1
  160. package/widgets/Editor.js +1 -1
  161. package/widgets/Feature/FeatureMedia.js +1 -1
  162. package/widgets/FeatureForm/InputField.js +5 -0
  163. package/widgets/FeatureForm/InputFieldGroup.js +5 -0
  164. package/widgets/FeatureForm/css.js +1 -1
  165. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  166. package/widgets/FeatureTable.js +1 -1
  167. package/widgets/FeatureTemplates/ItemList.js +1 -1
  168. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  169. package/widgets/Print/PrintViewModel.js +1 -1
  170. package/widgets/Search/SearchViewModel.js +1 -1
  171. package/widgets/ValuePicker/ValuePickerBaseComponent.js +1 -1
  172. package/widgets/ValuePicker/ValuePickerCollection.js +1 -1
  173. package/widgets/ValuePicker/ValuePickerCombobox.js +1 -1
  174. package/widgets/ValuePicker/ValuePickerLabel.js +1 -1
  175. package/widgets/ValuePicker/ValuePickerSlider.js +1 -1
  176. package/widgets/ValuePicker/ValuePickerViewModel.js +1 -1
  177. package/widgets/ValuePicker.js +1 -1
  178. package/assets/esri/core/workers/chunks/009026614cae60e9505c.js +0 -1
  179. package/assets/esri/core/workers/chunks/415c326d268b1a8fd03f.js +0 -1
  180. package/assets/esri/core/workers/chunks/504e929b686570ee858d.js +0 -1
  181. package/assets/esri/core/workers/chunks/5c811527898eb1c04e67.js +0 -1
  182. package/assets/esri/core/workers/chunks/6164a9c654c38f9cb64e.js +0 -1
  183. package/assets/esri/core/workers/chunks/6dd99db0adce09ac9794.js +0 -1
  184. package/assets/esri/core/workers/chunks/7cec069db0598431829e.js +0 -1
  185. package/assets/esri/core/workers/chunks/8bb3b10a777ae19f57f9.js +0 -1
  186. package/assets/esri/core/workers/chunks/91971a76a4ae0474a878.js +0 -1
  187. package/assets/esri/core/workers/chunks/9ed9e2ad50816a4f937a.js +0 -1
  188. package/assets/esri/core/workers/chunks/b3013a5a39d038b2d748.js +0 -1
  189. package/assets/esri/core/workers/chunks/b81bb096ccfcea182cc1.js +0 -1
  190. package/assets/esri/core/workers/chunks/cf3dd5aad1d60ff1b0b6.js +0 -1
  191. package/assets/esri/core/workers/chunks/d05d9ddf244bb3dcbcaa.js +0 -1
  192. package/assets/esri/core/workers/chunks/d3a6504fbaf555707c58.js +0 -1
  193. package/assets/esri/core/workers/chunks/ef141014ed21a7fd1ff3.js +0 -2
  194. package/assets/esri/core/workers/chunks/f4933025edecdc1aae76.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Error.js";import s from"../../core/Evented.js";import{HandleOwnerMixin as o}from"../../core/HandleOwner.js";import{abortMaybe as r}from"../../core/maybe.js";import{throwIfNotAbortError as i}from"../../core/promiseUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";let h=class extends(o(s.EventedAccessor)){constructor(t){super(t),this._indexHistory=[],this._lastStepIndex=-1,this._stepIndex=-1,this._setupAbortController=null,this._handleKeys={afterCommit:"after-commit",beforeCommit:"before-commit"},this.data=void 0,this.started=!1,this.steps=[],this.type=null}get hasNextStep(){const{steps:t}=this;return!!(t&&this._stepIndex<t.filter((t=>!t.parent)).length-1)}get hasPreviousStep(){return this._stepIndex>0}get reliesOnOwnerAdminPrivileges(){return!1}get shouldShowAttachments(){return!1}get shouldAllowAttachmentEditing(){return!1}get stepId(){const{steps:t}=this,e=t&&t[this._stepIndex];return e&&e.id}get helpMessage(){}async cancel(t={force:!0}){return!1!==t.force?this._cancel():new Promise(((t,s)=>{this.emit("cancel-request",{controller:{allow:()=>{this._cancel().then(t)},deny:()=>s(new e("workflow:cancel-denied","Request to cancel workflow was denied."))}})}))}async commit(){this.handles.remove(this._handleKeys.beforeCommit),await this.onCommit(this.data),this.handles.remove(this._handleKeys.afterCommit),this.emit("commit")}async go(t){const{steps:e}=this,s=e.findIndex((e=>e.id===t));this._indexHistory.push(this._stepIndex),await this._go(s)}async next(){this._indexHistory.push(this._stepIndex),await this._go(this._stepIndex+1)}async previous(t={cancelCurrentStep:!1}){await this._go(this._indexHistory.pop(),t.cancelCurrentStep)}async reset(){await this._cancel({notify:!1}),await this.start()}async start(){this._set("started",!0);const t=-1===this._stepIndex?0:this._stepIndex;await this._go(t)}async _cancel({notify:t=!0,error:e}={}){this.started&&(this._set("started",!1),await this.steps[this._stepIndex].tearDown({canceled:!0}),this.data&&this.data.viewModel.sketchViewModel.layer.removeAll()),this.handles.remove([this._handleKeys.afterCommit,this._handleKeys.beforeCommit]),this._resetIndexing(t),t&&this.emit("cancel",{error:e})}async _go(t=-1,e=!1){const{steps:s}=this;if(t<=-1||t>=s.length)return;if(!this.started)return this._stepIndex=t,void this._notifyStepProps();this._lastStepIndex>-1&&(this._setupAbortController=r(this._setupAbortController),await s[this._lastStepIndex].tearDown({canceled:e})),this._setupAbortController=new AbortController;const o=this._setupAbortController.signal;try{await s[t].setUp(o)}catch(n){i(n)}this._setupAbortController.signal===o&&(this._setupAbortController=null),o.aborted||(this._lastStepIndex=t,this._stepIndex=t,this._notifyStepProps())}_resetIndexing(t=!0){this._stepIndex=-1,this._lastStepIndex=-1,this._indexHistory.length=0,t&&this._notifyStepProps()}_notifyStepProps(){this.notifyChange("stepId"),this.notifyChange("hasPreviousStep"),this.notifyChange("hasNextStep")}};t([n()],h.prototype,"data",void 0),t([n()],h.prototype,"hasNextStep",null),t([n()],h.prototype,"hasPreviousStep",null),t([n()],h.prototype,"onCommit",void 0),t([n()],h.prototype,"reliesOnOwnerAdminPrivileges",null),t([n()],h.prototype,"shouldShowAttachments",null),t([n()],h.prototype,"shouldAllowAttachmentEditing",null),t([n()],h.prototype,"started",void 0),t([n({readOnly:!0})],h.prototype,"stepId",null),t([n()],h.prototype,"steps",void 0),t([n({readOnly:!0})],h.prototype,"type",void 0),t([n()],h.prototype,"helpMessage",null),t([n()],h.prototype,"commit",null),h=t([a("esri.widgets.Editor.Workflow")],h);const p=h;export{p as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Error.js";import s from"../../core/Evented.js";import{HandleOwnerMixin as o}from"../../core/HandleOwner.js";import{abortMaybe as r}from"../../core/maybe.js";import{throwIfNotAbortError as i}from"../../core/promiseUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as a}from"../../core/accessorSupport/decorators/subclass.js";let l=class extends(o(s.EventedAccessor)){constructor(t){super(t),this._indexHistory=[],this._lastStepIndex=-1,this._stepIndex=-1,this._setupAbortController=null,this._handleKeys={afterCommit:"after-commit",beforeCommit:"before-commit"},this.data=void 0,this.started=!1,this.steps=[],this.type=null}get hasNextStep(){const{steps:t}=this;return!!(t&&this._stepIndex<t.filter((t=>!t.parent)).length-1)}get hasPreviousStep(){return this._stepIndex>0}get reliesOnOwnerAdminPrivileges(){return!1}get shouldShowAttachments(){return!1}get shouldAllowAttachmentEditing(){return!1}get stepId(){const{steps:t}=this,e=t&&t[this._stepIndex];return e&&e.id}get helpMessage(){}get hasPendingEdits(){return!1}get keyboardCancellationEnabled(){return!0}async cancel(t={force:!0}){return!1!==t.force?this._cancel():new Promise(((t,s)=>{this.emit("cancel-request",{controller:{allow:()=>{this._cancel().then(t)},deny:()=>s(new e("workflow:cancel-denied","Request to cancel workflow was denied."))}})}))}async commit(){this.handles.remove(this._handleKeys.beforeCommit),await this.onCommit(this.data),this.handles.remove(this._handleKeys.afterCommit),this.emit("commit")}async go(t){const{steps:e}=this,s=e.findIndex((e=>e.id===t));this._indexHistory.push(this._stepIndex),await this._go(s)}async next(){this._indexHistory.push(this._stepIndex),await this._go(this._stepIndex+1)}async previous(t={cancelCurrentStep:!1}){await this._go(this._indexHistory.pop(),t.cancelCurrentStep)}async reset(){await this._cancel({notify:!1}),await this.start()}async start(){this._set("started",!0);const t=-1===this._stepIndex?0:this._stepIndex;await this._go(t)}async _cancel({notify:t=!0,error:e}={}){this.started&&(this._set("started",!1),await this.steps[this._stepIndex].tearDown({canceled:!0}),this.data&&this.data.viewModel.sketchViewModel.layer.removeAll()),this.handles.remove([this._handleKeys.afterCommit,this._handleKeys.beforeCommit]),this._resetIndexing(t),t&&this.emit("cancel",{error:e})}async _go(t=-1,e=!1){const{steps:s}=this;if(t<=-1||t>=s.length)return;if(!this.started)return this._stepIndex=t,void this._notifyStepProps();this._lastStepIndex>-1&&(this._setupAbortController=r(this._setupAbortController),await s[this._lastStepIndex].tearDown({canceled:e})),this._setupAbortController=new AbortController;const o=this._setupAbortController.signal;try{await s[t].setUp(o)}catch(n){i(n)}this._setupAbortController.signal===o&&(this._setupAbortController=null),o.aborted||(this._lastStepIndex=t,this._stepIndex=t,this._notifyStepProps())}_resetIndexing(t=!0){this._stepIndex=-1,this._lastStepIndex=-1,this._indexHistory.length=0,t&&this._notifyStepProps()}_notifyStepProps(){this.notifyChange("stepId"),this.notifyChange("hasPreviousStep"),this.notifyChange("hasNextStep")}};t([n()],l.prototype,"data",void 0),t([n()],l.prototype,"hasNextStep",null),t([n()],l.prototype,"hasPreviousStep",null),t([n()],l.prototype,"onCommit",void 0),t([n()],l.prototype,"reliesOnOwnerAdminPrivileges",null),t([n()],l.prototype,"shouldShowAttachments",null),t([n()],l.prototype,"shouldAllowAttachmentEditing",null),t([n()],l.prototype,"started",void 0),t([n({readOnly:!0})],l.prototype,"stepId",null),t([n()],l.prototype,"steps",void 0),t([n({readOnly:!0})],l.prototype,"type",void 0),t([n()],l.prototype,"helpMessage",null),t([n()],l.prototype,"hasPendingEdits",null),t([n()],l.prototype,"keyboardCancellationEnabled",null),t([n()],l.prototype,"commit",null),l=t([a("esri.widgets.Editor.Workflow")],l);const p=l;export{p 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.27/esri/copyright.txt for details.
4
4
  */
5
- import{handlesGroup as e,makeHandle as r}from"../../core/handleUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{throwIfAborted as t}from"../../core/promiseUtils.js";import{watch as c}from"../../core/reactiveUtils.js";async function s({view:s,data:l,signal:i,next:u,cancel:m}){const{creationInfo:p}=l;if(!p)return;if(!a(p))return;const{layer:f}=p,d=null!=p.geometryToPlace;if(p.geometryToPlace=null,d)return void m();const y=(await import("./Upload.js")).Upload;t(i);const g=new y;l.upload=g;const j=n(s),U=e([j,c((()=>g.state),(e=>{switch(e){case"success":p.geometryToPlace=g.result,u();break;case"error":j.remove();break;case"canceled":m()}})),r((()=>{l.upload=o(l.upload)}))]);return g.uploadTo(f),U}function n(e){const o=e.cursor;return e.cursor="progress",r((()=>e.cursor=o))}function a(e){const r=e?.layer;return"scene"===r?.type}export{a as isModelUpload,s as waitForModelUpload};
5
+ import{handlesGroup as e,makeHandle as o}from"../../core/handleUtils.js";import{destroyMaybe as r}from"../../core/maybe.js";import{throwIfAborted as t}from"../../core/promiseUtils.js";import{watch as a}from"../../core/reactiveUtils.js";import{showProgressCursor as c}from"./workflowUtils.js";async function s({view:s,data:l,signal:i,next:m,cancel:p}){const{creationInfo:u}=l;if(!u)return;if(!n(u))return;const{layer:f}=u,d=null!=u.geometryToPlace;if(u.geometryToPlace=null,d)return void p();const y=(await import("./Upload.js")).Upload;t(i);const j=new y;l.upload=j;const w=c(s),U=e([w,a((()=>j.state),(e=>{switch(e){case"success":u.geometryToPlace=j.result,m();break;case"error":w.remove();break;case"canceled":p()}})),o((()=>{l.upload=r(l.upload)}))]);return j.uploadTo(f),U}function n(e){const o=e?.layer;return"scene"===o?.type}export{n as isModelUpload,s as waitForModelUpload};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Graphic.js";import"../../core/has.js";import{handlesGroup as t}from"../../core/handleUtils.js";import{clone as r}from"../../core/lang.js";import{removeMaybe as n}from"../../core/maybe.js";import{throwIfAborted as i,whenOrAbort as a,eachAlways as s}from"../../core/promiseUtils.js";import{watch as l,initial as o,whenOnce as c}from"../../core/reactiveUtils.js";import{px2pt as u}from"../../core/screenUtils.js";import{diff as p}from"../../core/accessorSupport/diffUtils.js";import{calculateTolerance as y}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as f}from"../../renderers/support/lengthUtils.js";import{getTransformationType as d,TransformationType as m}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as g,getSize as h}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as b,i3sPatchingEnabled as w}from"../../support/featureFlags.js";import{to3D as v}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as S}from"../../symbols/support/symbolUtils.js";import{GraphicState as j}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as I}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as U,filterGraphicHits as V}from"../../views/support/hitTestSelectUtils.js";function F(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!A(t.renderer))return{rotation:null,size:null};let r=null,n=null;const i=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=g(t,e)));1===i.length&&(r=T(i[0],t));const a=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&d(t)===m.RealWorldSize&&null!=h(t,e)));return 1===a.length&&(n=L(a[0],t)),{rotation:r,size:n}}function T(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,n=e.field,i=t.fields&&t.fields.filter((e=>e.name===n)),a=i&&1===i.length?i[0].type:"double",s={initial:0,current:0};return{field:n,fieldType:a,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-r*e,E((s.current+360)%360,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function z(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function x(e,t,r){if(null==t)return 0;const{symbol:n}=v(t);if(null==n||"web-style"===n.type||"cim"===n.type)return 0;const i=n.symbolLayers.getItemAt(0);if(!i)return 0;switch(i.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return i.size||Math.min(K.icon,(await e(i,K.icon))[0])||K.icon}case"text":return i.size||K.text;case"line":return i.size||K.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return z(await t(i,e.scale/K.viewScaleSizeFactor),r)}case"path":return(null!=i.width?i.width:i.height)||e.scale/K.viewScaleSizeFactor;case"extrude":return i.size||e.scale/K.viewScaleSizeFactor;default:return 0}}function L(e,t){const r=e.field,n=e.axis,i=t.fields&&t.fields.filter((e=>e.name===r)),a=i&&1===i.length?i[0].type:"double",s={updating:!1,initial:0,current:0},l=f[e.valueUnit]??1;let o;return o="area"===e.valueRepresentation?e=>(e*l/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*l/2:e=>e*l,{field:r,fieldType:a,getDefault:async(e,t)=>E(o(await x(t,e,n)),a),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,E(s.current,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:$(e.valueUnit),axis:e.axis}}function E(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function A(e){switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function M(e,t){const r=await S(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t});null!=p(e.symbol,r)&&(e.symbol=r)}function O(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function R(e,t,r,n){await k(e,t,n);const i=e.on("create",(async i=>{if("cancel"===i.state)return k(e,t,n);if("complete"===i.state){const e=i.graphic;e.sourceLayer||(e.sourceLayer=t.layer),e.attributes||(e.attributes={...t.template.prototype.attributes}),await M(e,n),r(e)}}));return{remove:()=>{i.remove(),e.cancel()}}}async function k(e,t,r){const n=t.layer,i={...t.template.prototype.attributes};await P(e,n,i,r);const a={graphicProperties:{attributes:i,sourceLayer:n},hasZ:n.capabilities.data.supportsZ,geometryToPlace:t.geometryToPlace??void 0};return e.layer.elevationInfo=n.elevationInfo,e.create(O(n.geometryType),a)}async function P(t,r,n,i){const a=new e({sourceLayer:r,attributes:n}),{rotation:s,size:l}=F(a);let o=await S(a,{useSourceLayer:!0,webStyleCache:i}),c=!1;for(const e of[l,s]){if(null==e)continue;null==n[e.field]&&(n[e.field]=await e.getDefault(o,t.view),c=!0)}switch(c&&(o=await S(a,{useSourceLayer:!0,webStyleCache:i})),o?.type){case"simple-fill":case"polygon-3d":t.polygonSymbol=o;break;case"simple-line":case"line-3d":t.polylineSymbol=o;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":t.pointSymbol=o}D(t.tooltipOptions,l,s)}function D(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function G(e,t){return e?e.find((e=>e.layer===t)):void 0}async function C(e,t,r,n){if(0===e.length)return[];const{updatable:i,graphicsByLayer:l}=await r.async((async()=>{const{results:i}=await a(U(t,r),n),s=new Map,l=e=>{const t=e.layer,r=s.get(t);if(!r){const e=new Array;return s.set(t,e),e}return r};V(i).forEach((({graphic:e})=>l(e).push(e)));const o=e.filter((({supports:e,layer:t})=>e.includes("update")&&s.has(t)));return 0!==o.length&&r.stopPropagation(),{updatable:o,graphicsByLayer:s}}));return a(s(i.map((async({layer:e})=>{const{objectIdField:t}=e,r="displayField"in e?e.displayField:null,i=[t];null!=r&&e.fieldsIndex.has(r)&&i.push(r);const a=l.get(e);if(!!a.some((e=>i.some((t=>!(t in e.attributes)))))){const t=e.createQuery();return t.outFields=i,t.returnGeometry=!1,t.objectIds=a.map((e=>e.getObjectId())),e.queryFeatures(t,{signal:n}).then((({features:e})=>e))}return a}))),n)}async function q(e,t,r,n){if(0===e.length)return[];let i=null;const l=await r.async((async()=>{const{results:s}=await a(t.hitTest(r),n);if(0===s.length)return[];const l=new Set;i=V(s),i.forEach((({graphic:e})=>e&&l.add(e.layer)));const o=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:r})=>l.has(e)&&(t.includes("update")||t.includes("delete")||r)));return o.length>0&&r.stopPropagation(),o}));return a(s(l.map((({layer:e})=>{const a=e.objectIdField,s="displayField"in e?e.displayField:null,l=[a];null!=s&&e.fieldsIndex.has(s)&&l.push(s);const o=e.createQuery();o.outFields=l,o.returnGeometry=!1;const c="renderer"in e?y({renderer:e.renderer,event:r}):0;return o.geometry=I(r.mapPoint,c,t),o.outSpatialReference=t.spatialReference,e.queryFeatures(o,{signal:n}).then((({features:t})=>(i?.forEach((({graphic:r})=>{r.layer!==e||t.some((e=>e.getObjectId()===r.getObjectId()))||t.push(r)})),t)))}))),n)}async function Z(e,t,r,n){switch(t.type){case"3d":return C(e,t,r,n);case"2d":return q(e,t,r,n)}}async function Q(e,t,r){const{sourceLayer:n}=e,a=n.createQuery();a.objectIds=[e.getAttribute(n.objectIdField)],a.outFields=["*"],a.outSpatialReference=t,a.returnM=n.capabilities.data.supportsM,a.returnZ=n.capabilities.data.supportsZ,b()&&w()&&"scene"===n.type&&null!=n.infoFor3D&&(a.returnGeometry=!0,a.formatOf3DObjects="3D_glb");const s=await n.queryFeatures(a,{signal:r});i(r);const l=s.features[0];if("mesh"===l.geometry?.type&&!l.geometry.transform){const e=(await import("../../geometry/support/MeshTransform.js")).default;i(r),l.geometry.transform=new e({geographic:!0})}return l}async function B(e,t,r,n,i){let a=!1;const{rotation:s,size:l}=n;[s,l].forEach((async r=>{if(null==r)return;const n=t.getAttribute(r.field);if(null!=n)r.initValue(n);else{const n=await r.getDefault(t.symbol,e.view);r.initValue(n),t.setAttribute(r.field,n),a=!0}})),a&&await M(t,i);const o={multipleSelectionEnabled:!1};return"point"===r.geometryType&&(o.enableRotation=null!=s,o.enableScaling=null!=l),D(e.tooltipOptions,l,s),e.layer.elevationInfo=r.elevationInfo,e.update(t,o)}function W(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function _(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function H(e,t,r,n,i){if(null==t.geometry||"point"!==t.geometry?.type)return;const a=n.rotation,s=W(r.toolEventInfo);if(null!=a&&null!=s)if("rotate-stop"===s.type)a.isUpdatingInteractively=!1,a.initValue();else{a.isUpdatingInteractively=!0;const{field:r,getValue:n}=a;t.setAttribute(r,n(s.angle,e))}const l=n.size,o=_(r.toolEventInfo);if(null!=l&&null!=o)if("scale-stop"===o.type)l.isUpdatingInteractively=!1,l.initValue();else{l.isUpdatingInteractively=!0;const{field:r,getValue:n}=l;t.setAttribute(r,n(o.xScale,e))}await M(t,i)}async function J(e,r,i,a,s,u){const p=le(e);await M(p,u),a.map.add(i.layer),i.layer.add(p);const y=e.sourceLayer,f=ne(a,y),d=()=>{const t=e.layer,r=e.getAttribute(t.objectIdField);return f.then((e=>e.setVisibility?.(r,!1)),(()=>{})),{remove(){f.then((e=>e.setVisibility?.(r,!0)),(()=>{}))}}};let m=null,g=null;if("3d"===a.type){const e=new j({graphic:p});m=t([a.trackGraphicState(e),l((()=>e.displaying),(e=>{g=e?d():n(g)}),o)])}else g=d();await B(i,p,y,r,u);let h=null;f.then((e=>h=e),(()=>{}));const b=r.size,w=r.rotation,v=l((()=>e.attributes),(async e=>{let t=!1;for(const r in e){const n=e[r];n!==p.getAttribute(r)&&(p.setAttribute(r,n),null==b||b.isUpdatingInteractively||b.field!==r||b.initValue(n),null==w||w.isUpdatingInteractively||w.field!==r||w.initValue(n),(null==h||h.requiredFields.includes(r))&&(t=!0))}t&&await M(p,u)})),S=i.on("update",(async e=>{const t=e.graphics[0];if("complete"===e.state)return B(i,t,y,r,u);await H(a,t,e,r,u),s(le(t),e)})),I=i.on(["undo","redo"],(async e=>{s(le(e.graphics[0]),e)})),U=()=>{};return{interactive:{remove(){I.remove(),S.remove(),i.cancel(),v&&v.remove(),this.remove=U}},visual:{remove(){n(g),ne(a,y).then((e=>c((()=>!e.updating)))).then((()=>{n(m),i.layer.remove(p),this.remove=U}))}}}}const K={icon:u(24),text:u(12),line:u(1),viewScaleSizeFactor:100};function N(e,t,r){let n=!1;return e.filter((e=>!!n||(n=e===t,n))).map((e=>r[e]()))}function X(e){if(1!==e.length)return null;const t=e[0];if("items"in t){const e=t;return 1===e.items.length?e.items[0]:null}return t}function Y(e,t){if(e.viewModel.refreshCreationTemplates(),"awaiting-feature-creation-info"===t[0].id){const r=X(e.viewModel.featureTemplatesViewModel.items);null==r||r.supportsUpload||(e.creationInfo=r,t.shift())}return t}function $(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function ee(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function te(e){const{creationInfo:t,viewModel:r}=e;if(!t)return!1;const{layer:n}=t,i=r.editableItems.find((e=>e.layer===n));if(i)return i.attachmentsOnCreateEnabled;const a=n.capabilities?.data,s=r.layerInfos?.find((e=>e.layer===n));return!(!(a&&"supportsAttachment"in a&&a.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const re=e=>/-stop/.test(e)||/vertex-/.test(e),ne=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function ie(e){return"createInteractiveEditSession"in e}const ae=Symbol();function se(e){return e&&"object"==typeof e&&ae in e}function le(e){const t=e.geometry;if("mesh"===t?.type){const n=e.cloneShallow();return n.attributes=r(e.attributes),n.geometry=t.cloneShallow(),n.geometry.transform=t.transform?.clone()??null,n}return e.clone()}export{ae as UsesSketchViewModelSymbol,Y as avoidFeatureTemplateSelectionWithOnlyOneItem,ie as canCreateInteractiveEditSession,le as cloneGraphicExceptMesh,N as createWorkflowSteps,Z as fetchCandidates,Q as fetchFullFeature,G as findLayerInfo,F as getVisualVariableAttributes,re as isTerminalUpdateEventType,ee as prepareAttachmentsForCreateWorkflow,R as setUpFeatureAdd,J as setUpGeometryUpdate,te as shouldShowAttachmentsForCreateWorkflow,K as sizeDefaults,$ as sizeVariableUnitToLengthUnit,k as startCreatingNewFeature,B as startUpdatingFeature,M as updateGraphicSymbolWhenRequired,H as visualVariableInteractiveUpdate,ne as whenEditorLayerView,se as workflowUsesSketchViewModel};
5
+ import e from"../../Graphic.js";import{createTask as t}from"../../core/asyncUtils.js";import"../../core/has.js";import{handlesGroup as r,makeHandle as n}from"../../core/handleUtils.js";import{clone as i}from"../../core/lang.js";import{throwIfAborted as a,whenOrAbort as s,eachAlways as o}from"../../core/promiseUtils.js";import{watch as l,whenOnce as c}from"../../core/reactiveUtils.js";import{px2pt as u}from"../../core/screenUtils.js";import{diff as p}from"../../core/accessorSupport/diffUtils.js";import{calculateTolerance as y}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as f}from"../../renderers/support/lengthUtils.js";import{getTransformationType as d,TransformationType as m}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as g,getSize as h}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as b,i3sPatchingEnabled as w}from"../../support/featureFlags.js";import{to3D as v}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as S}from"../../symbols/support/symbolUtils.js";import{GraphicState as j}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as I}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as U,filterGraphicHits as V}from"../../views/support/hitTestSelectUtils.js";function F(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!A(t.renderer))return{rotation:null,size:null};let r=null,n=null;const i=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=g(t,e)));1===i.length&&(r=T(i[0],t));const a=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&d(t)===m.RealWorldSize&&null!=h(t,e)));return 1===a.length&&(n=L(a[0],t)),{rotation:r,size:n}}function T(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,n=e.field,i=t.fields&&t.fields.filter((e=>e.name===n)),a=i&&1===i.length?i[0].type:"double",s={initial:0,current:0};return{field:n,fieldType:a,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-r*e,E((s.current+360)%360,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function z(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function x(e,t,r){if(null==t)return 0;const{symbol:n}=v(t);if(null==n||"web-style"===n.type||"cim"===n.type)return 0;const i=n.symbolLayers.getItemAt(0);if(!i)return 0;switch(i.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return i.size||Math.min(Y.icon,(await e(i,Y.icon))[0])||Y.icon}case"text":return i.size||Y.text;case"line":return i.size||Y.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return z(await t(i,e.scale/Y.viewScaleSizeFactor),r)}case"path":return(null!=i.width?i.width:i.height)||e.scale/Y.viewScaleSizeFactor;case"extrude":return i.size||e.scale/Y.viewScaleSizeFactor;default:return 0}}function L(e,t){const r=e.field,n=e.axis,i=t.fields&&t.fields.filter((e=>e.name===r)),a=i&&1===i.length?i[0].type:"double",s={updating:!1,initial:0,current:0},o=f[e.valueUnit]??1;let l;return l="area"===e.valueRepresentation?e=>(e*o/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*o/2:e=>e*o,{field:r,fieldType:a,getDefault:async(e,t)=>E(l(await x(t,e,n)),a),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,E(s.current,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:re(e.valueUnit),axis:e.axis}}function E(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function A(e){switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function M(e,t){const r=await S(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t});null!=p(e.symbol,r)&&(e.symbol=r)}function O(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function R(e,t,i,a){await k(e,t,a);const s=e.on("create",(async r=>{if("cancel"===r.state)return k(e,t,a);if("complete"===r.state){const e=r.graphic;e.sourceLayer||(e.sourceLayer=t.layer),e.attributes||(e.attributes={...t.template.prototype.attributes}),await M(e,a),i(e)}}));return r([s,n((()=>e.cancel()))])}async function k(e,t,r){const n=t.layer,i={...t.template.prototype.attributes};await G(e,n,i,r),e.layer.elevationInfo=n.elevationInfo,await e.create(O(n.geometryType),{graphicProperties:{attributes:i,sourceLayer:n},hasZ:n.capabilities.data.supportsZ,geometryToPlace:t.geometryToPlace??void 0})}async function G(t,r,n,i){const a=new e({sourceLayer:r,attributes:n}),{rotation:s,size:o}=F(a);let l=await S(a,{useSourceLayer:!0,webStyleCache:i}),c=!1;for(const e of[o,s]){if(null==e)continue;null==n[e.field]&&(n[e.field]=await e.getDefault(l,t.view),c=!0)}switch(c&&(l=await S(a,{useSourceLayer:!0,webStyleCache:i})),l?.type){case"simple-fill":case"polygon-3d":t.polygonSymbol=l;break;case"simple-line":case"line-3d":t.polylineSymbol=l;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":t.pointSymbol=l}P(t.tooltipOptions,o,s)}function P(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function D(e,t){return e?e.find((e=>e.layer===t)):void 0}async function C(e,t,r,n){if(0===e.length)return[];const{updatable:i,graphicsByLayer:a}=await r.async((async()=>{const{results:i}=await s(U(t,r),n),a=new Map,o=e=>{const t=e.layer,r=a.get(t);if(!r){const e=new Array;return a.set(t,e),e}return r};V(i).forEach((({graphic:e})=>o(e).push(e)));const l=e.filter((({supports:e,layer:t})=>e.includes("update")&&a.has(t)));return 0!==l.length&&r.stopPropagation(),{updatable:l,graphicsByLayer:a}}));return s(o(i.map((async({layer:e})=>{const{objectIdField:t}=e,r="displayField"in e?e.displayField:null,i=[t];null!=r&&e.fieldsIndex.has(r)&&i.push(r);const s=a.get(e);if(!!s.some((e=>i.some((t=>!(t in e.attributes)))))){const t=e.createQuery();return t.outFields=i,t.returnGeometry=!1,t.objectIds=s.map((e=>e.getObjectId())),e.queryFeatures(t,{signal:n}).then((({features:e})=>e))}return s}))),n)}async function q(e,t,r,n){if(0===e.length)return[];let i=null;const a=await r.async((async()=>{const{results:a}=await s(t.hitTest(r),n);if(0===a.length)return[];const o=new Set;i=V(a),i.forEach((({graphic:e})=>e&&o.add(e.layer)));const l=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:r})=>o.has(e)&&(t.includes("update")||t.includes("delete")||r)));return l.length>0&&r.stopPropagation(),l}));return s(o(a.map((({layer:e})=>{const a=e.objectIdField,s="displayField"in e?e.displayField:null,o=[a];null!=s&&e.fieldsIndex.has(s)&&o.push(s);const l=e.createQuery();l.outFields=o,l.returnGeometry=!1;const c="renderer"in e?y({renderer:e.renderer,event:r}):0;return l.geometry=I(r.mapPoint,c,t),l.outSpatialReference=t.spatialReference,e.queryFeatures(l,{signal:n}).then((({features:t})=>(i?.forEach((({graphic:r})=>{r.layer!==e||t.some((e=>e.getObjectId()===r.getObjectId()))||t.push(r)})),t)))}))),n)}async function Z(e,t,r,n){switch(t.type){case"3d":return C(e,t,r,n);case"2d":return q(e,t,r,n)}}async function Q(e,t,r){const{sourceLayer:n}=e,i=n.createQuery();i.objectIds=[e.getAttribute(n.objectIdField)],i.outFields=["*"],i.outSpatialReference=t,i.returnM=n.capabilities.data.supportsM,i.returnZ=n.capabilities.data.supportsZ,b()&&w()&&"scene"===n.type&&null!=n.infoFor3D&&(i.returnGeometry=!0,i.formatOf3DObjects="3D_glb");const s=await n.queryFeatures(i,{signal:r});a(r);const o=s.features[0];if("mesh"===o.geometry?.type&&!o.geometry.transform){const e=(await import("../../geometry/support/MeshTransform.js")).default;a(r),o.geometry.transform=new e({geographic:!0})}return o}async function B(e,t,r,n,i){let a=!1;const{rotation:s,size:o}=n;[s,o].forEach((async r=>{if(null==r)return;const n=t.getAttribute(r.field);if(null!=n)r.initValue(n);else{const n=await r.getDefault(t.symbol,e.view);r.initValue(n),t.setAttribute(r.field,n),a=!0}})),a&&await M(t,i);const l={multipleSelectionEnabled:!1};return"point"===r.geometryType&&(l.enableRotation=null!=s,l.enableScaling=null!=o),P(e.tooltipOptions,o,s),e.layer.elevationInfo=r.elevationInfo,e.update(t,l)}function W(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function _(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function H(e,t,r,n,i){if(null==t.geometry||"point"!==t.geometry?.type)return;const a=n.rotation,s=W(r.toolEventInfo);if(null!=a&&null!=s)if("rotate-stop"===s.type)a.isUpdatingInteractively=!1,a.initValue();else{a.isUpdatingInteractively=!0;const{field:r,getValue:n}=a;t.setAttribute(r,n(s.angle,e))}const o=n.size,l=_(r.toolEventInfo);if(null!=o&&null!=l)if("scale-stop"===l.type)o.isUpdatingInteractively=!1,o.initValue();else{o.isUpdatingInteractively=!0;const{field:r,getValue:n}=o;t.setAttribute(r,n(l.xScale,e))}await M(t,i)}async function J(e,t,i,a,s,o){const c=ue(e);await M(c,o),a.map.add(i.layer),i.layer.add(c);const u=e.sourceLayer,p=se(a,u);await X(a,c),await B(i,c,u,t,o);const y=K(i,e,c);let f=null;p.then((e=>f=e)).catch((()=>{}));const d=t.size,m=t.rotation,g=l((()=>e.attributes),(async e=>{let t=!1;for(const r in e){const n=e[r];n!==c.getAttribute(r)&&(c.setAttribute(r,n),null==d||d.isUpdatingInteractively||d.field!==r||d.initValue(n),null==m||m.isUpdatingInteractively||m.field!==r||m.initValue(n),(null==f||f.requiredFields.includes(r))&&(t=!0))}t&&await M(c,o)})),h=i.on("update",(async e=>{const r=e.graphics[0];if("complete"===e.state)return B(i,r,u,t,o);await H(a,r,e,t,o),s(ue(r),e)})),b=i.on(["undo","redo"],(async e=>{s(ue(e.graphics[0]),e)}));return{interactive:r([b,h,n((()=>i.cancel())),g]),visual:y}}function K(e,i,s){const o=e.view,l=i.sourceLayer,u=i.layer,p=i.getAttribute(u.objectIdField);let y=null;function f(e){y?.abort(),y=t((async t=>{const r=await se(o,l);a(t),r.setVisibility?.(p,e)}))}return f(!1),r([N(o,s,(e=>f(!e))),n((async()=>{f(!0);const t=await se(o,l);await c((()=>!t.updating)),e.layer.remove(s)}))])}function N(e,t,n){if("3d"===e.type){const i=new j({graphic:t});return r([e.trackGraphicState(i),l((()=>i.displaying),n)])}return l((()=>t.visible),n)}async function X(e,t){if("3d"===e.type){const r=new j({graphic:t}),n=e.trackGraphicState(r);await c((()=>r.displaying)),n.remove()}else await c((()=>t.visible))}const Y={icon:u(24),text:u(12),line:u(1),viewScaleSizeFactor:100};function $(e,t,r){let n=!1;return e.filter((e=>!!n||(n=e===t,n))).map((e=>r[e]()))}function ee(e){if(1!==e.length)return null;const t=e[0];if("items"in t){const e=t;return 1===e.items.length?e.items[0]:null}return t}function te(e,t){if(e.viewModel.refreshCreationTemplates(),"awaiting-feature-creation-info"===t[0].id){const r=ee(e.viewModel.featureTemplatesViewModel.items);null==r||r.supportsUpload||(e.creationInfo=r,t.shift())}return t}function re(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function ne(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function ie(e){const{creationInfo:t,viewModel:r}=e;if(!t)return!1;const{layer:n}=t,i=r.editableItems.find((e=>e.layer===n));if(i)return i.attachmentsOnCreateEnabled;const a=n.capabilities?.data,s=r.layerInfos?.find((e=>e.layer===n));return!(!(a&&"supportsAttachment"in a&&a.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const ae=e=>/-stop/.test(e)||/vertex-/.test(e),se=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function oe(e){return"createInteractiveEditSession"in e}const le=Symbol();function ce(e){return e&&"object"==typeof e&&le in e}function ue(e){const t=e.geometry;if("mesh"===t?.type){const r=e.cloneShallow();return r.attributes=i(e.attributes),r.geometry=t.cloneShallow(),r.geometry.transform=t.transform?.clone()??null,r}return e.clone()}function pe(e){const t=e.cursor;return e.cursor="progress",n((()=>e.cursor=t))}export{le as UsesSketchViewModelSymbol,te as avoidFeatureTemplateSelectionWithOnlyOneItem,oe as canCreateInteractiveEditSession,ue as cloneGraphicExceptMesh,$ as createWorkflowSteps,Z as fetchCandidates,Q as fetchFullFeature,D as findLayerInfo,F as getVisualVariableAttributes,ae as isTerminalUpdateEventType,ne as prepareAttachmentsForCreateWorkflow,R as setUpFeatureAdd,J as setUpGeometryUpdate,ie as shouldShowAttachmentsForCreateWorkflow,pe as showProgressCursor,Y as sizeDefaults,re as sizeVariableUnitToLengthUnit,k as startCreatingNewFeature,B as startUpdatingFeature,M as updateGraphicSymbolWhenRequired,H as visualVariableInteractiveUpdate,se as whenEditorLayerView,X as whenGraphicDisplayed,ce as workflowUsesSketchViewModel};
package/widgets/Editor.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.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import a from"../core/Logger.js";import{createResolver as o}from"../core/promiseUtils.js";import{watch as n,on as i,when as r,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import u from"./Attachments.js";import h from"./FeatureForm.js";import g from"./FeatureTemplates.js";import _ from"./Spinner.js";import f from"./Widget.js";import{workflowDeprecation as w}from"./Editor/deprecationUtils.js";import v from"./Editor/EditorViewModel.js";import{isModelUpload as y}from"./Editor/modelUploadUtils.js";import{ItemList as k}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{Heading as C,incrementHeadingLevel as A}from"./support/Heading.js";import M from"./support/SnappingControls.js";import{accessibleHandler as F}from"./support/decorators/accessibleHandler.js";import{messageBundle as T}from"./support/decorators/messageBundle.js";import{vmEvent as W}from"./support/decorators/vmEvent.js";import{tsx as E}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{SketchTooltipControls as L}from"./support/SketchTooltipControls/SketchTooltipControls.js";import{substitute as S}from"../intl/substitute.js";const j="esri-editor",I=`${j}__panel`,P=`${j}__prompt`,U={base:`${j} esri-widget esri-widget--panel`,message:`${j}__message`,actions:`${j}__actions`,helpMessage:`${j}__help-message`,progressBar:`${j}__progress-bar`,panelToolbar:`${I}-toolbar`,panelContent:`${I}-content`,panelContentMessage:`${I}-content__message`,panelContentSection:`${I}-content__section`,panelContentSectionGroup:`${I}-content__section__group`,panelContentScrimContainer:`${I}-content__scrim-container`,settingsContainer:`${j}__settings`,updateFeaturesActionButtons:`${j}__update-features-action-buttons`,updateFeaturesActionButtonsButton:`${j}__update-features-action-buttons--button`,featureTemplatesContainer:`${j}__feature-templates-container`,ownerAdminNotice:`${j}__owner-admin-notice`,templateItemContentEnd:`${j}__template-item-content-end`,templateItemContentEndSuccess:`${j}__template-item-content-end--success`,templateItemContentEndError:`${j}__template-item-content-end--error`,templateItemLoader:`${j}__template-item-loader`,promptContainer:P,promptHeader:`${P}__header`,promptHeading:`${P}__header__heading`,promptMessage:`${P}__message`,promptDivider:`${P}__divider`,promptActions:`${P}__actions`,warningIcon:"esri-icon-notice-triangle",widgetIcon:"esri-icon-edit"},B={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function $(e){requestAnimationFrame((()=>e.setFocus()))}const D="esri.widgets.Editor",O=a.getLogger(D);let x=class extends(s(f)){constructor(e,t){super(e,t),this._featureForm=new h,this._attachments=new u({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new g({enableListScroll:!1,renderItemContentEnd:e=>this._renderTemplateContentEnd(e),renderItemDescription:e=>this._renderTemplateDescription(e),renderItemLabel:e=>this._renderTemplateLabel(e)}),this._filterText="",this._prompt=null,this._spinner=new _,this.headingLevel=4,this.iconClass=U.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new v,this.visibleElements={...B},this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:a},...o)=>{const{messagesCommon:n,viewModel:i,visibleElements:r}=this,l=i.sketchViewModel,c=i.syncing||this._attachments.submitting;return E("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:a,loading:c,onCalciteFlowItemBack:e??void 0},E("div",{key:"panel-toolbar",class:U.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[E("calcite-button",{key:"undo-button",label:n.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},n.undo),E("calcite-button",{key:"redo-button",label:n.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},n.redo)]),...o)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&y(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.previous(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){this.addHandles([n((()=>A(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),l),n((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,{emit:!1}))),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((()=>e.allow()),(()=>e.deny()))})),n((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),l),n((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),l),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),l),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:a,cancel:o}]=e;this._prompt={title:t.errorWarningTitle,message:S(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{a(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{o(),this._clearPrompt()}}}}})),n((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),n((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e)),i((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.viewModel.back()}))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return b({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...B,...e,snappingControlsElements:{...B.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return w(O,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return w(O,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return w(O,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return E("div",{key:"empty",class:U.base});const{state:t}=e;return E("div",{key:"base",class:U.base},E("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return E("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:a,_onBack:o}=this;return E(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:o,heading:a.selectTemplate,headingLevel:s},E("div",{key:"feature-templates",class:U.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:a,messagesCommon:o,headingLevel:n,_onBack:i,viewModel:r}=this;if(!t)return null;const l=t.type,c=r.featureFormViewModel,d="update"===l&&!t.data.edits.modified||r.syncing||c.updating,p="update"===l?a.editFeature:a.createFeatures,m="update"===l?o.update:o.create,u="create-features"===l&&"create-new"===t.createFeatureState,h="create-features"===l?t.numPendingFeatures:0,g=h>1?S(a.createFeaturesTemplate,{numFeatures:h}):m,_=t.shouldShowAttachments,f=c.inputs.every((e=>!e.visible))&&!_?this._renderMessage(S(a.clickToFinishTemplate,{button:m})):E("div",{key:"panel-content-section",class:U.panelContentSection},this._renderOwnerAdminNoticeIfApplicable(t),E("div",{class:U.panelContentSectionGroup},this._featureForm.render(),_&&E("div",{key:"attachments"},E(C,{level:A(n)},a.attachments),this._attachments.render())));return E(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:p,headingLevel:n,handleBack:i},E("div",{key:"panel-content",class:this.classes(U.panelContent,{[U.panelContentScrimContainer]:u})},f,u&&E("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:d,label:g,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:o.delete}:null]))}_renderOwnerAdminNoticeIfApplicable(e){if(e?.reliesOnOwnerAdminPrivileges)return E("calcite-notice",{open:!0,kind:"info",scale:"s",class:U.ownerAdminNotice},E("div",{slot:"message"},this.messages.ownerAdminNotice))}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:a,headingLevel:o,messages:n,messagesCommon:i}=this;return E(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:n.addAttachment,headingLevel:o,handleBack:a},E("div",{key:"attachments",class:U.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?i.cancel:i.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:a,activeWorkflow:o,headingLevel:n,messages:i,messagesCommon:r}=this;return o?E(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:i.editAttachment,headingLevel:n,handleBack:a},E("div",{key:"attachments",class:U.panelContent},t.render()),o.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return E("div",{key:"panel-content-message",class:U.panelContentMessage},e)}_renderFooterActions(e){return E("div",{key:"footer-actions",slot:"footer",class:U.actions},e.filter(t).map((({type:e,disabled:t,class:s,clickHandler:a,label:o,...n},i)=>E("calcite-button",{key:`action-${i}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:a,width:"full",...n},o))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:a,actions:o}=e,n=o.secondary;let i;switch(a){case"danger":i="danger";break;case"info":i="brand";break;default:i="neutral"}const r=E("calcite-button",{afterCreate:$,appearance:"solid",key:"prompt-primary-button",kind:i,onclick:o.primary.action,scale:"m",width:n?"half":"full"},o.primary.label),l=n&&E("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:i,onclick:n.action,scale:"m",width:"half"},n.label);return E("calcite-scrim",{key:"prompt"},E("div",{class:`${U.promptContainer}--${a}`},E("div",{class:U.promptHeader},E("calcite-icon",{icon:"exclamation-mark-triangle"}),E(C,{class:U.promptHeading,level:this.headingLevel},t)),E("div",{class:U.promptMessage},s),E("div",{class:U.promptDivider}),E("div",{class:U.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:a,viewModel:o}=this,{canUpdate:n}=o,i=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!n&&0===i;return E(t,{active:this._isPanelActive(e),key:"landing-panel",heading:a.widgetLabel,headingLevel:s},E("div",{key:"landing-content",class:U.panelContent},n&&E("div",{key:"edit-actions",class:U.panelContentSection},this._renderUpdateActions(e)),i>0&&E("div",{key:"create-actions",class:U.panelContentSection},this._renderCreateActions()),r&&E("div",{key:"no-content",class:U.panelContentMessage},a.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,a=e?.helpMessage,o=a?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[a]:null;return o?E("div",{key:"footer-actions",slot:"footer",class:U.helpMessage},o):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this;return E("div",{key:"update-actions"},E(C,{level:A(this.headingLevel)},t.editFeatures),E("calcite-list",{selectionMode:"single",selectionAppearance:"border"},E("calcite-list-item",{selected:"awaiting-feature-to-update"===e,label:s.select,onCalciteListItemSelect:this._onToggleUpdateWorkflow},E("calcite-icon",{icon:"cursor",slot:"content-start"}))))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return E("div",{key:"create-actions"},E(C,{level:A(t)},s.createFeatures),E("div",{key:"templates",class:U.featureTemplatesContainer},e.render()))}_renderTemplateLabel(e){return e.label}_renderTemplateDescription(e){const t=this._getUploadForTemplateItem(e);if(!t)return null;const{messages:s}=this;switch(t.state){case"pending":return s?.uploadPending;case"error":return s?.uploadError;default:return null}}_renderTemplateContentEnd(e){const t=this._getUploadForTemplateItem(e),s=E("calcite-icon",{key:"upload-icon",class:U.templateItemContentEnd,icon:"upload-to"});if(!t)return e.supportsUpload?s:null;switch(t.state){case"success":return E("calcite-icon",{key:"success-icon",class:this.classes(U.templateItemContentEnd,U.templateItemContentEndSuccess),icon:"check"});case"error":return E("calcite-icon",{key:"error-icon",class:this.classes(U.templateItemContentEnd,U.templateItemContentEndError),icon:"exclamation-mark-circle-f"});case"pending":return E("calcite-loader",{class:U.templateItemLoader,inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"});case"canceled":case"default":return s}}_getUploadForTemplateItem(e){const t=this.activeWorkflow;if("create-features"!==t?.type)return null;const{data:s}=t,{creationInfo:a,upload:o}=s;return a?.template===e.template&&a?.layer===e.layer?o:null}_renderFeatureList(e){const{EditorPanel:s,_onBack:a,headingLevel:o,messages:n,messagesTemplates:i,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=S(n.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,a=this._filterText.toLowerCase(),{title:o}=s.layer,n=l.find((e=>e.layer===s.layer));if(!n)return null;const{attachmentsOnUpdateEnabled:i,supports:r}=n;return(r.includes("update")||r.includes("delete")||i)&&(!a||t?.toLowerCase().includes(a)||o?.toLowerCase().includes(a))})).filter(t).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const u=l.toArray().map((({layer:e})=>p.get(e))).filter(t),h=m>10||this._filterText.length>0;return E(s,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:o,handleBack:a},E("div",{key:"feature-list",class:U.panelContent},E("div",{class:U.panelContentSection},k({enableListScroll:!1,filterEnabled:h,filterText:this._filterText,id:this.id,items:u,messages:{filterPlaceholder:i.filterPlaceholder,noItems:i.noItems,noMatches:i.noMatches},onFilterChange:e=>this._filterText=e,onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0)}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const e=this.visibleElements,t=e.snappingControls,s=e.sketchTooltipControls;return t||s?E("calcite-accordion",{key:"settings",class:U.settingsContainer,appearance:"transparent"},E("calcite-accordion-item",{heading:this.messagesCommon?.settings,iconStart:"gear"},s&&E(L,{tooltipOptions:this.tooltipOptions}),t&&E(M,{snappingOptions:this.snappingOptions,view:this.view,visibleElements:e.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1}))):null}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:a}=e,o=m(t);return o&&a[o]&&`${a[o]}`||S(this.messages.untitledFeatureTemplate,{id:a[s]})}_showPrompt({title:e,message:t,yesLabel:s,noLabel:a}){const n=o();return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:s,action:()=>n.resolve()},secondary:{label:a,action:()=>n.reject()}}},n.promise.finally((()=>this._clearPrompt()))}_onSave(){this.viewModel.saveAndResetWorkflow()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onToggleUpdateWorkflow(){const{viewModel:e}=this;e.canUpdate&&(e.activeWorkflow&&"awaiting-feature-to-update"===e.state?await e.cancelWorkflow():await e.startUpdateWorkflowAtFeatureSelection())}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.previous()):this._attachments.addAttachment().then((()=>e.previous())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.previous()):this._attachments.updateAttachment().then((()=>e.previous())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([c()],x.prototype,"_featureForm",void 0),e([c()],x.prototype,"_attachments",void 0),e([c()],x.prototype,"_featureTemplates",void 0),e([c()],x.prototype,"_filterText",void 0),e([c()],x.prototype,"_prompt",void 0),e([c()],x.prototype,"_spinner",void 0),e([c()],x.prototype,"_deleteButtonCommonInfo",null),e([c({readOnly:!0})],x.prototype,"activeWorkflow",null),e([c()],x.prototype,"allowedWorkflows",null),e([c()],x.prototype,"useDeprecatedCreateWorkflow",null),e([c()],x.prototype,"headingLevel",void 0),e([c()],x.prototype,"iconClass",void 0),e([c()],x.prototype,"label",null),e([c()],x.prototype,"labelOptions",null),e([c()],x.prototype,"layerInfos",null),e([c(),T("esri/widgets/Editor/t9n/Editor")],x.prototype,"messages",void 0),e([c(),T("esri/t9n/common")],x.prototype,"messagesCommon",void 0),e([c(),T("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],x.prototype,"messagesTemplates",void 0),e([c()],x.prototype,"snappingOptions",null),e([c()],x.prototype,"tooltipOptions",null),e([c()],x.prototype,"supportingWidgetDefaults",void 0),e([c()],x.prototype,"view",null),e([c(),W(["workflow-cancel","workflow-commit"])],x.prototype,"viewModel",void 0),e([c()],x.prototype,"visibleElements",void 0),e([d("visibleElements")],x.prototype,"castVisibleElements",null),e([F()],x.prototype,"_onSave",null),e([F()],x.prototype,"_onDelete",null),e([F()],x.prototype,"_onToggleUpdateWorkflow",null),e([F()],x.prototype,"_onBack",null),e([F()],x.prototype,"_onAttachmentAdd",null),e([F()],x.prototype,"_onAttachmentUpdate",null),e([F()],x.prototype,"_onAttachmentDelete",null),x=e([p(D)],x);const H=x;export{H as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import{HandleOwnerMixin as s}from"../core/HandleOwner.js";import o from"../core/Logger.js";import{createResolver as a}from"../core/promiseUtils.js";import{watch as n,on as i,when as r,initial as l}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import{getDisplayFieldName as m}from"../layers/support/fieldUtils.js";import h from"./Attachments.js";import u from"./FeatureForm.js";import g from"./FeatureTemplates.js";import _ from"./Spinner.js";import f from"./Widget.js";import{workflowDeprecation as w}from"./Editor/deprecationUtils.js";import v from"./Editor/EditorViewModel.js";import{isModelUpload as y}from"./Editor/modelUploadUtils.js";import{renderItem as k,ItemList as b}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as C}from"./support/componentsUtils.js";import{Heading as A,incrementHeadingLevel as M}from"./support/Heading.js";import F from"./support/SnappingControls.js";import{accessibleHandler as T}from"./support/decorators/accessibleHandler.js";import{messageBundle as E}from"./support/decorators/messageBundle.js";import{vmEvent as W}from"./support/decorators/vmEvent.js";import{tsx as L}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{SketchTooltipControls as S}from"./support/SketchTooltipControls/SketchTooltipControls.js";import{substitute as I}from"../intl/substitute.js";const P="esri-editor",j=`${P}__panel`,U=`${P}__prompt`,D={base:`${P} esri-widget esri-widget--panel`,actions:`${P}__actions`,helpMessage:`${P}__help-message`,panelToolbar:`${j}-toolbar`,panelContent:`${j}-content`,panelContentMessage:`${j}-content__message`,panelContentSection:`${j}-content__section`,panelContentSectionGroup:`${j}-content__section__group`,panelContentScrimContainer:`${j}-content__scrim-container`,settingsContainer:`${P}__settings`,featureTemplatesContainer:`${P}__feature-templates-container`,ownerAdminNotice:`${P}__owner-admin-notice`,templateItemContentEnd:`${P}__template-item-content-end`,templateItemContentEndSuccess:`${P}__template-item-content-end--success`,templateItemContentEndError:`${P}__template-item-content-end--error`,templateItemLoader:`${P}__template-item-loader`,promptContainer:U,promptHeader:`${U}__header`,promptHeading:`${U}__header__heading`,promptMessage:`${U}__message`,promptDivider:`${U}__divider`,promptActions:`${U}__actions`,widgetIcon:"esri-icon-edit"},B={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0};function $(e){requestAnimationFrame((()=>e.setFocus()))}const O="esri.widgets.Editor",x=o.getLogger(O);let H=class extends(s(f)){constructor(e,t){super(e,t),this._featureForm=new u,this._attachments=new h({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new g({enableListScroll:!1,renderItemContentEnd:e=>this._renderTemplateContentEnd(e),renderItemDescription:e=>this._renderTemplateDescription(e),renderItemLabel:e=>this._renderTemplateLabel(e)}),this._filterText="",this._prompt=null,this._spinner=new _,this.headingLevel=4,this.iconClass=D.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new v,this.visibleElements={...B},this._renderSelectIcon=()=>L("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({handleBack:e,heading:t,headingLevel:s,key:o},...a)=>{const{messagesCommon:n,viewModel:i,visibleElements:r}=this,l=i.sketchViewModel,c=i.syncing||this._attachments.submitting;return L("calcite-flow-item",{closable:!1,heading:t,headingLevel:s,key:o,loading:c,onCalciteFlowItemBack:e??void 0},L("div",{key:"panel-toolbar",class:D.panelToolbar},this._renderSettings(),r.undoRedoButtons&&[L("calcite-button",{key:"undo-button",label:n.undo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"undo",scale:"l",disabled:!l.canUndo(),onclick:l.undo.bind(l)},n.undo),L("calcite-button",{key:"redo-button",label:n.redo,appearance:"transparent",kind:"neutral",alignment:"center",iconStart:"redo",scale:"l",disabled:!l.canRedo(),onclick:l.redo.bind(l)},n.redo)]),...a)},this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&y(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.previous(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null},this._onBack=this._onBack.bind(this),this._onSave=this._onSave.bind(this),this._onDelete=this._onDelete.bind(this),this._onToggleUpdateWorkflow=this._onToggleUpdateWorkflow.bind(this),this._onAttachmentAdd=this._onAttachmentAdd.bind(this),this._onAttachmentUpdate=this._onAttachmentUpdate.bind(this),this._onAttachmentDelete=this._onAttachmentDelete.bind(this)}initialize(){this.addHandles([n((()=>M(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),l),n((()=>this.viewModel.selectedTemplateItem),(e=>this._featureTemplates.select(e,{emit:!1}))),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),n((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),l),n((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),l),r((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),l),r((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),r((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:a}]=e;this._prompt={title:t.errorWarningTitle,message:I(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{a(),this._clearPrompt()}}}}})),n((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),n((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return C({accordion:()=>import("@esri/calcite-components/dist/components/calcite-accordion.js"),"accordion-item":()=>import("@esri/calcite-components/dist/components/calcite-accordion-item.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...B,...e,snappingControlsElements:{...B.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return w(x,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return w(x,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return w(x,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;if(!e)return L("div",{key:"empty",class:D.base});const{state:t}=e;return L("div",{key:"base",class:D.base},L("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e,t))),this._renderPage(e.page,t)),this._renderPrompt())}_renderPage(e,t){switch(e){case"disabled":break;case"ready":return this._renderLanding(t);case"awaiting-feature-creation-info":return this._renderTemplates(t);case"creating-features":case"editing-new-feature":case"editing-existing-feature":return this._renderAttributeEditing(t);case"awaiting-update-feature-candidate":return this._renderFeatureList(t);case"adding-attachment":return this._renderAttachmentAdding(t);case"editing-attachment":return this._renderAttachmentEditing(t)}return L("div",null)}_renderTemplates(e){const{EditorPanel:t,headingLevel:s,messages:o,_onBack:a}=this;return L(t,{active:this._isPanelActive(e),key:"templates-panel",handleBack:a,heading:o.selectTemplate,headingLevel:s},L("div",{key:"feature-templates",class:D.panelContent},this._featureTemplates.render()))}_renderAttributeEditing(e){const{activeWorkflow:t,EditorPanel:s,messages:o,messagesCommon:a,headingLevel:n,_onBack:i,viewModel:r}=this;if(!t)return null;const l=t.type,c=r.featureFormViewModel,d="update"===l&&!t.data.edits.modified||r.syncing||c.updating,p="update"===l?o.editFeature:o.createFeatures,m="update"===l?a.update:a.create,h="create-features"===l&&"create-new"===t.createFeatureState,u="create-features"===l?t.numPendingFeatures:0,g=u>1?I(o.createFeaturesTemplate,{numFeatures:u}):m,_=t.shouldShowAttachments,f=c.inputs.every((e=>!e.visible))&&!_?this._renderMessage(I(o.clickToFinishTemplate,{button:m})):L("div",{key:"panel-content-section",class:D.panelContentSection},this._renderOwnerAdminNoticeIfApplicable(t),L("div",{class:D.panelContentSectionGroup},this._featureForm.render(),_&&L("div",{key:"attachments"},L(A,{level:M(n)},o.attachments),this._attachments.render())));return L(s,{active:this._isPanelActive(e),key:"attribute-editing-panel",heading:p,headingLevel:n,handleBack:i},L("div",{key:"panel-content",class:this.classes(D.panelContent,{[D.panelContentScrimContainer]:h})},f,h&&L("calcite-scrim",null)),this._renderFooterActions([{clickHandler:this._onSave,disabled:d,label:g,type:"primary"},r.shouldShowDeleteButton?{...this._deleteButtonCommonInfo,clickHandler:this._onDelete,disabled:r.syncing,label:a.delete}:null]))}_renderOwnerAdminNoticeIfApplicable(e){if(e?.reliesOnOwnerAdminPrivileges)return L("calcite-notice",{open:!0,kind:"info",scale:"s",class:D.ownerAdminNotice},L("div",{slot:"message"},this.messages.ownerAdminNotice))}_renderAttachmentAdding(e){const{_attachments:t,EditorPanel:s,_onBack:o,headingLevel:a,messages:n,messagesCommon:i}=this;return L(s,{active:this._isPanelActive(e),key:"attachment-adding-panel",heading:n.addAttachment,headingLevel:a,handleBack:o},L("div",{key:"attachments",class:D.panelContent},t.render()),this._renderFooterActions([{label:t.submitting?i.cancel:i.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]))}_renderAttachmentEditing(e){const{_attachments:t,EditorPanel:s,_onBack:o,activeWorkflow:a,headingLevel:n,messages:i,messagesCommon:r}=this;return a?L(s,{active:this._isPanelActive(e),key:"attachment-editing-panel",heading:i.editAttachment,headingLevel:n,handleBack:o},L("div",{key:"attachments",class:D.panelContent},t.render()),a.shouldAllowAttachmentEditing?this._renderFooterActions([{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]):void 0):null}_renderMessage(e){return L("div",{key:"panel-content-message",class:D.panelContentMessage},e)}_renderFooterActions(e){return L("div",{key:"footer-actions",slot:"footer",class:D.actions},e.filter(t).map((({type:e,disabled:t,class:s,clickHandler:o,label:a,...n},i)=>L("calcite-button",{key:`action-${i}`,slot:"footer-actions",class:s,disabled:t??!1,onclick:o,width:"full",...n},a))))}_renderPrompt(){const e=this._prompt;if(!e)return null;const{title:t,message:s,context:o,actions:a}=e,n=a.secondary;let i;switch(o){case"danger":i="danger";break;case"info":i="brand";break;default:i="neutral"}const r=L("calcite-button",{afterCreate:$,appearance:"solid",key:"prompt-primary-button",kind:i,onclick:a.primary.action,scale:"m",width:n?"half":"full"},a.primary.label),l=n&&L("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:i,onclick:n.action,scale:"m",width:"half"},n.label);return L("calcite-scrim",{key:"prompt"},L("div",{class:`${D.promptContainer}--${o}`},L("div",{class:D.promptHeader},L("calcite-icon",{icon:"exclamation-mark-triangle"}),L(A,{class:D.promptHeading,level:this.headingLevel},t)),L("div",{class:D.promptMessage},s),L("div",{class:D.promptDivider}),L("div",{class:D.promptActions},l,r)))}_renderLanding(e){const{EditorPanel:t,headingLevel:s,messages:o,viewModel:a}=this,{canUpdate:n}=a,i=this._featureTemplates.viewModel.numberOfFeatureTemplates,r=!n&&0===i;return L(t,{active:this._isPanelActive(e),key:"landing-panel",heading:o.widgetLabel,headingLevel:s},L("div",{key:"landing-content",class:D.panelContent},n&&L("div",{key:"edit-actions",class:D.panelContentSection},this._renderUpdateActions(e)),i>0&&L("div",{key:"create-actions",class:D.panelContentSection},this._renderCreateActions()),r&&L("div",{key:"no-content",class:D.panelContentMessage},o.noEditableLayers)),this._renderFooterHelpMessages())}_renderFooterHelpMessages(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage,a=o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:null;return a?L("div",{key:"footer-actions",slot:"footer",class:D.helpMessage},a):null}_renderUpdateActions(e){const{messages:t,messagesCommon:s}=this,o={id:"select",label:s.select};return L("div",{key:"update-actions"},L(A,{level:M(this.headingLevel)},t.editFeatures),L("calcite-list",{selectionMode:"single",selectionAppearance:"border"},k({grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===e?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){const{_featureTemplates:e,headingLevel:t,messages:s}=this;return L("div",{key:"create-actions"},L(A,{level:M(t)},s.createFeatures),L("div",{key:"templates",class:D.featureTemplatesContainer},e.render()))}_renderTemplateLabel(e){return e.label}_renderTemplateDescription(e){const t=this._getUploadForTemplateItem(e);if(!t)return null;const{messages:s}=this;switch(t.state){case"pending":return s?.uploadPending;case"error":return s?.uploadError;default:return null}}_renderTemplateContentEnd(e){const t=this._getUploadForTemplateItem(e),s=L("calcite-icon",{key:"upload-icon",class:D.templateItemContentEnd,icon:"upload-to"});if(!t)return e.supportsUpload?s:null;switch(t.state){case"success":return L("calcite-icon",{key:"success-icon",class:this.classes(D.templateItemContentEnd,D.templateItemContentEndSuccess),icon:"check"});case"error":return L("calcite-icon",{key:"error-icon",class:this.classes(D.templateItemContentEnd,D.templateItemContentEndError),icon:"exclamation-mark-circle-f"});case"pending":return L("calcite-loader",{class:D.templateItemLoader,inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"});case"canceled":case"default":return s}}_getUploadForTemplateItem(e){const t=this.activeWorkflow;if("create-features"!==t?.type)return null;const{data:s}=t,{creationInfo:o,upload:a}=s;return o?.template===e.template&&o?.layer===e.layer?a:null}_renderFeatureList(e){const{EditorPanel:s,_onBack:o,headingLevel:a,messages:n,messagesTemplates:i,viewModel:{activeWorkflow:r,editableItems:l}}=this;if("update"!==r?.type)return null;const c=r.data.candidates,d=I(n.multipleFeaturesTemplate,{total:c.length}),p=new Map;let m=0;c.map((e=>({label:this._getLabel(e),id:e.attributes[e.layer.objectIdField],data:e}))).filter((e=>{const{label:t,data:s}=e,o=this._filterText.toLowerCase(),{title:a}=s.layer,n=l.find((e=>e.layer===s.layer));if(!n)return null;const{attachmentsOnUpdateEnabled:i,supports:r}=n;return(r.includes("update")||r.includes("delete")||i)&&(!o||t?.toLowerCase().includes(o)||a?.toLowerCase().includes(o))})).filter(t).forEach((e=>{m++;const t=e.data.layer;p.has(t)?p.get(t)?.items.push(e):p.set(t,{id:`${t.id}`,label:t.title??"",items:[e]})}));const h=l.toArray().map((({layer:e})=>p.get(e))).filter(t),u=m>10||this._filterText.length>0;return L(s,{active:this._isPanelActive(e),key:"feature-list",heading:d,headingLevel:a,handleBack:o},L("div",{key:"feature-list",class:D.panelContent},L("div",{class:D.panelContentSection},b({enableListScroll:!1,filterEnabled:u,filterText:this._filterText,id:this.id,items:h,messages:{filterPlaceholder:i.filterPlaceholder,noItems:i.noItems,noMatches:i.noMatches},onFilterChange:e=>this._filterText=e,onItemMouseEnter:e=>this.viewModel.selectFeature(e.data),onItemMouseLeave:()=>this.viewModel.selectFeature(null),onItemSelect:e=>this.viewModel.selectFeature(e.data,!0)}))))}_isPanelActive(e){return this.viewModel.state===e}_renderSettings(){const e=this.visibleElements,t=e.snappingControls,s=e.sketchTooltipControls;return t||s?L("calcite-accordion",{key:"settings",class:D.settingsContainer,appearance:"transparent"},L("calcite-accordion-item",{heading:this.messagesCommon?.settings,iconStart:"gear"},s&&L(S,{tooltipOptions:this.tooltipOptions}),t&&L(F,{snappingOptions:this.snappingOptions,view:this.view,visibleElements:e.snappingControlsElements,afterCreate:e=>e.layerListOpen=!1}))):null}_getLabel(e){const t=e.layer;if(!t)return null;const{objectIdField:s}=t,{attributes:o}=e,a=m(t);return a&&o[a]&&`${o[a]}`||I(this.messages.untitledFeatureTemplate,{id:o[s]})}_showPrompt({title:e,message:t,yesLabel:s,noLabel:o}){const n=a(),{view:i}=this,r=i?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:s,action:()=>n.resolve(!0)},secondary:{label:o,action:()=>n.resolve(!1)}}},n.promise.finally((()=>{this._clearPrompt(),r&&i?.focus()}))}_onSave(){this.viewModel.saveAndResetWorkflow()}_onDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}}async _onBack(e){return e?.stopPropagation(),this.viewModel.back()}_onAttachmentAdd(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.previous()):this._attachments.addAttachment().then((()=>e.previous())))}_onAttachmentUpdate(){const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.previous()):this._attachments.updateAttachment().then((()=>e.previous())))}_onAttachmentDelete(){const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}}};e([c()],H.prototype,"_featureForm",void 0),e([c()],H.prototype,"_attachments",void 0),e([c()],H.prototype,"_featureTemplates",void 0),e([c()],H.prototype,"_filterText",void 0),e([c()],H.prototype,"_prompt",void 0),e([c()],H.prototype,"_spinner",void 0),e([c()],H.prototype,"_deleteButtonCommonInfo",null),e([c({readOnly:!0})],H.prototype,"activeWorkflow",null),e([c()],H.prototype,"allowedWorkflows",null),e([c()],H.prototype,"useDeprecatedCreateWorkflow",null),e([c()],H.prototype,"headingLevel",void 0),e([c()],H.prototype,"iconClass",void 0),e([c()],H.prototype,"label",null),e([c()],H.prototype,"labelOptions",null),e([c()],H.prototype,"layerInfos",null),e([c(),E("esri/widgets/Editor/t9n/Editor")],H.prototype,"messages",void 0),e([c(),E("esri/t9n/common")],H.prototype,"messagesCommon",void 0),e([c(),E("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],H.prototype,"messagesTemplates",void 0),e([c()],H.prototype,"snappingOptions",null),e([c()],H.prototype,"tooltipOptions",null),e([c()],H.prototype,"supportingWidgetDefaults",void 0),e([c()],H.prototype,"view",null),e([c(),W(["workflow-cancel","workflow-commit"])],H.prototype,"viewModel",void 0),e([c()],H.prototype,"visibleElements",void 0),e([d("visibleElements")],H.prototype,"castVisibleElements",null),e([T()],H.prototype,"_onSave",null),e([T()],H.prototype,"_onDelete",null),e([T()],H.prototype,"_onBack",null),e([T()],H.prototype,"_onAttachmentAdd",null),e([T()],H.prototype,"_onAttachmentUpdate",null),e([T()],H.prototype,"_onAttachmentDelete",null),H=e([p(O)],H);const V=H;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.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import{eventKey as t}from"../../core/events.js";import{watch as i,initial as r}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{getColorsFromRenderer as o}from"../../renderers/support/utils.js";import n from"../Widget.js";import l from"./FeatureMedia/FeatureMediaViewModel.js";import d from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as m}from"./support/featureUtils.js";import{getColorSet as c}from"../support/chartUtilsAm5.js";import{loadCalciteComponents as p}from"../support/componentsUtils.js";import{isRTL as h}from"../support/widgetUtils.js";import{messageBundle as u}from"../support/decorators/messageBundle.js";import{tsx as f}from"../support/jsxFactory.js";import{isDarkTheme as v}from"../../support/themeUtils.js";import{substitute as _}from"../../intl/substitute.js";const M="esri-feature-media",g={base:M,mediaContainer:`${M}__container`,mediaItemContainer:`${M}__item-container`,mediaItem:`${M}__item`,mediaItemText:`${M}__item-text`,mediaItemTitle:`${M}__item-title`,mediaItemCaption:`${M}__item-caption`,mediaNavigation:`${M}__item-navigation`,mediaPagination:`${M}__pagination`,mediaPaginationText:`${M}__pagination-text`,mediaPrevious:`${M}__previous`,mediaPreviousIconLTR:`${M}__previous-icon`,mediaPreviousIconRTL:`${M}__previous-icon--rtl`,mediaNext:`${M}__next`,mediaNextIconLTR:`${M}__next-icon`,mediaNextIconRTL:`${M}__next-icon--rtl`,mediaChart:`${M}__chart`,mediaPaginationButton:`${M}__pagination-button`,mediaPaginationIcon:`${M}__pagination-icon`,mediaChartRendered:`${M}__chart--rendered`},w=15,I="category",A="value",y="rgba(50, 50, 50, 1)",x=250,C=500,T=200;let b=class extends n{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this._chartRootMap=new WeakMap,this.viewModel=new l,this.messages=null,this._disposeChart=e=>{this._chartRootMap.get(e)?.dispose(),this._chartRootMap.delete(e)},this._createChart=async e=>{const{destroyed:t,viewModel:i}=this;if(t||!i||!e)return;const{createRoot:r}=await import("../support/chartUtilsAm5.js"),a=await r(e);this._chartRootMap.set(e,a),this._renderChart({mediaInfo:i.activeMediaInfo,root:a})}}initialize(){this._featureElementInfo=new d,this.addHandles([i((()=>[this.viewModel?.activeMediaInfo,this.viewModel?.activeMediaInfoIndex]),(()=>this._setupMediaRefreshTimer()),r),i((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),r)])}loadDependencies(){return p({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get activeMediaInfoIndex(){return this.viewModel.activeMediaInfoIndex}set activeMediaInfoIndex(e){this.viewModel.activeMediaInfoIndex=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get fieldInfoMap(){return this.viewModel.fieldInfoMap}set fieldInfoMap(e){this.viewModel.fieldInfoMap=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get mediaInfos(){return this.viewModel.mediaInfos}set mediaInfos(e){this.viewModel.mediaInfos=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get relatedInfos(){return this.viewModel.relatedInfos}set relatedInfos(e){this.viewModel.relatedInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return f("div",{bind:this,class:g.base,onkeyup:this._handleMediaKeyup},this._featureElementInfo?.render(),this.renderMedia())}renderMedia(){const{formattedMediaInfoCount:e,activeMediaInfoIndex:t}=this.viewModel,i=this.renderMediaText();return e?f("div",{key:"media-element-container",class:g.mediaContainer},this.renderMediaInfo(),f("div",{class:g.mediaNavigation},i,f("div",{class:g.mediaPagination},this.renderMediaPageButton("previous"),f("span",{class:g.mediaPaginationText},_(this.messages.pageText,{index:t+1,total:e})),this.renderMediaPageButton("next")))):null}renderMediaText(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e&&e.title?f("div",{key:"media-title",class:g.mediaItemTitle,innerHTML:e.title}):null,i=e&&e.caption?f("div",{key:"media-caption",class:g.mediaItemCaption,innerHTML:e.caption}):null;return t||i?f("div",{key:"media-text",class:g.mediaItemText},t,i):null}renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:s,altText:o,title:n,type:l}=e,{sourceURL:d,linkURL:c}=a,p=m(c??void 0)?"_blank":"_self",h="_blank"===p?"noreferrer":"",u=s?t:null,v=u?u.timestamp:0,_=u?u.sourceURL:d,M=f("img",{alt:o||n,key:`media-${l}-${i}-${r}-${v}`,src:_??void 0});return(c?f("a",{title:n,href:c,rel:h,target:p},M):null)??M}renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return f("div",{key:`media-${e.type}-${t}-${i}`,bind:this,class:g.mediaChart,afterCreate:this._createChart,afterRemoved:this._disposeChart})}renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this.renderImageMediaInfo(e):e.type.includes("chart")?this.renderChartMediaInfo(e):null:null}renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;return e?f("div",{key:"media-container",class:g.mediaItemContainer},f("div",{key:"media-item-container",class:g.mediaItem},this.renderMediaInfoType())):null}renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?"chevron-left":"chevron-right",a=t?"media-previous":"media-next",s=t?this._previous:this._next;return f("button",{type:"button",key:a,title:i,"aria-label":i,tabIndex:0,class:g.mediaPaginationButton,bind:this,onclick:s},f("calcite-icon",{class:g.mediaPaginationIcon,scale:"s",icon:r}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_getRenderer(){if(!this.viewModel)return;const{isAggregate:e,layer:t}=this.viewModel;return e&&t?.featureReduction&&"renderer"in t.featureReduction?t.featureReduction.renderer:t?.renderer}async _getRendererColors(){const{colorAm5:e}=await import("./FeatureMedia/chartCommon.js"),t=new Map,i=this._getRenderer(),r="default";if(!i)return t;const a=await o(i);a.delete(r);return Array.from(a.values()).every((e=>1===e?.length))?(Array.from(a.keys()).forEach((i=>{const r=a.get(i)?.[0]?.toCss(!0);r&&t.set(i,e(r))})),t):t}_handleMediaKeyup(e){const i=t(e);"ArrowLeft"===i&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===i&&(e.stopPropagation(),this.viewModel.next())}_canAnimateChart(){if(!this.viewModel)return!1;const e=window.matchMedia("(prefers-reduced-motion: reduce)");return!!this.viewModel.abilities.chartAnimation&&!e.matches}_getChartAnimationMS(){return this._canAnimateChart()?x:0}_getChartSeriesAnimationMS(){return this._canAnimateChart()?C:0}async _renderChart(e){const{root:t,mediaInfo:i}=e,{value:r,type:a}=i,{ResponsiveThemeAm5:s,DarkThemeAm5:o,AnimatedThemeAm5:n,ColorSetAm5:l,ThemeAm5:d}=await import("./FeatureMedia/chartCommon.js"),m=d.new(t),p=c();p&&m.rule("ColorSet").set("colors",p);const h=[s.new(t),m];v()&&h.push(o.new(t)),this._canAnimateChart()&&h.push(n.new(t)),t.setThemes(h);const u=await this._getRendererColors(),f=l.new(t,{}),_=r.series.map(((e,t)=>{const i=u.get(e.fieldName)||f.getIndex(t);return{[I]:e.tooltip,[A]:e.value,columnSettings:{fill:i,stroke:i}}})).filter((e=>"pie-chart"!==a||null!=e.value&&e.value>0));"pie-chart"===a?this._createPieChart(e,_):this._createXYChart(e,_)}_getDirection(){return h(this.container)?"rtl":"ltr"}_isInversed(){return!!h(this.container)}async _customizeChartTooltip(e,t="horizontal"){const{colorAm5:i}=await import("./FeatureMedia/chartCommon.js");e.setAll({pointerOrientation:t}),e.get("background")?.setAll({stroke:i(y)}),e.label.setAll({direction:this._getDirection(),oversizedBehavior:"wrap",maxWidth:T})}async _createPieChart(e,t){const{TooltipAm5:i}=await import("./FeatureMedia/chartCommon.js"),{PieChartAm5:r,PieSeriesAm5:a}=await import("./FeatureMedia/pieChart.js"),{mediaInfo:s,root:o}=e,{title:n}=s,l=5,d=s?.altText||s?.title||"",m=o.container.children.push(r.new(o,{ariaLabel:d,focusable:!0,paddingBottom:l,paddingTop:l,paddingLeft:l,paddingRight:l})),c="{category}: {valuePercentTotal.formatNumber('0.00')}%\n ({value})",p=i.new(o,{labelText:c}),h=m.series.push(a.new(o,{name:n,valueField:A,categoryField:I,tooltip:p}));h.slices.template.states.create("active",{shiftRadius:l}),this._customizeChartTooltip(p),h.slices.template.setAll({ariaLabel:c,focusable:!0,templateField:"columnSettings"}),h.data.setAll(t),h.appear(this._getChartSeriesAnimationMS()),m.appear(this._getChartAnimationMS()),m.root.dom.classList.toggle(g.mediaChartRendered,!0)}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}async _createColumnChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(c,{renderer:o.new(c,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(c,{renderer:l.new(c,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryX}",_=r.new(c,{labelText:v}),M=e.series.push(d.new(c,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:_}));this._customizeChartTooltip(_),M.columns.template.setAll({ariaLabel:v,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarX",a.new(c,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createBarChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panY",wheelY:"zoomY"});const u=e.yAxes.push(s.new(c,{renderer:l.new(c,{inversed:!0}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.xAxes.push(n.new(c,{renderer:o.new(c,{inside:!1,inversed:this._isInversed()}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryY}",_=r.new(c,{labelText:v}),M=e.series.push(d.new(c,{name:h,xAxis:f,yAxis:u,valueXField:A,categoryYField:I,tooltip:_}));this._customizeChartTooltip(_,"vertical"),M.columns.template.setAll({ariaLabel:v,focusable:!0,templateField:"columnSettings"}),p.series.length>w&&e.set("scrollbarY",a.new(c,{orientation:"vertical"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createLineChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,LineSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{root:m,mediaInfo:c}=t,{value:p,title:h}=c;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(m,{renderer:o.new(m,{inversed:this._isInversed()}),categoryField:I}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(m,{renderer:l.new(m,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryX}",_=r.new(m,{labelText:v}),M=e.series.push(d.new(m,{name:h,xAxis:u,yAxis:f,valueYField:A,categoryXField:I,tooltip:_}));this._customizeChartTooltip(_,"vertical"),p.series.length>w&&e.set("scrollbarX",a.new(m,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createXYChart(e,t){const{XYChartAm5:i,XYCursorAm5:r}=await import("./FeatureMedia/xyChart.js"),{root:a,mediaInfo:s}=e,{type:o}=s,n=s?.altText||s?.title||"",l=a.container.children.push(i.new(a,{ariaLabel:n,focusable:!0,panX:!0,panY:!0}));l.set("cursor",r.new(a,{})),"column-chart"===o&&await this._createColumnChart(l,e,t),"bar-chart"===o&&await this._createBarChart(l,e,t),"line-chart"===o&&await this._createLineChart(l,e,t),l.root.dom.classList.toggle(g.mediaChartRendered,!0)}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:e&&this._getImageSource(e,t)}}_setupMediaRefreshTimer(){this._clearMediaRefreshTimer();const{activeMediaInfo:e}=this.viewModel;e&&"image"===e.type&&e.refreshInterval&&this._setRefreshTimeout(e)}_setRefreshTimeout(e){const{refreshInterval:t,value:i}=e;if(!t)return;const r=6e4*t;this._updateMediaInfoTimestamp(i.sourceURL);const a=setInterval((()=>{this._updateMediaInfoTimestamp(i.sourceURL)}),r);this._refreshTimer=a}_getImageSource(e,t){const i=e.includes("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([a()],b.prototype,"_refreshIntervalInfo",void 0),e([a()],b.prototype,"attributes",null),e([a()],b.prototype,"activeMediaInfoIndex",null),e([a()],b.prototype,"description",null),e([a()],b.prototype,"fieldInfoMap",null),e([a()],b.prototype,"layer",null),e([a()],b.prototype,"mediaInfos",null),e([a()],b.prototype,"popupTemplate",null),e([a()],b.prototype,"relatedInfos",null),e([a()],b.prototype,"title",null),e([a({type:l})],b.prototype,"viewModel",void 0),e([a(),u("esri/widgets/Feature/t9n/Feature")],b.prototype,"messages",void 0),b=e([s("esri.widgets.Feature.FeatureMedia")],b);const R=b;export{R as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../intl.js";import{prefersReducedMotion as t}from"../../core/a11yUtils.js";import{eventKey as i}from"../../core/events.js";import{watch as r,initial as a}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{getColorsFromRenderer as n}from"../../renderers/support/utils.js";import l from"../Widget.js";import d from"./FeatureMedia/FeatureMediaViewModel.js";import m from"./support/FeatureElementInfo.js";import{shouldOpenInNewTab as c}from"./support/featureUtils.js";import{getColorSet as p}from"../support/chartUtilsAm5.js";import{loadCalciteComponents as h}from"../support/componentsUtils.js";import{isRTL as u}from"../support/widgetUtils.js";import{messageBundle as f}from"../support/decorators/messageBundle.js";import{tsx as v}from"../support/jsxFactory.js";import{isDarkTheme as _}from"../../support/themeUtils.js";import{substitute as M}from"../../intl/substitute.js";const g="esri-feature-media",w={base:g,mediaContainer:`${g}__container`,mediaItemContainer:`${g}__item-container`,mediaItem:`${g}__item`,mediaItemText:`${g}__item-text`,mediaItemTitle:`${g}__item-title`,mediaItemCaption:`${g}__item-caption`,mediaNavigation:`${g}__item-navigation`,mediaPagination:`${g}__pagination`,mediaPaginationText:`${g}__pagination-text`,mediaPrevious:`${g}__previous`,mediaPreviousIconLTR:`${g}__previous-icon`,mediaPreviousIconRTL:`${g}__previous-icon--rtl`,mediaNext:`${g}__next`,mediaNextIconLTR:`${g}__next-icon`,mediaNextIconRTL:`${g}__next-icon--rtl`,mediaChart:`${g}__chart`,mediaPaginationButton:`${g}__pagination-button`,mediaPaginationIcon:`${g}__pagination-icon`,mediaChartRendered:`${g}__chart--rendered`},I=15,A="category",y="value",x="rgba(50, 50, 50, 1)",C=250,T=500,b=200;let R=class extends l{constructor(e,t){super(e,t),this._refreshTimer=null,this._refreshIntervalInfo=null,this._featureElementInfo=null,this._chartRootMap=new WeakMap,this.viewModel=new d,this.messages=null,this._disposeChart=e=>{this._chartRootMap.get(e)?.dispose(),this._chartRootMap.delete(e)},this._createChart=async e=>{const{destroyed:t,viewModel:i}=this;if(t||!i||!e)return;const{createRoot:r}=await import("../support/chartUtilsAm5.js"),a=await r(e);this._chartRootMap.set(e,a),this._renderChart({mediaInfo:i.activeMediaInfo,root:a})}}initialize(){this._featureElementInfo=new m,this.addHandles([r((()=>[this.viewModel?.activeMediaInfo,this.viewModel?.activeMediaInfoIndex]),(()=>this._setupMediaRefreshTimer()),a),r((()=>[this.viewModel?.description,this.viewModel?.title]),(()=>this._setupFeatureElementInfo()),a)])}loadDependencies(){return h({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}destroy(){this._clearMediaRefreshTimer(),this._featureElementInfo?.destroy()}get attributes(){return this.viewModel.attributes}set attributes(e){this.viewModel.attributes=e}get activeMediaInfoIndex(){return this.viewModel.activeMediaInfoIndex}set activeMediaInfoIndex(e){this.viewModel.activeMediaInfoIndex=e}get description(){return this.viewModel.description}set description(e){this.viewModel.description=e}get fieldInfoMap(){return this.viewModel.fieldInfoMap}set fieldInfoMap(e){this.viewModel.fieldInfoMap=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get mediaInfos(){return this.viewModel.mediaInfos}set mediaInfos(e){this.viewModel.mediaInfos=e}get popupTemplate(){return this.viewModel.popupTemplate}set popupTemplate(e){this.viewModel.popupTemplate=e}get relatedInfos(){return this.viewModel.relatedInfos}set relatedInfos(e){this.viewModel.relatedInfos=e}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}render(){return v("div",{bind:this,class:w.base,onkeyup:this._handleMediaKeyup},this._featureElementInfo?.render(),this.renderMedia())}renderMedia(){const{formattedMediaInfoCount:e,activeMediaInfoIndex:t}=this.viewModel,i=this.renderMediaText();return e?v("div",{key:"media-element-container",class:w.mediaContainer},this.renderMediaInfo(),v("div",{class:w.mediaNavigation},i,v("div",{class:w.mediaPagination},this.renderMediaPageButton("previous"),v("span",{class:w.mediaPaginationText},M(this.messages.pageText,{index:t+1,total:e})),this.renderMediaPageButton("next")))):null}renderMediaText(){const{activeMediaInfo:e}=this.viewModel;if(!e)return null;const t=e&&e.title?v("div",{key:"media-title",class:w.mediaItemTitle,innerHTML:e.title}):null,i=e&&e.caption?v("div",{key:"media-caption",class:w.mediaItemCaption,innerHTML:e.caption}):null;return t||i?v("div",{key:"media-text",class:w.mediaItemText},t,i):null}renderImageMediaInfo(e){const{_refreshIntervalInfo:t}=this,{activeMediaInfoIndex:i,formattedMediaInfoCount:r}=this.viewModel,{value:a,refreshInterval:s,altText:o,title:n,type:l}=e,{sourceURL:d,linkURL:m}=a,p=c(m??void 0)?"_blank":"_self",h="_blank"===p?"noreferrer":"",u=s?t:null,f=u?u.timestamp:0,_=u?u.sourceURL:d,M=v("img",{alt:o||n,key:`media-${l}-${i}-${r}-${f}`,src:_??void 0});return(m?v("a",{title:n,href:m,rel:h,target:p},M):null)??M}renderChartMediaInfo(e){const{activeMediaInfoIndex:t,formattedMediaInfoCount:i}=this.viewModel;return v("div",{key:`media-${e.type}-${t}-${i}`,bind:this,class:w.mediaChart,afterCreate:this._createChart,afterRemoved:this._disposeChart})}renderMediaInfoType(){const{activeMediaInfo:e}=this.viewModel;return e?"image"===e.type?this.renderImageMediaInfo(e):e.type.includes("chart")?this.renderChartMediaInfo(e):null:null}renderMediaInfo(){const{activeMediaInfo:e}=this.viewModel;return e?v("div",{key:"media-container",class:w.mediaItemContainer},v("div",{key:"media-item-container",class:w.mediaItem},this.renderMediaInfoType())):null}renderMediaPageButton(e){if(this.viewModel.formattedMediaInfoCount<2)return null;const t="previous"===e,i=t?this.messages.previous:this.messages.next,r=t?"chevron-left":"chevron-right",a=t?"media-previous":"media-next",s=t?this._previous:this._next;return v("button",{type:"button",key:a,title:i,"aria-label":i,tabIndex:0,class:w.mediaPaginationButton,bind:this,onclick:s},v("calcite-icon",{class:w.mediaPaginationIcon,scale:"s",icon:r}))}_setupFeatureElementInfo(){const{description:e,title:t}=this;this._featureElementInfo?.set({description:e,title:t})}_next(){this.viewModel.next()}_previous(){this.viewModel.previous()}_getRenderer(){if(!this.viewModel)return;const{isAggregate:e,layer:t}=this.viewModel;return e&&t?.featureReduction&&"renderer"in t.featureReduction?t.featureReduction.renderer:t?.renderer}async _getRendererColors(){const{colorAm5:e}=await import("./FeatureMedia/chartCommon.js"),t=new Map,i=this._getRenderer(),r="default";if(!i)return t;const a=await n(i);a.delete(r);return Array.from(a.values()).every((e=>1===e?.length))?(Array.from(a.keys()).forEach((i=>{const r=a.get(i)?.[0]?.toCss(!0);r&&t.set(i,e(r))})),t):t}_handleMediaKeyup(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.viewModel.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.viewModel.next())}_canAnimateChart(){return!!this.viewModel&&(!!this.viewModel.abilities.chartAnimation&&!t())}_getChartAnimationMS(){return this._canAnimateChart()?C:0}_getChartSeriesAnimationMS(){return this._canAnimateChart()?T:0}async _renderChart(e){const{root:t,mediaInfo:i}=e,{value:r,type:a}=i,{ResponsiveThemeAm5:s,DarkThemeAm5:o,AnimatedThemeAm5:n,ColorSetAm5:l,ThemeAm5:d}=await import("./FeatureMedia/chartCommon.js"),m=d.new(t),c=p();c&&m.rule("ColorSet").set("colors",c);const h=[s.new(t),m];_()&&h.push(o.new(t)),this._canAnimateChart()&&h.push(n.new(t)),t.setThemes(h);const u=await this._getRendererColors(),f=l.new(t,{}),v=r.series.map(((e,t)=>{const i=u.get(e.fieldName)||f.getIndex(t);return{[A]:e.tooltip,[y]:e.value,columnSettings:{fill:i,stroke:i}}})).filter((e=>"pie-chart"!==a||null!=e.value&&e.value>0));"pie-chart"===a?this._createPieChart(e,v):this._createXYChart(e,v)}_getDirection(){return u(this.container)?"rtl":"ltr"}_isInversed(){return!!u(this.container)}async _customizeChartTooltip(e,t="horizontal"){const{colorAm5:i}=await import("./FeatureMedia/chartCommon.js");e.setAll({pointerOrientation:t}),e.get("background")?.setAll({stroke:i(x)}),e.label.setAll({direction:this._getDirection(),oversizedBehavior:"wrap",maxWidth:b})}async _createPieChart(e,t){const{TooltipAm5:i}=await import("./FeatureMedia/chartCommon.js"),{PieChartAm5:r,PieSeriesAm5:a}=await import("./FeatureMedia/pieChart.js"),{mediaInfo:s,root:o}=e,{title:n}=s,l=5,d=s?.altText||s?.title||"",m=o.container.children.push(r.new(o,{ariaLabel:d,focusable:!0,paddingBottom:l,paddingTop:l,paddingLeft:l,paddingRight:l})),c="{category}: {valuePercentTotal.formatNumber('0.00')}%\n ({value})",p=i.new(o,{labelText:c}),h=m.series.push(a.new(o,{name:n,valueField:y,categoryField:A,tooltip:p}));h.ticks.template.set("forceHidden",!0),h.labels.template.set("forceHidden",!0),h.slices.template.states.create("active",{shiftRadius:l}),this._customizeChartTooltip(p),h.slices.template.setAll({ariaLabel:c,focusable:!0,templateField:"columnSettings"}),h.data.setAll(t),h.appear(this._getChartSeriesAnimationMS()),m.appear(this._getChartAnimationMS()),m.root.dom.classList.toggle(w.mediaChartRendered,!0)}_getMinSeriesValue(e){let t=0;return e.forEach((e=>t=Math.min(e.value,t))),t}async _createColumnChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(c,{renderer:o.new(c,{inversed:this._isInversed()}),categoryField:A}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(c,{renderer:l.new(c,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryX}",_=r.new(c,{labelText:v}),M=e.series.push(d.new(c,{name:h,xAxis:u,yAxis:f,valueYField:y,categoryXField:A,tooltip:_}));this._customizeChartTooltip(_),M.columns.template.setAll({ariaLabel:v,focusable:!0,templateField:"columnSettings"}),p.series.length>I&&e.set("scrollbarX",a.new(c,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createBarChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,ColumnSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{mediaInfo:m,root:c}=t,{value:p,title:h}=m;e.setAll({wheelX:"panY",wheelY:"zoomY"});const u=e.yAxes.push(s.new(c,{renderer:l.new(c,{inversed:!0}),categoryField:A}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.xAxes.push(n.new(c,{renderer:o.new(c,{inside:!1,inversed:this._isInversed()}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryY}",_=r.new(c,{labelText:v}),M=e.series.push(d.new(c,{name:h,xAxis:f,yAxis:u,valueXField:y,categoryYField:A,tooltip:_}));this._customizeChartTooltip(_,"vertical"),M.columns.template.setAll({ariaLabel:v,focusable:!0,templateField:"columnSettings"}),p.series.length>I&&e.set("scrollbarY",a.new(c,{orientation:"vertical"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createLineChart(e,t,i){const{TooltipAm5:r,ScrollbarAm5:a}=await import("./FeatureMedia/chartCommon.js"),{CategoryAxisAm5:s,AxisRendererXAm5:o,ValueAxisAm5:n,AxisRendererYAm5:l,LineSeriesAm5:d}=await import("./FeatureMedia/xyChart.js"),{root:m,mediaInfo:c}=t,{value:p,title:h}=c;e.setAll({wheelX:"panX",wheelY:"zoomX"});const u=e.xAxes.push(s.new(m,{renderer:o.new(m,{inversed:this._isInversed()}),categoryField:A}));u.get("renderer").labels.template.setAll({forceHidden:!0});const f=e.yAxes.push(n.new(m,{renderer:l.new(m,{inside:!1}),min:this._getMinSeriesValue(p.series)}));f.get("renderer").labels.template.setAll({direction:this._getDirection()});const v="{categoryX}",_=r.new(m,{labelText:v}),M=e.series.push(d.new(m,{name:h,xAxis:u,yAxis:f,valueYField:y,categoryXField:A,tooltip:_}));this._customizeChartTooltip(_,"vertical"),p.series.length>I&&e.set("scrollbarX",a.new(m,{orientation:"horizontal"})),u.data.setAll(i),M.data.setAll(i),M.appear(this._getChartSeriesAnimationMS()),e.appear(this._getChartAnimationMS())}async _createXYChart(e,t){const{XYChartAm5:i,XYCursorAm5:r}=await import("./FeatureMedia/xyChart.js"),{root:a,mediaInfo:s}=e,{type:o}=s,n=s?.altText||s?.title||"",l=a.container.children.push(i.new(a,{ariaLabel:n,focusable:!0,panX:!0,panY:!0}));l.set("cursor",r.new(a,{})),"column-chart"===o&&await this._createColumnChart(l,e,t),"bar-chart"===o&&await this._createBarChart(l,e,t),"line-chart"===o&&await this._createLineChart(l,e,t),l.root.dom.classList.toggle(w.mediaChartRendered,!0)}_clearMediaRefreshTimer(){const{_refreshTimer:e}=this;e&&(clearTimeout(e),this._refreshTimer=null)}_updateMediaInfoTimestamp(e){const t=Date.now();this._refreshIntervalInfo={timestamp:t,sourceURL:e&&this._getImageSource(e,t)}}_setupMediaRefreshTimer(){this._clearMediaRefreshTimer();const{activeMediaInfo:e}=this.viewModel;e&&"image"===e.type&&e.refreshInterval&&this._setRefreshTimeout(e)}_setRefreshTimeout(e){const{refreshInterval:t,value:i}=e;if(!t)return;const r=6e4*t;this._updateMediaInfoTimestamp(i.sourceURL);const a=setInterval((()=>{this._updateMediaInfoTimestamp(i.sourceURL)}),r);this._refreshTimer=a}_getImageSource(e,t){const i=e.includes("?")?"&":"?",[r,a=""]=e.split("#");return`${r}${i}timestamp=${t}${a?"#":""}${a}`}};e([s()],R.prototype,"_refreshIntervalInfo",void 0),e([s()],R.prototype,"attributes",null),e([s()],R.prototype,"activeMediaInfoIndex",null),e([s()],R.prototype,"description",null),e([s()],R.prototype,"fieldInfoMap",null),e([s()],R.prototype,"layer",null),e([s()],R.prototype,"mediaInfos",null),e([s()],R.prototype,"popupTemplate",null),e([s()],R.prototype,"relatedInfos",null),e([s()],R.prototype,"title",null),e([s({type:d})],R.prototype,"viewModel",void 0),e([s(),f("esri/widgets/Feature/t9n/Feature")],R.prototype,"messages",void 0),R=e([o("esri.widgets.Feature.FeatureMedia")],R);const j=R;export{j as default};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
+ */
5
+ import{deprecatedModule as e}from"../../core/deprecate.js";import r from"../../core/Logger.js";import t from"./FieldInput.js";e(r.getLogger("esri.widgets.FeatureForm.InputField"),"esri/widgets/FeatureForm/InputField",{replacement:"esri/widgets/FeatureForm/FieldInput",version:"4.27"});export{t as default};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
+ */
5
+ import{deprecatedModule as e}from"../../core/deprecate.js";import r from"../../core/Logger.js";import o from"./GroupInput.js";e(r.getLogger("esri.widgets.FeatureForm.InputFieldGroup"),"esri/widgets/FeatureForm/InputFieldGroup",{replacement:"esri/widgets/FeatureForm/GroupInput",version:"4.27"});export{o 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.27/esri/copyright.txt for details.
4
4
  */
5
- const e="esri-feature-form",i=`${e}__date`,t=`${e}__group`,r=`${e}__input`,o={base:e,form:`${e}__form`,formHeader:`${e}__form-header`,label:`${e}__label`,fieldInputWrapper:`${r}-wrapper`,fieldInputLoader:`${r}-loader`,fieldInput:`${r}`,inputDate:`${r}--date`,inputTime:`${r}--time`,inputRadioGroup:`${r}--radio-group`,inputRadio:`${r}--radio`,inputRadioLabel:`${r}--radio-label`,inputDisabled:`${r}--disabled`,inputSwitch:`${r}--switch`,inputInvalid:`${r}--invalid`,inputIconInvalid:`${r}-icon--invalid`,centeredButton:`${e}__centered-button`,errorMessage:`${e}__field-error-message`,description:`${e}__description-text`,listObserver:`${e}__list-observer`,relatedRecordList:`${e}__related-record-list`,dateInputPart:`${i}-input-part`,loneDateInputPart:`${i}-input-part--lone`,dateInputContainer:`${i}-input-container`,dateFormatHint:`${i}-format-hint`,group:t,groupLabel:`${t}-label`,groupHeader:`${t}-header`,groupHeading:`${t}-header`,groupTitle:`${t}-title`,groupDescription:`${t}-description`,groupToggleIcon:`${t}-toggle-icon`,groupCollapsed:`${t}--collapsed`,groupSequential:`${t}--sequential`,groupActive:`${t}--active`,collapseIcon:"esri-icon-up",errorIcon:"esri-icon-notice-triangle",expandIcon:"esri-icon-down",widget:"esri-widget",panel:"esri-widget--panel",input:"esri-input",select:"esri-select"};export{o as CSS};
5
+ const e="esri-feature-form",i=`${e}__group`,t=`${e}__input`,r={base:e,form:`${e}__form`,formHeader:`${e}__form-header`,label:`${e}__label`,fieldInputWrapper:`${t}-wrapper`,fieldInputLoader:`${t}-loader`,fieldInput:`${t}`,inputDate:`${t}--date`,inputTime:`${t}--time`,inputRadioGroup:`${t}--radio-group`,inputRadio:`${t}--radio`,inputRadioLabel:`${t}--radio-label`,inputDisabled:`${t}--disabled`,inputSwitch:`${t}--switch`,inputInvalid:`${t}--invalid`,centeredButton:`${e}__centered-button`,description:`${e}__description-text`,listObserver:`${e}__list-observer`,relatedRecordList:`${e}__related-record-list`,dateInputContainer:`${`${e}__date`}-input-container`,group:i,groupLabel:`${i}-label`,groupHeader:`${i}-header`,groupTitle:`${i}-title`,groupToggleIcon:`${i}-toggle-icon`,groupCollapsed:`${i}--collapsed`,groupSequential:`${i}--sequential`,groupActive:`${i}--active`,collapseIcon:"esri-icon-up",expandIcon:"esri-icon-down",widget:"esri-widget",panel:"esri-widget--panel",input:"esri-input"};export{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.27/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{debounce as o,ignoreAbortErrors as l}from"../../core/promiseUtils.js";import{on as n,watch as a}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";import{getLowerCaseDefaultHiddenFields as m}from"../../layers/support/fieldUtils.js";import{highlightsSupported as g}from"../../views/support/layerViewUtils.js";import c from"./AttachmentsColumn.js";import u from"./FieldColumn.js";import p from"./Grid/Column.js";import y from"./Grid/Grid.js";import f from"./Grid/GridViewModel.js";import b from"./Grid/GroupColumn.js";import _ from"./support/FeatureStore.js";import"../support/widgetUtils.js";import{messageBundle as w}from"../support/decorators/messageBundle.js";import{onLocaleChange as C}from"../../intl/locale.js";import{fetchMessageBundle as I}from"../../intl/messages.js";let v=class extends(i(f)){constructor(e){super(e),this._debounceRefresh=o((()=>this._refresh())),this._highlights=new r,this.activeFilters=new s,this.autoRefreshEnabled=!0,this.cellClassNameGenerator=(e,t)=>e.path||null,this.columns=new s,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.fieldConfigs=null,this.grid=null,this.highlightEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.messagesURIUtils=null,this.relatedRecordsEnabled=!1,this.store=null,this.tableTemplate=null,this.view=null,this._onLayerRefresh=this._onLayerRefresh.bind(this),this._set("store",new _),this._set("grid",new y({itemIdPath:this.itemIdPath,viewModel:this}))}initialize(){const e=async()=>{this.messages=await I("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await I("esri/t9n/common"),this.messagesURIUtils=await I("esri/widgets/support/t9n/uriUtils")};e(),this.handles.add([C((()=>{e(),this._generateColumns()})),n((()=>this.highlightIds),"change",(e=>this._onHighlightIdsChange(e)),{onListenerAdd:()=>{this.highlightIds.forEach((e=>this._highlight(e)))},onListenerRemove:()=>{this.highlightIds.forEach((e=>this._unhighlight(e)))}}),a((()=>this.layerView),(()=>{this._highlights.removeAll(),this.layerView&&this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),a((()=>this.highlightEnabled),(()=>{this._highlights.removeAll(),this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),a((()=>this.relatedRecordsEnabled),(e=>this.store.relatedRecordsEnabled=e)),a((()=>this.layer?.loaded),(e=>e&&this._onLayerLoad())),a((()=>this.store.state),(e=>{"loaded"===e&&this.grid?.scrollToTop()})),a((()=>[this.messages,this.tableTemplate,this.fieldConfigs]),(()=>this.layer?.loaded&&this._generateColumns())),a((()=>this.editingEnabled),(e=>{this.columns.forEach((t=>{"editingEnabled"in t&&(t.editingEnabled=e)})),this.grid?.onColumnChange()})),a((()=>this.layer?.definitionExpression),((e,t)=>(e||t)&&"loaded"===this.store.state&&this.reset())),a((()=>this.layer&&"timeExtent"in this.layer&&this.layer.timeExtent),((e,t)=>(e||t)&&!this.timeExtent&&"loaded"===this.store.state&&this.reset())),n((()=>this.layer),"refresh",(e=>this._onLayerRefresh(e)))])}destroy(){this._resetColumns(),this.handles.removeAll(),this._highlights.removeAll(),this._highlights.destroy(),this.grid?.destroy(),this.columns?.destroy(),this.layer=null,this.view=null}get _defaultHiddenFields(){return m(this.layer)}get activeSortOrders(){return this.grid?.sortOrders?this.grid.sortOrders.map((({path:e,direction:t})=>({fieldName:e,direction:t}))):[]}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set filterGeometry(e){if(!this.filterGeometry&&!e)return;const t=this.activeFilters.find((e=>"geometry"===e.type));t&&this.activeFilters.remove(t),this._set("filterGeometry",e),this.store.filterGeometry=e,e&&this.activeFilters.add({type:"geometry",geometry:e})}get hiddenFields(){return this._get("hiddenFields")??new s}set hiddenFields(e){Array.isArray(e)?this._set("hiddenFields",new s(e)):this._set("hiddenFields",e)}get highlightOnRowSelectEnabled(){return this.highlightEnabled}set highlightOnRowSelectEnabled(e){this.highlightEnabled=e}set layer(e){this._set("layer",e),this.grid?.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}get layerView(){return this.view?.allLayerViews.find((e=>e.layer===this.layer))||null}set messages(e){this.grid?.set("messages",e),this._set("messages",e)}get state(){const{store:e}=this;return e&&"disabled"!==e.state?"loading"===e.state?"loading":"loaded"===e.state?"loaded":"ready":"disabled"}set timeExtent(e){this._set("timeExtent",e),this.store.timeExtent=e}clearHighlights(){this._highlights.removeAll()}clearSelection(){this.grid?.clearSelection()}async deleteSelection(){const e=this.highlightIds.toArray();if(!e?.length)return;const{deleteFeatureResults:t}=await this.store.deleteRowsByObjectId(e),s=t.filter((e=>!e.error)).map((e=>e.objectId));s.length&&(this.deselectRows(s),await this.refresh())}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid?.deselectRows(t)}filterBySelection(){const e=this.highlightIds.toArray();e.length&&(this.clearSelectionFilter(),this.store.objectIds=e,this.activeFilters.add({type:"selection",objectIds:e}))}getObjectIdIndex(e){return this.store?.getObjectIdIndex(e)}getValue(e,t){const s=this.store.getItemByObjectId(e);return s?.feature?.attributes[t]}get highlightIds(){return this._get("highlightIds")||new s}set highlightIds(e){Array.isArray(e)?this._set("highlightIds",new s(e)):this._set("highlightIds",e)}async refresh(){return l(this._debounceRefresh())}reset(){this.grid?.reset()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);return this.grid?.selectRows(t)}scrollToIndex(e){this.grid?.scrollToIndex(e)}clearSelectionFilter(){this.store.objectIds=null;const e=this.activeFilters.find((e=>"selection"===e.type));e&&this.activeFilters.remove(e)}zoomToSelection(){const{layer:e,view:t}=this,s=this.highlightIds.toArray();if(!e||!t||!s.length)return;const i=e.createQuery();i.objectIds=s,i.returnGeometry=!0,e.queryFeatures(i).then((e=>{t.goTo(e.features).catch((e=>{"AbortError"!==e.name&&console.error(e)}))}))}async _refresh(){await this.store.refreshLayerInfo();const e=this.highlightIds.toArray();if(e.length){(await this.store.verifyFeaturesByObjectId(e)).forEach(((t,s)=>{t||this.deselectRows(e[s])}))}this.grid?.refreshPageCache()}_onLayerLoad(){const e=this.layer.capabilities?.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_onLayerRefresh(e){this.autoRefreshEnabled&&e.dataChanged&&this.refresh()}_generateColumns(){this._resetColumns();const e=[],t=this.tableTemplate?.columnTemplates?this._generateColumnsFromTemplates(this.tableTemplate.columnTemplates):this.fieldConfigs?.length?this._generateColumnsFromConfigs():this._generateDefaultFieldColumns();e.push(...t),this.attachmentsEnabled&&e.push(this._generateDefaultAttachmentColumn()),this.columns.addMany([...e])}_generateColumnsFromTemplates(e){const{editingEnabled:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n,tableTemplate:a}=this,h=this.layer?.fields??[],d=e=>{const t="fieldName"in e&&e.fieldName?.toLowerCase();return h.find((e=>t===e.name?.toLowerCase()))};return e.filter((e=>null!=d(e)||"group"===e.type&&"columnTemplates"in e)).map((e=>{if("fieldName"in e){const h=d(e),m=!1===e.visible||!0!==e.visible&&this._isFieldHidden(h?.name),{direction:g,formatFunction:c,initialSortPriority:p,menuConfig:y,textAlign:f}=e;return new u({direction:g,editingEnabled:t,expressionInfos:a?.expressionInfos||null,field:h,formatFunction:c,grid:s,hidden:m,initialSortPriority:p,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,store:n,template:e,textAlign:f})}if("group"===e.type&&"columnTemplates"in e){const t=this._generateColumnsFromTemplates(e.columnTemplates),s=!1===e.visible||!0!==e.visible&&this._isFieldHidden(e.label),{label:i}=e;return new b({header:i,columns:t,hidden:s})}return new p({...e})}))}_generateColumnsFromConfigs(){const{editingEnabled:e,fieldConfigs:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n}=this;if(!t)return[];const a=this.layer?.fields??[],h=e=>{const t=e.name?.toLocaleLowerCase();return a.find((e=>t===e.name?.toLowerCase()))};return t.filter(h).map((t=>{const a=t.direction||null,d=t.formatFunction||null,m=t.textAlign||null,g=null!=t.initialSortPriority?t.initialSortPriority:null,c=h(t),p=!1===t.visible||!0!==t.visible&&this._isFieldHidden(c?.name),y=t.menuConfig||null;return new u({config:t,direction:a,editingEnabled:e,field:c,formatFunction:d,grid:s,hidden:p,layer:i,store:n,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,textAlign:m,initialSortPriority:g})}))}_generateDefaultFieldColumns(){const{editingEnabled:e,grid:t,layer:s,messages:i,messagesCommon:r,messagesURIUtils:o,store:l}=this;return(this.layer?.fields??[]).map((n=>new u({editingEnabled:e,field:n,grid:t,hidden:this._isFieldHidden(n.name),layer:s,store:l,messages:i,messagesCommon:r,messagesURIUtils:o})))}_generateDefaultAttachmentColumn(){return new c({header:this.messages?.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())):[]}_isFieldHidden(e){const t=e?.toLowerCase();return(this.hiddenFields??this._defaultHiddenFields).some((e=>e.toLowerCase()===t))}_highlight(e){this.layerView&&g(this.layerView)&&this._highlights.add(this.layerView.highlight(e),e)}_unhighlight(e){this._highlights.remove(e)}_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}_onHighlightIdsChange(e){const{highlightEnabled:t}=this,{added:s,removed:i}=e;t&&(s.forEach((e=>this._highlight(e))),i.forEach((e=>this._unhighlight(e))))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([h()],v.prototype,"_defaultHiddenFields",null),e([h({readOnly:!0})],v.prototype,"activeFilters",void 0),e([h({readOnly:!0})],v.prototype,"activeSortOrders",null),e([h()],v.prototype,"attachmentsEnabled",null),e([h()],v.prototype,"autoRefreshEnabled",void 0),e([h()],v.prototype,"cellClassNameGenerator",void 0),e([h({readOnly:!0})],v.prototype,"columns",void 0),e([h()],v.prototype,"dataProvider",void 0),e([h()],v.prototype,"editingEnabled",void 0),e([h()],v.prototype,"fieldConfigs",void 0),e([h()],v.prototype,"filterGeometry",null),e([h({readOnly:!0})],v.prototype,"grid",void 0),e([h()],v.prototype,"hiddenFields",null),e([h()],v.prototype,"highlightEnabled",void 0),e([h()],v.prototype,"highlightOnRowSelectEnabled",null),e([h({readOnly:!0})],v.prototype,"itemIdPath",void 0),e([h()],v.prototype,"layer",null),e([h()],v.prototype,"layerView",null),e([h()],v.prototype,"messages",null),e([h(),w("esri/t9n/common")],v.prototype,"messagesCommon",void 0),e([h(),w("esri/widgets/support/t9n/uriUtils")],v.prototype,"messagesURIUtils",void 0),e([h()],v.prototype,"relatedRecordsEnabled",void 0),e([h({readOnly:!0})],v.prototype,"state",null),e([h({readOnly:!0,type:_})],v.prototype,"store",void 0),e([h()],v.prototype,"tableTemplate",void 0),e([h()],v.prototype,"timeExtent",null),e([h()],v.prototype,"view",void 0),e([h()],v.prototype,"highlightIds",null),v=e([d("esri.widgets.FeatureTable.FeatureTableViewModel")],v);const E=v;export{E 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{debounce as o,ignoreAbortErrors as l}from"../../core/promiseUtils.js";import{on as n,watch as a}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as d}from"../../core/accessorSupport/decorators/subclass.js";import{getLowerCaseDefaultHiddenFields as m}from"../../layers/support/fieldUtils.js";import{highlightsSupported as g}from"../../views/support/layerViewUtils.js";import c from"./AttachmentsColumn.js";import u from"./FieldColumn.js";import p from"./Grid/Column.js";import y from"./Grid/Grid.js";import f from"./Grid/GridViewModel.js";import b from"./Grid/GroupColumn.js";import _ from"./support/FeatureStore.js";import"../support/widgetUtils.js";import{messageBundle as w}from"../support/decorators/messageBundle.js";import{onLocaleChange as C}from"../../intl/locale.js";import{fetchMessageBundle as E}from"../../intl/messages.js";let I=class extends(i(f)){constructor(e){super(e),this._debounceRefresh=o((()=>this._refresh())),this._highlights=new r,this.activeFilters=new s,this.autoRefreshEnabled=!0,this.cellClassNameGenerator=(e,t)=>e.path||null,this.columns=new s,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.fieldConfigs=null,this.grid=null,this.highlightEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.messagesURIUtils=null,this.relatedRecordsEnabled=!1,this.returnGeometryEnabled=!1,this.store=null,this.tableTemplate=null,this.view=null,this._onLayerRefresh=this._onLayerRefresh.bind(this),this._set("store",new _),this._set("grid",new y({itemIdPath:this.itemIdPath,viewModel:this}))}initialize(){const e=async()=>{this.messages=await E("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await E("esri/t9n/common"),this.messagesURIUtils=await E("esri/widgets/support/t9n/uriUtils")};e(),this.handles.add([C((()=>{e(),this._generateColumns()})),n((()=>this.highlightIds),"change",(e=>this._onHighlightIdsChange(e)),{onListenerAdd:()=>{this.highlightIds.forEach((e=>this._highlight(e)))},onListenerRemove:()=>{this.highlightIds.forEach((e=>this._unhighlight(e)))}}),a((()=>this.layerView),(()=>{this._highlights.removeAll(),this.layerView&&this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),a((()=>this.highlightEnabled),(()=>{this._highlights.removeAll(),this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),a((()=>this.relatedRecordsEnabled),(e=>this.store.relatedRecordsEnabled=e)),a((()=>this.returnGeometryEnabled),(e=>this.store.returnGeometry=e)),a((()=>this.layer?.loaded),(e=>e&&this._onLayerLoad())),a((()=>this.store.state),(e=>{"loaded"===e&&this.grid?.scrollToTop()})),a((()=>[this.messages,this.tableTemplate,this.fieldConfigs]),(()=>this.layer?.loaded&&this._generateColumns())),a((()=>this.editingEnabled),(e=>{this.columns.forEach((t=>{"editingEnabled"in t&&(t.editingEnabled=e)})),this.grid?.onColumnChange()})),a((()=>this.layer?.definitionExpression),((e,t)=>(e||t)&&"loaded"===this.store.state&&this.reset())),a((()=>this.layer&&"timeExtent"in this.layer&&this.layer.timeExtent),((e,t)=>(e||t)&&!this.timeExtent&&"loaded"===this.store.state&&this.reset())),n((()=>this.layer),"refresh",(e=>this._onLayerRefresh(e)))])}destroy(){this._resetColumns(),this.handles.removeAll(),this._highlights.removeAll(),this._highlights.destroy(),this.grid?.destroy(),this.columns?.destroy(),this.layer=null,this.view=null}get _defaultHiddenFields(){return m(this.layer)}get activeSortOrders(){return this.grid?.sortOrders?this.grid.sortOrders.map((({path:e,direction:t})=>({fieldName:e,direction:t}))):[]}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set filterGeometry(e){if(!this.filterGeometry&&!e)return;const t=this.activeFilters.find((e=>"geometry"===e.type));t&&this.activeFilters.remove(t),this._set("filterGeometry",e),this.store.filterGeometry=e,e&&this.activeFilters.add({type:"geometry",geometry:e})}get hiddenFields(){return this._get("hiddenFields")??new s}set hiddenFields(e){Array.isArray(e)?this._set("hiddenFields",new s(e)):this._set("hiddenFields",e)}get highlightOnRowSelectEnabled(){return this.highlightEnabled}set highlightOnRowSelectEnabled(e){this.highlightEnabled=e}set layer(e){this._set("layer",e),this.grid?.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}get layerView(){return this.view?.allLayerViews.find((e=>e.layer===this.layer))||null}set messages(e){this.grid?.set("messages",e),this._set("messages",e)}get state(){const{store:e}=this;return e&&"disabled"!==e.state?"loading"===e.state?"loading":"loaded"===e.state?"loaded":"ready":"disabled"}set timeExtent(e){this._set("timeExtent",e),this.store.timeExtent=e}clearHighlights(){this._highlights.removeAll()}clearSelection(){this.grid?.clearSelection()}async deleteSelection(){const e=this.highlightIds.toArray();if(!e?.length)return;const{deleteFeatureResults:t}=await this.store.deleteRowsByObjectId(e),s=t.filter((e=>!e.error)).map((e=>e.objectId));s.length&&(this.deselectRows(s),await this.refresh())}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid?.deselectRows(t)}filterBySelection(){const e=this.highlightIds.toArray();e.length&&(this.clearSelectionFilter(),this.store.objectIds=e,this.activeFilters.add({type:"selection",objectIds:e}))}getObjectIdIndex(e){return this.store?.getObjectIdIndex(e)}getValue(e,t){const s=this.store.getItemByObjectId(e);return s?.feature?.attributes[t]}get highlightIds(){return this._get("highlightIds")||new s}set highlightIds(e){Array.isArray(e)?this._set("highlightIds",new s(e)):this._set("highlightIds",e)}async refresh(){return l(this._debounceRefresh())}reset(){this.grid?.reset()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);return this.grid?.selectRows(t)}scrollToIndex(e){this.grid?.scrollToIndex(e)}clearSelectionFilter(){this.store.objectIds=null;const e=this.activeFilters.find((e=>"selection"===e.type));e&&this.activeFilters.remove(e)}zoomToSelection(){const{layer:e,view:t}=this,s=this.highlightIds.toArray();if(!e||!t||!s.length)return;const i=e.createQuery();i.objectIds=s,i.returnGeometry=!0,e.queryFeatures(i).then((e=>{t.goTo(e.features).catch((e=>{"AbortError"!==e.name&&console.error(e)}))}))}async _refresh(){await this.store.refreshLayerInfo();const e=this.highlightIds.toArray();if(e.length){(await this.store.verifyFeaturesByObjectId(e)).forEach(((t,s)=>{t||this.deselectRows(e[s])}))}this.grid?.refreshPageCache()}_onLayerLoad(){const e=this.layer.capabilities?.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_onLayerRefresh(e){this.autoRefreshEnabled&&e.dataChanged&&this.refresh()}_generateColumns(){this._resetColumns();const e=[],t=this.tableTemplate?.columnTemplates?this._generateColumnsFromTemplates(this.tableTemplate.columnTemplates):this.fieldConfigs?.length?this._generateColumnsFromConfigs():this._generateDefaultFieldColumns();e.push(...t),e.length&&this.attachmentsEnabled&&e.push(this._generateDefaultAttachmentColumn()),this.columns.addMany([...e])}_generateColumnsFromTemplates(e){const{editingEnabled:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n,tableTemplate:a}=this,h=this.layer?.fields??[],d=e=>{const t="fieldName"in e&&e.fieldName?.toLowerCase();return h.find((e=>t===e.name?.toLowerCase()))};return e.filter((e=>null!=d(e)||"group"===e.type&&"columnTemplates"in e)).map((e=>{if("fieldName"in e){const h=d(e),m=!1===e.visible||!0!==e.visible&&this._isFieldHidden(h?.name),{direction:g,formatFunction:c,initialSortPriority:p,menuConfig:y,textAlign:f}=e;return new u({direction:g,editingEnabled:t,expressionInfos:a?.expressionInfos||null,field:h,formatFunction:c,grid:s,hidden:m,initialSortPriority:p,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,store:n,template:e,textAlign:f})}if("group"===e.type&&"columnTemplates"in e){const t=this._generateColumnsFromTemplates(e.columnTemplates),s=!1===e.visible||!0!==e.visible&&this._isFieldHidden(e.label),{label:i}=e;return new b({header:i,columns:t,hidden:s})}return new p({...e})}))}_generateColumnsFromConfigs(){const{editingEnabled:e,fieldConfigs:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n}=this;if(!t)return[];const a=this.layer?.fields??[],h=e=>{const t=e.name?.toLocaleLowerCase();return a.find((e=>t===e.name?.toLowerCase()))};return t.filter(h).map((t=>{const a=t.direction||null,d=t.formatFunction||null,m=t.textAlign||null,g=null!=t.initialSortPriority?t.initialSortPriority:null,c=h(t),p=!1===t.visible||!0!==t.visible&&this._isFieldHidden(c?.name),y=t.menuConfig||null;return new u({config:t,direction:a,editingEnabled:e,field:c,formatFunction:d,grid:s,hidden:p,layer:i,store:n,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,textAlign:m,initialSortPriority:g})}))}_generateDefaultFieldColumns(){const{editingEnabled:e,grid:t,layer:s,messages:i,messagesCommon:r,messagesURIUtils:o,store:l}=this;return(this.layer?.fields??[]).map((n=>new u({editingEnabled:e,field:n,grid:t,hidden:this._isFieldHidden(n.name),layer:s,store:l,messages:i,messagesCommon:r,messagesURIUtils:o})))}_generateDefaultAttachmentColumn(){return new c({header:this.messages?.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())):[]}_isFieldHidden(e){const t=e?.toLowerCase();return(this.hiddenFields??this._defaultHiddenFields).some((e=>e.toLowerCase()===t))}_highlight(e){this.layerView&&g(this.layerView)&&this._highlights.add(this.layerView.highlight(e),e)}_unhighlight(e){this._highlights.remove(e)}_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}_onHighlightIdsChange(e){const{highlightEnabled:t}=this,{added:s,removed:i}=e;t&&(s.forEach((e=>this._highlight(e))),i.forEach((e=>this._unhighlight(e))))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([h()],I.prototype,"_defaultHiddenFields",null),e([h({readOnly:!0})],I.prototype,"activeFilters",void 0),e([h({readOnly:!0})],I.prototype,"activeSortOrders",null),e([h()],I.prototype,"attachmentsEnabled",null),e([h()],I.prototype,"autoRefreshEnabled",void 0),e([h()],I.prototype,"cellClassNameGenerator",void 0),e([h({readOnly:!0})],I.prototype,"columns",void 0),e([h()],I.prototype,"dataProvider",void 0),e([h()],I.prototype,"editingEnabled",void 0),e([h()],I.prototype,"fieldConfigs",void 0),e([h()],I.prototype,"filterGeometry",null),e([h({readOnly:!0})],I.prototype,"grid",void 0),e([h()],I.prototype,"hiddenFields",null),e([h()],I.prototype,"highlightEnabled",void 0),e([h()],I.prototype,"highlightOnRowSelectEnabled",null),e([h({readOnly:!0})],I.prototype,"itemIdPath",void 0),e([h()],I.prototype,"layer",null),e([h()],I.prototype,"layerView",null),e([h()],I.prototype,"messages",null),e([h(),w("esri/t9n/common")],I.prototype,"messagesCommon",void 0),e([h(),w("esri/widgets/support/t9n/uriUtils")],I.prototype,"messagesURIUtils",void 0),e([h()],I.prototype,"relatedRecordsEnabled",void 0),e([h()],I.prototype,"returnGeometryEnabled",void 0),e([h({readOnly:!0})],I.prototype,"state",null),e([h({readOnly:!0,type:_})],I.prototype,"store",void 0),e([h()],I.prototype,"tableTemplate",void 0),e([h()],I.prototype,"timeExtent",null),e([h()],I.prototype,"view",void 0),e([h()],I.prototype,"highlightIds",null),I=e([d("esri.widgets.FeatureTable.FeatureTableViewModel")],I);const v=I;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.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{deprecatedFunction as t}from"../core/deprecate.js";import{HandleOwnerMixin as i}from"../core/HandleOwner.js";import l from"../core/Logger.js";import{on as s,watch as o}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import h from"./FeatureTable/FeatureTableViewModel.js";import c from"./FeatureTable/Grid/support/ButtonMenu.js";import m from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{Heading as g}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as w}from"../intl/substitute.js";const b={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsShowAllToggle:!0,selectedRecordsShowSelectedToggle:!0,zoomToSelection:!0,deleteSelection:!0},selectionColumn:!0,columnMenus:!0},M="esri-feature-table",y=`${M}__prompt`,f={base:M,header:`${M}__header`,title:`${M}__title`,content:`${M}__content`,loader:`${M}__loader`,loaderContainer:`${M}__loader-container`,menuContainer:`${M}__menu`,menuIcon:"esri-icon-handle-horizontal",menuItemGroupOpenedIcon:"esri-icon-down",menuItemGroupClosedIcon:"esri-icon-right",checkmarkIcon:"esri-icon-check-mark",promptContainer:y,promptHeader:`${y}__header`,promptHeading:`${y}__header__heading`,promptMessage:`${y}__message`,promptDivider:`${y}__divider`,promptActions:`${y}__actions`,widget:"esri-widget"},_=l.getLogger("esri.widgets.FeatureTable");let E=class extends(i(a)){constructor(e,t){super(e,t),this._prompt=null,this.menu=null,this.menuConfig=null,this.viewModel=new h,this.visibleElements={...b},this._showDeletePrompt=this._showDeletePrompt.bind(this),this._onDeleteSelectionClick=this._onDeleteSelectionClick.bind(this)}initialize(){this.handles.add([s((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),s((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),s((()=>this.highlightIds),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),o((()=>[this.viewModel.store.querying,this.viewModel.store.syncing,this.editingEnabled]),(()=>this.scheduleRender())),o((()=>[this.menuConfig,this.editingEnabled]),(()=>this._syncMenuConfig())),o((()=>this.messages),(()=>{this.menu&&(this.menu.label=this.messages?.options),this._syncMenuConfig()}))]),this._set("menu",new c({label:this.messages?.options,iconClass:f.menuIcon,...this.menuConfig}));const{attachmentsEnabled:e,relatedRecordsEnabled:t}=this;this.viewModel?.store?.set({attachmentsEnabled:e,relatedRecordsEnabled:t})}loadDependencies(){return u({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}destroy(){this._prompt=null,this.handles.removeAll(),this.menu?.destroy()}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get fieldConfigs(){return this.viewModel.fieldConfigs??[]}set fieldConfigs(e){this.viewModel.fieldConfigs=e}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get grid(){return this.viewModel.grid}get hiddenFields(){return this.viewModel.hiddenFields}set hiddenFields(e){this.viewModel.hiddenFields=e}get highlightEnabled(){return this.viewModel.highlightEnabled}set highlightEnabled(e){this.viewModel.highlightEnabled=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get highlightOnRowSelectEnabled(){return this.viewModel.highlightEnabled}set highlightOnRowSelectEnabled(e){this.viewModel.highlightEnabled=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get messages(){return this.viewModel.messages}set messages(e){this.viewModel.messages=e}get messagesCommon(){return this.viewModel.messagesCommon}set messagesCommon(e){this.viewModel.messagesCommon=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get state(){return this.viewModel.state}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){const t={...b,...e};return this.grid?.set("visibleElements",{...this.grid.visibleElements,selectionColumn:t.selectionColumn,columnMenus:t.columnMenus}),t}clearHighlights(){return t(_,"`FeatureTable.clearHighlights` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearHighlights()}clearSelection(){return t(_,"`FeatureTable.clearSelection` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearSelection()}clearSelectionFilter(){return this.viewModel.clearSelectionFilter()}deleteSelection(e){return this.highlightIds.length?e?(this._showDeletePrompt(),this.scheduleRender(),Promise.resolve()):this.viewModel.deleteSelection():Promise.resolve()}deselectRows(e){return this.viewModel.deselectRows(e)}filterBySelection(){return this.viewModel.filterBySelection()}findColumn(e){return this.viewModel.findColumn(e)}hideColumn(e){this.grid?.hideColumn(e),this._syncMenuConfig()}refresh(){return this.viewModel.refresh()}showAllColumns(){return this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e),this._syncMenuConfig()}sortColumn(e,t){return this.viewModel.sortColumn(e,t)}selectRows(e){return this.viewModel.selectRows(e)}scrollToIndex(e){return this.viewModel.scrollToIndex(e)}zoomToSelection(){return this.viewModel.zoomToSelection()}render(){const{_prompt:e}=this,t=null!=e?v("calcite-scrim",null,this.renderPrompt(e)):null;return v("div",{bind:this,class:this.classes(f.base,f.widget)},this.visibleElements.header?this._renderHeader():null,v("div",{class:f.content},"disabled"!==this.state&&this.grid?.render()),t)}renderPrompt({title:e,message:t,context:i,actions:l}){const s=v("calcite-button",{appearance:"solid",kind:"danger"===i?"danger":"brand",width:l.secondary?"half":"full",onclick:l.primary.action,key:"prompt-primary-button"},l.primary.label),o=l.secondary?v("calcite-button",{appearance:"outline",kind:"danger"===i?"danger":"brand",width:"half",onclick:l.secondary.action,key:"prompt-secondary-button"},l.secondary.label):null;return v("div",{class:`${f.promptContainer}--${i}`},v("div",{class:f.promptHeader},v("calcite-icon",{icon:"exclamation-mark-triangle"}),v(g,{class:f.promptHeading,level:2},e)),v("div",{class:f.promptMessage},t),v("div",{class:f.promptDivider}),v("div",{class:f.promptActions},o,s))}_renderHeader(){return v("div",{key:"header",class:f.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return v("div",{class:f.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,highlightIds:t,layer:i,messages:l,viewModel:{size:s}}=this;return e&&i?w(l.header,{title:i.title,count:s,selected:t.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,i="loading"===e||t.syncing||t.querying;return v("div",{class:f.loaderContainer},i?v("div",{class:f.loader,key:"loader"}):null)}_renderMenu(){return v("div",{class:f.menuContainer},this.menu?.render())}_onSelectionChange(e){const{added:t,removed:i}=e,l=t.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null})),s=i.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null}));this.emit("selection-change",{added:l,removed:s})}_syncMenuConfig(){this.menu?.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){const e=this.menuConfig?.items,t=this._getDefaultMenuItems(),i=[];return t?.length&&i.push(...t),e?.length&&i.push(...e),i}_getDefaultMenuItems(){const{highlightIds:e,messages:t,viewModel:i,visibleElements:l}=this,{menuItems:s}=l,o=[];if(s?.refreshData&&o.push(new m({selectionEnabled:!1,label:t?.refreshData,clickFunction:()=>this.refresh()})),e.length){const i=this._getSelectionFilter();if(s?.clearSelection&&o.push(new m({selectionEnabled:!1,label:t?.clearSelection,clickFunction:()=>this.highlightIds?.removeAll()})),s?.zoomToSelection&&this.view&&o.push(new m({selectionEnabled:!1,label:t?.zoomToSelection,clickFunction:()=>this.viewModel.zoomToSelection()})),s?.selectedRecordsShowSelectedToggle&&(!i||e.length!==i.objectIds.length)){const e=t.showSelected,i=new m({selectionEnabled:!1,label:e,clickFunction:()=>{this.filterBySelection(),i.set("label",e)}});o.push(i)}s?.deleteSelection&&this.editingEnabled&&this.layer?.capabilities?.operations?.supportsDelete&&o.push(new m({selectionEnabled:!1,label:t.deleteSelection,clickFunction:this._showDeletePrompt}))}if(s?.selectedRecordsShowAllToggle&&this._hasSelectionFilter()){const e=t.showAllRecords,i=new m({selectionEnabled:!1,label:e,clickFunction:()=>{this.clearSelectionFilter(),i.set("label",e)}});o.push(i)}return s?.toggleColumns&&o.push(new m({iconClass:f.menuItemGroupClosedIcon,label:t?.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:i?.columns?.items.map((({header:e,hidden:t,path:i})=>new m({label:e||i,selected:!t,selectionEnabled:!0,iconClass:f.checkmarkIcon,clickFunction:()=>this._toggleColumnFromMenuItem(i)})))})),o.length?o:null}_toggleMenuItemSelectedIcon({item:e}){e?.set("iconClass",e?.selected?f.menuItemGroupOpenedIcon:f.menuItemGroupClosedIcon)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:i}=this,l=i.findColumn(e);l?.hidden?t?.showColumn(e):t?.hideColumn(e)}_showDeletePrompt(){const{messages:e,messagesCommon:t}=this,i=this.highlightIds.length||0,l=w(e.deleteSelectionCount,{count:i});this.menu&&(this.menu.open=!1),this._prompt={title:l,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:t.delete,action:this._onDeleteSelectionClick},secondary:{label:e.keepRecords,action:()=>this._prompt=null}}}}async _onDeleteSelectionClick(){await this.viewModel.deleteSelection(),this._prompt=null}_getSelectionFilter(){return this.viewModel.activeFilters?.find((e=>"selection"===e.type))}_hasSelectionFilter(){return!!this._getSelectionFilter()}};e([n({readOnly:!0})],E.prototype,"activeFilters",null),e([n({readOnly:!0})],E.prototype,"activeSortOrders",null),e([n()],E.prototype,"attachmentsEnabled",null),e([n()],E.prototype,"autoRefreshEnabled",null),e([n()],E.prototype,"columnReorderingEnabled",null),e([n({readOnly:!0})],E.prototype,"columns",null),e([n()],E.prototype,"editingEnabled",null),e([n()],E.prototype,"fieldConfigs",null),e([n()],E.prototype,"filterGeometry",null),e([n({readOnly:!0})],E.prototype,"grid",null),e([n()],E.prototype,"hiddenFields",null),e([n()],E.prototype,"highlightEnabled",null),e([n()],E.prototype,"highlightIds",null),e([n()],E.prototype,"highlightOnRowSelectEnabled",null),e([n()],E.prototype,"label",null),e([n()],E.prototype,"layer",null),e([n(),p("esri/widgets/FeatureTable/t9n/FeatureTable")],E.prototype,"messages",null),e([n(),p("esri/t9n/common")],E.prototype,"messagesCommon",null),e([n(),p("esri/widgets/support/t9n/uriUtils")],E.prototype,"messagesURIUtils",null),e([n({readOnly:!0})],E.prototype,"menu",void 0),e([n()],E.prototype,"menuConfig",void 0),e([n()],E.prototype,"multiSortEnabled",null),e([n()],E.prototype,"pageSize",null),e([n()],E.prototype,"relatedRecordsEnabled",null),e([n({readOnly:!0})],E.prototype,"state",null),e([n()],E.prototype,"tableTemplate",null),e([n()],E.prototype,"timeExtent",null),e([n()],E.prototype,"view",null),e([n()],E.prototype,"viewModel",void 0),e([n()],E.prototype,"visibleElements",void 0),e([r("visibleElements")],E.prototype,"castVisibleElements",null),E=e([d("esri.widgets.FeatureTable")],E);const C=E;export{C as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{deprecatedFunction as t}from"../core/deprecate.js";import{HandleOwnerMixin as i}from"../core/HandleOwner.js";import l from"../core/Logger.js";import{on as s,watch as o}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import h from"./FeatureTable/FeatureTableViewModel.js";import c from"./FeatureTable/Grid/support/ButtonMenu.js";import m from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{Heading as g}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";const w={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsShowAllToggle:!0,selectedRecordsShowSelectedToggle:!0,zoomToSelection:!0,deleteSelection:!0},selectionColumn:!0,columnMenus:!0},M="esri-feature-table",y=`${M}__prompt`,f={base:M,header:`${M}__header`,title:`${M}__title`,content:`${M}__content`,loader:`${M}__loader`,loaderContainer:`${M}__loader-container`,menuContainer:`${M}__menu`,menuIcon:"esri-icon-handle-horizontal",menuItemGroupOpenedIcon:"esri-icon-down",menuItemGroupClosedIcon:"esri-icon-right",checkmarkIcon:"esri-icon-check-mark",promptContainer:y,promptHeader:`${y}__header`,promptHeading:`${y}__header__heading`,promptMessage:`${y}__message`,promptDivider:`${y}__divider`,promptActions:`${y}__actions`,widget:"esri-widget"},_=l.getLogger("esri.widgets.FeatureTable");let E=class extends(i(a)){constructor(e,t){super(e,t),this._prompt=null,this.menu=null,this.menuConfig=null,this.viewModel=new h,this.visibleElements={...w},this._showDeletePrompt=this._showDeletePrompt.bind(this),this._onDeleteSelectionClick=this._onDeleteSelectionClick.bind(this)}initialize(){this.handles.add([s((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),s((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),s((()=>this.highlightIds),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),o((()=>[this.viewModel.store.querying,this.viewModel.store.syncing,this.editingEnabled]),(()=>this.scheduleRender())),o((()=>[this.menuConfig,this.editingEnabled]),(()=>this._syncMenuConfig())),o((()=>this.messages),(()=>{this.menu&&(this.menu.label=this.messages?.options),this._syncMenuConfig()}))]),this._set("menu",new c({label:this.messages?.options,iconClass:f.menuIcon,...this.menuConfig}));const{attachmentsEnabled:e,relatedRecordsEnabled:t}=this;this.viewModel?.store?.set({attachmentsEnabled:e,relatedRecordsEnabled:t})}loadDependencies(){return u({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}destroy(){this._prompt=null,this.handles.removeAll(),this.menu?.destroy()}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get fieldConfigs(){return this.viewModel.fieldConfigs??[]}set fieldConfigs(e){this.viewModel.fieldConfigs=e}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get grid(){return this.viewModel.grid}get hiddenFields(){return this.viewModel.hiddenFields}set hiddenFields(e){this.viewModel.hiddenFields=e}get highlightEnabled(){return this.viewModel.highlightEnabled}set highlightEnabled(e){this.viewModel.highlightEnabled=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get highlightOnRowSelectEnabled(){return this.viewModel.highlightEnabled}set highlightOnRowSelectEnabled(e){this.viewModel.highlightEnabled=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get messages(){return this.viewModel.messages}set messages(e){this.viewModel.messages=e}get messagesCommon(){return this.viewModel.messagesCommon}set messagesCommon(e){this.viewModel.messagesCommon=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get state(){return this.viewModel.state}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){const t={...w,...e};return this.grid?.set("visibleElements",{...this.grid.visibleElements,selectionColumn:t.selectionColumn,columnMenus:t.columnMenus}),t}clearHighlights(){return t(_,"`FeatureTable.clearHighlights` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearHighlights()}clearSelection(){return t(_,"`FeatureTable.clearSelection` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearSelection()}clearSelectionFilter(){return this.viewModel.clearSelectionFilter()}deleteSelection(e){return this.highlightIds.length?e?(this._showDeletePrompt(),this.scheduleRender(),Promise.resolve()):this.viewModel.deleteSelection():Promise.resolve()}deselectRows(e){return this.viewModel.deselectRows(e)}filterBySelection(){return this.viewModel.filterBySelection()}findColumn(e){return this.viewModel.findColumn(e)}hideColumn(e){this.grid?.hideColumn(e),this._syncMenuConfig()}refresh(){return this.viewModel.refresh()}get returnGeometryEnabled(){return this.viewModel.returnGeometryEnabled}set returnGeometryEnabled(e){this.viewModel.returnGeometryEnabled=e}showAllColumns(){return this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e),this._syncMenuConfig()}sortColumn(e,t){return this.viewModel.sortColumn(e,t)}selectRows(e){return this.viewModel.selectRows(e)}scrollToIndex(e){return this.viewModel.scrollToIndex(e)}zoomToSelection(){return this.viewModel.zoomToSelection()}render(){const{_prompt:e}=this,t=null!=e?v("calcite-scrim",null,this.renderPrompt(e)):null;return v("div",{bind:this,class:this.classes(f.base,f.widget)},this.visibleElements.header?this._renderHeader():null,v("div",{class:f.content},"disabled"!==this.state&&this.grid?.render()),t)}renderPrompt({title:e,message:t,context:i,actions:l}){const s=v("calcite-button",{appearance:"solid",kind:"danger"===i?"danger":"brand",width:l.secondary?"half":"full",onclick:l.primary.action,key:"prompt-primary-button"},l.primary.label),o=l.secondary?v("calcite-button",{appearance:"outline",kind:"danger"===i?"danger":"brand",width:"half",onclick:l.secondary.action,key:"prompt-secondary-button"},l.secondary.label):null;return v("div",{class:`${f.promptContainer}--${i}`},v("div",{class:f.promptHeader},v("calcite-icon",{icon:"exclamation-mark-triangle"}),v(g,{class:f.promptHeading,level:2},e)),v("div",{class:f.promptMessage},t),v("div",{class:f.promptDivider}),v("div",{class:f.promptActions},o,s))}_renderHeader(){return v("div",{key:"header",class:f.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return v("div",{class:f.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,highlightIds:t,layer:i,messages:l,viewModel:{size:s}}=this;return e&&i?b(l.header,{title:i.title,count:s,selected:t.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,i="loading"===e||t.syncing||t.querying;return v("div",{class:f.loaderContainer},i?v("div",{class:f.loader,key:"loader"}):null)}_renderMenu(){return v("div",{class:f.menuContainer},this.menu?.render())}_onSelectionChange(e){const{added:t,removed:i}=e,l=t.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null})),s=i.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null}));this.emit("selection-change",{added:l,removed:s})}_syncMenuConfig(){this.menu?.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){const e=this.menuConfig?.items,t=this._getDefaultMenuItems(),i=[];return t?.length&&i.push(...t),e?.length&&i.push(...e),i}_getDefaultMenuItems(){const{highlightIds:e,messages:t,viewModel:i,visibleElements:l}=this,{menuItems:s}=l,o=[];if(s?.refreshData&&o.push(new m({selectionEnabled:!1,label:t?.refreshData,clickFunction:()=>this.refresh()})),e.length){const i=this._getSelectionFilter();if(s?.clearSelection&&o.push(new m({selectionEnabled:!1,label:t?.clearSelection,clickFunction:()=>this.highlightIds?.removeAll()})),s?.zoomToSelection&&this.view&&o.push(new m({selectionEnabled:!1,label:t?.zoomToSelection,clickFunction:()=>this.viewModel.zoomToSelection()})),s?.selectedRecordsShowSelectedToggle&&(!i||e.length!==i.objectIds.length)){const e=t.showSelected,i=new m({selectionEnabled:!1,label:e,clickFunction:()=>{this.filterBySelection(),i.set("label",e)}});o.push(i)}s?.deleteSelection&&this.editingEnabled&&this.layer?.capabilities?.operations?.supportsDelete&&o.push(new m({selectionEnabled:!1,label:t.deleteSelection,clickFunction:this._showDeletePrompt}))}if(s?.selectedRecordsShowAllToggle&&this._hasSelectionFilter()){const e=t.showAllRecords,i=new m({selectionEnabled:!1,label:e,clickFunction:()=>{this.clearSelectionFilter(),i.set("label",e)}});o.push(i)}return s?.toggleColumns&&o.push(new m({iconClass:f.menuItemGroupClosedIcon,label:t?.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:i?.columns?.items.map((({header:e,hidden:t,path:i})=>new m({label:e||i,selected:!t,selectionEnabled:!0,iconClass:f.checkmarkIcon,clickFunction:()=>this._toggleColumnFromMenuItem(i)})))})),o.length?o:null}_toggleMenuItemSelectedIcon({item:e}){e?.set("iconClass",e?.selected?f.menuItemGroupOpenedIcon:f.menuItemGroupClosedIcon)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:i}=this,l=i.findColumn(e);l?.hidden?t?.showColumn(e):t?.hideColumn(e)}_showDeletePrompt(){const{messages:e,messagesCommon:t}=this,i=this.highlightIds.length||0,l=b(e.deleteSelectionCount,{count:i});this.menu&&(this.menu.open=!1),this._prompt={title:l,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:t.delete,action:this._onDeleteSelectionClick},secondary:{label:e.keepRecords,action:()=>this._prompt=null}}}}async _onDeleteSelectionClick(){await this.viewModel.deleteSelection(),this._prompt=null}_getSelectionFilter(){return this.viewModel.activeFilters?.find((e=>"selection"===e.type))}_hasSelectionFilter(){return!!this._getSelectionFilter()}};e([n({readOnly:!0})],E.prototype,"activeFilters",null),e([n({readOnly:!0})],E.prototype,"activeSortOrders",null),e([n()],E.prototype,"attachmentsEnabled",null),e([n()],E.prototype,"autoRefreshEnabled",null),e([n()],E.prototype,"columnReorderingEnabled",null),e([n({readOnly:!0})],E.prototype,"columns",null),e([n()],E.prototype,"editingEnabled",null),e([n()],E.prototype,"fieldConfigs",null),e([n()],E.prototype,"filterGeometry",null),e([n({readOnly:!0})],E.prototype,"grid",null),e([n()],E.prototype,"hiddenFields",null),e([n()],E.prototype,"highlightEnabled",null),e([n()],E.prototype,"highlightIds",null),e([n()],E.prototype,"highlightOnRowSelectEnabled",null),e([n()],E.prototype,"label",null),e([n()],E.prototype,"layer",null),e([n(),p("esri/widgets/FeatureTable/t9n/FeatureTable")],E.prototype,"messages",null),e([n(),p("esri/t9n/common")],E.prototype,"messagesCommon",null),e([n(),p("esri/widgets/support/t9n/uriUtils")],E.prototype,"messagesURIUtils",null),e([n({readOnly:!0})],E.prototype,"menu",void 0),e([n()],E.prototype,"menuConfig",void 0),e([n()],E.prototype,"multiSortEnabled",null),e([n()],E.prototype,"pageSize",null),e([n()],E.prototype,"relatedRecordsEnabled",null),e([n({readOnly:!0})],E.prototype,"state",null),e([n()],E.prototype,"tableTemplate",null),e([n()],E.prototype,"timeExtent",null),e([n()],E.prototype,"view",null),e([n()],E.prototype,"viewModel",void 0),e([n()],E.prototype,"visibleElements",void 0),e([r("visibleElements")],E.prototype,"castVisibleElements",null),e([n()],E.prototype,"returnGeometryEnabled",null),E=e([d("esri.widgets.FeatureTable")],E);const C=E;export{C 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.27/esri/copyright.txt for details.
4
4
  */
5
- import{Heading as e}from"../support/Heading.js";import{classes as t,isActivationKey as n}from"../support/widgetUtils.js";import{tsx as i}from"../support/jsxFactory.js";const r="esri-item-list",o={base:r,list:`${r}__list`,group:`${r}__group`,scroller:`${r}__scroller`,scrollerEnabled:`${r}__scroller--enabled`,groupHeader:`${r}__group__header`,item:`${r}__list-item`,itemIcon:`${r}__list-item-icon`,itemIconSuccess:`${r}__list-item-icon--success`,itemIconError:`${r}__list-item-icon--error`,itemContentEnd:`${r}__list-item-content-end`,itemLoader:`${r}__list-item-loader`,noMatchesMessage:`${r}__no-matches-message`,noItemsMessage:`${r}__no-items-message`,filterContainer:`${r}__filter-container`,filterContainerSticky:`${r}__filter-container--sticky`,filterPlaceholder:`${r}__filter-placeholder`,filterInput:`${r}__filter-input`,filterPlaceholderText:`${r}__filter-placeholder-text`,searchIcon:"esri-icon-search",widget:"esri-widget",input:"esri-input"},l=4;function s(e){const{filterText:t="",id:n,messages:r,onFilterChange:o,...l}=e;return i("div",{key:n},e.filterEnabled??1?d({filterText:t,id:n,messages:r,onFilterChange:o}):null,c({...l,enableListScroll:e.enableListScroll??!0,filterText:t,messages:r}))}function a(e){return!!e.items}function c(e){const{headingLevel:n,items:r,...l}=e;return 0===r.length?i("div",{class:o.noMatchesMessage,key:"no-matches"},e.messages.noMatches):i("div",{class:t({[o.scroller]:!0,[o.scrollerEnabled]:!!e.enableListScroll}),key:"item-container"},r.map((e=>a(e)?_({...l,group:e,headingLevel:n}):m({...l,grouped:!0,item:e}))))}function d(e){const{messages:t,filterText:n,enableListScroll:r}=e;return i("div",{key:"filter",class:r?void 0:o.filterContainerSticky},i("calcite-input",{onCalciteInputInput:t=>{const n=t.currentTarget;e.onFilterChange&&e.onFilterChange(n.value)},placeholder:t.filterPlaceholder,value:n,type:"search"}))}function m({grouped:e,identify:t,item:r,onItemMouseEnter:l,onItemMouseLeave:s,onItemSelect:a,renderIcon:c,renderItemContent:d,renderItemContentEnd:m,renderItemLabel:_,renderItemDescription:g,selectedItem:f}){const v=u(r,t),h=v===u(f,t),I=d?.(r),$=m?.(r);return i("calcite-list-item",{"aria-level":e?"2":"",class:o.item,"data-item":r,key:v,label:I?void 0:_?.(r)??r.label??void 0,description:I?void 0:g?.(r)??void 0,selected:h,tabIndex:0,afterCreate:e=>{const t={capture:!0};e.addEventListener("click",(e=>{e.preventDefault(),e.stopImmediatePropagation(),a?.(p(e))}),t),e.addEventListener("keydown",(e=>{n(e.key)&&(e.preventDefault(),e.stopImmediatePropagation(),a?.(p(e)))}),t)},onmouseenter:e=>l?.(p(e)),onmouseleave:e=>s?.(p(e))},i("div",{key:"content-start",class:o.itemIcon,slot:"content-start"},c?.(r)),I?i("div",{key:"content",slot:"content"},I):null,$?i("div",{key:"content-end",class:o.itemContentEnd,slot:"content-end"},$):null)}function u(e,t){return e?`${t?.(e)||e.id}__${e.label}`:""}function p(e){return e.currentTarget["data-item"]}function _(t){const{group:n,headingLevel:r=l,selectionMode:s="none",...a}=t;return i("div",{class:o.group,key:n.label??void 0},i(e,{level:r,class:o.groupHeader},n.label),i("calcite-list",{selectionMode:s,selectionAppearance:"border"},n.items.map((e=>m({...a,item:e,grouped:!0})))))}export{s as ItemList,_ as renderGroup,m as renderItem};
5
+ import{Heading as e}from"../support/Heading.js";import{classes as t,isActivationKey as n}from"../support/widgetUtils.js";import{tsx as r}from"../support/jsxFactory.js";const o="esri-item-list",i={base:o,group:`${o}__group`,scroller:`${o}__scroller`,scrollerEnabled:`${o}__scroller--enabled`,groupHeader:`${o}__group__header`,item:`${o}__list-item`,itemIcon:`${o}__list-item-icon`,itemContentEnd:`${o}__list-item-content-end`,noMatchesMessage:`${o}__no-matches-message`,filterContainerSticky:`${o}__filter-container--sticky`},l=4;function s(e){const{filterText:t="",id:n,messages:o,onFilterChange:i,...l}=e;return r("div",{key:n},e.filterEnabled??1?d({filterText:t,id:n,messages:o,onFilterChange:i}):null,c({...l,enableListScroll:e.enableListScroll??!0,filterText:t,messages:o}))}function a(e){return!!e.items}function c(e){const{headingLevel:n,items:o,...l}=e;return 0===o.length?r("div",{class:i.noMatchesMessage,key:"no-matches"},e.messages.noMatches):r("div",{class:t({[i.scroller]:!0,[i.scrollerEnabled]:!!e.enableListScroll}),key:"item-container"},o.map((e=>a(e)?g({...l,group:e,headingLevel:n}):m({...l,grouped:!0,item:e}))))}function d(e){const{messages:t,filterText:n,enableListScroll:o}=e;return r("div",{key:"filter",class:o?void 0:i.filterContainerSticky},r("calcite-input",{onCalciteInputInput:t=>{const n=t.currentTarget;e.onFilterChange&&e.onFilterChange(n.value)},placeholder:t.filterPlaceholder,value:n,type:"search"}))}function m({grouped:e,identify:t,item:o,onItemMouseEnter:l,onItemMouseLeave:s,onItemSelect:a,renderIcon:c,renderItemContent:d,renderItemContentEnd:m,renderItemLabel:g,renderItemDescription:v,selectedItem:f}){const _=u(o,t),b=_===u(f,t),h=d?.(o),y=m?.(o);return r("calcite-list-item",{"aria-level":e?"2":"",class:i.item,"data-item":o,key:_,label:h?void 0:g?.(o)??o.label??void 0,description:h?void 0:v?.(o)??void 0,selected:b,tabIndex:0,afterCreate:e=>{const t=e=>{e.preventDefault(),e.stopImmediatePropagation(),a?.(p(e))},r={capture:!0};e.addEventListener("click",t,r),e.addEventListener("keydown",(e=>{n(e.key)&&t(e)}),r)},onmouseenter:e=>l?.(p(e)),onmouseleave:e=>s?.(p(e))},r("div",{key:"content-start",class:i.itemIcon,slot:"content-start"},c?.(o)),h?r("div",{key:"content",slot:"content"},h):null,y?r("div",{key:"content-end",class:i.itemContentEnd,slot:"content-end"},y):null)}function u(e,t){return e?`${t?.(e)||e.id}__${e.label}`:""}function p(e){return e.currentTarget["data-item"]}function g(t){const{group:n,headingLevel:o=l,selectionMode:s="none",...a}=t;return r("div",{class:i.group,key:n.label??void 0},r(e,{level:o,class:i.groupHeader},n.label),r("calcite-list",{selectionMode:s,selectionAppearance:"border"},n.items.map((e=>m({...a,item:e,grouped:!0})))))}export{s as ItemList,g as renderGroup,m as renderItem};