@arcgis/core 5.2.0-next.21 → 5.2.0-next.22

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 (171) hide show
  1. package/Graphic.d.ts +1 -0
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/0eb0ce43b4813cae968f.js +2 -0
  4. package/assets/esri/core/workers/chunks/{2dbd88566abac030e965.js → 162dada6a199d1efdf86.js} +2 -2
  5. package/assets/esri/core/workers/chunks/1a4bec464daa9662ab2a.js +1 -0
  6. package/assets/esri/core/workers/chunks/{b375abfb2a2d9c63e20a.js → 2255a21c7b959f04d941.js} +1 -1
  7. package/assets/esri/core/workers/chunks/292498a9c7d462d215c6.js +1 -0
  8. package/assets/esri/core/workers/chunks/3b4fc67f6cb7393fbd97.js +1 -0
  9. package/assets/esri/core/workers/chunks/{909e67dee8c30e391d69.js → 44e32ed3a570593a7245.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{6649acaceab00ad30e7f.js → 50345dfc00380b158c96.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{da47fdffb5969694a2ae.js → 5b42f8aa0247adc2d065.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{d7acbc2ddff4cee8a465.js → 5ee887fc6e1e0e70e02f.js} +1 -1
  13. package/assets/esri/core/workers/chunks/66c2cfe11161d5dc989a.js +1 -0
  14. package/assets/esri/core/workers/chunks/6c0c77de1934f35dc45f.js +1 -0
  15. package/assets/esri/core/workers/chunks/{f7f820483e45c05ab9e4.js → 75df436e6e9773bdcfc2.js} +1 -1
  16. package/assets/esri/core/workers/chunks/780519b60aa674a61a74.js +1 -0
  17. package/assets/esri/core/workers/chunks/{a2247f4c3116efb16c4f.js → 7e23de8d9b2d938808f6.js} +1 -1
  18. package/assets/esri/core/workers/chunks/7fc8516111bd869256fc.js +1 -0
  19. package/assets/esri/core/workers/chunks/8579eba21f40630d073d.js +1 -0
  20. package/assets/esri/core/workers/chunks/928b18e13e015330d44b.js +1 -0
  21. package/assets/esri/core/workers/chunks/9434c76ad39c936dba90.js +1 -0
  22. package/assets/esri/core/workers/chunks/a54773c9bbc751619b3f.js +2 -0
  23. package/assets/esri/core/workers/chunks/{ac16016964be3b684e98.js → aded4e704e09a28edc8f.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{eccbddaec4be44c86f79.js → b0b3c67b7d37bd854d95.js} +2 -2
  25. package/assets/esri/core/workers/chunks/{7175f0c6a6e56b685d20.js → b419fd36337e76e2d4a3.js} +6 -6
  26. package/assets/esri/core/workers/chunks/{05d597dd117766beadd8.js → b91a15522692781560b4.js} +1 -1
  27. package/assets/esri/core/workers/chunks/be4275a4b8977ec3eb61.js +1 -0
  28. package/assets/esri/core/workers/chunks/c86d388d216adbb15a05.js +1 -0
  29. package/assets/esri/core/workers/chunks/{0b522e05668bef729b1b.js → ceb5bd9f2afaa2ea0808.js} +1 -1
  30. package/assets/esri/core/workers/chunks/d07068c44d560e4ce02e.js +1 -0
  31. package/assets/esri/core/workers/chunks/{19493c9c7e1d2ac0f80f.js → d4e0346209fabc58f929.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{5809e70a8e57e9b05959.js → dd795c95cdc3812b5b49.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{f0519b06987471456b69.js → e29c8c10331edfa83277.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{44b30bce8e9a75b9e1b3.js → ef94d25d1cceb25ea9fe.js} +2 -2
  35. package/assets/esri/core/workers/chunks/f02a9408ba3893484c6c.js +1 -0
  36. package/assets/esri/core/workers/chunks/f7344d855f1092383abe.js +1 -0
  37. package/assets/esri/core/workers/chunks/{f1ff33584680d8718400.js → fb9f8b6cc2b4ae5b60df.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{ecbf84a1f42e6188faab.js → fd629872b5c07853f695.js} +1 -1
  39. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  40. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -1
  41. package/assets/esri/themes/dark/main.css +1 -1
  42. package/assets/esri/themes/light/main.css +1 -1
  43. package/assets/esri/themes/light/view.css +1 -1
  44. package/chunks/GaussianSplat.glsl.js +4 -4
  45. package/chunks/GaussianSplatShadow.glsl.js +1 -1
  46. package/config.js +1 -1
  47. package/core/date.js +1 -1
  48. package/form/FormTemplate.d.ts +15 -20
  49. package/form/elements/AttachmentElement.d.ts +38 -11
  50. package/form/elements/Element.d.ts +9 -6
  51. package/form/elements/FieldElement.d.ts +0 -1
  52. package/form/elements/GroupElement.d.ts +4 -6
  53. package/form/elements/RelationshipElement.d.ts +8 -8
  54. package/form/elements/inputs/attachments/AttachmentInput.d.ts +34 -18
  55. package/form/elements/inputs/attachments/AudioInput.d.ts +4 -3
  56. package/form/elements/inputs/attachments/DocumentInput.d.ts +2 -6
  57. package/form/elements/inputs/attachments/ImageInput.d.ts +4 -3
  58. package/form/elements/inputs/attachments/Input.d.ts +6 -3
  59. package/form/elements/inputs/attachments/SignatureInput.d.ts +3 -3
  60. package/form/elements/inputs/attachments/VideoInput.d.ts +4 -3
  61. package/form/elements.d.ts +6 -12
  62. package/form/types.d.ts +0 -4
  63. package/kernel.js +1 -1
  64. package/layers/AnnotationFeatureLayer.d.ts +2 -1
  65. package/layers/DimensionFeatureLayer.d.ts +2 -1
  66. package/layers/OrientedImageryLayer.js +1 -1
  67. package/layers/ParquetLayer.js +1 -1
  68. package/layers/graphics/sources/ParquetSource.js +1 -1
  69. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  70. package/layers/graphics/sources/geojson/geojson.js +1 -1
  71. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  72. package/layers/graphics/sources/parquet/PortalParquetLayerFileProvider.js +1 -1
  73. package/layers/graphics/sources/parquet/fileProviderChangedError.js +2 -0
  74. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  75. package/layers/mixins/EditBusLayer.js +1 -1
  76. package/layers/orientedImagery/core/utils.js +1 -1
  77. package/layers/support/RasterBandInfo.js +1 -1
  78. package/layers/types.d.ts +1 -0
  79. package/package.json +2 -2
  80. package/rest/support/AttachmentQuery.d.ts +13 -1
  81. package/rest/support/AttachmentQuery.js +1 -1
  82. package/rest/support/OutDistance.d.ts +5 -1
  83. package/rest/support/PrintParameters.d.ts +2 -1
  84. package/rest/support/Query.d.ts +2 -0
  85. package/support/basemapUtils.js +1 -1
  86. package/support/revision.js +1 -1
  87. package/symbols/SimpleMarkerSymbol.d.ts +2 -2
  88. package/views/2d/engine/AFeatureContainer.js +1 -1
  89. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  90. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  91. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  92. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  93. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  94. package/views/2d/layers/features/FeatureContainer.js +1 -1
  95. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  96. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  97. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  98. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  99. package/views/3d/analysis/LineOfSight/LineOfSightTool2.js +1 -1
  100. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  101. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  102. package/views/3d/interactive/editingTools/reshape/ReshapeTool3D.js +1 -1
  103. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  104. package/views/3d/layers/GaussianSplatLayerViewPerformanceInfo.js +1 -1
  105. package/views/3d/layers/graphics/tessellationUtils.js +1 -1
  106. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  107. package/views/3d/state/utils/navigationUtils.js +1 -1
  108. package/views/3d/support/gaussianSplatting/GaussianSplatAtlasPages.js +1 -1
  109. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  110. package/views/3d/support/gaussianSplatting/GaussianSplatHeaderTexture.js +2 -0
  111. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  112. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +4 -4
  113. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +13 -12
  114. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  115. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  116. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +1 -1
  117. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  118. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  119. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +1 -1
  120. package/views/View2D.d.ts +2 -2
  121. package/views/layers/AnnotationFeatureLayerView.d.ts +9 -1
  122. package/views/layers/DimensionFeatureLayerView.d.ts +9 -1
  123. package/views/layers/FeatureLikeLayerView.js +1 -1
  124. package/widgets/BasemapGallery.js +1 -1
  125. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  126. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  127. package/widgets/BatchAttributeForm/css.js +1 -1
  128. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  129. package/widgets/BatchAttributeForm.js +1 -1
  130. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  131. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  132. package/widgets/Editor/UpdateWorkflow.js +1 -1
  133. package/widgets/Editor/types.d.ts +12 -0
  134. package/widgets/Editor/workflowUtils.js +1 -1
  135. package/widgets/Editor.js +1 -1
  136. package/widgets/FeatureForm/FeatureFormViewModel.d.ts +16 -12
  137. package/widgets/FeatureForm.d.ts +14 -16
  138. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  139. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  140. package/widgets/FeatureTable/Grid/types.d.ts +20 -0
  141. package/widgets/FeatureTable.d.ts +14 -2
  142. package/widgets/FeatureTable.js +1 -1
  143. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  144. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  145. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  146. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  147. package/widgets/OrientedImageryViewer/support/panConstraint.js +1 -1
  148. package/widgets/OrientedImageryViewer.js +1 -1
  149. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  150. package/assets/esri/core/workers/chunks/057d288d795b853295f1.js +0 -2
  151. package/assets/esri/core/workers/chunks/26aa8190ac439f634c5b.js +0 -1
  152. package/assets/esri/core/workers/chunks/3192586ec7fc73ed1165.js +0 -1
  153. package/assets/esri/core/workers/chunks/33866e6e6de1bab64599.js +0 -1
  154. package/assets/esri/core/workers/chunks/360fd810d70d21c092d9.js +0 -1
  155. package/assets/esri/core/workers/chunks/3e89f487c5851c954d8b.js +0 -1
  156. package/assets/esri/core/workers/chunks/5aa375b0c6a205134703.js +0 -1
  157. package/assets/esri/core/workers/chunks/5f0bc019add4aff3130c.js +0 -1
  158. package/assets/esri/core/workers/chunks/630ad47857de3cf726d1.js +0 -1
  159. package/assets/esri/core/workers/chunks/754f7ed62afc4e0a1972.js +0 -2
  160. package/assets/esri/core/workers/chunks/7ee76504e7fea389a1c9.js +0 -1
  161. package/assets/esri/core/workers/chunks/8331e04ebe0a54b04ab6.js +0 -1
  162. package/assets/esri/core/workers/chunks/8c64c6b8d7376a9d1c91.js +0 -1
  163. package/assets/esri/core/workers/chunks/c30ca771dd3f7198142b.js +0 -1
  164. package/assets/esri/core/workers/chunks/e5fcd8e7a4a660ef6ad6.js +0 -1
  165. package/assets/esri/core/workers/chunks/f47319d36f1527277923.js +0 -1
  166. package/assets/esri/core/workers/chunks/ff00ac01f0baaecaa890.js +0 -1
  167. /package/assets/esri/core/workers/chunks/{057d288d795b853295f1.js.LICENSE.txt → 0eb0ce43b4813cae968f.js.LICENSE.txt} +0 -0
  168. /package/assets/esri/core/workers/chunks/{2dbd88566abac030e965.js.LICENSE.txt → 162dada6a199d1efdf86.js.LICENSE.txt} +0 -0
  169. /package/assets/esri/core/workers/chunks/{44b30bce8e9a75b9e1b3.js.LICENSE.txt → a54773c9bbc751619b3f.js.LICENSE.txt} +0 -0
  170. /package/assets/esri/core/workers/chunks/{eccbddaec4be44c86f79.js.LICENSE.txt → b0b3c67b7d37bd854d95.js.LICENSE.txt} +0 -0
  171. /package/assets/esri/core/workers/chunks/{754f7ed62afc4e0a1972.js.LICENSE.txt → ef94d25d1cceb25ea9fe.js.LICENSE.txt} +0 -0
@@ -18,9 +18,12 @@ export interface FeatureFormProperties extends WidgetProperties, Partial<Pick<Fe
18
18
  *
19
19
  * The [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) is used to configure how the form should display and set any associated properties for the form, e.g. title, description, field elements, etc.
20
20
  *
21
+ * * > [!NOTE]
22
+ * >
23
+ * > It is recommended to set the `formTemplate` property on the layer itself so that it can be accessed by other widgets and components that also reference the same layer, such as the [Editor](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/). In addition, it can also be set on the [Editor's `layerInfo`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/#layerInfos/). If a template is set on the `layerInfo`, it will take precedence over a template set directly on the layer.
24
+ *
21
25
  * @since 4.16
22
26
  * @see [Sample - Update Feature Attributes](https://developers.arcgis.com/javascript/latest/sample-code/editing-groupedfeatureform/)
23
- * @see [Sample - Advanced Attribute Editing](https://developers.arcgis.com/javascript/latest/sample-code/editing-featureform-fieldvisibility/)
24
27
  * @example
25
28
  * // Create the Form template and pass in elements
26
29
  * const formTemplate = new FormTemplate({
@@ -32,8 +35,7 @@ export interface FeatureFormProperties extends WidgetProperties, Partial<Pick<Fe
32
35
  * // Add a new feature form with grouped fields
33
36
  * const form = new FeatureForm({
34
37
  * container: "form",
35
- * groupDisplay: "sequential", // only display one group at a time
36
- * formTemplate: formTemplate // set it to template created above
38
+ * groupDisplay: "sequential" // only display one group at a time
37
39
  * });
38
40
  */
39
41
  formTemplate?: FormTemplateProperties | null;
@@ -87,15 +89,12 @@ export interface FeatureFormEvents extends FeatureFormViewModelEvents {}
87
89
  * >
88
90
  * > **Known Limitations**
89
91
  * >
90
- * > This widget is not yet at full parity with the functionality provided in the 3.x
91
- * > [AttributeInspector](https://developers.arcgis.com/javascript/3/jsapi/attributeinspector-amd.html)
92
- * > widget. There is currently no support for editing attachments or related records solely within this widget, although it is possible to edit attachments and relationship data via the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) widget. Please refer to the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) documentation for any known limitations regarding this.
92
+ * > * There is currently no support for editing attachments or related records through [FeatureForm](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature-form/), although it is possible to edit attachments and relationship data via the [Editor](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/).
93
+ * > * Please refer to the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) documentation for any known limitations regarding this.
93
94
  *
94
95
  * @deprecated since version 5.0. Use the [Feature Form](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature-form/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
95
96
  * @since 4.9
96
97
  * @see [Sample - Update Feature Attributes](https://developers.arcgis.com/javascript/latest/sample-code/editing-groupedfeatureform/)
97
- * @see [Sample - Update FeatureLayer using ApplyEdits](https://developers.arcgis.com/javascript/latest/sample-code/editing-applyedits/)
98
- * @see [Sample - Advanced Attribute Editing](https://developers.arcgis.com/javascript/latest/sample-code/editing-featureform-fieldvisibility/)
99
98
  * @see [FeatureFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FeatureFormViewModel/)
100
99
  * @see [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/)
101
100
  * @see [DefaultUI](https://developers.arcgis.com/javascript/latest/references/core/views/ui/DefaultUI/)
@@ -105,8 +104,7 @@ export interface FeatureFormEvents extends FeatureFormViewModelEvents {}
105
104
  * const featureForm = new FeatureForm({
106
105
  * container: "formDiv",
107
106
  * map: map, // Required if using Arcade expressions that use the global $map variable
108
- * feature: graphic,
109
- * formTemplate: template
107
+ * feature: graphic
110
108
  * });
111
109
  */
112
110
  export default class FeatureForm extends Widget {
@@ -122,9 +120,7 @@ export default class FeatureForm extends Widget {
122
120
  * const featureForm = new FeatureForm({
123
121
  * container: "formDiv", // HTML div
124
122
  * map: map, // Required if using Arcade expressions that use the global $map variable
125
- * feature: graphic, // Pass in feature
126
- * // Specify the form's template for how it is configured
127
- * formTemplate: template
123
+ * feature: graphic // Pass in feature
128
124
  * });
129
125
  */
130
126
  constructor(properties?: FeatureFormProperties);
@@ -158,9 +154,12 @@ export default class FeatureForm extends Widget {
158
154
  *
159
155
  * The [FormTemplate](https://developers.arcgis.com/javascript/latest/references/core/form/FormTemplate/) is used to configure how the form should display and set any associated properties for the form, e.g. title, description, field elements, etc.
160
156
  *
157
+ * * > [!NOTE]
158
+ * >
159
+ * > It is recommended to set the `formTemplate` property on the layer itself so that it can be accessed by other widgets and components that also reference the same layer, such as the [Editor](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/). In addition, it can also be set on the [Editor's `layerInfo`](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/#layerInfos/). If a template is set on the `layerInfo`, it will take precedence over a template set directly on the layer.
160
+ *
161
161
  * @since 4.16
162
162
  * @see [Sample - Update Feature Attributes](https://developers.arcgis.com/javascript/latest/sample-code/editing-groupedfeatureform/)
163
- * @see [Sample - Advanced Attribute Editing](https://developers.arcgis.com/javascript/latest/sample-code/editing-featureform-fieldvisibility/)
164
163
  * @example
165
164
  * // Create the Form template and pass in elements
166
165
  * const formTemplate = new FormTemplate({
@@ -172,8 +171,7 @@ export default class FeatureForm extends Widget {
172
171
  * // Add a new feature form with grouped fields
173
172
  * const form = new FeatureForm({
174
173
  * container: "form",
175
- * groupDisplay: "sequential", // only display one group at a time
176
- * formTemplate: formTemplate // set it to template created above
174
+ * groupDisplay: "sequential" // only display one group at a time
177
175
  * });
178
176
  */
179
177
  get formTemplate(): FormTemplate | null | undefined;
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"@vaadin/grid/vaadin-grid.js";import"@vaadin/grid/vaadin-grid-column-group.js";import"@vaadin/grid/vaadin-grid-selection-column.js";import"@vaadin/grid/vaadin-grid-sorter.js";import{isSome as t}from"../../../core/arrayUtils.js";import{on as i}from"../../../core/events.js";import{assertIsSome as r}from"../../../core/maybe.js";import{on as o,sync as n,watch as l}from"../../../core/reactiveUtils.js";import{renderingSanitizer as s}from"../../../core/sanitizerUtils.js";import{property as d,subclass as a}from"../../../core/accessorSupport/decorators.js";import h from"../../Widget.js";import u from"./GridViewModel.js";import{globalCss as g}from"../../support/globalCss.js";import{messageBundle as m,tsx as c}from"../../support/widget.js";const p="esri-grid",v={base:p,content:`${p}__content`,grid:`${p}__grid`,noDataMessage:`${p}__no-data-message`},_={sort:["Enter"," "]};let f=class extends h{constructor(e,t){super(e,t),this._columnElements=[],this._grid=null,this.itemIdPath="objectId",this.messages=null,this.selectionColumnEnabled=!0,this.viewModel=new u,this._onSelectedItemsChange=this._onSelectedItemsChange.bind(this)}initialize(){this.addHandles([this.columns.on("before-changes",()=>this.renderNow()),this.columns.on("change",()=>this.onColumnChange()),o(()=>this.highlightIds,"before-add",({target:e})=>{!this.effectiveMultipleSelectionEnabled&&e.length&&e.removeAll()},n),this.rowHighlightIds.on("change",()=>this.generateCellPartNames()),l(()=>this.effectiveSize,()=>this._updateGridSize()),l(()=>[this.isEditing,this.store?.hasPendingEdits],()=>{this.generateCellPartNames(),this.requestContentUpdate()}),l(()=>this.store?.state,(e,t)=>{"ready"!==e||"loaded"!==t&&"error"!==t||this.refreshPageCache()}),o(()=>this._table,"scroll",()=>this.viewModel.closeColumnMenus()),i(window,"resize",()=>this._updateColumnBorderStyles()),o(()=>this._table,"scrollend",()=>{this.paginationEnabled||(this.pageIndex=this.getVirtualPageIndex()),this._updateColumnBorderStyles()}),l(()=>this.effectiveMultipleSelectionEnabled,e=>{!e&&this.highlightIds.length>1&&this.highlightIds.removeAll()},n)])}destroy(){this.resetColumns(),this.columns.destroyed||this.columns.destroy()}resetColumns(){this.columns.drain(e=>!e.destroyed&&e.destroy())}get _columnRendering(){return this.columnPerformanceModeEnabled?"lazy":"eager"}get _selectedItems(){const{highlightIds:e,store:t}=this;return e.toArray().map(e=>t?.getItemByObjectId(e)??{objectId:e})}get _gridIsDisabled(){return 0===this.viewModel.allVisibleColumns.length||this.hasInvalidColumnConfiguration}get _noDataMessage(){return s.sanitize(this.noDataMessage)}get _table(){return this._grid?.$?.table}get cellPartNameGenerator(){return this.viewModel.cellPartNameGenerator}set cellPartNameGenerator(e){this.viewModel.cellPartNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveMultipleSelectionEnabled(){return this.viewModel.effectiveMultipleSelectionEnabled}get effectiveSize(){return this.viewModel.effectiveSize}get groupColumns(){return this.viewModel.groupColumns}get hasInvalidColumnConfiguration(){return this.viewModel.hasInvalidColumnConfiguration}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get temporaryHighlightId(){return this.viewModel.temporaryHighlightId}set temporaryHighlightId(e){this.viewModel.temporaryHighlightId=e}get isEditing(){return this.viewModel.isEditing}get isReady(){return!!this._grid}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter(e=>!!e&&e.path).map(({direction:e,path:t})=>({direction:e,path:t})):[]}get store(){return this.viewModel.store}get state(){return this.viewModel.state}addSorter(e){this._grid?.__updateSorter(e,!1,!1),this.notifyChange("sortOrders")}getColumnProps(e,t){const{id:i}=this,{autoWidth:r,direction:o,fieldName:n,flexGrow:l,frozen:s,frozenToEnd:d,hidden:a,label:h,resizable:u,textAlign:g,width:m}=e,c=`${i}_${n}_${t}`,{renderFunction:p,footerRenderFunction:v,headerRenderFunction:_}=e,f=v?(e,t)=>v({root:e,column:t}):void 0,y=_?(e,t)=>_({root:e,column:t}):void 0,C=p?(e,t,i)=>p({root:e,column:t,rowData:i}):void 0;let b="";return e.direction&&(b+=" direction"),e.invalid&&(b+=" invalid"),{footerRenderer:f,headerRenderer:y,renderer:C,autoWidth:r,direction:o,flexGrow:l,frozen:s,frozenToEnd:d,headerPartName:b,key:c,resizable:u,bind:this,"data-fieldName":n,header:h,hidden:this.hasInvalidColumnConfiguration||a,path:n,"text-align":g,width:"number"==typeof m?`${m}px`:m,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;if(this._grid){if(this._grid._sorters?.length&&(this._grid._sorters.forEach(e=>{e._order=null,e.direction=null}),e=!0),this.columns.length){this.columns.some(e=>!!e.direction)&&(this.columns.forEach(e=>e.direction=null),e=!0)}e&&(this.notifyChange("sortOrders"),this.scheduleRender())}}findColumn(e){return this.viewModel.findColumn(e)}generateCellPartNames(){this._grid?.generateCellPartNames()}getFirstVisibleRowIndex(){return this._grid?._firstVisibleIndex||0}getVirtualPageIndex(){return Math.floor(this.getFirstVisibleRowIndex()/this.pageSize)}getLastVisibleRowIndex(){return this._grid?._lastVisibleIndex||0}getVisibleItemsCount(){return this._grid?._visibleItemsCount||0}getRowContainingNode(e){try{return this._grid?._getRowContainingNode(e)}catch{return null}}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hasSorter(e){return this._grid?._sorters?.includes(e)||!1}hideColumn(e){this.viewModel.hideColumn(e)}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._clearSelection(),this.store?.reset(),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache(),this.temporaryHighlightId=void 0}requestContentUpdate(){this._grid?.requestContentUpdate(),this.temporaryHighlightId=void 0}selectRows(e){const{itemIdPath:t}=this,i=e?.filter(e=>!this.highlightIds.includes(e[t])),r=i.map(e=>e[t]);r.length&&(this.effectiveMultipleSelectionEnabled||(this.highlightIds.removeAll(),r.splice(1)),this.highlightIds.addMany(r))}deselectRows(e){const{itemIdPath:t}=this,i=e?.map(e=>e[t])||[];i.length&&this.highlightIds.removeMany(i)}showColumn(e){this.viewModel.showColumn(e)}sort({path:e,direction:t}){this.viewModel.sortColumn(e,t),this.notifyChange("sortOrders")}scrollToIndex(e){0!==this.size&&(this._grid?.isConnected&&this._grid?.scrollToIndex(e),this.temporaryHighlightId=void 0)}scrollToTop(){this.scrollToIndex(0)}scrollToBottom(){this.scrollToIndex(1/0)}scrollLeft(e){const{_table:t}=this;t&&(t.scrollLeft=e)}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}onColumnChange(){this._columnElements.forEach(e=>this._applyRenderersToColumnElement(e)),this.requestContentUpdate()}render(){return c("div",{bind:this,class:this.classes(v.base,g.widget)},c("div",{bind:this,class:v.content},this._renderGrid()))}_renderGrid(){return c("vaadin-grid",{afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellPartNameGenerator:this.cellPartNameGenerator,class:v.grid,columnRendering:this._columnRendering,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,disabled:this._gridIsDisabled,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,multiSortPriority:this.multipleSortPriority,pageSize:this.pageSize,ref:"grid",rowDetailsRenderer:this.rowDetailsRenderer,selectedItems:this._selectedItems,size:this.effectiveSize},this._renderAllColumns(),this._renderEmptyState())}_renderAllColumns(){return"disabled"!==this.state&&this.columns.length?[this._renderSelectionColumn(),this._renderColumns()]:null}_renderSelectionColumn(){return c("vaadin-grid-selection-column",{_selectAllHidden:!0,autoWidth:!1,bind:this,dragSelect:!0,frozen:!0,hidden:this.hasInvalidColumnConfiguration||!this.selectionColumnEnabled,selectAll:!1,sortable:!1,textAlign:"center"})}_renderColumns(){return this.columns.toArray().map((e,t)=>"columns"in e?this._renderGroupColumn(e,t):this._renderColumn(e,t)).filter(t)}_renderColumn(e,t){const i=this.getColumnProps(e,t);if(!i.hidden)return c("vaadin-grid-column",{...i})}_renderGroupColumn(e,t){const i=this.getColumnProps(e,t);return i.hidden||!e.effectiveVisible?null:c("vaadin-grid-column-group",{...i},e.visibleChildColumns.map(e=>c("vaadin-grid-column",{...this.getColumnProps(e,t)})))}_renderEmptyState(){const e=this.viewModel;if("loaded"===e.state&&!e.isQueryingOrSyncing)return c("div",{class:v.noDataMessage,slot:"empty-state"},this._noDataMessage??this.messages.noDataFound)}_afterGridCreate(e){const t=this._grid=e;customElements.whenDefined("vaadin-grid").then(()=>{this._addGridEventListeners()}),t.__updateSorter=(e,i,r)=>{const o=t._sorters,n=!o.includes(e),{multiSort:l,multiSortOnShiftClick:s,multiSortPriority:d}=t,a=o.filter(t=>t!==e),h=l&&(!s||!r)||s&&i;e._order=null,e.direction?h?null!=e._initialOrder?(n?o[e._initialOrder]=e:o.splice(e._initialOrder,0,e),e._initialOrder=null):"append"===d&&n?t._sorters=[...a,e]:"prepend"===d&&(t._sorters=[e,...a]):(e.direction||s)&&(t._sorters=e.direction?[e]:[],a.forEach(e=>{e._order=null,e.direction=null})):n||(t._sorters=[...a])},t.__removeSorters=e=>{if(0===e.length)return;const i=new Set(e.filter(e=>!e.direction));t._sorters=t._sorters.filter(e=>!i.has(e)),t.__applySorters()}}_afterGridUpdate(e){this._grid||(this._grid=e)}_afterColumnCreate(e){this._columnElements.push(e)}_afterColumnRemoved(e){const t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_updateGridSize(){this._grid&&(this._grid.size=this.effectiveSize,this.scheduleRender())}_addGridEventListeners(){const e=this._grid;r(e),this.addHandles([i(e,["click","dblclick","keydown","pointerover","pointerout"],e=>this._onGridInteraction(e)),i(e,["pointerover","pointerout","cell-focus"],e=>this._onTransientGridInteraction(e)),i(e,"selected-items-changed",this._onSelectedItemsChange),i(e,"sorter-changed",()=>{this.notifyChange("sortOrders"),this._updateColumnBorderStyles()}),i(e,"column-resize",e=>{const t=e.detail.resizedColumn,i=t.getAttribute("data-fieldName"),r=this.findColumn(i);r?.set({width:t.width}),this._updateColumnBorderStyles()}),i(e,"column-reorder",()=>this._onColumnOrderChange())])}_onGridInteraction(e){const t=this._grid;if(r(t),("pointerover"===e.type||"pointerout"===e.type)&&e.relatedTarget!==t){const{target:t,relatedTarget:i}=e;if(!this._isGridCellContentNode(t)||!this._isGridCellContentNode(i))return}let i=null;try{i=t.getEventContext(e)}catch(a){}if(!i)return;const{column:o,index:n,item:l,section:s}=i;if(!s)return;if("header"===s&&"keydown"===e.type&&o?.path){const t=e.key;_.sort.includes(t)&&this.findColumn(o.path)?.sort()}const d=`cell-${e.type}`;this.emit(d,{type:d,context:i,index:n,item:l,native:e,path:o?.path??void 0})}_onTransientGridInteraction(e){if("pointerout"===e.type)return void(this.temporaryHighlightId=void 0);const t=this._grid;if(t)try{this.temporaryHighlightId=t.getEventContext(e)?.item?.objectId??void 0}catch{this.temporaryHighlightId=void 0}}_isGridCellContentNode(e){return!!(e&&e instanceof HTMLElement&&"vaadin-grid-cell-content"===e.localName)}_onColumnOrderChange(){const e=this._grid;r(e);const t=e._getColumnsInOrder(0),i=[],o=(this.viewModel.groupColumns.length?e._getColumnsInOrder(1):t).map(e=>e.getAttribute("data-fieldName"));t?.forEach(e=>{const t=e.getAttribute("data-fieldName");if(null!=t){const e=this.findColumn(t);i.push(t),e&&"columns"in e&&e.columns?.length&&e.columns.sort((e,t)=>o.indexOf(e.fieldName)>o.indexOf(t.fieldName)?1:-1)}}),this.columns.sort((e,t)=>i.indexOf(e.fieldName)>i.indexOf(t.fieldName)?1:-1),this.notifyChange("sortOrders"),this.emit("column-reorder",{type:"column-reorder"})}_clearSelection(){this.highlightIds.removeAll(),this.temporaryHighlightId=void 0}_onSelectedItemsChange(e){const{highlightIds:t,itemIdPath:i}=this,r=e.detail.value.map(e=>e[i]),o=r.filter(e=>!t.includes(e));if(!this.effectiveMultipleSelectionEnabled&&o.length&&t.length)t.removeAll(),t.add(o[0]);else{const e=t.filter(e=>!r.includes(e));t.removeMany(e),t.addMany(o)}}_applyRenderersToColumnElement(e){const t=e?.path,i=null!=t?this.findColumn(t):void 0;if(i)try{const{renderFunction:t,footerRenderFunction:r,headerRenderFunction:o}=i;t&&"renderer"in e&&(e.renderer=(e,i,r)=>t({root:e,column:i,rowData:r})),r&&(e.footerRenderer=(e,t)=>r({root:e,column:t})),o&&(e.headerRenderer=(e,t)=>o({root:e,column:t}))}catch(r){}}_updateColumnBorderStyles(){try{this._grid?._updateFirstAndLastColumn()}catch(e){}}};e([d()],f.prototype,"_columnElements",void 0),e([d()],f.prototype,"_columnRendering",null),e([d()],f.prototype,"_selectedItems",null),e([d()],f.prototype,"_grid",void 0),e([d()],f.prototype,"_gridIsDisabled",null),e([d()],f.prototype,"_noDataMessage",null),e([d()],f.prototype,"_table",null),e([d()],f.prototype,"cellPartNameGenerator",null),e([d()],f.prototype,"columns",null),e([d()],f.prototype,"columnPerformanceModeEnabled",null),e([d()],f.prototype,"columnReorderingEnabled",null),e([d()],f.prototype,"dataProvider",null),e([d()],f.prototype,"editingEnabled",null),e([d()],f.prototype,"effectiveMultipleSelectionEnabled",null),e([d()],f.prototype,"effectiveSize",null),e([d()],f.prototype,"groupColumns",null),e([d()],f.prototype,"hasInvalidColumnConfiguration",null),e([d()],f.prototype,"highlightIds",null),e([d()],f.prototype,"temporaryHighlightId",null),e([d()],f.prototype,"isEditing",null),e([d()],f.prototype,"isReady",null),e([d()],f.prototype,"itemIdPath",void 0),e([d()],f.prototype,"label",null),e([d(),m("esri/widgets/FeatureTable/t9n/FeatureTable")],f.prototype,"messages",void 0),e([d()],f.prototype,"multipleSelectionEnabled",null),e([d()],f.prototype,"multipleSelectionEnabledOverride",null),e([d()],f.prototype,"multiSortEnabled",null),e([d()],f.prototype,"noDataMessage",null),e([d()],f.prototype,"pageIndex",null),e([d()],f.prototype,"multipleSortPriority",null),e([d()],f.prototype,"pageSize",null),e([d()],f.prototype,"paginationEnabled",null),e([d()],f.prototype,"rowDetailsRenderer",null),e([d()],f.prototype,"rowHighlightIds",null),e([d()],f.prototype,"selectionColumnEnabled",void 0),e([d()],f.prototype,"size",null),e([d({readOnly:!0})],f.prototype,"sortOrders",null),e([d()],f.prototype,"store",null),e([d()],f.prototype,"state",null),e([d()],f.prototype,"viewModel",void 0),f=e([a("esri.widgets.FeatureTable.Grid.Grid")],f);const y=f;export{y as default};
2
+ import{__decorate as e}from"tslib";import"@vaadin/grid/vaadin-grid.js";import"@vaadin/grid/vaadin-grid-column-group.js";import"@vaadin/grid/vaadin-grid-selection-column.js";import"@vaadin/grid/vaadin-grid-sorter.js";import{isSome as t}from"../../../core/arrayUtils.js";import{on as i}from"../../../core/events.js";import{assertIsSome as r}from"../../../core/maybe.js";import{on as o,sync as n,watch as l}from"../../../core/reactiveUtils.js";import{renderingSanitizer as s}from"../../../core/sanitizerUtils.js";import{property as d,subclass as a}from"../../../core/accessorSupport/decorators.js";import h from"../../Widget.js";import u from"./GridViewModel.js";import{globalCss as g}from"../../support/globalCss.js";import{messageBundle as c,tsx as m}from"../../support/widget.js";const p="esri-grid",v={base:p,content:`${p}__content`,grid:`${p}__grid`,noDataMessage:`${p}__no-data-message`},_={sort:["Enter"," "]};let f=class extends h{constructor(e,t){super(e,t),this._columnElements=[],this._grid=null,this.itemIdPath="objectId",this.messages=null,this.selectionColumnEnabled=!0,this.viewModel=new u,this._onSelectedItemsChange=this._onSelectedItemsChange.bind(this)}initialize(){this.addHandles([this.columns.on("before-changes",()=>this.renderNow()),this.columns.on("change",()=>this.onColumnChange()),o(()=>this.highlightIds,"before-add",({target:e})=>{!this.effectiveMultipleSelectionEnabled&&e.length&&e.removeAll()},n),this.rowHighlightIds.on("change",()=>this.generateCellPartNames()),l(()=>this.effectiveSize,()=>this._updateGridSize()),l(()=>[this.isEditing,this.store?.hasPendingEdits],()=>{this.generateCellPartNames(),this.requestContentUpdate()}),l(()=>this.store?.state,(e,t)=>{"ready"!==e||"loaded"!==t&&"error"!==t||this.refreshPageCache()}),o(()=>this._table,"scroll",()=>this.viewModel.closeColumnMenus()),i(window,"resize",()=>this._updateColumnBorderStyles()),o(()=>this._table,"scrollend",()=>{this.paginationEnabled||(this.pageIndex=this.getVirtualPageIndex()),this._updateColumnBorderStyles()}),l(()=>this.effectiveMultipleSelectionEnabled,e=>{!e&&this.highlightIds.length>1&&this.highlightIds.removeAll()},n)])}destroy(){this.resetColumns(),this.columns.destroyed||this.columns.destroy()}resetColumns(){this.columns.drain(e=>!e.destroyed&&e.destroy())}get _columnRendering(){return this.columnPerformanceModeEnabled?"lazy":"eager"}get _selectedItems(){const{highlightIds:e,store:t}=this;return e.toArray().map(e=>t?.getItemByObjectId(e)??{objectId:e})}get _gridIsDisabled(){return 0===this.viewModel.allVisibleColumns.length||this.hasInvalidColumnConfiguration}get _noDataMessage(){return s.sanitize(this.noDataMessage)}get _table(){return this._grid?.$?.table}get cellPartNameGenerator(){return this.viewModel.cellPartNameGenerator}set cellPartNameGenerator(e){this.viewModel.cellPartNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveMultipleSelectionEnabled(){return this.viewModel.effectiveMultipleSelectionEnabled}get effectiveSize(){return this.viewModel.effectiveSize}get groupColumns(){return this.viewModel.groupColumns}get hasInvalidColumnConfiguration(){return this.viewModel.hasInvalidColumnConfiguration}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get temporaryHighlightId(){return this.viewModel.temporaryHighlightId}set temporaryHighlightId(e){this.viewModel.temporaryHighlightId=e}get isEditing(){return this.viewModel.isEditing}get isReady(){return!!this._grid}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter(e=>!!e&&e.path).map(({direction:e,path:t})=>({direction:e,path:t})):[]}get store(){return this.viewModel.store}get state(){return this.viewModel.state}addSorter(e){this._grid?.__updateSorter(e,!1,!1),this.notifyChange("sortOrders")}getColumnProps(e,t){const{id:i}=this,{autoWidth:r,direction:o,fieldName:n,flexGrow:l,frozen:s,frozenToEnd:d,hidden:a,label:h,resizable:u,textAlign:g,width:c}=e,m=`${i}_${n}_${t}`,{renderFunction:p,footerRenderFunction:v,headerRenderFunction:_}=e,f=v?(e,t)=>v({root:e,column:t}):void 0,y=_?(e,t)=>_({root:e,column:t}):void 0,C=p?(e,t,i)=>p({root:e,column:t,rowData:i}):void 0;let b="";return e.direction&&(b+=" direction"),e.invalid&&(b+=" invalid"),{footerRenderer:f,headerRenderer:y,renderer:C,autoWidth:r,direction:o,flexGrow:l,frozen:s,frozenToEnd:d,headerPartName:b,key:m,resizable:u,bind:this,"data-fieldName":n,header:h,hidden:this.hasInvalidColumnConfiguration||a,path:n,"text-align":g,width:"number"==typeof c?`${c}px`:c,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;if(this._grid){if(this._grid._sorters?.length&&(this._grid._sorters.forEach(e=>{e._order=null,e.direction=null}),e=!0),this.columns.length){this.columns.some(e=>!!e.direction)&&(this.columns.forEach(e=>e.direction=null),e=!0)}e&&(this.notifyChange("sortOrders"),this.scheduleRender())}}findColumn(e){return this.viewModel.findColumn(e)}generateCellPartNames(){this._grid?.generateCellPartNames()}getFirstVisibleRowIndex(){return this._grid?._firstVisibleIndex||0}getVirtualPageIndex(){return Math.floor(this.getFirstVisibleRowIndex()/this.pageSize)}getLastVisibleRowIndex(){return this._grid?._lastVisibleIndex||0}getVisibleItemsCount(){return this._grid?._visibleItemsCount||0}getRowContainingNode(e){try{return this._grid?._getRowContainingNode(e)}catch{return null}}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hasSorter(e){return this._grid?._sorters?.includes(e)||!1}hideColumn(e){this.viewModel.hideColumn(e)}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._clearSelection(),this.store?.reset(),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache(),this.temporaryHighlightId=void 0}requestContentUpdate(){this._grid?.requestContentUpdate(),this.temporaryHighlightId=void 0}selectRows(e){const{itemIdPath:t}=this,i=e?.filter(e=>!this.highlightIds.includes(e[t])),r=i.map(e=>e[t]);r.length&&(this.effectiveMultipleSelectionEnabled||(this.highlightIds.removeAll(),r.splice(1)),this.highlightIds.addMany(r))}deselectRows(e){const{itemIdPath:t}=this,i=e?.map(e=>e[t])||[];i.length&&this.highlightIds.removeMany(i)}showColumn(e){this.viewModel.showColumn(e)}sort({path:e,direction:t}){this.viewModel.sortColumn(e,t),this.notifyChange("sortOrders")}scrollToIndex(e){0!==this.size&&(this._grid?.isConnected&&this._grid?.scrollToIndex(e),this.temporaryHighlightId=void 0)}scrollToTop(){this.scrollToIndex(0)}scrollToBottom(){this.scrollToIndex(1/0)}scrollLeft(e){const{_table:t}=this;t&&(t.scrollLeft=e)}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}onColumnChange(){this._columnElements.forEach(e=>this._applyRenderersToColumnElement(e)),this.requestContentUpdate()}render(){return m("div",{bind:this,class:this.classes(v.base,g.widget)},m("div",{bind:this,class:v.content},this._renderGrid()))}_renderGrid(){return m("vaadin-grid",{afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellPartNameGenerator:this.cellPartNameGenerator,class:v.grid,columnRendering:this._columnRendering,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,dir:this.direction,disabled:this._gridIsDisabled,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,multiSortPriority:this.multipleSortPriority,pageSize:this.pageSize,ref:"grid",rowDetailsRenderer:this.rowDetailsRenderer,selectedItems:this._selectedItems,size:this.effectiveSize},this._renderAllColumns(),this._renderEmptyState())}_renderAllColumns(){return"disabled"!==this.state&&this.columns.length?[this._renderSelectionColumn(),this._renderColumns()]:null}_renderSelectionColumn(){return m("vaadin-grid-selection-column",{_selectAllHidden:!0,autoWidth:!1,bind:this,dragSelect:!0,frozen:!0,hidden:this.hasInvalidColumnConfiguration||!this.selectionColumnEnabled,selectAll:!1,sortable:!1,textAlign:"center"})}_renderColumns(){return this.columns.toArray().map((e,t)=>"columns"in e?this._renderGroupColumn(e,t):this._renderColumn(e,t)).filter(t)}_renderColumn(e,t){const i=this.getColumnProps(e,t);if(!i.hidden)return m("vaadin-grid-column",{...i})}_renderGroupColumn(e,t){const i=this.getColumnProps(e,t);return i.hidden||!e.effectiveVisible?null:m("vaadin-grid-column-group",{...i},e.visibleChildColumns.map(e=>m("vaadin-grid-column",{...this.getColumnProps(e,t)})))}_renderEmptyState(){const e=this.viewModel;if("loaded"===e.state&&!e.isQueryingOrSyncing)return m("div",{class:v.noDataMessage,slot:"empty-state"},this._noDataMessage??this.messages.noDataFound)}_afterGridCreate(e){const t=this._grid=e;customElements.whenDefined("vaadin-grid").then(()=>{this._addGridEventListeners()}),t.__updateSorter=(e,i,r)=>{const o=t._sorters,n=!o.includes(e),{multiSort:l,multiSortOnShiftClick:s,multiSortPriority:d}=t,a=o.filter(t=>t!==e),h=l&&(!s||!r)||s&&i;e._order=null,e.direction?h?null!=e._initialOrder?(n?o[e._initialOrder]=e:o.splice(e._initialOrder,0,e),e._initialOrder=null):"append"===d&&n?t._sorters=[...a,e]:"prepend"===d&&(t._sorters=[e,...a]):(e.direction||s)&&(t._sorters=e.direction?[e]:[],a.forEach(e=>{e._order=null,e.direction=null})):n||(t._sorters=[...a])},t.__removeSorters=e=>{if(0===e.length)return;const i=new Set(e.filter(e=>!e.direction));t._sorters=t._sorters.filter(e=>!i.has(e)),t.__applySorters()}}_afterGridUpdate(e){this._grid||(this._grid=e)}_afterColumnCreate(e){this._columnElements.push(e)}_afterColumnRemoved(e){const t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_updateGridSize(){this._grid&&(this._grid.size=this.effectiveSize,this.scheduleRender())}_addGridEventListeners(){const e=this._grid;r(e),this.addHandles([i(e,["click","dblclick","keydown","pointerover","pointerout"],e=>this._onGridInteraction(e)),i(e,["pointerover","pointerout","cell-focus"],e=>this._onTransientGridInteraction(e)),i(e,"selected-items-changed",this._onSelectedItemsChange),i(e,"sorter-changed",()=>{this.notifyChange("sortOrders"),this._updateColumnBorderStyles()}),i(e,"column-resize",e=>{const t=e.detail.resizedColumn,i=t.getAttribute("data-fieldName"),r=this.findColumn(i);r?.set({width:t.width}),this._updateColumnBorderStyles()}),i(e,"column-reorder",()=>this._onColumnOrderChange())])}_onGridInteraction(e){const t=this._grid;if(r(t),("pointerover"===e.type||"pointerout"===e.type)&&e.relatedTarget!==t){const{target:t,relatedTarget:i}=e;if(!this._isGridCellContentNode(t)||!this._isGridCellContentNode(i))return}let i=null;try{i=t.getEventContext(e)}catch(a){}if(!i)return;const{column:o,index:n,item:l,section:s}=i;if(!s)return;if("header"===s&&"keydown"===e.type&&o?.path){const t=e.key;_.sort.includes(t)&&this.findColumn(o.path)?.sort()}const d=`cell-${e.type}`;this.emit(d,{type:d,context:i,index:n,item:l,native:e,path:o?.path??void 0})}_onTransientGridInteraction(e){if("pointerout"===e.type)return void(this.temporaryHighlightId=void 0);const t=this._grid;if(t)try{this.temporaryHighlightId=t.getEventContext(e)?.item?.objectId??void 0}catch{this.temporaryHighlightId=void 0}}_isGridCellContentNode(e){return!!(e&&e instanceof HTMLElement&&"vaadin-grid-cell-content"===e.localName)}_onColumnOrderChange(){const e=this._grid;r(e);const t=e._getColumnsInOrder(0),i=[],o=(this.viewModel.groupColumns.length?e._getColumnsInOrder(1):t).map(e=>e.getAttribute("data-fieldName"));t?.forEach(e=>{const t=e.getAttribute("data-fieldName");if(null!=t){const e=this.findColumn(t);i.push(t),e&&"columns"in e&&e.columns?.length&&e.columns.sort((e,t)=>o.indexOf(e.fieldName)>o.indexOf(t.fieldName)?1:-1)}}),this.columns.sort((e,t)=>i.indexOf(e.fieldName)>i.indexOf(t.fieldName)?1:-1),this.notifyChange("sortOrders"),this.emit("column-reorder",{type:"column-reorder"})}_clearSelection(){this.highlightIds.removeAll(),this.temporaryHighlightId=void 0}_onSelectedItemsChange(e){const{highlightIds:t,itemIdPath:i}=this,r=e.detail.value.map(e=>e[i]),o=r.filter(e=>!t.includes(e));if(!this.effectiveMultipleSelectionEnabled&&o.length&&t.length)t.removeAll(),t.add(o[0]);else{const e=t.filter(e=>!r.includes(e));t.removeMany(e),t.addMany(o)}}_applyRenderersToColumnElement(e){const t=e?.path,i=null!=t?this.findColumn(t):void 0;if(i)try{const{renderFunction:t,footerRenderFunction:r,headerRenderFunction:o}=i;t&&"renderer"in e&&(e.renderer=(e,i,r)=>t({root:e,column:i,rowData:r})),r&&(e.footerRenderer=(e,t)=>r({root:e,column:t})),o&&(e.headerRenderer=(e,t)=>o({root:e,column:t}))}catch(r){}}_updateColumnBorderStyles(){try{this._grid?._updateFirstAndLastColumn()}catch(e){}}};e([d()],f.prototype,"_columnElements",void 0),e([d()],f.prototype,"_columnRendering",null),e([d()],f.prototype,"_selectedItems",null),e([d()],f.prototype,"_grid",void 0),e([d()],f.prototype,"_gridIsDisabled",null),e([d()],f.prototype,"_noDataMessage",null),e([d()],f.prototype,"_table",null),e([d()],f.prototype,"cellPartNameGenerator",null),e([d()],f.prototype,"columns",null),e([d()],f.prototype,"columnPerformanceModeEnabled",null),e([d()],f.prototype,"columnReorderingEnabled",null),e([d()],f.prototype,"dataProvider",null),e([d()],f.prototype,"direction",null),e([d()],f.prototype,"editingEnabled",null),e([d()],f.prototype,"effectiveMultipleSelectionEnabled",null),e([d()],f.prototype,"effectiveSize",null),e([d()],f.prototype,"groupColumns",null),e([d()],f.prototype,"hasInvalidColumnConfiguration",null),e([d()],f.prototype,"highlightIds",null),e([d()],f.prototype,"temporaryHighlightId",null),e([d()],f.prototype,"isEditing",null),e([d()],f.prototype,"isReady",null),e([d()],f.prototype,"itemIdPath",void 0),e([d()],f.prototype,"label",null),e([d(),c("esri/widgets/FeatureTable/t9n/FeatureTable")],f.prototype,"messages",void 0),e([d()],f.prototype,"multipleSelectionEnabled",null),e([d()],f.prototype,"multipleSelectionEnabledOverride",null),e([d()],f.prototype,"multiSortEnabled",null),e([d()],f.prototype,"noDataMessage",null),e([d()],f.prototype,"pageIndex",null),e([d()],f.prototype,"multipleSortPriority",null),e([d()],f.prototype,"pageSize",null),e([d()],f.prototype,"paginationEnabled",null),e([d()],f.prototype,"rowDetailsRenderer",null),e([d()],f.prototype,"rowHighlightIds",null),e([d()],f.prototype,"selectionColumnEnabled",void 0),e([d()],f.prototype,"size",null),e([d({readOnly:!0})],f.prototype,"sortOrders",null),e([d()],f.prototype,"store",null),e([d()],f.prototype,"state",null),e([d()],f.prototype,"viewModel",void 0),f=e([a("esri.widgets.FeatureTable.Grid.Grid")],f);const y=f;export{y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Collection.js";import{referenceSetter as i}from"../../../core/collectionUtils.js";import{EventedAccessor as n}from"../../../core/Evented.js";import{property as l,subclass as o}from"../../../core/accessorSupport/decorators.js";import{isGroupColumn as r}from"../support/columnUtils.js";import{uniqueColumnNames as s}from"../support/tableUtils.js";let d=class extends n{constructor(e){super(e),this.actionColumnConfig=null,this.cellPartNameGenerator=(e,t)=>{const i=t.item.objectId;let n="";t?.item&&this.rowHighlightIds.includes(i)&&(n+=" highlight");const l=this.findColumn(e?.path);if(!l)return n;if(l.invalid&&(n+=" invalid"),l.textWrap&&(n+=" text-wrap"),"editInfo"in l&&l.editInfo&&l.editInfo.rowData?.index===t.index&&(n+=" editing"),l.tableHasPendingEdits&&(l.itemHasPendingEdits(i,l.fieldName)&&(n+=" pending-edit"),l.tableHasInvalidPendingEdits)){const e=l.itemHasInvalidPendingEdits(i);l.itemHasInvalidPendingEdits(i,l.fieldName)?n+=" pending-edit-invalid":e||(n+=" pending-edit-other")}return n},this.columnPerformanceModeEnabled=!0,this.columnReorderingEnabled=!0,this.columns=new t,this.dataProvider=async(e,t)=>{const{store:i}=this;if(!t)return;t(await i.fetchItems(e))},this.multipleSelectionEnabled=!0,this.multipleSelectionEnabledOverride=null,this.multiSortEnabled=!1,this.multipleSortPriority="prepend",this.noDataMessage=null,this.rowDetailsRenderer=null,this.store=null}get actionColumn(){return this.allColumns.find(e=>e.fieldName===s.action)}get allColumns(){return this.columns.toArray().flatMap(e=>[e,...r(e)&&e.columns?.length?e.columns:[]])}get allColumnsVisible(){return this.allColumns.length===this.allVisibleColumns.length}get allVisibleColumns(){return this.allColumns.filter(e=>e.effectiveVisible)}get columnMenuIsOpen(){return this.allColumns.some(e=>e.menuIsOpen)}get editingEnabled(){return this.store.editingEnabled}set editingEnabled(e){this.store.editingEnabled=e}get editableColumns(){return this.allColumns.filter(e=>"editable"in e)}get effectiveSize(){const{filterBySelectionEnabled:e,highlightIds:t,objectIds:i,pageSize:n,size:l}=this;if(0===l)return 0;if(this.paginationEnabled){const o=this.pageCount===this.pageIndex+1&&l%n||n;return e?Math.min(t.length,o):i.length?Math.min(i.length,o):o}return e?t.length:i.length?i.length:l}get filterBySelectionEnabled(){return!!this._get("filterBySelectionEnabled")}set filterBySelectionEnabled(e){this._set("filterBySelectionEnabled",e)}get groupColumns(){return this.columns.toArray().filter(e=>r(e))}get hasInvalidColumnConfiguration(){return this.visibleColumns.every(e=>e.frozen||e.frozenToEnd)}get highlightIds(){return this._get("highlightIds")||new t}set highlightIds(e){let n=Array.isArray(e)?new t(e):e;this.effectiveMultipleSelectionEnabled||(n=n.slice(0,1)),this._set("highlightIds",i(n,this._get("highlightIds"),t))}get isEditing(){return this.editableColumns.some(e=>e.editInfo)}get isQuerying(){return this.store.isQuerying}get isQueryingOrSyncing(){return this.isQuerying||this.isSyncing}get isSyncing(){return this.store.isSyncing}get maxSize(){return this.store.maxSize}set maxSize(e){this.store.maxSize=e}get effectiveMultipleSelectionEnabled(){return!1!==this.multipleSelectionEnabledOverride&&this.multipleSelectionEnabled}get objectIds(){return this._get("objectIds")??new t}set objectIds(e){this._set("objectIds",i(e,this._get("objectIds"),t))}get pageCount(){return this.store.pageCount}get pageIndex(){return this.store.pageIndex}set pageIndex(e){this.store.pageIndex=e}get pageSize(){return this.store.pageSize}set pageSize(e){this.store.pageSize=e}get paginationEnabled(){return this.store.paginationEnabled}set paginationEnabled(e){this.store.paginationEnabled=e}get rowHighlightIds(){return this._get("rowHighlightIds")||new t}set rowHighlightIds(e){this._set("rowHighlightIds",i(e,this._get("rowHighlightIds"),t))}get size(){return this.store.effectiveSize}get state(){return this.store.state}get temporaryHighlightId(){return this.store.temporaryHighlightId}set temporaryHighlightId(e){this.store.temporaryHighlightId=e}get visibleColumns(){return this.columns.toArray().filter(e=>e.effectiveVisible)}clearSelection(){this.highlightIds.removeAll()}closeColumnMenus(){this.allColumns.forEach(e=>e.closeMenu())}findColumn(e){return this.allColumns.find(t=>t.fieldName===e)}hideAllColumns(){this.allColumns.forEach(e=>e.hidden||=!0)}hideColumn(e){const t=this.findColumn(e);!1===t?.hidden&&(t.hidden=!0)}async refresh(){await this.store.refresh(),await this.store.load()}showAllColumns(){this.allColumns.forEach(e=>{e.hidden&&(e.hidden=!1)})}showColumn(e){const t=this.findColumn(e);t?.hidden&&(t.hidden=!1)}sortColumn(e,t){if(!e)return;const i=this.findColumn(e);i&&(i.direction=t)}toggleColumnVisibility(e){const t=this.findColumn(e);t&&(t.hidden=!t.hidden)}};e([l()],d.prototype,"actionColumn",null),e([l()],d.prototype,"actionColumnConfig",void 0),e([l()],d.prototype,"allColumns",null),e([l()],d.prototype,"allColumnsVisible",null),e([l()],d.prototype,"allVisibleColumns",null),e([l()],d.prototype,"cellPartNameGenerator",void 0),e([l()],d.prototype,"columnMenuIsOpen",null),e([l()],d.prototype,"columnPerformanceModeEnabled",void 0),e([l()],d.prototype,"columnReorderingEnabled",void 0),e([l()],d.prototype,"columns",void 0),e([l()],d.prototype,"dataProvider",void 0),e([l()],d.prototype,"editingEnabled",null),e([l()],d.prototype,"editableColumns",null),e([l()],d.prototype,"effectiveSize",null),e([l()],d.prototype,"filterBySelectionEnabled",null),e([l()],d.prototype,"groupColumns",null),e([l()],d.prototype,"hasInvalidColumnConfiguration",null),e([l()],d.prototype,"highlightIds",null),e([l()],d.prototype,"isEditing",null),e([l()],d.prototype,"isQuerying",null),e([l()],d.prototype,"isQueryingOrSyncing",null),e([l()],d.prototype,"isSyncing",null),e([l()],d.prototype,"maxSize",null),e([l()],d.prototype,"multipleSelectionEnabled",void 0),e([l()],d.prototype,"multipleSelectionEnabledOverride",void 0),e([l()],d.prototype,"effectiveMultipleSelectionEnabled",null),e([l()],d.prototype,"multiSortEnabled",void 0),e([l()],d.prototype,"multipleSortPriority",void 0),e([l()],d.prototype,"noDataMessage",void 0),e([l()],d.prototype,"objectIds",null),e([l()],d.prototype,"pageCount",null),e([l()],d.prototype,"pageIndex",null),e([l()],d.prototype,"pageSize",null),e([l()],d.prototype,"paginationEnabled",null),e([l()],d.prototype,"rowHighlightIds",null),e([l()],d.prototype,"rowDetailsRenderer",void 0),e([l()],d.prototype,"size",null),e([l()],d.prototype,"store",void 0),e([l({readOnly:!0})],d.prototype,"state",null),e([l()],d.prototype,"temporaryHighlightId",null),e([l()],d.prototype,"visibleColumns",null),d=e([o("esri.widgets.FeatureTable.Grid.GridViewModel")],d);const a=d;export{a as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Collection.js";import{referenceSetter as i}from"../../../core/collectionUtils.js";import{EventedAccessor as n}from"../../../core/Evented.js";import{property as l,subclass as o}from"../../../core/accessorSupport/decorators.js";import{isGroupColumn as r}from"../support/columnUtils.js";import{uniqueColumnNames as s}from"../support/tableUtils.js";let d=class extends n{constructor(e){super(e),this.actionColumnConfig=null,this.cellPartNameGenerator=(e,t)=>{const i=t.item.objectId;let n="";t?.item&&this.rowHighlightIds.includes(i)&&(n+=" highlight");const l=this.findColumn(e?.path);if(!l)return n;if(l.invalid&&(n+=" invalid"),l.textWrap&&(n+=" text-wrap"),"editInfo"in l&&l.editInfo&&l.editInfo.rowData?.index===t.index&&(n+=" editing"),l.tableHasPendingEdits&&(l.itemHasPendingEdits(i,l.fieldName)&&(n+=" pending-edit"),l.tableHasInvalidPendingEdits)){const e=l.itemHasInvalidPendingEdits(i);l.itemHasInvalidPendingEdits(i,l.fieldName)?n+=" pending-edit-invalid":e||(n+=" pending-edit-other")}return n},this.columnPerformanceModeEnabled=!0,this.columnReorderingEnabled=!0,this.columns=new t,this.dataProvider=async(e,t)=>{const{store:i}=this;if(!t)return;t(await i.fetchItems(e))},this.direction=void 0,this.multipleSelectionEnabled=!0,this.multipleSelectionEnabledOverride=null,this.multiSortEnabled=!1,this.multipleSortPriority="prepend",this.noDataMessage=null,this.rowDetailsRenderer=null,this.store=null}get actionColumn(){return this.allColumns.find(e=>e.fieldName===s.action)}get allColumns(){return this.columns.toArray().flatMap(e=>[e,...r(e)&&e.columns?.length?e.columns:[]])}get allColumnsVisible(){return this.allColumns.length===this.allVisibleColumns.length}get allVisibleColumns(){return this.allColumns.filter(e=>e.effectiveVisible)}get columnMenuIsOpen(){return this.allColumns.some(e=>e.menuIsOpen)}get editingEnabled(){return this.store.editingEnabled}set editingEnabled(e){this.store.editingEnabled=e}get editableColumns(){return this.allColumns.filter(e=>"editable"in e)}get effectiveSize(){const{filterBySelectionEnabled:e,highlightIds:t,objectIds:i,pageSize:n,size:l}=this;if(0===l)return 0;if(this.paginationEnabled){const o=this.pageCount===this.pageIndex+1&&l%n||n;return e?Math.min(t.length,o):i.length?Math.min(i.length,o):o}return e?t.length:i.length?i.length:l}get filterBySelectionEnabled(){return!!this._get("filterBySelectionEnabled")}set filterBySelectionEnabled(e){this._set("filterBySelectionEnabled",e)}get groupColumns(){return this.columns.toArray().filter(e=>r(e))}get hasInvalidColumnConfiguration(){return this.visibleColumns.every(e=>e.frozen||e.frozenToEnd)}get highlightIds(){return this._get("highlightIds")||new t}set highlightIds(e){let n=Array.isArray(e)?new t(e):e;this.effectiveMultipleSelectionEnabled||(n=n.slice(0,1)),this._set("highlightIds",i(n,this._get("highlightIds"),t))}get isEditing(){return this.editableColumns.some(e=>e.editInfo)}get isQuerying(){return this.store.isQuerying}get isQueryingOrSyncing(){return this.isQuerying||this.isSyncing}get isSyncing(){return this.store.isSyncing}get maxSize(){return this.store.maxSize}set maxSize(e){this.store.maxSize=e}get effectiveMultipleSelectionEnabled(){return!1!==this.multipleSelectionEnabledOverride&&this.multipleSelectionEnabled}get objectIds(){return this._get("objectIds")??new t}set objectIds(e){this._set("objectIds",i(e,this._get("objectIds"),t))}get pageCount(){return this.store.pageCount}get pageIndex(){return this.store.pageIndex}set pageIndex(e){this.store.pageIndex=e}get pageSize(){return this.store.pageSize}set pageSize(e){this.store.pageSize=e}get paginationEnabled(){return this.store.paginationEnabled}set paginationEnabled(e){this.store.paginationEnabled=e}get rowHighlightIds(){return this._get("rowHighlightIds")||new t}set rowHighlightIds(e){this._set("rowHighlightIds",i(e,this._get("rowHighlightIds"),t))}get size(){return this.store.effectiveSize}get state(){return this.store.state}get temporaryHighlightId(){return this.store.temporaryHighlightId}set temporaryHighlightId(e){this.store.temporaryHighlightId=e}get visibleColumns(){return this.columns.toArray().filter(e=>e.effectiveVisible)}clearSelection(){this.highlightIds.removeAll()}closeColumnMenus(){this.allColumns.forEach(e=>e.closeMenu())}findColumn(e){return this.allColumns.find(t=>t.fieldName===e)}hideAllColumns(){this.allColumns.forEach(e=>e.hidden||=!0)}hideColumn(e){const t=this.findColumn(e);!1===t?.hidden&&(t.hidden=!0)}async refresh(){await this.store.refresh(),await this.store.load()}showAllColumns(){this.allColumns.forEach(e=>{e.hidden&&(e.hidden=!1)})}showColumn(e){const t=this.findColumn(e);t?.hidden&&(t.hidden=!1)}sortColumn(e,t){if(!e)return;const i=this.findColumn(e);i&&(i.direction=t)}toggleColumnVisibility(e){const t=this.findColumn(e);t&&(t.hidden=!t.hidden)}};e([l()],d.prototype,"actionColumn",null),e([l()],d.prototype,"actionColumnConfig",void 0),e([l()],d.prototype,"allColumns",null),e([l()],d.prototype,"allColumnsVisible",null),e([l()],d.prototype,"allVisibleColumns",null),e([l()],d.prototype,"cellPartNameGenerator",void 0),e([l()],d.prototype,"columnMenuIsOpen",null),e([l()],d.prototype,"columnPerformanceModeEnabled",void 0),e([l()],d.prototype,"columnReorderingEnabled",void 0),e([l()],d.prototype,"columns",void 0),e([l()],d.prototype,"dataProvider",void 0),e([l()],d.prototype,"direction",void 0),e([l()],d.prototype,"editingEnabled",null),e([l()],d.prototype,"editableColumns",null),e([l()],d.prototype,"effectiveSize",null),e([l()],d.prototype,"filterBySelectionEnabled",null),e([l()],d.prototype,"groupColumns",null),e([l()],d.prototype,"hasInvalidColumnConfiguration",null),e([l()],d.prototype,"highlightIds",null),e([l()],d.prototype,"isEditing",null),e([l()],d.prototype,"isQuerying",null),e([l()],d.prototype,"isQueryingOrSyncing",null),e([l()],d.prototype,"isSyncing",null),e([l()],d.prototype,"maxSize",null),e([l()],d.prototype,"multipleSelectionEnabled",void 0),e([l()],d.prototype,"multipleSelectionEnabledOverride",void 0),e([l()],d.prototype,"effectiveMultipleSelectionEnabled",null),e([l()],d.prototype,"multiSortEnabled",void 0),e([l()],d.prototype,"multipleSortPriority",void 0),e([l()],d.prototype,"noDataMessage",void 0),e([l()],d.prototype,"objectIds",null),e([l()],d.prototype,"pageCount",null),e([l()],d.prototype,"pageIndex",null),e([l()],d.prototype,"pageSize",null),e([l()],d.prototype,"paginationEnabled",null),e([l()],d.prototype,"rowHighlightIds",null),e([l()],d.prototype,"rowDetailsRenderer",void 0),e([l()],d.prototype,"size",null),e([l()],d.prototype,"store",void 0),e([l({readOnly:!0})],d.prototype,"state",null),e([l()],d.prototype,"temporaryHighlightId",null),e([l()],d.prototype,"visibleColumns",null),d=e([o("esri.widgets.FeatureTable.Grid.GridViewModel")],d);const a=d;export{a as default};
@@ -168,6 +168,26 @@ export interface TableMenuConfig {
168
168
  open?: boolean;
169
169
  }
170
170
 
171
+ /**
172
+ * The configuration for the table's column visibility menu.
173
+ *
174
+ * @internal
175
+ */
176
+ export interface TableColumnVisibilityMenuConfig {
177
+ /**
178
+ * Indicates frozen columns should be excluded from the menu's user interface and toggling actions.
179
+ *
180
+ * @internal
181
+ */
182
+ frozenColumnsExcluded?: boolean;
183
+ /**
184
+ * Determines where the menu's popover will be positioned relative to the menu's action.
185
+ *
186
+ * @internal
187
+ */
188
+ placement?: "auto" | "auto-start" | "auto-end" | "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end" | "leading-start" | "leading" | "leading-end" | "trailing-end" | "trailing" | "trailing-start";
189
+ }
190
+
171
191
  /**
172
192
  * The configuration for an individual menu item within the table menu.
173
193
  *
@@ -23,7 +23,7 @@ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
23
23
  import type { ObjectId } from "../views/types.js";
24
24
  import type { WidgetProperties } from "./Widget.js";
25
25
  import type { FeatureTableViewModelEvents, FeatureTableViewModelProperties } from "./FeatureTable/FeatureTableViewModel.js";
26
- import type { Direction, DiscardPendingEditsParameters, FeatureStoreEdits, FeatureTableState, GridMultiSortPriority, GridSupportedColumns, TableMenuConfig } from "./FeatureTable/Grid/types.js";
26
+ import type { Direction, DiscardPendingEditsParameters, FeatureStoreEdits, FeatureTableState, GridMultiSortPriority, GridSupportedColumns, TableMenuConfig, TableColumnVisibilityMenuConfig } from "./FeatureTable/Grid/types.js";
27
27
  import type { ActionColumnConfig, ColumnSortOrder, FeatureStoreItem, FeatureTableSupportedColumn, FeatureTableSupportedFilters, FeatureTableSupportedLayer } from "./FeatureTable/support/types.js";
28
28
  import type { AttributeTableTemplateProperties } from "../tables/AttributeTableTemplate.js";
29
29
  import type { MeshProperties } from "../geometry/Mesh.js";
@@ -36,7 +36,7 @@ import type { TableTemplateProperties } from "./FeatureTable/support/TableTempla
36
36
  import type { TimeExtentProperties } from "../time/TimeExtent.js";
37
37
  import type { VisibleElementsProperties } from "./FeatureTable/VisibleElements.js";
38
38
 
39
- export interface FeatureTableProperties extends WidgetProperties, Partial<Pick<FeatureTable, "actionColumnConfig" | "attachmentsEnabled" | "attachmentsViewOptions" | "autoRefreshEnabled" | "autoSaveEnabled" | "closed" | "collapsed" | "columnPerformanceModeEnabled" | "columnReorderingEnabled" | "definitionExpression" | "description" | "disabled" | "editingEnabled" | "filterByLayerScaleRange" | "filterBySelectionEnabled" | "filterByViewExtent" | "highlightEnabled" | "initialSize" | "layer" | "layers" | "maxSize" | "menuConfig" | "multipleSelectionEnabled" | "multipleSortPriority" | "multiSortEnabled" | "navigationScale" | "noDataMessage" | "outFields" | "pageSize" | "paginationEnabled" | "relatedRecordsEnabled" | "returnGeometryEnabled" | "returnMEnabled" | "returnZEnabled" | "selectionManager" | "syncTemplateOnChangesEnabled" | "syncViewSelection" | "syncWithViewSelectionManager" | "timeZone" | "title" | "view">> {
39
+ export interface FeatureTableProperties extends WidgetProperties, Partial<Pick<FeatureTable, "actionColumnConfig" | "attachmentsEnabled" | "attachmentsViewOptions" | "autoRefreshEnabled" | "autoSaveEnabled" | "closed" | "collapsed" | "columnPerformanceModeEnabled" | "columnReorderingEnabled" | "columnVisibilityMenuConfig" | "definitionExpression" | "description" | "direction" | "disabled" | "editingEnabled" | "filterByLayerScaleRange" | "filterBySelectionEnabled" | "filterByViewExtent" | "highlightEnabled" | "initialSize" | "layer" | "layers" | "maxSize" | "menuConfig" | "multipleSelectionEnabled" | "multipleSortPriority" | "multiSortEnabled" | "navigationScale" | "noDataMessage" | "outFields" | "pageSize" | "paginationEnabled" | "relatedRecordsEnabled" | "returnGeometryEnabled" | "returnMEnabled" | "returnZEnabled" | "selectionManager" | "syncTemplateOnChangesEnabled" | "syncViewSelection" | "syncWithViewSelectionManager" | "timeZone" | "title" | "view">> {
40
40
  /**
41
41
  * Use this property to configure how columns display within the table in regard to visibility, column order, and sorting.
42
42
  *
@@ -848,6 +848,12 @@ export default class FeatureTable extends Widget<FeatureTableProperties> {
848
848
  * By default fields such as `CreationDate`, `Creator`, `EditDate`, `Editor`, and `GlobalID` do not show. If these fields are needed, set them via [TableTemplate.columnTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/#columnTemplates). In this scenario, it is also necessary to set the column template's `visible` property to `true`.
849
849
  */
850
850
  get columns(): Collection<FeatureTableSupportedColumn>;
851
+ /**
852
+ * The configuration object for the table's column visibility menu.
853
+ *
854
+ * @internal
855
+ */
856
+ accessor columnVisibilityMenuConfig: TableColumnVisibilityMenuConfig | null | undefined;
851
857
  /**
852
858
  * The ID or node representing the DOM element containing the widget.
853
859
  * Take note that this property can only be set once. The snippets below provide some examples for setting this.
@@ -940,6 +946,12 @@ export default class FeatureTable extends Widget<FeatureTableProperties> {
940
946
  * @since 4.30
941
947
  */
942
948
  accessor description: FeatureTableDescriptionFunction | string | null | undefined;
949
+ /**
950
+ * Controls the direction on the grid element.
951
+ *
952
+ * @internal
953
+ */
954
+ accessor direction: "ltr" | "rtl" | undefined;
943
955
  /**
944
956
  * Indicates whether the table is disabled. When disabled, the table will not display any data or allow interaction. This is purely a visual override and does not prevent the table from attempting to render data. This property has no effect on the current [state](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/#state) property value.
945
957
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{isSome as i}from"../core/arrayUtils.js";import{deprecateWidget as s}from"../core/deprecate.js";import l from"../core/Logger.js";import{watch as n,sync as o,syncAndInitial as a,initial as r,on as c}from"../core/reactiveUtils.js";import{renderingSanitizer as d}from"../core/sanitizerUtils.js";import{formatFileSize as h}from"../core/unitFormatUtils.js";import{property as m,subclass as p}from"../core/accessorSupport/decorators.js";import{geometryTypes as u}from"../geometry/support/typeUtils.js";import{isLayerFromCatalog as g}from"../layers/catalog/catalogUtils.js";import{isKnowledgeGraphLayer as w,isMapImageLayer as b,isSubtypeGroupLayer as v}from"../layers/support/layerUtils.js";import y from"../tables/AttributeTableTemplate.js";import f from"../time/TimeExtent.js";import _ from"./Widget.js";import{isSupportedImage as M,getCalciteIconForAttachment as C,getAttachmentTypeCategory as V}from"./Attachments/support/attachmentUtils.js";import{loadPromptComponents as A,Prompt as E}from"./Editor/components/Prompt.js";import S from"./FeatureTable/ColumnMenuVisibleElements.js";import T from"./FeatureTable/FeatureTableViewModel.js";import I from"./FeatureTable/VisibleElements.js";import{isGroupColumn as D,isFieldColumn as R}from"./FeatureTable/support/columnUtils.js";import P from"./FeatureTable/support/TableTemplate.js";import{loadFieldColumnComponents as k,isIFeatureTableSupportedLayer as x,isIFeatureTableSupportedLayerWithAttachments as L,getRelationshipIdsToShow as O}from"./FeatureTable/support/tableUtils.js";import{loadCalciteComponents as F}from"./support/componentsUtils.js";import{globalCss as j}from"./support/globalCss.js";import{getIconForLayer as z}from"./support/iconUtils.js";import{messageBundle as $,vmEvent as U,tsx as N,tsxFragment as B}from"./support/widget.js";import{storeNode as H,discardNode as Z}from"./support/widgetUtils.js";var G;const Q="esri-feature-table",W=`${Q}__dialog`,K=`${Q}__attachments-view`,q={base:Q,content:`${Q}__content`,menuPopover:`${Q}__menu-popover`,layerDropdownMenu:`${Q}__layer-switcher-menu`,tableContainer:`${Q}__table-container`,tableContainerWithAttachments:`${Q}__table-container--attachments`,tableNavigation:`${Q}__table-navigation`,attachmentsView:K,attachmentsViewContent:`${K}__content`,attachmentsViewDetails:`${K}__details`,attachmentsViewDropArea:`${K}__drop-area`,attachmentsViewDropAreaLabel:`${K}__drop-area__label`,attachmentsViewDropAreaMessage:`${K}__drop-area__message`,attachmentsViewIcon:`${K}__icon`,attachmentsViewInformation:`${K}__information`,attachmentsViewInformationData:`${K}__information__data`,attachmentsViewInformationLabel:`${K}__information__label`,attachmentsViewList:`${K}__list`,attachmentsViewListFileSize:`${K}__list__filesize`,attachmentsViewListThumbnail:`${K}__list__thumbnail`,expanded:`${Q}__expanded`,collapsed:`${Q}__collapsed`,dialog:`${W}`,dialogContent:`${W}__content`,dialogHeader:`${W}__header`,footerMessage:`${Q}__footer__message`,footerIconDanger:`${Q}__footer__icon--danger`,footerIconSuccess:`${Q}__footer__icon--success`},J={checkCircle:"check-circle",chevronRight:"chevron-right",clearSelection:"clear-selection",downloadTo:"download-to",exclamationMarkTriangle:"exclamation-mark-triangle",expand:"expand",exportToCSV:"file-csv",folderOpen:"folder-open",delete:"trash",layers:"layers",moveUp:"move-up",plus:"plus",refresh:"refresh",reset:"reset",save:"save",showAll:"selection-x",showColumn:"show-column",showSelected:"selection-filter",table:"table",upload:"upload",zoomToSelection:"zoom-to-object"};let X=G=class extends _{constructor(e,t){super(e,t),this._attachmentsDialogPreviewLoading=!1,this._attachmentsInput=null,this._columnVisibilityActions=new Map,this._columnVisibilityList=null,this.attachmentsList=null,this.closed=!1,this.collapsed=!1,this.description=null,this.disabled=!1,this.messagesEditor=null,this.navigationScale="m",this.title=null,this.viewModel=new T,this.visibleElements=new I,this.announceDeprecation=()=>{s(l.getLogger(this),"Feature Table","arcgis-feature-table",{version:"5.0"})},this._showDeleteSelectionPrompt=this._showDeleteSelectionPrompt.bind(this),this._showDiscardEditsPrompt=this._showDiscardEditsPrompt.bind(this),this._resetNestedViews=this._resetNestedViews.bind(this)}initialize(){this.addHandles([n(()=>[this.isQueryingOrSyncing,this.editingEnabled],()=>this.scheduleRender()),n(()=>[this._effectiveVisibleElements,this._effectiveVisibleElements.columnDescriptions,this._effectiveVisibleElements.columnMenus,this._effectiveVisibleElements.columnMenuItems,this.columns.length],()=>{this.columns.forEach(e=>e.visibleElements=this._effectiveVisibleElements),this.refreshCellContent()},o),n(()=>[this.topLayerDisabled,this.columns],()=>this.columns.forEach(e=>e.topLayerDisabled=this.topLayerDisabled),a),n(()=>this._effectiveVisibleElements.selectionColumn,e=>{this.grid&&(this.grid.selectionColumnEnabled=e)},r),c(()=>this.viewModel,"show-related-table",e=>this._onShowRelatedTable(e)),n(()=>this.editingEnabled,()=>{const{attachmentsViewOptions:e}=this;this.clearPrompt(),e&&(e.form?.reset(),e.candidates=null)})])}loadDependencies(){return Promise.all([F({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),alert:()=>import("@esri/calcite-components/dist/components/calcite-alert"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),pagination:()=>import("@esri/calcite-components/dist/components/calcite-pagination"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover"),progress:()=>import("@esri/calcite-components/dist/components/calcite-progress"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")}),A(),k()])}destroy(){this.drainRelatedTables(),this.clearPrompt()}get _attachmentsViewIsVisible(){return!(null==this.attachmentsViewOptions.objectId&&!this.relatedTables.some(e=>null!=e.attachmentsViewOptions.objectId))}get _columnVisibilityActionDisabled(){const e=this.effectiveTable;return e.menuConfig?.disabled??0===e.columns.length}get _dialogIsOpen(){return!!this.attachmentsViewOptions.dialogInfo}get _effectiveDescription(){const{description:e}=this;return null!=e?d.sanitize("function"==typeof e?e():e):void 0}get _effectiveLayers(){const{layer:e,layers:t}=this,i=t?.length?t.filter(x):[],s=i.length?i:[...this._viewLayers];return e&&!s.includes(e)&&s.push(e),s}get _effectiveTitle(){const{layer:e,messages:i,state:s,highlightIds:l,title:n,size:o}=this;if(n)return d.sanitize("function"==typeof n?n():n);if(!i)return"";if(!e)return i.noLayer;switch(s){case"disabled":return i.errorLayer;case"ready":case"loading":return i.loading;case"error":return i.errorData}return t(i.header,{title:d.sanitize(e.title),count:o,selected:l.length})}get _effectiveVisibleElements(){return this.visibleElementsOverride??this.visibleElements}get _filteredTables(){const e=this.relatedTables.toArray(),t=1===e.length;return this.allRelatedTablesVisible?e:t?[e[0]]:this._attachmentsViewIsVisible?e.slice(-1):e.slice(-2)}get _hasAttachmentsViewError(){return null!=this.attachmentsViewOptions.error}get _hasCustomMenuItems(){return!!this.menuConfig?.items?.length}get _hasDefaultMenuItems(){return!!(this._showClearSelectionAction||this._showDeleteSelectionAction||this._showExportSelectionToCSVAction||this._showRefreshDataAction||this._showZoomToSelectionAction||this._showSelectedRecordsShowSelectedAction||this._showSelectedRecordsShowAllAction||this._showColumnVisibilityAction)}get _shouldShowGrid(){return this.allRelatedTablesVisible||1===this.relatedTables.length&&!this._attachmentsViewIsVisible}get _shouldShowMenu(){const{header:e,menu:t}=this._effectiveVisibleElements;return!(!e||!t||!this._hasDefaultMenuItems&&!this._hasCustomMenuItems)}get _showClearSelectionAction(){return!(!this.effectiveTable.highlightIds.length||!this._effectiveVisibleElements.menuItems?.clearSelection||this._attachmentsViewIsVisible)}get _showColumnVisibilityAction(){const{columnVisibilityMenu:e,header:t,menu:i,menuItems:s}=this._effectiveVisibleElements;return!(!(t&&i&&e&&!1!==s?.toggleColumns)||this.showRelatedTableCallback||this.allRelatedTablesVisible||this._attachmentsViewIsVisible)}get _showDeleteSelectionAction(){return!(!(this.editingEnabled&&this.highlightIds.length&&this._effectiveVisibleElements.menuItems?.deleteSelection&&this.layer?.capabilities?.operations?.supportsDelete)||this.relatedTables.length||this._attachmentsViewIsVisible)}get _showExportSelectionToCSVAction(){return!(!(this._effectiveVisibleElements.menuItems.exportSelectionToCSV&&this.layer&&this.highlightIds.length)||this.relatedTables.length)}get _showLayerDropdown(){return!(!this._effectiveLayers.length||!this._effectiveVisibleElements.layerDropdown)}get _shouldShowNavigationBar(){const e=!!this.relatedTable||this._attachmentsViewIsVisible;return!this.tableParent&&e}get _showRefreshDataAction(){return!!this._effectiveVisibleElements.menuItems?.refreshData}get _showSelectedRecordsShowSelectedAction(){const e=this.objectIds.length,t=this.highlightIds.length;return!(!t||!this._effectiveVisibleElements.menuItems?.selectedRecordsShowSelectedToggle||e&&t===e||this.relatedTables.length||this._attachmentsViewIsVisible)}get _showSelectedRecordsShowAllAction(){return!(!this._effectiveVisibleElements.menuItems?.selectedRecordsShowAllToggle||!this.objectIds.length||this.relatedTables.length)}get _showZoomToSelectionAction(){const e=this.effectiveTable;return!(!e.view||!e.highlightIds.length||e.layer?.isTable||!this._effectiveVisibleElements.menuItems?.zoomToSelection)}get _viewLayers(){const e=this.view?.map;if(!e)return[];const t=new Set,i=e=>{!x(e)||v(e)||t.has(e)||"sublayer"===e.type&&!e.capabilities?.operations?.supportsQuery||(e.load(),t.add(e))},s=e=>{g(e)||"catalog-footprint"===e.type||(w(e)?(e.load(),e.layers?.forEach(i),e.tables?.forEach(i)):b(e)?(e.loadAll(),e.allSublayers?.forEach(i),e.subtables?.forEach(i)):v(e)?(e.loadAll(),e.sublayers?.forEach(i)):i(e))};return e.allLayers.forEach(s),e.allTables.forEach(s),[...t.values()]}get grid(){return this.viewModel.grid}get actionColumn(){return this.viewModel.actionColumn}get actionColumnConfig(){return this.viewModel.actionColumnConfig}set actionColumnConfig(e){this.viewModel.actionColumnConfig=e}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get allColumns(){return this.viewModel.allColumns}get allColumnsVisible(){return this.viewModel.allColumnsVisible}get allRelatedTablesVisible(){return this.viewModel.allRelatedTablesVisible}get allVisibleColumns(){return this.viewModel.allVisibleColumns}get attachmentsColumns(){return this.viewModel.attachmentsColumns}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get attachmentsViewOptions(){return this.viewModel.attachmentsViewOptions}set attachmentsViewOptions(e){this.viewModel.attachmentsViewOptions=e}get attributeTableTemplate(){return this.viewModel.attributeTableTemplate}set attributeTableTemplate(e){this.viewModel.attributeTableTemplate=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get autoSaveEnabled(){return this.viewModel.autoSaveEnabled}set autoSaveEnabled(e){this.viewModel.autoSaveEnabled=e}get canAddRelatedFeature(){return this.viewModel.canAddRelatedFeature}get clearPrompt(){return this.viewModel.clearPrompt}set clearPrompt(e){this.viewModel.clearPrompt=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get defaultSelectionManager(){return this.viewModel.defaultSelectionManager}get definitionExpression(){return this.viewModel.definitionExpression}set definitionExpression(e){this.viewModel.definitionExpression=e}get container(){return super.container}set container(e){super.container=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get effectiveSize(){return this.viewModel.effectiveSize}get effectiveTable(){return this.relatedTable||this}get fieldColumns(){return this.viewModel.fieldColumns}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get filterBySelectionEnabled(){return this.viewModel.filterBySelectionEnabled}set filterBySelectionEnabled(e){this.viewModel.filterBySelectionEnabled=e}get filterByViewExtent(){return this.viewModel.filterByViewExtent}set filterByViewExtent(e){this.viewModel.filterByViewExtent=e}get filterByLayerScaleRange(){return this.viewModel.filterByLayerScaleRange}set filterByLayerScaleRange(e){this.viewModel.filterByLayerScaleRange=e}get groupColumns(){return this.viewModel.groupColumns}get hasContingentValues(){return this.viewModel.hasContingentValues}get hasInvalidPendingEdits(){return this.viewModel.hasInvalidPendingEdits}get hasPendingEdits(){return this.viewModel.hasPendingEdits}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 icon(){return J.table}set icon(e){this._overrideIfSome("icon",e)}get initialSize(){return this.viewModel.initialSize}set initialSize(e){this.viewModel.initialSize=e}get isQueryingOrSyncing(){return this.viewModel.isQueryingOrSyncing}get isSyncing(){return this.viewModel.isSyncing}get isSyncingAttachments(){return this.viewModel.isSyncingAttachments}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 layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}get layerView(){return this.viewModel.layerView}get maxSize(){return this.viewModel.maxSize}set maxSize(e){this.viewModel.maxSize=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 messagesUnits(){return this.viewModel.messagesUnits}set messagesUnits(e){this.viewModel.messagesUnits=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get menuConfig(){return this.viewModel.menuConfig}set menuConfig(e){this.viewModel.menuConfig=e}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get objectIds(){return this.viewModel.objectIds}set objectIds(e){this.viewModel.objectIds=e}get outFields(){return this.viewModel.outFields}set outFields(e){this.viewModel.outFields=e}get pageCount(){return this.viewModel.pageCount}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get pendingEditsCount(){return this.viewModel.pendingEditsCount}get prompt(){return this.viewModel.prompt}set prompt(e){this.viewModel.prompt=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get relatedTable(){return this.viewModel.relatedTable}get relatedTableHasContingentValues(){return this.viewModel.relatedTableHasContingentValues}get relatedTableHasInvalidPendingEdits(){return this.viewModel.relatedTableHasInvalidPendingEdits}get relatedTableHasPendingEdits(){return this.viewModel.relatedTableHasPendingEdits}get relatedTables(){return this.viewModel.relatedTables}get relationship(){return this.viewModel.relationship}get relationshipColumnConfigs(){return this.viewModel.relationshipColumnConfigs}set relationshipColumnConfigs(e){this.viewModel.relationshipColumnConfigs=e}get relationshipColumns(){return this.viewModel.relationshipColumns}get relationshipConfig(){return this.viewModel.relationshipConfig}set relationshipConfig(e){this.viewModel.relationshipConfig=e}get relationshipInfos(){return this.viewModel.relationshipInfos}get returnGeometryEnabled(){return this.viewModel.returnGeometryEnabled}set returnGeometryEnabled(e){this.viewModel.returnGeometryEnabled=e}get returnMEnabled(){return this.viewModel.returnMEnabled}set returnMEnabled(e){this.viewModel.returnMEnabled=e}get returnZEnabled(){return this.viewModel.returnZEnabled}set returnZEnabled(e){this.viewModel.returnZEnabled=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get selectionManager(){return this.viewModel.selectionManager}set selectionManager(e){this.viewModel.selectionManager=e}get selectionSource(){return this.viewModel.selectionSource}set selectionSource(e){this.viewModel.selectionSource=e}get showAllRelatedTables(){return this.viewModel.showAllRelatedTables}set showAllRelatedTables(e){this.viewModel.showAllRelatedTables=e}get showPrompt(){return this.viewModel.showPrompt}set showPrompt(e){this.viewModel.showPrompt=e}get showRelatedTableCallback(){return this.viewModel.showRelatedTableCallback}set showRelatedTableCallback(e){this.viewModel.showRelatedTableCallback=e}get size(){return this.viewModel.size}get state(){return this.viewModel.state}get supportsAddAttachments(){return this.viewModel.supportsAddAttachments}get supportsAttachments(){return this.viewModel.supportsAttachments}get supportsDeleteAttachments(){return this.viewModel.supportsDeleteAttachments}get supportsResizeAttachments(){return this.viewModel.supportsResizeAttachments}get supportsUpdateAttachments(){return this.viewModel.supportsUpdateAttachments}get syncTemplateOnChangesEnabled(){return this.viewModel.syncTemplateOnChangesEnabled}set syncTemplateOnChangesEnabled(e){this.viewModel.syncTemplateOnChangesEnabled=e}get syncViewSelection(){return this.viewModel.syncViewSelection}set syncViewSelection(e){this.viewModel.syncViewSelection=e}get syncWithViewSelectionManager(){return this.syncViewSelection}set syncWithViewSelectionManager(e){this.syncViewSelection=e}get tableController(){return this.viewModel.tableController}set tableController(e){this.viewModel.tableController=e}get tableParent(){return this.viewModel.tableParent}set tableParent(e){this.viewModel.tableParent=e}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get tableTemplateOverride(){return this.viewModel.tableTemplateOverride}set tableTemplateOverride(e){this.viewModel.tableTemplateOverride=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get timeZone(){return this.viewModel.timeZone}set timeZone(e){this.viewModel.timeZone=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visibleColumns(){return this.viewModel.visibleColumns}get visibleElementsOverride(){const{attachmentsViewOptions:e,relatedTable:t,tableController:i,visibleElements:s}=this,{columnDescriptions:l,columnMenus:n,tooltips:o}=s,a=null!=e.objectId;if(t)return new I({columnDescriptions:l,columnMenus:n,tooltips:o,close:s.close,header:s.header,layerDropdown:s.layerDropdown,layerDropdownIcons:s.layerDropdownIcons,menu:s.menu,menuItems:s.menuItems,progress:s.progress,selectionColumn:!1,columnMenuItems:new S({sortAscending:!1,sortDescending:!1})});if(i){const e=i.relatedTable===this,t=i.allRelatedTablesVisible,r=e&&s.selectionColumn&&!t&&!a,c=e&&!t&&!a;return new I({columnDescriptions:l,columnMenus:n,tooltips:o,selectionColumn:r,close:!1,header:!1,layerDropdown:!1,menu:!1,pendingEditsFooter:!1,progress:!1,columnMenuItems:new S({sortAscending:c,sortDescending:c})})}return a?new I({columnDescriptions:l,columnMenus:n,tooltips:o,close:s.close,header:s.header,layerDropdown:s.layerDropdown,layerDropdownIcons:s.layerDropdownIcons,menu:s.menu,menuItems:s.menuItems,progress:s.progress,selectionColumn:!1,columnMenuItems:new S({sortAscending:!1,sortDescending:!1})}):null}addPendingEdits(e){this.viewModel.addPendingEdits(e)}clearSelection(){this.effectiveTable.viewModel.clearSelection()}async deleteAttachments(e,t,i){null!=e&&t?.length&&(i?this._showDeleteAttachmentPrompt(e,t):await this.viewModel.deleteAttachments(e,t))}async deleteSelection(e){this.highlightIds.length&&(e?this._showDeleteSelectionPrompt():await this.viewModel.deleteSelection())}async discardPendingEdits(e,t){return t?this._showDiscardEditsPrompt(e):this.viewModel.discardPendingEdits(e)}async downloadAttachmentById(e,t){return this.viewModel.downloadAttachmentById(e,t)}drainRelatedTables(){this.viewModel.drainRelatedTables()}async exportSelectionToCSV(e){return this.viewModel.exportSelectionToCSV(e)}findColumn(e){return this.viewModel.findColumn(e)}getFeatureStoreItemByObjectId(e){return this.viewModel.getFeatureStoreItemByObjectId(e)}goToPage(e){this.viewModel.goToPage(e)}hideAllColumns(){this.viewModel.hideAllColumns()}hideColumn(e){this.grid?.hideColumn(e)}nextPage(){this.viewModel.nextPage()}previousPage(){this.viewModel.previousPage()}async refresh(){await this.viewModel.refresh()}refreshCellContent(){this.viewModel.refreshCellContent()}async saveAttachmentsViewForm(){await this.viewModel.saveAttachmentsViewForm()}async savePendingEdits(){await this.viewModel.savePendingEdits()}showAllColumns(){this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e)}sortColumn(e,t){this.viewModel.sortColumn(e,t)}scrollLeft(){this.viewModel.scrollLeft()}scrollToBottom(){this.viewModel.scrollToBottom()}scrollToIndex(e){this.viewModel.scrollToIndex(e)}scrollToRow(e){this.viewModel.scrollToRow(e)}scrollToTop(){this.viewModel.scrollToTop()}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}async zoomToSelection(){return this.effectiveTable.viewModel.zoomToSelection()}render(){const{_effectiveVisibleElements:e,isQueryingOrSyncing:t,menuConfig:i,state:s}=this;return N("div",{bind:this,class:this.classes(q.base,j.widget)},N("calcite-panel",{bind:this,class:q.content,closable:e.close,closed:this.closed,collapsed:this.collapsed,collapsible:e.collapse,description:this._effectiveDescription,disabled:this.disabled||"disabled"===s&&!this._effectiveLayers?.length,heading:e.header?this._effectiveTitle:void 0,key:"table-content",loading:"loading"===s,menuOpen:!!i?.open,overlayPositioning:"fixed",onCalcitePanelClose:()=>{this.closed=!0,this.emit("close")},onCalcitePanelToggle:e=>{this.collapsed=e.target.collapsed,this.emit("toggle")}},e.progress?N("calcite-progress",{type:t?"indeterminate":"determinate"}):null,this._showLayerDropdown?this._renderLayerDropdown():null,this._renderColumnVisibilityAction(),this._renderHeaderMenuActions(),this._renderNavigationBar(),this._renderTables(),this._renderError(),this._renderFooterContent()),this._renderColumnVisibilityPopover(),this._renderPrompt(),this._renderDialog())}_renderTables(){const{grid:e,relatedTables:t}=this,i=this.classes(q.tableContainer);if(t.length){const s=this.classes(q.base,this.allRelatedTablesVisible?q.expanded:q.collapsed,this._attachmentsViewIsVisible?q.tableContainerWithAttachments:void 0);return N("div",{class:i},N("calcite-panel",{overlayPositioning:"fixed"},N("div",null,[this._shouldShowGrid?N("div",{class:s},e?.render(),this._renderPagination()):void 0,...this._filteredTables.map(e=>{const i=t.indexOf(e);return N("div",{class:s,key:`related-${i}`},e.render())}),,])))}return null!=this.attachmentsViewOptions.objectId?N("div",{class:i},N("calcite-panel",{overlayPositioning:"fixed"},N("div",null,[N("div",{class:this.classes(q.base,q.collapsed)},e?.render(),this._renderPagination()),this._renderAttachmentsView()]))):[N("div",{class:i},e?.render()),this._renderPagination()]}_renderPagination(){if(this.paginationEnabled)return N("calcite-pagination",{pageSize:1,startItem:this.pageIndex+1,totalItems:this.pageCount,onCalcitePaginationChange:e=>{this._attachmentsDialogPreviewLoading=!1,this.goToPage(e.currentTarget.startItem-1)}})}_renderError(){const{messages:e}=this;return N("calcite-alert",{autoClose:!0,autoCloseDuration:"fast",icon:J.exclamationMarkTriangle,kind:"danger",label:e.errorOccured,open:this._hasAttachmentsViewError,slot:"alerts",topLayerDisabled:this.topLayerDisabled,onCalciteAlertClose:()=>{this.attachmentsViewOptions.error=null}},N("span",{slot:"message"},e.errorOccured))}_renderFooterContent(){if(!this.hasPendingEdits||!this._effectiveVisibleElements.pendingEditsFooter)return;const{hasInvalidPendingEdits:e,isQueryingOrSyncing:t,messages:i,messagesCommon:s}=this,l=e||t,n=this.hasContingentValues,o=[N("calcite-button",{appearance:"outline",disabled:t,iconStart:J.reset,key:"footer-reset-button",slot:"footer-end",width:"auto",onclick:()=>{this.discardPendingEdits()}},s.reset),N("calcite-button",{disabled:l,iconStart:J.save,key:"footer-save-button",loading:this.isSyncing,slot:"footer-end",width:"auto",onclick:()=>{this.savePendingEdits()}},s.save)];if(n){const t=e?i.contingentValues.hasInvalidValues:i.contingentValues.hasValidValues,s=e?J.exclamationMarkTriangle:J.checkCircle,l=e?q.footerIconDanger:q.footerIconSuccess;o.push(N("div",{class:q.footerMessage,key:"footer-message",slot:"footer-start"},N("calcite-icon",{class:l,icon:s,scale:"s",slot:"footer-start"}),t))}return o}_renderPrompt(){return this.prompt?N(E,{...this.prompt,headingLevel:2}):void 0}_showDeleteSelectionPrompt(){const{messages:e,messagesCommon:i}=this,s=t(e.deleteSelectionCount,{count:this.highlightIds.length});this.showPrompt({title:s,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:i.delete,action:async()=>{try{await this.viewModel.deleteSelection()}finally{this.clearPrompt()}}},secondary:{label:e.keepRecords,action:()=>this.clearPrompt()}}})}_showDeleteAttachmentPrompt(e,i){const{messages:s,messagesCommon:l}=this,n=t(s.deleteAttachmentCount,{count:i.length});this.showPrompt({title:n,message:s.deleteAttachmentConfirmation,context:"danger",actions:{primary:{label:l.delete,action:async()=>{try{await this.deleteAttachments(e,i,!1)}finally{this.clearPrompt()}}},secondary:{label:l.cancel,action:()=>this.clearPrompt()}}})}async _showDiscardEditsPrompt(e){const t=Promise.withResolvers(),{messagesEditor:i}=this;return this.showPrompt({title:i.cancelEditTitle,message:i.cancelEditWarningMessage,context:"danger",actions:{primary:{label:i.discardEdits,action:async()=>{try{await this.discardPendingEdits(e)}finally{t.resolve(!0)}}},secondary:{label:i.continueEditing,action:()=>t.resolve(!1)}}}),t.promise.finally(()=>this.clearPrompt())}_onTableViewChange(e){this.hasPendingEdits?this._showDiscardEditsPrompt().then(t=>t&&e()):e()}_resetNestedViews(){this.relatedTable&&this.drainRelatedTables(),this.effectiveTable.attachmentsViewOptions.objectId=null}_renderDialog(){const{attachmentsViewOptions:e,messages:t}=this,{objectId:i}=e;return N("calcite-dialog",{class:q.dialog,description:this.viewModel.getFeatureTitleSync(i),heading:t.attachments,modal:!0,open:this._dialogIsOpen,placement:"cover",width:"l",onCalciteDialogClose:()=>this._onDialogClose()},this._renderDialogContent())}_renderDialogContent(){const e=this.attachmentsViewOptions.dialogInfo;if(e)return this._renderAttachmentsDialogContent(e)}_renderAttachmentsDialogContent(e){const{attachmentsViewOptions:t,messages:i}=this,{attachmentInfos:s}=t,l=s.indexOf(e);return N(B,null,N("div",{class:q.dialogHeader,key:"header",slot:"content-top"},N("span",null,e.name),N("calcite-button",{appearance:"outline",onclick:()=>{t.attachmentId=e.id,t.dialogId=null}},i.viewDetails)),N("calcite-progress",{type:this._attachmentsDialogPreviewLoading?"indeterminate":"determinate"}),N("div",{class:q.dialogContent,key:"content"},this._renderAttachmentsViewDetailsImage(e)),N("calcite-pagination",{pageSize:1,slot:"footer",startItem:l+1,totalItems:s.length,onCalcitePaginationChange:e=>{const i=e.currentTarget.startItem-1,l=s[i]?.id;t.dialogId=l}}))}_onDialogClose(){const e=this.attachmentsViewOptions;null!=e.dialogId&&(e.dialogId=null),this._attachmentsDialogPreviewLoading=!1}_renderHeaderMenuAction(e){const{disabled:t,hidden:i,icon:s,text:l,clickFunction:n}=e;if(!i)return N("calcite-action",{disabled:t??this.menuConfig?.disabled,icon:s??void 0,key:l,slot:"header-menu-actions",text:l,textEnabled:!0,title:l,onclick:()=>n()})}_renderHeaderMenuActions(){return this._shouldShowMenu?[this._renderDefaultHeaderMenuActions(),this._renderCustomHeaderMenuActions()]:[]}_renderDefaultHeaderMenuActions(){if(!this._hasDefaultMenuItems)return[];const{messages:e}=this;return[this._showRefreshDataAction&&{icon:J.refresh,text:e.refreshData,clickFunction:()=>this.refresh()},this._showDeleteSelectionAction&&{icon:J.delete,text:e.deleteSelection,clickFunction:()=>this.deleteSelection(!0)},this._showClearSelectionAction&&{icon:J.clearSelection,text:e.clearSelection,clickFunction:()=>this.clearSelection()},this._showZoomToSelectionAction&&{icon:J.zoomToSelection,text:e.zoomToSelection,clickFunction:()=>this.zoomToSelection()},this._showSelectedRecordsShowSelectedAction&&{icon:J.showSelected,text:e.showSelected,clickFunction:()=>{const{objectIds:e}=this;e.removeAll(),e.addMany(this.highlightIds.toArray())}},this._showSelectedRecordsShowAllAction&&{icon:J.showAll,text:e.showAllRecords,clickFunction:()=>this.objectIds.removeAll()},this._showExportSelectionToCSVAction&&{icon:J.exportToCSV,text:e.exportSelectionCSV,clickFunction:()=>this.exportSelectionToCSV()}].filter(i).map(e=>e&&this._renderHeaderMenuAction(e))}_renderCustomHeaderMenuActions(){return this.menuConfig?.items?.map(({disabled:e,hidden:t,icon:i,label:s,clickFunction:l})=>this._renderHeaderMenuAction({hidden:"function"==typeof t?t():t,icon:i,text:s,disabled:"function"==typeof e?e():e,clickFunction:e=>l(e)}))??[]}_renderColumnVisibilityAction(){if(!this._showColumnVisibilityAction)return[];const{_columnVisibilityActions:e,id:t}=this,i=this.messages.menuText.columnVisibility;return N("calcite-action",{afterCreate:i=>e.set(t,i),afterRemoved:()=>e.delete(t),bind:this,disabled:this._columnVisibilityActionDisabled,icon:J.showColumn,id:`${t}__toggle-columns-action`,slot:"header-actions-end",text:i},this._effectiveVisibleElements.tooltips?N("calcite-tooltip",{closeOnClick:!0,overlayPositioning:"fixed",placement:"bottom-end",referenceElement:e.get(t),topLayerDisabled:this.topLayerDisabled},i):null)}_renderColumnVisibilityPopover(){if(!this._showColumnVisibilityAction||this._columnVisibilityActionDisabled)return;const e=this.visibleElements.columnVisibilityMenuItems.header,t=this.messages.menuText.columnVisibility;return N("calcite-popover",{autoClose:!0,class:q.menuPopover,closable:e,heading:e?t:void 0,label:t,overlayPositioning:"fixed",referenceElement:this._columnVisibilityActions.get(this.id),topLayerDisabled:this.topLayerDisabled},this._renderColumnVisibilityList())}_renderColumnVisibilityList(){const{effectiveTable:e,messages:{menuText:t}}=this;if(0!==e.columns.length)return N("calcite-list",{afterCreate:H,afterRemoved:Z.bind(this),afterUpdate:H,bind:this,"data-node-ref":"_columnVisibilityList",displayMode:"nested",filterEnabled:this.visibleElements.columnVisibilityMenuItems.filter,filterPlaceholder:t.searchFields,label:t.fieldVisibility,selectionMode:"multiple",onCalciteListChange:()=>this._syncColumnVisibility(),onCalciteListFilter:()=>this.scheduleRender()},this._renderColumnToggleAll(),e.columns.toArray().map(e=>{const t=D(e)?e.columns?.map(e=>this._renderColumnListItem({column:e})):void 0;return this._renderColumnListItem({column:e,items:t})}),N("calcite-notice",{appearance:"transparent",kind:"neutral",open:!0,slot:"filter-no-results"},N("div",{slot:"message"},t.noMatchesFound)))}_syncColumnVisibility(){const{effectiveTable:e,_columnVisibilityList:t}=this;if(!t)return;const i=new Set(t.selectedItems.map(e=>e.value));e.allColumns.forEach(t=>{i.has(t.fieldName)?e.showColumn(t.fieldName):e.hideColumn(t.fieldName)})}_renderColumnToggleAll(){if(!this.visibleElements.columnVisibilityMenuItems.toggleAll)return;const{_columnVisibilityList:e}=this;return e&&e.filteredItems?.length?N("calcite-button",{appearance:"transparent",width:"full",onclick:()=>this._toggleAllColumns()},this._getColumnToggleAllText()):void 0}_getColumnToggleAllText(){const{_columnVisibilityList:e,effectiveTable:t,messages:{menuText:i}}=this;return e?""===e.filterText?t.allColumnsVisible?i.deselectAll:i.selectAll:this._allColumnsAreVisible(e.filteredItems.map(e=>e.value))?i.deselectAll:i.selectAll:""}_renderColumnListItem(e){const{column:t,items:i}=e,{effectiveLabel:s,fieldName:l,hidden:n}=t;return N("calcite-list-item",{expanded:!(!i?.length||n)||void 0,key:`toggle-columns__item-${l}`,label:s,metadata:{description:t.effectiveDescription,type:R(t)?t.field.type:void 0},selected:!n,value:l},i)}_renderLayerDropdown(){const e=this.messages.selectALayer;return N("div",{class:q.layerDropdownMenu,key:`${this.id}-layerDropdown`,slot:"header-actions-start"},N("calcite-dropdown",{bind:this,maxItems:5,overlayPositioning:"fixed",placement:"bottom-start",topLayerDisabled:this.topLayerDisabled},N("calcite-action",{icon:J.layers,slot:"trigger",text:e,title:e}),N("calcite-dropdown-group",{selectionMode:"single"},this._effectiveLayers.map((e,t)=>this._renderLayerDropdownItem(e,t))??null)))}_renderLayerDropdownItem(e,t){const i=this.visibleElements.layerDropdownIcons;return N("calcite-dropdown-item",{iconStart:i?z(e):void 0,key:`dropdown-item-${t}`,label:e.title??"",selected:e===this.layer,value:e.id,onCalciteDropdownItemSelect:()=>this._onTableViewChange(()=>this.layer=e)},e.title)}_onRelatedNavigationItemClick(e){this.viewModel.drainRelatedTablesAboveIndex(e)}_collapseRelatedTable(e){this.viewModel.collapseRelatedTable(this.effectiveTable,e)}_onShowRelatedTable(e){this.showRelatedTableCallback||this.hasPendingEdits||(this._collapseRelatedTable(e),this._createRelatedTable(e))}async _createRelatedTable(e){const{autoRefreshEnabled:t,autoSaveEnabled:i,editingEnabled:s,effectiveTable:l,multipleSelectionEnabled:n,paginationEnabled:o,pageSize:a,view:r,viewModel:c}=this,{layer:d,objectId:h,relatedLayer:m,relationshipId:p}=e;await d.load();const u=this.attachmentsEnabled&&L(d),g=new G({layer:d,autoRefreshEnabled:t,autoSaveEnabled:i,attachmentsEnabled:u,editingEnabled:s,multipleSelectionEnabled:n,paginationEnabled:o,pageSize:a,relatedRecordsEnabled:!0,relationshipConfig:{objectId:h,relatedLayer:m,relationshipId:p},relationshipColumnConfigs:O(d,p),tableController:this,tableParent:l,view:r,showRelatedTableCallback:e=>c.emit("show-related-table",e)});this.relatedTables.add(g),this.scheduleRender()}_renderAttachmentsView(){switch(this.attachmentsViewOptions.effectiveMode){case"list":return this._renderAttachmentsViewList();case"details":return this._renderAttachmentsViewDetails();case"file":return this._renderAttachmentsViewFile()}}_renderAttachmentsViewFile(){const e=this.attachmentsViewOptions,{objectId:t}=e;if(null!=t)return[N("div",{class:q.attachmentsView,key:"attachments-view"},this._renderAttachmentsViewInformation(),N("div",{class:q.attachmentsViewContent,key:"attachments-view-content"},N("div",{bind:this,class:q.attachmentsViewDropArea,ondragover:e=>e.preventDefault(),ondrop:this._onAttachmentsViewDrop},N("calcite-icon",{class:q.attachmentsViewIcon,icon:J.upload,scale:"l"}),this._renderAttachmentsViewFileLabelNode(),this._renderAttachmentsViewFileMessageNode(),N("form",{afterCreate:t=>e.form=t,afterRemoved:()=>e.form=null,bind:this,key:"attachments-form"},N("fieldset",null,this._renderAttachmentsViewFileNameNode(),N("input",{afterCreate:H,afterRemoved:Z,afterUpdate:H,bind:this,"data-node-ref":"_attachmentsInput",files:e.candidates,hidden:!0,name:"attachment",type:"file",onchange:e=>this._onAttachmentsViewCandidateChange(e)}),this._renderAttachmentsViewFileSelectNode(),this._renderAttachmentsViewFileSaveNode(),this._renderAttachmentsViewFileCancelNode())))))]}_renderAttachmentsViewFileLabelNode(){if("replace"===this.attachmentsViewOptions.fileMode)return N("span",{class:q.attachmentsViewDropAreaLabel,key:"replace-file-node"},this.messages.replaceFile)}_renderAttachmentsViewFileMessageNode(){const e=this.attachmentsViewOptions;if(e.hasCandidates)return;const{messages:t}=this,i=this.supportsAddAttachments?null==e.objectId?t.noFeature:t.dragAndDropToUpload:t.editingRestricted;return N("span",{class:q.attachmentsViewDropAreaMessage,key:"message-node"},i)}_renderAttachmentsViewFileNameNode(){const e=this.attachmentsViewOptions.candidates,t=Array.from(e??[]).at(-1);if(t)return N("span",{class:q.attachmentsViewDropAreaMessage,key:"filename-node"},t.name)}_renderAttachmentsViewFileSelectNode(){if(this.supportsAddAttachments)return N("calcite-button",{appearance:"outline-fill",disabled:this.isSyncingAttachments,iconStart:J.folderOpen,key:"select-node",onclick:()=>{this._resetAttachmentsInput(),this._attachmentsInput?.click()}},this.messages.selectFile)}_renderAttachmentsViewFileSaveNode(){const{isSyncingAttachments:e,messages:t}=this,{attachmentInfo:i,hasCandidates:s}=this.attachmentsViewOptions;if(this.supportsAddAttachments&&s)return N("calcite-button",{appearance:"solid",disabled:e,iconStart:J.save,key:"save-node",loading:e,onclick:()=>{this.saveAttachmentsViewForm()}},i?t.updateAttachment:t.addAttachment)}_renderAttachmentsViewFileCancelNode(){const{hasAttachments:e,hasCandidates:t}=this.attachmentsViewOptions;if(e||t)return N("calcite-button",{appearance:"transparent",bind:this,disabled:this.isSyncingAttachments,key:"cancel-node",onclick:()=>{this._resetAttachmentsInput(),this.attachmentsViewOptions.cancel()}},this.messagesCommon.cancel)}_renderAttachmentsViewDetails(){const{attachmentInfo:e}=this.attachmentsViewOptions;if(e)return[N("div",{class:q.attachmentsView,key:"attachments-view"},this._renderAttachmentsViewInformation(),N("div",{class:q.attachmentsViewContent,key:"attachments-view-content"},N("div",{class:q.attachmentsViewDetails},this._renderAttachmentsViewDetailsPreview(e))))]}_renderAttachmentsViewDetailsPreview(e){const t=[this._renderAttachmentsViewDetailsImage(e)];if(M(e.contentType)){const i=this.messages.maximize;t.push(N("calcite-action",{icon:J.expand,label:i,text:i,textEnabled:!0,title:i,onclick:t=>{t.preventDefault(),this.attachmentsViewOptions.dialogId=e.id}}))}return t}_renderAttachmentsViewDetailsImage(e){const{contentType:t,name:i,size:s,url:l}=e,{messages:n}=this;return M(t)?N("img",{afterCreate:()=>this._attachmentsDialogPreviewLoading=!0,alt:i,key:`thumbnail-image-${i}`,src:`${l}${l?.includes("?")?"&":"?"}s=${s}`,title:i,onerror:()=>this._attachmentsDialogPreviewLoading=!1,onload:()=>this._attachmentsDialogPreviewLoading=!1}):[N("calcite-icon",{icon:C(t),key:`thumbnail-icon-${i}`,scale:"l",textLabel:i,title:i}),n.noPreviewAvailable]}_renderAttachmentsViewInformation(){const{attachmentsViewOptions:e,messages:t,messagesUnits:i}=this,{attachmentInfo:s,objectId:l}=e;if(s&&null!=l)return N("div",{class:q.attachmentsViewInformation,key:"information"},this._renderAttachmentViewInformationButtons(s,l),N("span",{class:q.attachmentsViewInformationLabel,key:"file-label"},t.fileName),N("span",{class:q.attachmentsViewInformationData,key:"file-value"},s.name),N("span",{class:q.attachmentsViewInformationLabel,key:"type-label"},t.attachmentType),N("span",{class:q.attachmentsViewInformationData,key:"type-value"},this._getLabelForAttachmentType(s)),this._renderAttachmentKeywordDetails(s),N("span",{class:q.attachmentsViewInformationLabel,key:"size-label"},t.size),N("span",{class:q.attachmentsViewInformationData,key:"size-span"},h(i,s.size??0)))}_renderAttachmentViewInformationButtons(e,t){const{attachmentsViewOptions:i,messages:s,messagesCommon:l}=this,n="details"!==i.effectiveMode,o=e.id,a=[N("calcite-button",{appearance:"outline",disabled:n,key:"download-button",width:"full",onclick:e=>{e.preventDefault(),this.downloadAttachmentById(t,o)}},s.download)];return this.supportsUpdateAttachments&&a.push(N("calcite-button",{appearance:"outline",disabled:n,key:"replace-button",width:"full",onclick:()=>{i.mode="file",i.attachmentId=o}},s.replace)),this.supportsDeleteAttachments&&a.push(N("calcite-button",{appearance:"outline",disabled:n,key:"delete-button",width:"full",onclick:()=>{this.deleteAttachments(t,[o],!0)}},l.delete)),a}_renderAttachmentKeywordDetails({keywords:e}){if(e&&""!==e)return[N("span",{class:q.attachmentsViewInformationLabel,key:"keyword-label"},this.messages.keyword),N("span",{class:q.attachmentsViewInformationData,key:"keyword-value"},e)]}_renderAttachmentsViewList(){const{attachmentsViewOptions:e,isSyncingAttachments:t,messages:i,messagesUnits:s}=this,{attachmentInfos:l,objectId:n}=e;return N("calcite-list",{afterCreate:H,afterRemoved:Z,afterUpdate:H,bind:this,class:q.attachmentsViewList,"data-node-ref":"attachmentsList",key:`attachments-list-${n}`,label:i?.attachments,loading:t,selectionMode:this.supportsDeleteAttachments?"multiple":"none",onCalciteListChange:()=>this.scheduleRender(),ondragover:e=>e.preventDefault(),ondrop:this._onAttachmentsViewDrop},...l?.map(t=>{const{id:l,name:o,size:a}=t,r=h(s,a??0);return N("calcite-list-item",{afterRemoved:()=>this.scheduleRender(),key:`attachment-${l}`,label:o,value:l},this._renderAttachmentsViewListPreview(t),N("span",{class:q.attachmentsViewListFileSize,slot:"actions-end",title:r},r),N("calcite-action",{icon:J.downloadTo,key:"download",label:o,slot:"actions-end",text:i.downloadAttachment,title:i.downloadAttachment,onclick:e=>{e.preventDefault(),this.downloadAttachmentById(n??-1,l)}}),N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:"details",label:o,slot:"actions-end",text:i.viewAttachment,title:i.viewAttachment,onclick:()=>{e.mode="details",e.attachmentId=l}}))}))}_renderAttachmentsViewListPreview(e){return N("div",{class:q.attachmentsViewListThumbnail,slot:"content-start"},N("span",null,this._renderAttachmentsViewListImage(e)))}_renderAttachmentsViewListImage(e,t=64){const{contentType:i,name:s,size:l,url:n}=e,o=`${n}${n?.includes("?")?"&":"?"}w=${t}&s=${l}`;return this.supportsResizeAttachments&&M(i)?N("img",{alt:s,key:`thumbnail-image-${s}`,src:o,title:s}):N("calcite-icon",{icon:C(i),key:`thumbnail-icon-${s}`,scale:"l",textLabel:s,title:s})}_onAttachmentsViewCandidateChange({target:e}){this.attachmentsViewOptions.candidates=e?.files}_onAttachmentsViewDrop(e){e.preventDefault(),(this.supportsAddAttachments||this.supportsUpdateAttachments)&&(this.attachmentsViewOptions.mode="file",this.attachmentsViewOptions.candidates=e.dataTransfer?.files)}_resetAttachmentsInput(){this._attachmentsInput&&(this._attachmentsInput.value="")}_getLabelForAttachmentType({contentType:e}){const t=this.messages,i=V(e);return t.attachmentTypes[i]}_renderNavigationBar(){const{effectiveTable:e,messages:i,messagesCommon:s,navigationScale:l,relatedTable:n,relatedTables:o}=this;if(!this._shouldShowNavigationBar)return;const{attachmentsList:a,attachmentsViewOptions:r,layer:c,supportsAddAttachments:d,supportsDeleteAttachments:h}=e;if(!c)return;const{attachmentInfos:m,objectId:p}=r,u=null!=p,g=m.length,w=a?.selectedItems?.length??0,b=`${c.objectIdField}: ${p}`,v=t(i.selectedCount,{count:w}),y=t(i.attachmentsCount,{count:g}),f=u?N("calcite-action",{bind:this,icon:J.chevronRight,iconFlipRtl:!0,key:"navigation-feature",scale:l,text:b,textEnabled:!0,title:b,onclick:()=>e.scrollToRow(p)}):void 0,_=u?N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:"navigation-attachments-label",label:y,scale:l,text:y,textEnabled:!0,title:y,onclick:()=>{g>0&&(r.mode="list")}}):void 0,M=u?N("calcite-chip",{closable:!0,closed:0===w,key:"navigation-chip",kind:"inverse",label:v,scale:"s",selected:!0,title:v,value:"selected",onCalciteChipClose:()=>a?.selectedItems?.forEach(e=>e.selected=!1)},v):void 0,C=n?N("calcite-label",{layout:"inline",scale:l},i.showAllTables,N("calcite-switch",{checked:this.allRelatedTablesVisible,scale:l,onCalciteSwitchChange:e=>this.showAllRelatedTables=!!e.currentTarget.checked})):void 0,V=u&&"list"===r.effectiveMode&&null!=p&&w&&h?N("calcite-action",{icon:J.delete,iconFlipRtl:!0,key:"attachments-trash-all",scale:l,text:s.delete,textEnabled:!0,title:t(i.deleteAttachmentCount,{count:w}),onclick:()=>{e.deleteAttachments(p,a?.selectedItems?.map(e=>e.value)??[],!0)}}):void 0,A=u&&"list"===r.effectiveMode&&d?N("calcite-action",{bind:this,icon:J.plus,iconFlipRtl:!0,key:"attachments-add",scale:l,text:i.addAttachment,textEnabled:!0,title:i.addAttachment,onclick:()=>{r.objectId=p,r.attachmentId=null,r.mode="file"}}):void 0;return N("div",{class:q.tableNavigation,key:"table-nav"},N("calcite-action",{icon:J.moveUp,iconFlipRtl:!0,key:"go-back",scale:l,text:this.layer?.title??"",textEnabled:!1,title:n?i.exitRelatedRecords:i.exitAttachments,onclick:()=>this._onTableViewChange(this._resetNestedViews)}),o.toArray().map((e,t)=>this._renderRelatedTableNavigationAction(e,t)),f,_,N("div",null,M,C,V,A))}_renderRelatedTableNavigationAction(e,t){const i=this._getLabelForRelatedTableNavigationAction(e);return N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:t,scale:this.navigationScale,text:i,textEnabled:!0,title:e.layer?.title||"",onclick:()=>{(t!==this.relatedTables.length-1||this._attachmentsViewIsVisible)&&this._onTableViewChange(()=>this._onRelatedNavigationItemClick(t))}})}_getLabelForRelatedTableNavigationAction(e){const t=e.layer?.title;if(!t)return"";const{relatedTables:i}=this;if(i.length<=1)return t;return i.indexOf(e)!==i.length-1&&t.length>20?`${t.slice(0,20)}...`:t}_allColumnsAreVisible(e){return e.every(e=>this.findColumn(e)?.effectiveVisible)}_toggleAllColumns(){const{_columnVisibilityList:e,effectiveTable:t}=this,i=e?.filteredItems.map(e=>e.value);""!==e?.filterText&&i?.length?this._allColumnsAreVisible(i)?i.forEach(e=>this.hideColumn(e)):i.forEach(e=>this.showColumn(e)):t.allColumnsVisible?t.hideAllColumns():t.showAllColumns()}};e([m()],X.prototype,"_attachmentsDialogPreviewLoading",void 0),e([m()],X.prototype,"_attachmentsInput",void 0),e([m()],X.prototype,"_attachmentsViewIsVisible",null),e([m()],X.prototype,"_columnVisibilityActions",void 0),e([m()],X.prototype,"_columnVisibilityActionDisabled",null),e([m()],X.prototype,"_columnVisibilityList",void 0),e([m()],X.prototype,"_dialogIsOpen",null),e([m()],X.prototype,"_effectiveDescription",null),e([m()],X.prototype,"_effectiveLayers",null),e([m()],X.prototype,"_effectiveTitle",null),e([m()],X.prototype,"_effectiveVisibleElements",null),e([m()],X.prototype,"_filteredTables",null),e([m()],X.prototype,"_hasAttachmentsViewError",null),e([m()],X.prototype,"_hasCustomMenuItems",null),e([m()],X.prototype,"_hasDefaultMenuItems",null),e([m()],X.prototype,"_shouldShowGrid",null),e([m()],X.prototype,"_shouldShowMenu",null),e([m()],X.prototype,"_showClearSelectionAction",null),e([m()],X.prototype,"_showColumnVisibilityAction",null),e([m()],X.prototype,"_showDeleteSelectionAction",null),e([m()],X.prototype,"_showExportSelectionToCSVAction",null),e([m()],X.prototype,"_showLayerDropdown",null),e([m()],X.prototype,"_shouldShowNavigationBar",null),e([m()],X.prototype,"_showRefreshDataAction",null),e([m()],X.prototype,"_showSelectedRecordsShowSelectedAction",null),e([m()],X.prototype,"_showSelectedRecordsShowAllAction",null),e([m()],X.prototype,"_showZoomToSelectionAction",null),e([m()],X.prototype,"_viewLayers",null),e([m()],X.prototype,"attachmentsList",void 0),e([m({readOnly:!0})],X.prototype,"grid",null),e([m()],X.prototype,"actionColumn",null),e([m()],X.prototype,"actionColumnConfig",null),e([m({readOnly:!0})],X.prototype,"activeFilters",null),e([m({readOnly:!0})],X.prototype,"activeSortOrders",null),e([m()],X.prototype,"allColumns",null),e([m()],X.prototype,"allColumnsVisible",null),e([m({readOnly:!0})],X.prototype,"allRelatedTablesVisible",null),e([m()],X.prototype,"allVisibleColumns",null),e([m()],X.prototype,"attachmentsColumns",null),e([m()],X.prototype,"attachmentsEnabled",null),e([m()],X.prototype,"attachmentsViewOptions",null),e([m({type:y})],X.prototype,"attributeTableTemplate",null),e([m()],X.prototype,"autoRefreshEnabled",null),e([m()],X.prototype,"autoSaveEnabled",null),e([m()],X.prototype,"canAddRelatedFeature",null),e([m()],X.prototype,"clearPrompt",null),e([m()],X.prototype,"closed",void 0),e([m()],X.prototype,"collapsed",void 0),e([m()],X.prototype,"columnPerformanceModeEnabled",null),e([m()],X.prototype,"columnReorderingEnabled",null),e([m({readOnly:!0})],X.prototype,"columns",null),e([m()],X.prototype,"defaultSelectionManager",null),e([m()],X.prototype,"definitionExpression",null),e([m()],X.prototype,"description",void 0),e([m()],X.prototype,"disabled",void 0),e([m()],X.prototype,"editingEnabled",null),e([m()],X.prototype,"effectiveSelectionManager",null),e([m()],X.prototype,"effectiveSize",null),e([m()],X.prototype,"effectiveTable",null),e([m()],X.prototype,"fieldColumns",null),e([m({types:u})],X.prototype,"filterGeometry",null),e([m()],X.prototype,"filterBySelectionEnabled",null),e([m()],X.prototype,"filterByViewExtent",null),e([m()],X.prototype,"filterByLayerScaleRange",null),e([m()],X.prototype,"groupColumns",null),e([m()],X.prototype,"hasContingentValues",null),e([m()],X.prototype,"hasInvalidPendingEdits",null),e([m()],X.prototype,"hasPendingEdits",null),e([m()],X.prototype,"hiddenFields",null),e([m()],X.prototype,"highlightEnabled",null),e([m()],X.prototype,"highlightIds",null),e([m()],X.prototype,"icon",null),e([m()],X.prototype,"initialSize",null),e([m()],X.prototype,"isQueryingOrSyncing",null),e([m()],X.prototype,"isSyncing",null),e([m()],X.prototype,"isSyncingAttachments",null),e([m()],X.prototype,"label",null),e([m()],X.prototype,"layer",null),e([m()],X.prototype,"layers",null),e([m()],X.prototype,"layerView",null),e([m()],X.prototype,"maxSize",null),e([m(),$("esri/widgets/FeatureTable/t9n/FeatureTable")],X.prototype,"messages",null),e([m(),$("esri/t9n/common")],X.prototype,"messagesCommon",null),e([m(),$("esri/widgets/Editor/t9n/Editor")],X.prototype,"messagesEditor",void 0),e([m(),$("esri/core/t9n/Units")],X.prototype,"messagesUnits",null),e([m(),$("esri/widgets/support/t9n/uriUtils")],X.prototype,"messagesURIUtils",null),e([m()],X.prototype,"menuConfig",null),e([m()],X.prototype,"multipleSelectionEnabled",null),e([m()],X.prototype,"multipleSelectionEnabledOverride",null),e([m()],X.prototype,"multiSortEnabled",null),e([m()],X.prototype,"multipleSortPriority",null),e([m()],X.prototype,"navigationScale",void 0),e([m()],X.prototype,"noDataMessage",null),e([m()],X.prototype,"objectIds",null),e([m()],X.prototype,"outFields",null),e([m()],X.prototype,"pageCount",null),e([m()],X.prototype,"pageIndex",null),e([m()],X.prototype,"pageSize",null),e([m()],X.prototype,"paginationEnabled",null),e([m()],X.prototype,"pendingEditsCount",null),e([m()],X.prototype,"prompt",null),e([m()],X.prototype,"relatedRecordsEnabled",null),e([m()],X.prototype,"relatedTable",null),e([m()],X.prototype,"relatedTableHasContingentValues",null),e([m()],X.prototype,"relatedTableHasInvalidPendingEdits",null),e([m()],X.prototype,"relatedTableHasPendingEdits",null),e([m()],X.prototype,"relatedTables",null),e([m()],X.prototype,"relationship",null),e([m()],X.prototype,"relationshipColumnConfigs",null),e([m()],X.prototype,"relationshipColumns",null),e([m()],X.prototype,"relationshipConfig",null),e([m()],X.prototype,"relationshipInfos",null),e([m()],X.prototype,"returnGeometryEnabled",null),e([m()],X.prototype,"returnMEnabled",null),e([m()],X.prototype,"returnZEnabled",null),e([m()],X.prototype,"rowHighlightIds",null),e([m()],X.prototype,"selectionManager",null),e([m()],X.prototype,"selectionSource",null),e([m()],X.prototype,"showAllRelatedTables",null),e([m()],X.prototype,"showPrompt",null),e([m()],X.prototype,"showRelatedTableCallback",null),e([m()],X.prototype,"size",null),e([m({readOnly:!0})],X.prototype,"state",null),e([m()],X.prototype,"supportsAddAttachments",null),e([m()],X.prototype,"supportsAttachments",null),e([m()],X.prototype,"supportsDeleteAttachments",null),e([m()],X.prototype,"supportsResizeAttachments",null),e([m()],X.prototype,"supportsUpdateAttachments",null),e([m()],X.prototype,"syncTemplateOnChangesEnabled",null),e([m()],X.prototype,"syncViewSelection",null),e([m()],X.prototype,"syncWithViewSelectionManager",null),e([m({constructOnly:!0})],X.prototype,"tableController",null),e([m({constructOnly:!0})],X.prototype,"tableParent",null),e([m({type:P})],X.prototype,"tableTemplate",null),e([m()],X.prototype,"tableTemplateOverride",null),e([m()],X.prototype,"title",void 0),e([m({type:f})],X.prototype,"timeExtent",null),e([m()],X.prototype,"timeZone",null),e([m()],X.prototype,"view",null),e([m({type:T}),U(["cell-click","cell-dblclick","cell-pointerover","cell-pointerout","cell-keydown","column-reorder","show-related-table"])],X.prototype,"viewModel",void 0),e([m()],X.prototype,"visibleColumns",null),e([m({type:I,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([m({type:I})],X.prototype,"visibleElementsOverride",null),X=G=e([p("esri.widgets.FeatureTable")],X);const Y=X;export{Y as default};
2
+ import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{isSome as i}from"../core/arrayUtils.js";import{deprecateWidget as n}from"../core/deprecate.js";import s from"../core/Logger.js";import{watch as l,sync as o,syncAndInitial as a,initial as r,on as c}from"../core/reactiveUtils.js";import{renderingSanitizer as d}from"../core/sanitizerUtils.js";import{formatFileSize as h}from"../core/unitFormatUtils.js";import{property as m,subclass as p}from"../core/accessorSupport/decorators.js";import{geometryTypes as u}from"../geometry/support/typeUtils.js";import{isLayerFromCatalog as g}from"../layers/catalog/catalogUtils.js";import{isKnowledgeGraphLayer as w,isMapImageLayer as b,isSubtypeGroupLayer as v}from"../layers/support/layerUtils.js";import y from"../tables/AttributeTableTemplate.js";import f from"../time/TimeExtent.js";import _ from"./Widget.js";import{isSupportedImage as M,getCalciteIconForAttachment as C,getAttachmentTypeCategory as V}from"./Attachments/support/attachmentUtils.js";import{loadPromptComponents as A,Prompt as E}from"./Editor/components/Prompt.js";import S from"./FeatureTable/ColumnMenuVisibleElements.js";import T from"./FeatureTable/FeatureTableViewModel.js";import I from"./FeatureTable/VisibleElements.js";import{isGroupColumn as D,isFieldColumn as R}from"./FeatureTable/support/columnUtils.js";import P from"./FeatureTable/support/TableTemplate.js";import{loadFieldColumnComponents as x,isIFeatureTableSupportedLayer as k,isIFeatureTableSupportedLayerWithAttachments as L,getRelationshipIdsToShow as O}from"./FeatureTable/support/tableUtils.js";import{loadCalciteComponents as F}from"./support/componentsUtils.js";import{globalCss as z}from"./support/globalCss.js";import{getIconForLayer as j}from"./support/iconUtils.js";import{messageBundle as $,vmEvent as U,tsx as N,tsxFragment as B}from"./support/widget.js";import{storeNode as H,discardNode as Z}from"./support/widgetUtils.js";var G;const Q="esri-feature-table",W=`${Q}__dialog`,K=`${Q}__attachments-view`,q={base:Q,content:`${Q}__content`,menuPopover:`${Q}__menu-popover`,layerDropdownMenu:`${Q}__layer-switcher-menu`,tableContainer:`${Q}__table-container`,tableContainerWithAttachments:`${Q}__table-container--attachments`,tableNavigation:`${Q}__table-navigation`,attachmentsView:K,attachmentsViewContent:`${K}__content`,attachmentsViewDetails:`${K}__details`,attachmentsViewDropArea:`${K}__drop-area`,attachmentsViewDropAreaLabel:`${K}__drop-area__label`,attachmentsViewDropAreaMessage:`${K}__drop-area__message`,attachmentsViewIcon:`${K}__icon`,attachmentsViewInformation:`${K}__information`,attachmentsViewInformationData:`${K}__information__data`,attachmentsViewInformationLabel:`${K}__information__label`,attachmentsViewList:`${K}__list`,attachmentsViewListFileSize:`${K}__list__filesize`,attachmentsViewListThumbnail:`${K}__list__thumbnail`,expanded:`${Q}__expanded`,collapsed:`${Q}__collapsed`,dialog:`${W}`,dialogContent:`${W}__content`,dialogHeader:`${W}__header`,footerMessage:`${Q}__footer__message`,footerIconDanger:`${Q}__footer__icon--danger`,footerIconSuccess:`${Q}__footer__icon--success`},J={checkCircle:"check-circle",chevronRight:"chevron-right",clearSelection:"clear-selection",downloadTo:"download-to",exclamationMarkTriangle:"exclamation-mark-triangle",expand:"expand",exportToCSV:"file-csv",folderOpen:"folder-open",delete:"trash",layers:"layers",moveUp:"move-up",plus:"plus",refresh:"refresh",reset:"reset",save:"save",showAll:"selection-x",showColumn:"show-column",showSelected:"selection-filter",table:"table",upload:"upload",zoomToSelection:"zoom-to-object"};let X=G=class extends _{constructor(e,t){super(e,t),this._attachmentsDialogPreviewLoading=!1,this._attachmentsInput=null,this._columnVisibilityActions=new Map,this._columnVisibilityList=null,this.attachmentsList=null,this.closed=!1,this.collapsed=!1,this.columnVisibilityMenuConfig=null,this.description=null,this.disabled=!1,this.messagesEditor=null,this.navigationScale="m",this.title=null,this.viewModel=new T,this.visibleElements=new I,this.announceDeprecation=()=>{n(s.getLogger(this),"Feature Table","arcgis-feature-table",{version:"5.0"})},this._showDeleteSelectionPrompt=this._showDeleteSelectionPrompt.bind(this),this._showDiscardEditsPrompt=this._showDiscardEditsPrompt.bind(this),this._resetNestedViews=this._resetNestedViews.bind(this)}initialize(){this.addHandles([l(()=>[this.isQueryingOrSyncing,this.editingEnabled],()=>this.scheduleRender()),l(()=>[this._effectiveVisibleElements,this._effectiveVisibleElements.columnDescriptions,this._effectiveVisibleElements.columnMenus,this._effectiveVisibleElements.columnMenuItems,this.columns.length],()=>{this.columns.forEach(e=>e.visibleElements=this._effectiveVisibleElements),this.refreshCellContent()},o),l(()=>[this.topLayerDisabled,this.columns],()=>this.columns.forEach(e=>e.topLayerDisabled=this.topLayerDisabled),a),l(()=>this._effectiveVisibleElements.selectionColumn,e=>{this.grid&&(this.grid.selectionColumnEnabled=e)},r),c(()=>this.viewModel,"show-related-table",e=>this._onShowRelatedTable(e)),l(()=>this.editingEnabled,()=>{const{attachmentsViewOptions:e}=this;this.clearPrompt(),e&&(e.form?.reset(),e.candidates=null)})])}loadDependencies(){return Promise.all([F({action:()=>import("@esri/calcite-components/dist/components/calcite-action"),alert:()=>import("@esri/calcite-components/dist/components/calcite-alert"),button:()=>import("@esri/calcite-components/dist/components/calcite-button"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),list:()=>import("@esri/calcite-components/dist/components/calcite-list"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice"),pagination:()=>import("@esri/calcite-components/dist/components/calcite-pagination"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover"),progress:()=>import("@esri/calcite-components/dist/components/calcite-progress"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")}),A(),x()])}destroy(){this.drainRelatedTables(),this.clearPrompt()}get _attachmentsViewIsVisible(){return!(null==this.attachmentsViewOptions.objectId&&!this.relatedTables.some(e=>null!=e.attachmentsViewOptions.objectId))}get _columnVisibilityActionDisabled(){const e=this.effectiveTable;return e.menuConfig?.disabled??0===e.columns.length}get _dialogIsOpen(){return!!this.attachmentsViewOptions.dialogInfo}get _effectiveDescription(){const{description:e}=this;return null!=e?d.sanitize("function"==typeof e?e():e):void 0}get _effectiveLayers(){const{layer:e,layers:t}=this,i=t?.length?t.filter(k):[],n=i.length?i:[...this._viewLayers];return e&&!n.includes(e)&&n.push(e),n}get _effectiveTitle(){const{layer:e,messages:i,state:n,highlightIds:s,title:l,size:o}=this;if(l)return d.sanitize("function"==typeof l?l():l);if(!i)return"";if(!e)return i.noLayer;switch(n){case"disabled":return i.errorLayer;case"ready":case"loading":return i.loading;case"error":return i.errorData}return t(i.header,{title:d.sanitize(e.title),count:o,selected:s.length})}get _effectiveVisibleElements(){return this.visibleElementsOverride??this.visibleElements}get _filteredTables(){const e=this.relatedTables.toArray(),t=1===e.length;return this.allRelatedTablesVisible?e:t?[e[0]]:this._attachmentsViewIsVisible?e.slice(-1):e.slice(-2)}get _hasAttachmentsViewError(){return null!=this.attachmentsViewOptions.error}get _hasCustomMenuItems(){return!!this.menuConfig?.items?.length}get _hasDefaultMenuItems(){return!!(this._showClearSelectionAction||this._showDeleteSelectionAction||this._showExportSelectionToCSVAction||this._showRefreshDataAction||this._showZoomToSelectionAction||this._showSelectedRecordsShowSelectedAction||this._showSelectedRecordsShowAllAction||this._showColumnVisibilityAction)}get _shouldShowGrid(){return this.allRelatedTablesVisible||1===this.relatedTables.length&&!this._attachmentsViewIsVisible}get _shouldShowMenu(){const{header:e,menu:t}=this._effectiveVisibleElements;return!(!e||!t||!this._hasDefaultMenuItems&&!this._hasCustomMenuItems)}get _showClearSelectionAction(){return!(!this.effectiveTable.highlightIds.length||!this._effectiveVisibleElements.menuItems?.clearSelection||this._attachmentsViewIsVisible)}get _showColumnVisibilityAction(){const{columnVisibilityMenu:e,header:t,menu:i,menuItems:n}=this._effectiveVisibleElements;return!(!(t&&i&&e&&!1!==n?.toggleColumns)||this.showRelatedTableCallback||this.allRelatedTablesVisible||this._attachmentsViewIsVisible)}get _showDeleteSelectionAction(){return!(!(this.editingEnabled&&this.highlightIds.length&&this._effectiveVisibleElements.menuItems?.deleteSelection&&this.layer?.capabilities?.operations?.supportsDelete)||this.relatedTables.length||this._attachmentsViewIsVisible)}get _showExportSelectionToCSVAction(){return!(!(this._effectiveVisibleElements.menuItems.exportSelectionToCSV&&this.layer&&this.highlightIds.length)||this.relatedTables.length)}get _showLayerDropdown(){return!(!this._effectiveLayers.length||!this._effectiveVisibleElements.layerDropdown)}get _shouldShowNavigationBar(){const e=!!this.relatedTable||this._attachmentsViewIsVisible;return!this.tableParent&&e}get _showRefreshDataAction(){return!!this._effectiveVisibleElements.menuItems?.refreshData}get _showSelectedRecordsShowSelectedAction(){const e=this.objectIds.length,t=this.highlightIds.length;return!(!t||!this._effectiveVisibleElements.menuItems?.selectedRecordsShowSelectedToggle||e&&t===e||this.relatedTables.length||this._attachmentsViewIsVisible)}get _showSelectedRecordsShowAllAction(){return!(!this._effectiveVisibleElements.menuItems?.selectedRecordsShowAllToggle||!this.objectIds.length||this.relatedTables.length)}get _showZoomToSelectionAction(){const e=this.effectiveTable;return!(!e.view||!e.highlightIds.length||e.layer?.isTable||!this._effectiveVisibleElements.menuItems?.zoomToSelection)}get _viewLayers(){const e=this.view?.map;if(!e)return[];const t=new Set,i=e=>{!k(e)||v(e)||t.has(e)||"sublayer"===e.type&&!e.capabilities?.operations?.supportsQuery||(e.load(),t.add(e))},n=e=>{g(e)||"catalog-footprint"===e.type||(w(e)?(e.load(),e.layers?.forEach(i),e.tables?.forEach(i)):b(e)?(e.loadAll(),e.allSublayers?.forEach(i),e.subtables?.forEach(i)):v(e)?(e.loadAll(),e.sublayers?.forEach(i)):i(e))};return e.allLayers.forEach(n),e.allTables.forEach(n),[...t.values()]}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get grid(){return this.viewModel.grid}get actionColumn(){return this.viewModel.actionColumn}get actionColumnConfig(){return this.viewModel.actionColumnConfig}set actionColumnConfig(e){this.viewModel.actionColumnConfig=e}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get allColumns(){return this.viewModel.allColumns}get allColumnsVisible(){return this.viewModel.allColumnsVisible}get allRelatedTablesVisible(){return this.viewModel.allRelatedTablesVisible}get allVisibleColumns(){return this.viewModel.allVisibleColumns}get attachmentsColumns(){return this.viewModel.attachmentsColumns}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get attachmentsViewOptions(){return this.viewModel.attachmentsViewOptions}set attachmentsViewOptions(e){this.viewModel.attachmentsViewOptions=e}get attributeTableTemplate(){return this.viewModel.attributeTableTemplate}set attributeTableTemplate(e){this.viewModel.attributeTableTemplate=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get autoSaveEnabled(){return this.viewModel.autoSaveEnabled}set autoSaveEnabled(e){this.viewModel.autoSaveEnabled=e}get canAddRelatedFeature(){return this.viewModel.canAddRelatedFeature}get clearPrompt(){return this.viewModel.clearPrompt}set clearPrompt(e){this.viewModel.clearPrompt=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get defaultSelectionManager(){return this.viewModel.defaultSelectionManager}get definitionExpression(){return this.viewModel.definitionExpression}set definitionExpression(e){this.viewModel.definitionExpression=e}get container(){return super.container}set container(e){super.container=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveSelectionManager(){return this.viewModel.effectiveSelectionManager}get effectiveSize(){return this.viewModel.effectiveSize}get effectiveTable(){return this.relatedTable||this}get fieldColumns(){return this.viewModel.fieldColumns}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get filterBySelectionEnabled(){return this.viewModel.filterBySelectionEnabled}set filterBySelectionEnabled(e){this.viewModel.filterBySelectionEnabled=e}get filterByViewExtent(){return this.viewModel.filterByViewExtent}set filterByViewExtent(e){this.viewModel.filterByViewExtent=e}get filterByLayerScaleRange(){return this.viewModel.filterByLayerScaleRange}set filterByLayerScaleRange(e){this.viewModel.filterByLayerScaleRange=e}get groupColumns(){return this.viewModel.groupColumns}get hasContingentValues(){return this.viewModel.hasContingentValues}get hasInvalidPendingEdits(){return this.viewModel.hasInvalidPendingEdits}get hasPendingEdits(){return this.viewModel.hasPendingEdits}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 icon(){return J.table}set icon(e){this._overrideIfSome("icon",e)}get initialSize(){return this.viewModel.initialSize}set initialSize(e){this.viewModel.initialSize=e}get isQueryingOrSyncing(){return this.viewModel.isQueryingOrSyncing}get isSyncing(){return this.viewModel.isSyncing}get isSyncingAttachments(){return this.viewModel.isSyncingAttachments}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 layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}get layerView(){return this.viewModel.layerView}get maxSize(){return this.viewModel.maxSize}set maxSize(e){this.viewModel.maxSize=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 messagesUnits(){return this.viewModel.messagesUnits}set messagesUnits(e){this.viewModel.messagesUnits=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get menuConfig(){return this.viewModel.menuConfig}set menuConfig(e){this.viewModel.menuConfig=e}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get objectIds(){return this.viewModel.objectIds}set objectIds(e){this.viewModel.objectIds=e}get outFields(){return this.viewModel.outFields}set outFields(e){this.viewModel.outFields=e}get pageCount(){return this.viewModel.pageCount}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get pendingEditsCount(){return this.viewModel.pendingEditsCount}get prompt(){return this.viewModel.prompt}set prompt(e){this.viewModel.prompt=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get relatedTable(){return this.viewModel.relatedTable}get relatedTableHasContingentValues(){return this.viewModel.relatedTableHasContingentValues}get relatedTableHasInvalidPendingEdits(){return this.viewModel.relatedTableHasInvalidPendingEdits}get relatedTableHasPendingEdits(){return this.viewModel.relatedTableHasPendingEdits}get relatedTables(){return this.viewModel.relatedTables}get relationship(){return this.viewModel.relationship}get relationshipColumnConfigs(){return this.viewModel.relationshipColumnConfigs}set relationshipColumnConfigs(e){this.viewModel.relationshipColumnConfigs=e}get relationshipColumns(){return this.viewModel.relationshipColumns}get relationshipConfig(){return this.viewModel.relationshipConfig}set relationshipConfig(e){this.viewModel.relationshipConfig=e}get relationshipInfos(){return this.viewModel.relationshipInfos}get returnGeometryEnabled(){return this.viewModel.returnGeometryEnabled}set returnGeometryEnabled(e){this.viewModel.returnGeometryEnabled=e}get returnMEnabled(){return this.viewModel.returnMEnabled}set returnMEnabled(e){this.viewModel.returnMEnabled=e}get returnZEnabled(){return this.viewModel.returnZEnabled}set returnZEnabled(e){this.viewModel.returnZEnabled=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get selectionManager(){return this.viewModel.selectionManager}set selectionManager(e){this.viewModel.selectionManager=e}get selectionSource(){return this.viewModel.selectionSource}set selectionSource(e){this.viewModel.selectionSource=e}get showAllRelatedTables(){return this.viewModel.showAllRelatedTables}set showAllRelatedTables(e){this.viewModel.showAllRelatedTables=e}get showPrompt(){return this.viewModel.showPrompt}set showPrompt(e){this.viewModel.showPrompt=e}get showRelatedTableCallback(){return this.viewModel.showRelatedTableCallback}set showRelatedTableCallback(e){this.viewModel.showRelatedTableCallback=e}get size(){return this.viewModel.size}get state(){return this.viewModel.state}get supportsAddAttachments(){return this.viewModel.supportsAddAttachments}get supportsAttachments(){return this.viewModel.supportsAttachments}get supportsDeleteAttachments(){return this.viewModel.supportsDeleteAttachments}get supportsResizeAttachments(){return this.viewModel.supportsResizeAttachments}get supportsUpdateAttachments(){return this.viewModel.supportsUpdateAttachments}get syncTemplateOnChangesEnabled(){return this.viewModel.syncTemplateOnChangesEnabled}set syncTemplateOnChangesEnabled(e){this.viewModel.syncTemplateOnChangesEnabled=e}get syncViewSelection(){return this.viewModel.syncViewSelection}set syncViewSelection(e){this.viewModel.syncViewSelection=e}get syncWithViewSelectionManager(){return this.syncViewSelection}set syncWithViewSelectionManager(e){this.syncViewSelection=e}get tableController(){return this.viewModel.tableController}set tableController(e){this.viewModel.tableController=e}get tableParent(){return this.viewModel.tableParent}set tableParent(e){this.viewModel.tableParent=e}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get tableTemplateOverride(){return this.viewModel.tableTemplateOverride}set tableTemplateOverride(e){this.viewModel.tableTemplateOverride=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get timeZone(){return this.viewModel.timeZone}set timeZone(e){this.viewModel.timeZone=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visibleColumns(){return this.viewModel.visibleColumns}get visibleElementsOverride(){const{attachmentsViewOptions:e,relatedTable:t,tableController:i,visibleElements:n}=this,{columnDescriptions:s,columnMenus:l,tooltips:o}=n,a=null!=e.objectId;if(t)return new I({columnDescriptions:s,columnMenus:l,tooltips:o,close:n.close,header:n.header,layerDropdown:n.layerDropdown,layerDropdownIcons:n.layerDropdownIcons,menu:n.menu,menuItems:n.menuItems,progress:n.progress,selectionColumn:!1,columnMenuItems:new S({sortAscending:!1,sortDescending:!1})});if(i){const e=i.relatedTable===this,t=i.allRelatedTablesVisible,r=e&&n.selectionColumn&&!t&&!a,c=e&&!t&&!a;return new I({columnDescriptions:s,columnMenus:l,tooltips:o,selectionColumn:r,close:!1,header:!1,layerDropdown:!1,menu:!1,pendingEditsFooter:!1,progress:!1,columnMenuItems:new S({sortAscending:c,sortDescending:c})})}return a?new I({columnDescriptions:s,columnMenus:l,tooltips:o,close:n.close,header:n.header,layerDropdown:n.layerDropdown,layerDropdownIcons:n.layerDropdownIcons,menu:n.menu,menuItems:n.menuItems,progress:n.progress,selectionColumn:!1,columnMenuItems:new S({sortAscending:!1,sortDescending:!1})}):null}addPendingEdits(e){this.viewModel.addPendingEdits(e)}clearSelection(){this.effectiveTable.viewModel.clearSelection()}async deleteAttachments(e,t,i){null!=e&&t?.length&&(i?this._showDeleteAttachmentPrompt(e,t):await this.viewModel.deleteAttachments(e,t))}async deleteSelection(e){this.highlightIds.length&&(e?this._showDeleteSelectionPrompt():await this.viewModel.deleteSelection())}async discardPendingEdits(e,t){return t?this._showDiscardEditsPrompt(e):this.viewModel.discardPendingEdits(e)}async downloadAttachmentById(e,t){return this.viewModel.downloadAttachmentById(e,t)}drainRelatedTables(){this.viewModel.drainRelatedTables()}async exportSelectionToCSV(e){return this.viewModel.exportSelectionToCSV(e)}findColumn(e){return this.viewModel.findColumn(e)}getFeatureStoreItemByObjectId(e){return this.viewModel.getFeatureStoreItemByObjectId(e)}goToPage(e){this.viewModel.goToPage(e)}hideAllColumns(){this.viewModel.hideAllColumns()}hideColumn(e){this.grid?.hideColumn(e)}nextPage(){this.viewModel.nextPage()}previousPage(){this.viewModel.previousPage()}async refresh(){await this.viewModel.refresh()}refreshCellContent(){this.viewModel.refreshCellContent()}async saveAttachmentsViewForm(){await this.viewModel.saveAttachmentsViewForm()}async savePendingEdits(){await this.viewModel.savePendingEdits()}showAllColumns(){this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e)}sortColumn(e,t){this.viewModel.sortColumn(e,t)}scrollLeft(){this.viewModel.scrollLeft()}scrollToBottom(){this.viewModel.scrollToBottom()}scrollToIndex(e){this.viewModel.scrollToIndex(e)}scrollToRow(e){this.viewModel.scrollToRow(e)}scrollToTop(){this.viewModel.scrollToTop()}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}get visibilityMenuColumns(){const e=this.effectiveTable.columns;return this.columnVisibilityMenuConfig?.frozenColumnsExcluded?e.filter(e=>!e.frozen&&!e.frozenToEnd).toArray():e.toArray()}async zoomToSelection(){return this.effectiveTable.viewModel.zoomToSelection()}render(){const{_effectiveVisibleElements:e,isQueryingOrSyncing:t,menuConfig:i,state:n}=this;return N("div",{bind:this,class:this.classes(q.base,z.widget)},N("calcite-panel",{bind:this,class:q.content,closable:e.close,closed:this.closed,collapsed:this.collapsed,collapsible:e.collapse,description:this._effectiveDescription,dir:this.direction,disabled:this.disabled||"disabled"===n&&!this._effectiveLayers?.length,heading:e.header?this._effectiveTitle:void 0,key:"table-content",loading:"loading"===n,menuOpen:!!i?.open,overlayPositioning:"fixed",onCalcitePanelClose:()=>{this.closed=!0,this.emit("close")},onCalcitePanelToggle:e=>{this.collapsed=e.target.collapsed,this.emit("toggle")}},e.progress?N("calcite-progress",{type:t?"indeterminate":"determinate"}):null,this._showLayerDropdown?this._renderLayerDropdown():null,this._renderColumnVisibilityAction(),this._renderHeaderMenuActions(),this._renderNavigationBar(),this._renderTables(),this._renderError(),this._renderFooterContent()),this._renderColumnVisibilityPopover(),this._renderPrompt(),this._renderDialog())}_renderTables(){const{grid:e,relatedTables:t}=this,i=this.classes(q.tableContainer);if(t.length){const n=this.classes(q.base,this.allRelatedTablesVisible?q.expanded:q.collapsed,this._attachmentsViewIsVisible?q.tableContainerWithAttachments:void 0);return N("div",{class:i},N("calcite-panel",{overlayPositioning:"fixed"},N("div",null,[this._shouldShowGrid?N("div",{class:n},e?.render(),this._renderPagination()):void 0,...this._filteredTables.map(e=>{const i=t.indexOf(e);return N("div",{class:n,key:`related-${i}`},e.render())}),,])))}return null!=this.attachmentsViewOptions.objectId?N("div",{class:i},N("calcite-panel",{overlayPositioning:"fixed"},N("div",null,[N("div",{class:this.classes(q.base,q.collapsed)},e?.render(),this._renderPagination()),this._renderAttachmentsView()]))):[N("div",{class:i},e?.render()),this._renderPagination()]}_renderPagination(){if(this.paginationEnabled)return N("calcite-pagination",{pageSize:1,startItem:this.pageIndex+1,totalItems:this.pageCount,onCalcitePaginationChange:e=>{this._attachmentsDialogPreviewLoading=!1,this.goToPage(e.currentTarget.startItem-1)}})}_renderError(){const{messages:e}=this;return N("calcite-alert",{autoClose:!0,autoCloseDuration:"fast",icon:J.exclamationMarkTriangle,kind:"danger",label:e.errorOccured,open:this._hasAttachmentsViewError,slot:"alerts",topLayerDisabled:this.topLayerDisabled,onCalciteAlertClose:()=>{this.attachmentsViewOptions.error=null}},N("span",{slot:"message"},e.errorOccured))}_renderFooterContent(){if(!this.hasPendingEdits||!this._effectiveVisibleElements.pendingEditsFooter)return;const{hasInvalidPendingEdits:e,isQueryingOrSyncing:t,messages:i,messagesCommon:n}=this,s=e||t,l=this.hasContingentValues,o=[N("calcite-button",{appearance:"outline",disabled:t,iconStart:J.reset,key:"footer-reset-button",slot:"footer-end",width:"auto",onclick:()=>{this.discardPendingEdits()}},n.reset),N("calcite-button",{disabled:s,iconStart:J.save,key:"footer-save-button",loading:this.isSyncing,slot:"footer-end",width:"auto",onclick:()=>{this.savePendingEdits()}},n.save)];if(l){const t=e?i.contingentValues.hasInvalidValues:i.contingentValues.hasValidValues,n=e?J.exclamationMarkTriangle:J.checkCircle,s=e?q.footerIconDanger:q.footerIconSuccess;o.push(N("div",{class:q.footerMessage,key:"footer-message",slot:"footer-start"},N("calcite-icon",{class:s,icon:n,scale:"s",slot:"footer-start"}),t))}return o}_renderPrompt(){return this.prompt?N(E,{...this.prompt,headingLevel:2}):void 0}_showDeleteSelectionPrompt(){const{messages:e,messagesCommon:i}=this,n=t(e.deleteSelectionCount,{count:this.highlightIds.length});this.showPrompt({title:n,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:i.delete,action:async()=>{try{await this.viewModel.deleteSelection()}finally{this.clearPrompt()}}},secondary:{label:e.keepRecords,action:()=>this.clearPrompt()}}})}_showDeleteAttachmentPrompt(e,i){const{messages:n,messagesCommon:s}=this,l=t(n.deleteAttachmentCount,{count:i.length});this.showPrompt({title:l,message:n.deleteAttachmentConfirmation,context:"danger",actions:{primary:{label:s.delete,action:async()=>{try{await this.deleteAttachments(e,i,!1)}finally{this.clearPrompt()}}},secondary:{label:s.cancel,action:()=>this.clearPrompt()}}})}async _showDiscardEditsPrompt(e){const t=Promise.withResolvers(),{messagesEditor:i}=this;return this.showPrompt({title:i.cancelEditTitle,message:i.cancelEditWarningMessage,context:"danger",actions:{primary:{label:i.discardEdits,action:async()=>{try{await this.discardPendingEdits(e)}finally{t.resolve(!0)}}},secondary:{label:i.continueEditing,action:()=>t.resolve(!1)}}}),t.promise.finally(()=>this.clearPrompt())}_onTableViewChange(e){this.hasPendingEdits?this._showDiscardEditsPrompt().then(t=>t&&e()):e()}_resetNestedViews(){this.relatedTable&&this.drainRelatedTables(),this.effectiveTable.attachmentsViewOptions.objectId=null}_renderDialog(){const{attachmentsViewOptions:e,messages:t}=this,{objectId:i}=e;return N("calcite-dialog",{class:q.dialog,description:this.viewModel.getFeatureTitleSync(i),heading:t.attachments,modal:!0,open:this._dialogIsOpen,placement:"cover",width:"l",onCalciteDialogClose:()=>this._onDialogClose()},this._renderDialogContent())}_renderDialogContent(){const e=this.attachmentsViewOptions.dialogInfo;if(e)return this._renderAttachmentsDialogContent(e)}_renderAttachmentsDialogContent(e){const{attachmentsViewOptions:t,messages:i}=this,{attachmentInfos:n}=t,s=n.indexOf(e);return N(B,null,N("div",{class:q.dialogHeader,key:"header",slot:"content-top"},N("span",null,e.name),N("calcite-button",{appearance:"outline",onclick:()=>{t.attachmentId=e.id,t.dialogId=null}},i.viewDetails)),N("calcite-progress",{type:this._attachmentsDialogPreviewLoading?"indeterminate":"determinate"}),N("div",{class:q.dialogContent,key:"content"},this._renderAttachmentsViewDetailsImage(e)),N("calcite-pagination",{pageSize:1,slot:"footer",startItem:s+1,totalItems:n.length,onCalcitePaginationChange:e=>{const i=e.currentTarget.startItem-1,s=n[i]?.id;t.dialogId=s}}))}_onDialogClose(){const e=this.attachmentsViewOptions;null!=e.dialogId&&(e.dialogId=null),this._attachmentsDialogPreviewLoading=!1}_renderHeaderMenuAction(e){const{disabled:t,hidden:i,icon:n,text:s,clickFunction:l}=e;if(!i)return N("calcite-action",{disabled:t??this.menuConfig?.disabled,icon:n??void 0,key:s,slot:"header-menu-actions",text:s,textEnabled:!0,title:s,onclick:()=>l()})}_renderHeaderMenuActions(){return this._shouldShowMenu?[this._renderDefaultHeaderMenuActions(),this._renderCustomHeaderMenuActions()]:[]}_renderDefaultHeaderMenuActions(){if(!this._hasDefaultMenuItems)return[];const{messages:e}=this;return[this._showRefreshDataAction&&{icon:J.refresh,text:e.refreshData,clickFunction:()=>this.refresh()},this._showDeleteSelectionAction&&{icon:J.delete,text:e.deleteSelection,clickFunction:()=>this.deleteSelection(!0)},this._showClearSelectionAction&&{icon:J.clearSelection,text:e.clearSelection,clickFunction:()=>this.clearSelection()},this._showZoomToSelectionAction&&{icon:J.zoomToSelection,text:e.zoomToSelection,clickFunction:()=>this.zoomToSelection()},this._showSelectedRecordsShowSelectedAction&&{icon:J.showSelected,text:e.showSelected,clickFunction:()=>{const{objectIds:e}=this;e.removeAll(),e.addMany(this.highlightIds.toArray())}},this._showSelectedRecordsShowAllAction&&{icon:J.showAll,text:e.showAllRecords,clickFunction:()=>this.objectIds.removeAll()},this._showExportSelectionToCSVAction&&{icon:J.exportToCSV,text:e.exportSelectionCSV,clickFunction:()=>this.exportSelectionToCSV()}].filter(i).map(e=>e&&this._renderHeaderMenuAction(e))}_renderCustomHeaderMenuActions(){return this.menuConfig?.items?.map(({disabled:e,hidden:t,icon:i,label:n,clickFunction:s})=>this._renderHeaderMenuAction({hidden:"function"==typeof t?t():t,icon:i,text:n,disabled:"function"==typeof e?e():e,clickFunction:e=>s(e)}))??[]}_renderColumnVisibilityAction(){if(!this._showColumnVisibilityAction)return[];const{_columnVisibilityActions:e,id:t}=this,i=this.messages.menuText.columnVisibility;return N("calcite-action",{afterCreate:i=>e.set(t,i),afterRemoved:()=>e.delete(t),bind:this,disabled:this._columnVisibilityActionDisabled,icon:J.showColumn,id:`${t}__toggle-columns-action`,slot:"header-actions-end",text:i},this._effectiveVisibleElements.tooltips?N("calcite-tooltip",{closeOnClick:!0,overlayPositioning:"fixed",placement:"bottom-end",referenceElement:e.get(t),topLayerDisabled:this.topLayerDisabled},i):null)}_renderColumnVisibilityPopover(){if(!this._showColumnVisibilityAction||this._columnVisibilityActionDisabled)return;const e=this.visibleElements.columnVisibilityMenuItems.header,t=this.messages.menuText.columnVisibility;return N("calcite-popover",{autoClose:!0,class:q.menuPopover,closable:e,heading:e?t:void 0,label:t,overlayPositioning:"fixed",placement:this.columnVisibilityMenuConfig?.placement,referenceElement:this._columnVisibilityActions.get(this.id),topLayerDisabled:this.topLayerDisabled},this._renderColumnVisibilityList())}_renderColumnVisibilityList(){const{visibilityMenuColumns:e,messages:{menuText:t}}=this;if(0!==e.length)return N("calcite-list",{afterCreate:H,afterRemoved:Z.bind(this),afterUpdate:H,bind:this,"data-node-ref":"_columnVisibilityList",dir:this.direction,displayMode:"nested",filterEnabled:this.visibleElements.columnVisibilityMenuItems.filter,filterPlaceholder:t.searchFields,label:t.fieldVisibility,selectionMode:"multiple",onCalciteListChange:()=>this._syncColumnVisibility(),onCalciteListFilter:()=>this.scheduleRender()},this._renderColumnToggleAll(),e.map(e=>{const t=D(e)?e.columns?.map(e=>this._renderColumnListItem({column:e})):void 0;return this._renderColumnListItem({column:e,items:t})}),N("calcite-notice",{appearance:"transparent",kind:"neutral",open:!0,slot:"filter-no-results"},N("div",{slot:"message"},t.noMatchesFound)))}_syncColumnVisibility(){const{effectiveTable:e,_columnVisibilityList:t}=this;if(!t)return;const i=new Set(t.selectedItems.map(e=>e.value)),n=!!this.columnVisibilityMenuConfig?.frozenColumnsExcluded;e.allColumns.forEach(t=>{n&&(t.frozen||t.frozenToEnd)||(i.has(t.fieldName)?e.showColumn(t.fieldName):e.hideColumn(t.fieldName))})}_renderColumnToggleAll(){if(!this.visibleElements.columnVisibilityMenuItems.toggleAll)return;const{_columnVisibilityList:e}=this;return e&&e.filteredItems?.length?N("calcite-button",{appearance:"transparent",width:"full",onclick:()=>this._toggleAllColumns()},this._getColumnToggleAllText()):void 0}_getColumnToggleAllText(){const{_columnVisibilityList:e,effectiveTable:t,messages:{menuText:i}}=this;return e?""===e.filterText?t.allColumnsVisible?i.deselectAll:i.selectAll:this._allColumnsAreVisible(e.filteredItems.map(e=>e.value))?i.deselectAll:i.selectAll:""}_renderColumnListItem(e){const{column:t,items:i}=e,{effectiveLabel:n,fieldName:s,hidden:l}=t;return N("calcite-list-item",{expanded:!(!i?.length||l)||void 0,key:`toggle-columns__item-${s}`,label:n,metadata:{description:t.effectiveDescription,type:R(t)?t.field.type:void 0},selected:!l,value:s},i)}_renderLayerDropdown(){const e=this.messages.selectALayer;return N("div",{class:q.layerDropdownMenu,key:`${this.id}-layerDropdown`,slot:"header-actions-start"},N("calcite-dropdown",{bind:this,maxItems:5,overlayPositioning:"fixed",placement:"bottom-start",topLayerDisabled:this.topLayerDisabled},N("calcite-action",{icon:J.layers,slot:"trigger",text:e,title:e}),N("calcite-dropdown-group",{selectionMode:"single"},this._effectiveLayers.map((e,t)=>this._renderLayerDropdownItem(e,t))??null)))}_renderLayerDropdownItem(e,t){const i=this.visibleElements.layerDropdownIcons;return N("calcite-dropdown-item",{iconStart:i?j(e):void 0,key:`dropdown-item-${t}`,label:e.title??"",selected:e===this.layer,value:e.id,onCalciteDropdownItemSelect:()=>this._onTableViewChange(()=>this.layer=e)},e.title)}_onRelatedNavigationItemClick(e){this.viewModel.drainRelatedTablesAboveIndex(e)}_collapseRelatedTable(e){this.viewModel.collapseRelatedTable(this.effectiveTable,e)}_onShowRelatedTable(e){this.showRelatedTableCallback||this.hasPendingEdits||(this._collapseRelatedTable(e),this._createRelatedTable(e))}async _createRelatedTable(e){const{autoRefreshEnabled:t,autoSaveEnabled:i,direction:n,editingEnabled:s,effectiveTable:l,multipleSelectionEnabled:o,paginationEnabled:a,pageSize:r,view:c,viewModel:d}=this,{layer:h,objectId:m,relatedLayer:p,relationshipId:u}=e;await h.load();const g=this.attachmentsEnabled&&L(h),w=new G({layer:h,autoRefreshEnabled:t,autoSaveEnabled:i,attachmentsEnabled:g,direction:n,editingEnabled:s,multipleSelectionEnabled:o,paginationEnabled:a,pageSize:r,relatedRecordsEnabled:!0,relationshipConfig:{objectId:m,relatedLayer:p,relationshipId:u},relationshipColumnConfigs:O(h,u),tableController:this,tableParent:l,view:c,showRelatedTableCallback:e=>d.emit("show-related-table",e)});this.relatedTables.add(w),this.scheduleRender()}_renderAttachmentsView(){switch(this.attachmentsViewOptions.effectiveMode){case"list":return this._renderAttachmentsViewList();case"details":return this._renderAttachmentsViewDetails();case"file":return this._renderAttachmentsViewFile()}}_renderAttachmentsViewFile(){const e=this.attachmentsViewOptions,{objectId:t}=e;if(null!=t)return[N("div",{class:q.attachmentsView,key:"attachments-view"},this._renderAttachmentsViewInformation(),N("div",{class:q.attachmentsViewContent,key:"attachments-view-content"},N("div",{bind:this,class:q.attachmentsViewDropArea,ondragover:e=>e.preventDefault(),ondrop:this._onAttachmentsViewDrop},N("calcite-icon",{class:q.attachmentsViewIcon,icon:J.upload,scale:"l"}),this._renderAttachmentsViewFileLabelNode(),this._renderAttachmentsViewFileMessageNode(),N("form",{afterCreate:t=>e.form=t,afterRemoved:()=>e.form=null,bind:this,key:"attachments-form"},N("fieldset",null,this._renderAttachmentsViewFileNameNode(),N("input",{afterCreate:H,afterRemoved:Z,afterUpdate:H,bind:this,"data-node-ref":"_attachmentsInput",files:e.candidates,hidden:!0,name:"attachment",type:"file",onchange:e=>this._onAttachmentsViewCandidateChange(e)}),this._renderAttachmentsViewFileSelectNode(),this._renderAttachmentsViewFileSaveNode(),this._renderAttachmentsViewFileCancelNode())))))]}_renderAttachmentsViewFileLabelNode(){if("replace"===this.attachmentsViewOptions.fileMode)return N("span",{class:q.attachmentsViewDropAreaLabel,key:"replace-file-node"},this.messages.replaceFile)}_renderAttachmentsViewFileMessageNode(){const e=this.attachmentsViewOptions;if(e.hasCandidates)return;const{messages:t}=this,i=this.supportsAddAttachments?null==e.objectId?t.noFeature:t.dragAndDropToUpload:t.editingRestricted;return N("span",{class:q.attachmentsViewDropAreaMessage,key:"message-node"},i)}_renderAttachmentsViewFileNameNode(){const e=this.attachmentsViewOptions.candidates,t=Array.from(e??[]).at(-1);if(t)return N("span",{class:q.attachmentsViewDropAreaMessage,key:"filename-node"},t.name)}_renderAttachmentsViewFileSelectNode(){if(this.supportsAddAttachments)return N("calcite-button",{appearance:"outline-fill",disabled:this.isSyncingAttachments,iconStart:J.folderOpen,key:"select-node",onclick:()=>{this._resetAttachmentsInput(),this._attachmentsInput?.click()}},this.messages.selectFile)}_renderAttachmentsViewFileSaveNode(){const{isSyncingAttachments:e,messages:t}=this,{attachmentInfo:i,hasCandidates:n}=this.attachmentsViewOptions;if(this.supportsAddAttachments&&n)return N("calcite-button",{appearance:"solid",disabled:e,iconStart:J.save,key:"save-node",loading:e,onclick:()=>{this.saveAttachmentsViewForm()}},i?t.updateAttachment:t.addAttachment)}_renderAttachmentsViewFileCancelNode(){const{hasAttachments:e,hasCandidates:t}=this.attachmentsViewOptions;if(e||t)return N("calcite-button",{appearance:"transparent",bind:this,disabled:this.isSyncingAttachments,key:"cancel-node",onclick:()=>{this._resetAttachmentsInput(),this.attachmentsViewOptions.cancel()}},this.messagesCommon.cancel)}_renderAttachmentsViewDetails(){const{attachmentInfo:e}=this.attachmentsViewOptions;if(e)return[N("div",{class:q.attachmentsView,key:"attachments-view"},this._renderAttachmentsViewInformation(),N("div",{class:q.attachmentsViewContent,key:"attachments-view-content"},N("div",{class:q.attachmentsViewDetails},this._renderAttachmentsViewDetailsPreview(e))))]}_renderAttachmentsViewDetailsPreview(e){const t=[this._renderAttachmentsViewDetailsImage(e)];if(M(e.contentType)){const i=this.messages.maximize;t.push(N("calcite-action",{icon:J.expand,label:i,text:i,textEnabled:!0,title:i,onclick:t=>{t.preventDefault(),this.attachmentsViewOptions.dialogId=e.id}}))}return t}_renderAttachmentsViewDetailsImage(e){const{contentType:t,name:i,size:n,url:s}=e,{messages:l}=this;return M(t)?N("img",{afterCreate:()=>this._attachmentsDialogPreviewLoading=!0,alt:i,key:`thumbnail-image-${i}`,src:`${s}${s?.includes("?")?"&":"?"}s=${n}`,title:i,onerror:()=>this._attachmentsDialogPreviewLoading=!1,onload:()=>this._attachmentsDialogPreviewLoading=!1}):[N("calcite-icon",{icon:C(t),key:`thumbnail-icon-${i}`,scale:"l",textLabel:i,title:i}),l.noPreviewAvailable]}_renderAttachmentsViewInformation(){const{attachmentsViewOptions:e,messages:t,messagesUnits:i}=this,{attachmentInfo:n,objectId:s}=e;if(n&&null!=s)return N("div",{class:q.attachmentsViewInformation,key:"information"},this._renderAttachmentViewInformationButtons(n,s),N("span",{class:q.attachmentsViewInformationLabel,key:"file-label"},t.fileName),N("span",{class:q.attachmentsViewInformationData,key:"file-value"},n.name),N("span",{class:q.attachmentsViewInformationLabel,key:"type-label"},t.attachmentType),N("span",{class:q.attachmentsViewInformationData,key:"type-value"},this._getLabelForAttachmentType(n)),this._renderAttachmentKeywordDetails(n),N("span",{class:q.attachmentsViewInformationLabel,key:"size-label"},t.size),N("span",{class:q.attachmentsViewInformationData,key:"size-span"},h(i,n.size??0)))}_renderAttachmentViewInformationButtons(e,t){const{attachmentsViewOptions:i,messages:n,messagesCommon:s}=this,l="details"!==i.effectiveMode,o=e.id,a=[N("calcite-button",{appearance:"outline",disabled:l,key:"download-button",width:"full",onclick:e=>{e.preventDefault(),this.downloadAttachmentById(t,o)}},n.download)];return this.supportsUpdateAttachments&&a.push(N("calcite-button",{appearance:"outline",disabled:l,key:"replace-button",width:"full",onclick:()=>{i.mode="file",i.attachmentId=o}},n.replace)),this.supportsDeleteAttachments&&a.push(N("calcite-button",{appearance:"outline",disabled:l,key:"delete-button",width:"full",onclick:()=>{this.deleteAttachments(t,[o],!0)}},s.delete)),a}_renderAttachmentKeywordDetails({keywords:e}){if(e&&""!==e)return[N("span",{class:q.attachmentsViewInformationLabel,key:"keyword-label"},this.messages.keyword),N("span",{class:q.attachmentsViewInformationData,key:"keyword-value"},e)]}_renderAttachmentsViewList(){const{attachmentsViewOptions:e,isSyncingAttachments:t,messages:i,messagesUnits:n}=this,{attachmentInfos:s,objectId:l}=e;return N("calcite-list",{afterCreate:H,afterRemoved:Z,afterUpdate:H,bind:this,class:q.attachmentsViewList,"data-node-ref":"attachmentsList",key:`attachments-list-${l}`,label:i?.attachments,loading:t,selectionMode:this.supportsDeleteAttachments?"multiple":"none",onCalciteListChange:()=>this.scheduleRender(),ondragover:e=>e.preventDefault(),ondrop:this._onAttachmentsViewDrop},...s?.map(t=>{const{id:s,name:o,size:a}=t,r=h(n,a??0);return N("calcite-list-item",{afterRemoved:()=>this.scheduleRender(),key:`attachment-${s}`,label:o,value:s},this._renderAttachmentsViewListPreview(t),N("span",{class:q.attachmentsViewListFileSize,slot:"actions-end",title:r},r),N("calcite-action",{icon:J.downloadTo,key:"download",label:o,slot:"actions-end",text:i.downloadAttachment,title:i.downloadAttachment,onclick:e=>{e.preventDefault(),this.downloadAttachmentById(l??-1,s)}}),N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:"details",label:o,slot:"actions-end",text:i.viewAttachment,title:i.viewAttachment,onclick:()=>{e.mode="details",e.attachmentId=s}}))}))}_renderAttachmentsViewListPreview(e){return N("div",{class:q.attachmentsViewListThumbnail,slot:"content-start"},N("span",null,this._renderAttachmentsViewListImage(e)))}_renderAttachmentsViewListImage(e,t=64){const{contentType:i,name:n,size:s,url:l}=e,o=`${l}${l?.includes("?")?"&":"?"}w=${t}&s=${s}`;return this.supportsResizeAttachments&&M(i)?N("img",{alt:n,key:`thumbnail-image-${n}`,src:o,title:n}):N("calcite-icon",{icon:C(i),key:`thumbnail-icon-${n}`,scale:"l",textLabel:n,title:n})}_onAttachmentsViewCandidateChange({target:e}){this.attachmentsViewOptions.candidates=e?.files}_onAttachmentsViewDrop(e){e.preventDefault(),(this.supportsAddAttachments||this.supportsUpdateAttachments)&&(this.attachmentsViewOptions.mode="file",this.attachmentsViewOptions.candidates=e.dataTransfer?.files)}_resetAttachmentsInput(){this._attachmentsInput&&(this._attachmentsInput.value="")}_getLabelForAttachmentType({contentType:e}){const t=this.messages,i=V(e);return t.attachmentTypes[i]}_renderNavigationBar(){const{effectiveTable:e,messages:i,messagesCommon:n,navigationScale:s,relatedTable:l,relatedTables:o}=this;if(!this._shouldShowNavigationBar)return;const{attachmentsList:a,attachmentsViewOptions:r,layer:c,supportsAddAttachments:d,supportsDeleteAttachments:h}=e;if(!c)return;const{attachmentInfos:m,objectId:p}=r,u=null!=p,g=m.length,w=a?.selectedItems?.length??0,b=`${c.objectIdField}: ${p}`,v=t(i.selectedCount,{count:w}),y=t(i.attachmentsCount,{count:g}),f=u?N("calcite-action",{bind:this,icon:J.chevronRight,iconFlipRtl:!0,key:"navigation-feature",scale:s,text:b,textEnabled:!0,title:b,onclick:()=>e.scrollToRow(p)}):void 0,_=u?N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:"navigation-attachments-label",label:y,scale:s,text:y,textEnabled:!0,title:y,onclick:()=>{g>0&&(r.mode="list")}}):void 0,M=u?N("calcite-chip",{closable:!0,closed:0===w,key:"navigation-chip",kind:"inverse",label:v,scale:"s",selected:!0,title:v,value:"selected",onCalciteChipClose:()=>a?.selectedItems?.forEach(e=>e.selected=!1)},v):void 0,C=l?N("calcite-label",{layout:"inline",scale:s},i.showAllTables,N("calcite-switch",{checked:this.allRelatedTablesVisible,scale:s,onCalciteSwitchChange:e=>this.showAllRelatedTables=!!e.currentTarget.checked})):void 0,V=u&&"list"===r.effectiveMode&&null!=p&&w&&h?N("calcite-action",{icon:J.delete,iconFlipRtl:!0,key:"attachments-trash-all",scale:s,text:n.delete,textEnabled:!0,title:t(i.deleteAttachmentCount,{count:w}),onclick:()=>{e.deleteAttachments(p,a?.selectedItems?.map(e=>e.value)??[],!0)}}):void 0,A=u&&"list"===r.effectiveMode&&d?N("calcite-action",{bind:this,icon:J.plus,iconFlipRtl:!0,key:"attachments-add",scale:s,text:i.addAttachment,textEnabled:!0,title:i.addAttachment,onclick:()=>{r.objectId=p,r.attachmentId=null,r.mode="file"}}):void 0;return N("div",{class:q.tableNavigation,key:"table-nav"},N("calcite-action",{icon:J.moveUp,iconFlipRtl:!0,key:"go-back",scale:s,text:this.layer?.title??"",textEnabled:!1,title:l?i.exitRelatedRecords:i.exitAttachments,onclick:()=>this._onTableViewChange(this._resetNestedViews)}),o.toArray().map((e,t)=>this._renderRelatedTableNavigationAction(e,t)),f,_,N("div",null,M,C,V,A))}_renderRelatedTableNavigationAction(e,t){const i=this._getLabelForRelatedTableNavigationAction(e);return N("calcite-action",{icon:J.chevronRight,iconFlipRtl:!0,key:t,scale:this.navigationScale,text:i,textEnabled:!0,title:e.layer?.title||"",onclick:()=>{(t!==this.relatedTables.length-1||this._attachmentsViewIsVisible)&&this._onTableViewChange(()=>this._onRelatedNavigationItemClick(t))}})}_getLabelForRelatedTableNavigationAction(e){const t=e.layer?.title;if(!t)return"";const{relatedTables:i}=this;if(i.length<=1)return t;return i.indexOf(e)!==i.length-1&&t.length>20?`${t.slice(0,20)}...`:t}_allColumnsAreVisible(e){const t=this.columnVisibilityMenuConfig;return e.every(e=>{const i=this.findColumn(e);return!!i&&(!(!t?.frozenColumnsExcluded||!i.frozen&&!i.frozenToEnd)||i.effectiveVisible)})}_toggleAllColumns(){const{_columnVisibilityList:e,effectiveTable:t}=this,i=e?.filteredItems.map(e=>e.value);""!==e?.filterText&&i?.length?this._allColumnsAreVisible(i)?i.forEach(e=>this.hideColumn(e)):i.forEach(e=>this.showColumn(e)):t.allColumnsVisible?t.visibilityMenuColumns.forEach(e=>t.hideColumn(e.fieldName)):t.visibilityMenuColumns.forEach(e=>t.showColumn(e.fieldName))}};e([m()],X.prototype,"_attachmentsDialogPreviewLoading",void 0),e([m()],X.prototype,"_attachmentsInput",void 0),e([m()],X.prototype,"_attachmentsViewIsVisible",null),e([m()],X.prototype,"_columnVisibilityActions",void 0),e([m()],X.prototype,"_columnVisibilityActionDisabled",null),e([m()],X.prototype,"_columnVisibilityList",void 0),e([m()],X.prototype,"_dialogIsOpen",null),e([m()],X.prototype,"_effectiveDescription",null),e([m()],X.prototype,"_effectiveLayers",null),e([m()],X.prototype,"_effectiveTitle",null),e([m()],X.prototype,"_effectiveVisibleElements",null),e([m()],X.prototype,"_filteredTables",null),e([m()],X.prototype,"_hasAttachmentsViewError",null),e([m()],X.prototype,"_hasCustomMenuItems",null),e([m()],X.prototype,"_hasDefaultMenuItems",null),e([m()],X.prototype,"_shouldShowGrid",null),e([m()],X.prototype,"_shouldShowMenu",null),e([m()],X.prototype,"_showClearSelectionAction",null),e([m()],X.prototype,"_showColumnVisibilityAction",null),e([m()],X.prototype,"_showDeleteSelectionAction",null),e([m()],X.prototype,"_showExportSelectionToCSVAction",null),e([m()],X.prototype,"_showLayerDropdown",null),e([m()],X.prototype,"_shouldShowNavigationBar",null),e([m()],X.prototype,"_showRefreshDataAction",null),e([m()],X.prototype,"_showSelectedRecordsShowSelectedAction",null),e([m()],X.prototype,"_showSelectedRecordsShowAllAction",null),e([m()],X.prototype,"_showZoomToSelectionAction",null),e([m()],X.prototype,"_viewLayers",null),e([m()],X.prototype,"attachmentsList",void 0),e([m()],X.prototype,"direction",null),e([m({readOnly:!0})],X.prototype,"grid",null),e([m()],X.prototype,"actionColumn",null),e([m()],X.prototype,"actionColumnConfig",null),e([m({readOnly:!0})],X.prototype,"activeFilters",null),e([m({readOnly:!0})],X.prototype,"activeSortOrders",null),e([m()],X.prototype,"allColumns",null),e([m()],X.prototype,"allColumnsVisible",null),e([m({readOnly:!0})],X.prototype,"allRelatedTablesVisible",null),e([m()],X.prototype,"allVisibleColumns",null),e([m()],X.prototype,"attachmentsColumns",null),e([m()],X.prototype,"attachmentsEnabled",null),e([m()],X.prototype,"attachmentsViewOptions",null),e([m({type:y})],X.prototype,"attributeTableTemplate",null),e([m()],X.prototype,"autoRefreshEnabled",null),e([m()],X.prototype,"autoSaveEnabled",null),e([m()],X.prototype,"canAddRelatedFeature",null),e([m()],X.prototype,"clearPrompt",null),e([m()],X.prototype,"closed",void 0),e([m()],X.prototype,"collapsed",void 0),e([m()],X.prototype,"columnPerformanceModeEnabled",null),e([m()],X.prototype,"columnReorderingEnabled",null),e([m({readOnly:!0})],X.prototype,"columns",null),e([m()],X.prototype,"columnVisibilityMenuConfig",void 0),e([m()],X.prototype,"defaultSelectionManager",null),e([m()],X.prototype,"definitionExpression",null),e([m()],X.prototype,"description",void 0),e([m()],X.prototype,"disabled",void 0),e([m()],X.prototype,"editingEnabled",null),e([m()],X.prototype,"effectiveSelectionManager",null),e([m()],X.prototype,"effectiveSize",null),e([m()],X.prototype,"effectiveTable",null),e([m()],X.prototype,"fieldColumns",null),e([m({types:u})],X.prototype,"filterGeometry",null),e([m()],X.prototype,"filterBySelectionEnabled",null),e([m()],X.prototype,"filterByViewExtent",null),e([m()],X.prototype,"filterByLayerScaleRange",null),e([m()],X.prototype,"groupColumns",null),e([m()],X.prototype,"hasContingentValues",null),e([m()],X.prototype,"hasInvalidPendingEdits",null),e([m()],X.prototype,"hasPendingEdits",null),e([m()],X.prototype,"hiddenFields",null),e([m()],X.prototype,"highlightEnabled",null),e([m()],X.prototype,"highlightIds",null),e([m()],X.prototype,"icon",null),e([m()],X.prototype,"initialSize",null),e([m()],X.prototype,"isQueryingOrSyncing",null),e([m()],X.prototype,"isSyncing",null),e([m()],X.prototype,"isSyncingAttachments",null),e([m()],X.prototype,"label",null),e([m()],X.prototype,"layer",null),e([m()],X.prototype,"layers",null),e([m()],X.prototype,"layerView",null),e([m()],X.prototype,"maxSize",null),e([m(),$("esri/widgets/FeatureTable/t9n/FeatureTable")],X.prototype,"messages",null),e([m(),$("esri/t9n/common")],X.prototype,"messagesCommon",null),e([m(),$("esri/widgets/Editor/t9n/Editor")],X.prototype,"messagesEditor",void 0),e([m(),$("esri/core/t9n/Units")],X.prototype,"messagesUnits",null),e([m(),$("esri/widgets/support/t9n/uriUtils")],X.prototype,"messagesURIUtils",null),e([m()],X.prototype,"menuConfig",null),e([m()],X.prototype,"multipleSelectionEnabled",null),e([m()],X.prototype,"multipleSelectionEnabledOverride",null),e([m()],X.prototype,"multiSortEnabled",null),e([m()],X.prototype,"multipleSortPriority",null),e([m()],X.prototype,"navigationScale",void 0),e([m()],X.prototype,"noDataMessage",null),e([m()],X.prototype,"objectIds",null),e([m()],X.prototype,"outFields",null),e([m()],X.prototype,"pageCount",null),e([m()],X.prototype,"pageIndex",null),e([m()],X.prototype,"pageSize",null),e([m()],X.prototype,"paginationEnabled",null),e([m()],X.prototype,"pendingEditsCount",null),e([m()],X.prototype,"prompt",null),e([m()],X.prototype,"relatedRecordsEnabled",null),e([m()],X.prototype,"relatedTable",null),e([m()],X.prototype,"relatedTableHasContingentValues",null),e([m()],X.prototype,"relatedTableHasInvalidPendingEdits",null),e([m()],X.prototype,"relatedTableHasPendingEdits",null),e([m()],X.prototype,"relatedTables",null),e([m()],X.prototype,"relationship",null),e([m()],X.prototype,"relationshipColumnConfigs",null),e([m()],X.prototype,"relationshipColumns",null),e([m()],X.prototype,"relationshipConfig",null),e([m()],X.prototype,"relationshipInfos",null),e([m()],X.prototype,"returnGeometryEnabled",null),e([m()],X.prototype,"returnMEnabled",null),e([m()],X.prototype,"returnZEnabled",null),e([m()],X.prototype,"rowHighlightIds",null),e([m()],X.prototype,"selectionManager",null),e([m()],X.prototype,"selectionSource",null),e([m()],X.prototype,"showAllRelatedTables",null),e([m()],X.prototype,"showPrompt",null),e([m()],X.prototype,"showRelatedTableCallback",null),e([m()],X.prototype,"size",null),e([m({readOnly:!0})],X.prototype,"state",null),e([m()],X.prototype,"supportsAddAttachments",null),e([m()],X.prototype,"supportsAttachments",null),e([m()],X.prototype,"supportsDeleteAttachments",null),e([m()],X.prototype,"supportsResizeAttachments",null),e([m()],X.prototype,"supportsUpdateAttachments",null),e([m()],X.prototype,"syncTemplateOnChangesEnabled",null),e([m()],X.prototype,"syncViewSelection",null),e([m()],X.prototype,"syncWithViewSelectionManager",null),e([m({constructOnly:!0})],X.prototype,"tableController",null),e([m({constructOnly:!0})],X.prototype,"tableParent",null),e([m({type:P})],X.prototype,"tableTemplate",null),e([m()],X.prototype,"tableTemplateOverride",null),e([m()],X.prototype,"title",void 0),e([m({type:f})],X.prototype,"timeExtent",null),e([m()],X.prototype,"timeZone",null),e([m()],X.prototype,"view",null),e([m({type:T}),U(["cell-click","cell-dblclick","cell-pointerover","cell-pointerout","cell-keydown","column-reorder","show-related-table"])],X.prototype,"viewModel",void 0),e([m()],X.prototype,"visibleColumns",null),e([m({type:I,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([m({type:I})],X.prototype,"visibleElementsOverride",null),e([m()],X.prototype,"visibilityMenuColumns",null),X=G=e([p("esri.widgets.FeatureTable")],X);const Y=X;export{Y as default};