@arcgis/core 5.2.0-next.28 → 5.2.0-next.29

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 (206) hide show
  1. package/WebMap.js +1 -1
  2. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +40 -2
  3. package/applications/KnowledgeStudio/generalSharedKgUtils.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/0197e459fdb04dfb28ef.js +1 -0
  6. package/assets/esri/core/workers/chunks/{f7344d855f1092383abe.js → 15aa9b85976069acf4f3.js} +1 -1
  7. package/assets/esri/core/workers/chunks/17b98787a0698f584882.js +1 -0
  8. package/assets/esri/core/workers/chunks/1b9c68e8431bb4608209.js +1 -0
  9. package/assets/esri/core/workers/chunks/1bbf5f5da5842b93f638.js +1 -0
  10. package/assets/esri/core/workers/chunks/1bd7b7f4ee7ea6cb7ef9.js +1 -0
  11. package/assets/esri/core/workers/chunks/1e386475937e02b3f523.js +1 -0
  12. package/assets/esri/core/workers/chunks/{24704e70d1ce01ca4081.js → 20ffeb09bb30400de110.js} +1 -1
  13. package/assets/esri/core/workers/chunks/21122f3f3e19a7fd7d33.js +1 -0
  14. package/assets/esri/core/workers/chunks/{25fd4d5d3af887536b3b.js → 2628136bf9f47d238a24.js} +1 -1
  15. package/assets/esri/core/workers/chunks/2b044c8fab2055a8818d.js +1 -0
  16. package/assets/esri/core/workers/chunks/2b2b042a6d6949b06127.js +1 -0
  17. package/assets/esri/core/workers/chunks/2c15c227d057292d4fa8.js +1 -0
  18. package/assets/esri/core/workers/chunks/2f02880a7f081eb210cd.js +1 -0
  19. package/assets/esri/core/workers/chunks/2fc3e43b64300014dddc.js +1 -0
  20. package/assets/esri/core/workers/chunks/{5363c622a0571134cadd.js → 32740b075d7a890d7888.js} +1 -1
  21. package/assets/esri/core/workers/chunks/38b69fba9ae4ccbae6b7.js +1 -0
  22. package/assets/esri/core/workers/chunks/3c342e662c13a05f4caf.js +1 -0
  23. package/assets/esri/core/workers/chunks/{8b452383ba972b638a0c.js → 3d1e5bfd88771d4a0bf6.js} +1 -1
  24. package/assets/esri/core/workers/chunks/43847d66726fd0bcbbb7.js +1 -0
  25. package/assets/esri/core/workers/chunks/4545cf12ad0824ce6b41.js +1 -0
  26. package/assets/esri/core/workers/chunks/45e4b9069263adeae394.js +1 -0
  27. package/assets/esri/core/workers/chunks/47290f27375c76bcc9c7.js +1 -0
  28. package/assets/esri/core/workers/chunks/{8aba35305368234c94f8.js → 5115059b012ef84407cf.js} +1 -1
  29. package/assets/esri/core/workers/chunks/5cccb8b06014ccef30f8.js +1 -0
  30. package/assets/esri/core/workers/chunks/{7f1babbb7ead78201ab3.js → 689673173ca1c0e098fe.js} +1 -1
  31. package/assets/esri/core/workers/chunks/6991ba1b204668e7d4da.js +1 -0
  32. package/assets/esri/core/workers/chunks/{ccffaba50674adba7a0f.js → 6b56971783bf4c31a563.js} +1 -1
  33. package/assets/esri/core/workers/chunks/70c94bcfa20453134037.js +1 -0
  34. package/assets/esri/core/workers/chunks/759686b896f51f0fe6a9.js +1 -0
  35. package/assets/esri/core/workers/chunks/7656900713e55036c3c1.js +1 -0
  36. package/assets/esri/core/workers/chunks/774615303c1cc9a77e20.js +1 -0
  37. package/assets/esri/core/workers/chunks/{6183a26837dc087663ad.js → 7ff37a4f315f7621462b.js} +1 -1
  38. package/assets/esri/core/workers/chunks/8ad5e80e911419c1685a.js +1 -0
  39. package/assets/esri/core/workers/chunks/{87011d2fe14c54e296af.js → 9fe71d49c888fd871312.js} +1 -1
  40. package/assets/esri/core/workers/chunks/a14e5607c5c091c77e3d.js +1 -0
  41. package/assets/esri/core/workers/chunks/{7c344c339743295d11d7.js → a2be8784f2cfdbb42681.js} +1 -1
  42. package/assets/esri/core/workers/chunks/a6379a8df8c08b729b9c.js +1 -0
  43. package/assets/esri/core/workers/chunks/a988fd54912969b812ce.js +1 -0
  44. package/assets/esri/core/workers/chunks/{11d1af758e2140095b10.js → aec82b94787821153d2b.js} +1 -1
  45. package/assets/esri/core/workers/chunks/b624796ff4a9d4c406bf.js +1 -0
  46. package/assets/esri/core/workers/chunks/bb1fad01d9f070e7d795.js +1 -0
  47. package/assets/esri/core/workers/chunks/{654a6dc13ff5be88c8b9.js → bcb2092c87d8d21c6458.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{3e94ed4d57ee7d870cba.js → c6f5688074ae89c37add.js} +1 -1
  49. package/assets/esri/core/workers/chunks/caf150028aeac91b8d80.js +1 -0
  50. package/assets/esri/core/workers/chunks/{a3ca0649edb646da0918.js → cb30e8a66d6dcfebd439.js} +1 -1
  51. package/assets/esri/core/workers/chunks/d7c0ab622caf495dbcef.js +1 -0
  52. package/assets/esri/core/workers/chunks/{fd629872b5c07853f695.js → e4015870412edd69453c.js} +1 -1
  53. package/assets/esri/core/workers/chunks/e774303efefee31952d0.js +1 -0
  54. package/assets/esri/core/workers/chunks/e98a8f80023c6023e72c.js +1 -0
  55. package/assets/esri/core/workers/chunks/f10a339b16d84b650012.js +2 -0
  56. package/assets/esri/core/workers/chunks/fe42fa2144691b9186fd.js +1 -0
  57. package/chunks/GlowComposition.glsl.js +5 -5
  58. package/config.js +1 -1
  59. package/core/AsyncUpdate.js +1 -1
  60. package/core/date.js +1 -1
  61. package/core/workers/workerFactory.js +1 -1
  62. package/form/elements/AttachmentElement.d.ts +4 -1
  63. package/form/elements/inputs/attachments/AttachmentInput.d.ts +1 -0
  64. package/form/elements/inputs/attachments/AudioInput.d.ts +1 -0
  65. package/form/elements/inputs/attachments/DocumentInput.d.ts +3 -0
  66. package/form/elements/inputs/attachments/ImageInput.d.ts +1 -0
  67. package/form/elements/inputs/attachments/VideoInput.d.ts +1 -0
  68. package/kernel.js +1 -1
  69. package/layers/AnnotationFeatureLayer.d.ts +0 -2
  70. package/layers/AnnotationFeatureLayer.js +1 -1
  71. package/layers/DimensionFeatureLayer.d.ts +0 -2
  72. package/layers/DimensionFeatureLayer.js +1 -1
  73. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  74. package/layers/support/featureLayerUtils.js +1 -1
  75. package/layers/support/parquetUtils.js +1 -1
  76. package/linkChart/guards.js +2 -0
  77. package/linkChart/utils.js +1 -1
  78. package/networks/CircuitManager.d.ts +44 -0
  79. package/networks/support/CircuitExportJobInfo.d.ts +1 -1
  80. package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
  81. package/networks/support/jsonTypes.d.ts +2 -0
  82. package/package.json +3 -3
  83. package/rest/featureService/types.d.ts +4 -7
  84. package/rest/networks/circuits/support/CircuitVerifyResult.d.ts +1 -1
  85. package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +1 -1
  86. package/rest/networks/circuits/support/VerifyCircuitsParameters.d.ts +17 -3
  87. package/rest/networks/unitIdentifiers/support/UnitQueryResult.d.ts +1 -1
  88. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  89. package/support/revision.js +1 -1
  90. package/symbols/cim/CIMOperators.js +1 -1
  91. package/symbols/cim/utils.js +1 -1
  92. package/symbols/support/cimSymbolUtils.js +1 -1
  93. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  94. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  95. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  96. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  97. package/views/2d/engine/webgl/util/DictionaryMatcher.js +1 -1
  98. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  99. package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
  100. package/views/2d/engine/webgl/util/LabelMatcher.js +1 -1
  101. package/views/2d/engine/webgl/util/MapMatcher.js +1 -1
  102. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  103. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  104. package/views/2d/layers/LayerView2D.js +1 -1
  105. package/views/2d/layers/features/Processor.js +1 -1
  106. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  107. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  108. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  109. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  110. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  111. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  112. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  113. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  114. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  115. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  116. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  117. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  118. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  119. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  120. package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
  121. package/views/2d/layers/features/support/FeatureMetadata.js +1 -1
  122. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  123. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  124. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  125. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +2 -0
  126. package/views/2d/layers/support/annodime/PrivateDimensionEffect.js +1 -1
  127. package/views/2d/layers/support/annodime/PrivateMatcherGeometryOverrideEffect.js +2 -0
  128. package/views/2d/layers/support/annodime/TileObjectId.js +2 -0
  129. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  130. package/views/2d/layers/support/annodime/debugUtils.js +2 -0
  131. package/views/2d/layers/support/annodime/dimensionStyleDefaults.js +2 -0
  132. package/views/2d/layers/support/annodime/dimensionSymbols.js +1 -1
  133. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  134. package/views/2d/layers/support/annodime/utils.js +1 -1
  135. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  136. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  137. package/views/3d/layers/SceneLayerWorkerHandle.js +1 -1
  138. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  139. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  140. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  141. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  142. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  143. package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
  144. package/views/draw/DrawTool.js +1 -1
  145. package/views/interactive/sketch/SketchLabelOptions.d.ts +0 -6
  146. package/views/layers/AnnotationFeatureLayerView.d.ts +0 -7
  147. package/views/layers/DimensionFeatureLayerView.d.ts +0 -7
  148. package/views/support/LayerViewManager.js +1 -1
  149. package/webdoc/support/webdocSaveUtils.js +1 -1
  150. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  151. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  152. package/widgets/Editor/EditorViewModel.d.ts +0 -12
  153. package/widgets/Editor.d.ts +0 -12
  154. package/widgets/Feature/FeatureViewModel.js +1 -1
  155. package/widgets/Feature.js +1 -1
  156. package/widgets/Features/FeaturesViewModel.js +1 -1
  157. package/widgets/Features.js +1 -1
  158. package/widgets/LayerList/LayerListViewModel.js +1 -1
  159. package/widgets/Popup/PopupViewModel.d.ts +0 -1
  160. package/widgets/Popup/PopupViewModel.js +1 -1
  161. package/widgets/Popup.js +1 -1
  162. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  163. package/widgets/Sketch/SketchViewModel.d.ts +0 -12
  164. package/widgets/Sketch.d.ts +0 -12
  165. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  166. package/assets/esri/core/workers/chunks/1893a4b344aa9b57aa8d.js +0 -1
  167. package/assets/esri/core/workers/chunks/1a7c0a1dc6ecc93ea03a.js +0 -1
  168. package/assets/esri/core/workers/chunks/29a7321fd069253c2521.js +0 -1
  169. package/assets/esri/core/workers/chunks/3b7060d264888bf298b1.js +0 -1
  170. package/assets/esri/core/workers/chunks/409bc7d69b95f7a1634c.js +0 -1
  171. package/assets/esri/core/workers/chunks/4fc32e60e63a9c8429b9.js +0 -1
  172. package/assets/esri/core/workers/chunks/548842f8ba9224b15ee4.js +0 -1
  173. package/assets/esri/core/workers/chunks/5728d8440aca205e4f53.js +0 -1
  174. package/assets/esri/core/workers/chunks/668d84dc512b3085a960.js +0 -1
  175. package/assets/esri/core/workers/chunks/67f44cab103d4411dcc5.js +0 -1
  176. package/assets/esri/core/workers/chunks/6db5ee9c589265b23b60.js +0 -1
  177. package/assets/esri/core/workers/chunks/78f68f7534716956f5bc.js +0 -1
  178. package/assets/esri/core/workers/chunks/7c34eb94e2c74602aeab.js +0 -1
  179. package/assets/esri/core/workers/chunks/7fcf4f3b9131c7516524.js +0 -1
  180. package/assets/esri/core/workers/chunks/86e61841df12dbe20a19.js +0 -1
  181. package/assets/esri/core/workers/chunks/8dbf9b1d8bb6817b19c1.js +0 -1
  182. package/assets/esri/core/workers/chunks/937e347d130d469518ce.js +0 -1
  183. package/assets/esri/core/workers/chunks/a195f569eada3a8736be.js +0 -1
  184. package/assets/esri/core/workers/chunks/a2357aae79bfbb91f125.js +0 -1
  185. package/assets/esri/core/workers/chunks/a8167ab9fd846d699be5.js +0 -1
  186. package/assets/esri/core/workers/chunks/b10f36658aa77bc3a6cf.js +0 -1
  187. package/assets/esri/core/workers/chunks/b87aca8ad281870ae970.js +0 -1
  188. package/assets/esri/core/workers/chunks/c46500cc95a84e2a5f7a.js +0 -1
  189. package/assets/esri/core/workers/chunks/cc46261e01a985df5aab.js +0 -1
  190. package/assets/esri/core/workers/chunks/ceb5bd9f2afaa2ea0808.js +0 -1
  191. package/assets/esri/core/workers/chunks/d07261f3fb67b9a99369.js +0 -1
  192. package/assets/esri/core/workers/chunks/d25c37f169577a33db46.js +0 -1
  193. package/assets/esri/core/workers/chunks/d61294dcc3ba41060d44.js +0 -1
  194. package/assets/esri/core/workers/chunks/d8ae5b61b5ae71f4796c.js +0 -1
  195. package/assets/esri/core/workers/chunks/db279d5d9c7deec554bb.js +0 -1
  196. package/assets/esri/core/workers/chunks/e1340232962cf576d37e.js +0 -1
  197. package/assets/esri/core/workers/chunks/e38d1ba15babc238b151.js +0 -1
  198. package/assets/esri/core/workers/chunks/f5125925f83c979edde7.js +0 -2
  199. package/assets/esri/core/workers/chunks/f68b84df093f2894210b.js +0 -1
  200. package/assets/esri/core/workers/chunks/f74b6952c888d92e479e.js +0 -1
  201. package/assets/esri/core/workers/chunks/fe20683f442294eb111b.js +0 -1
  202. package/views/2d/layers/features/layerAdapters/featureLayerAdapterUtils.js +0 -2
  203. package/views/2d/layers/features/support/FeatureSetReaderAnnotationJSON.js +0 -2
  204. package/views/2d/layers/features/support/FeatureSetReaderDimensionJSON.js +0 -2
  205. package/views/2d/layers/support/annodime/annotationUtils.js +0 -2
  206. /package/assets/esri/core/workers/chunks/{f5125925f83c979edde7.js.LICENSE.txt → f10a339b16d84b650012.js.LICENSE.txt} +0 -0
@@ -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"../../../Graphic.js";import{pickRandom as i}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isTimeOnlyField as l,isNumericField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as c}from"../../../rest/generateRenderer.js";import m from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/PivotQuery.js";import p from"../../../rest/support/StatisticDefinition.js";import d from"../../../rest/support/UniqueValueDefinition.js";import y from"../../../rest/support/UnPivotDefinition.js";import{getArcadeForPredominantCategory as f,getSQLForPredominantCategoryName as F}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as S,getRangeExpr as g,getSQLFilterForNormalization as w}from"../../statistics/support/utils.js";import{WorkerClient as v}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as _,isIntegerField as x,castIntegerFieldToFloat as q,fieldDelimiter as V}from"../utils.js";import E from"./InMemoryLayerAdapter.js";import{getQueryParamsForExpr as b,getDataRange as z,getAttributeBinsQuery as L,processQueryAttributeBinsResult as Q,binParamsFromGenRend as T}from"./support/histogramUtils.js";import{ensureFeaturesJSON as N,getSummaryStatsQuery as j,getSummaryStatisticsFromFeatureSet as B,getSummaryStatsQueryForFields as M,getSummaryStatsPivotQuery as $,getUVQuery as O,getUniqueValuesFromFeatureSet as C,defaultNumBins as A,updateQueryWithFeatureFilter as I,getHistogramFromFeatureSet as P,getFieldExpr as R,getDomainsForFields as k,getBins as U,getPredominantCategoriesFromUVInfos as D,getMissingFields as G}from"./support/utils.js";import{processSummaryStatisticsResult as W,createUVResult as J,getEqualIntervalBins as H,createClassBreaksDefinition as Z,resolveCBResult as K}from"../../../statistics/utils.js";import{getScaleToResolutionFactor as X}from"../../../views/2d/viewpointUtils.js";const Y=5,ee=2e4,te=4e5;let ie=class extends E{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new r(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then(e=>e.features)}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(N)}_summaryStatsFromGenRend(e){const t=e.normalizationType,i=e.normalizationField;return this.classBreaks({field:e.field,numClasses:Y,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?i:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then(t=>{let i,r,s;if(t.classBreakInfos?.some(e=>(e.hasAvg&&(i=e),!!i)),i){const e=i.maxValue-i.minValue;r=i.minValue+e/2,s=4*e}const a={min:t.minValue,max:t.maxValue,avg:r,stddev:s};return W(a,e.outStatisticTypes)})}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const i=_(t)||l(t),r="capabilities"in this.layer?this.layer.capabilities:null,s=j(this,e,t,r?.query?.supportsPercentileStatistics??!1),a=await this.layer.queryFeatures(s,{signal:e.signal}),n=B(a,i);return W(n,e.outStatisticTypes)}async _summaryStatsForFieldsBasic(e){const{outStatisticTypes:t,fields:i}=e,r=50,s=[];for(let o=0;o<i.length;o+=r){const t=i.slice(o,o+r),a=M(this,e,t);s.push(this.layer.queryFeatures(a,{signal:e.signal}))}const a=(await Promise.all(s)).flatMap(e=>e.features).map(e=>e.attributes).reduce((e,t)=>Object.assign(e,t),{}),n={};for(const o in a){const e=o.match(/^(\w+)_value_/);if(null==a[o]||!e)continue;switch(e[1]){case"min":n.min=null==n.min?a[o]:Math.min(n.min,a[o]);break;case"max":n.max=null==n.max?a[o]:Math.max(n.max,a[o]);break;case"sum":n.sum=(n.sum||0)+a[o];break;case"count":n.count=(n.count||0)+a[o]}}return W(n,t)}async _summaryStatsForFieldsAdvanced(e,t){const{outStatisticTypes:i,fields:r}=e,s=i?.exclude?.includes("variance")||i?.include&&!i.include.includes("variance"),a=i?.exclude?.includes("stddev")||i?.include&&!i.include.includes("stddev");if(null==t.sum||!t.count||s&&a)return t;t.avg=t.sum/t.count;const n=50,o=[];for(let u=0;u<r.length;u+=n){const i=r.slice(u,u+n),s=M(this,e,i);s.outStatistics=[];for(const e of i){const i=`sumOfSquares_${e}`,r=`(power(${x(this.layer,e)?q(e):e} - ${t.avg}, 2))`,a=new p({statisticType:"sum",onStatisticField:r,outStatisticFieldName:i});s.outStatistics.push(a)}o.push(this.layer.queryFeatures(s,{signal:e.signal}))}const l=(await Promise.all(o)).reduce((e,t)=>e+Object.values(t.features[0].attributes).reduce((e,t)=>e+t,0),0);return t.variance=l/(t.count-1),t.stddev=Math.sqrt(t.variance),W(t,i)}async _summaryStatsForFields(e){const t=await this._summaryStatsForFieldsBasic(e);return this._summaryStatsForFieldsAdvanced(e,t)}async _summaryStatsUsingQueryPivot(e){await this._isStatsSupportedOnService();const t="capabilities"in this.layer?this.layer.capabilities:null,i=$(this,e,t?.query?.supportsPercentileStatistics??!1),r=await this.layer.queryPivot(i,{signal:e.signal}),s=B(r,!1);return W(s,e.outStatisticTypes)}_uvFromGenRenderer(e,t){const i=e.field??void 0,r=new d({attributeField:i}),s=new m({classificationDefinition:r});return this.generateRenderer(s,e.signal).then(e=>{const t={},r=this.getField(i);return e.uniqueValues.forEach(e=>{let i=e.value;null!=i&&""!==i&&("string"!=typeof i||""!==i.trim()&&"<null>"!==i.toLowerCase())||(i=null),null==t[i]?t[i]={count:e.count,data:u(r)&&i?Number(i):i}:t[i].count=t[i].count+e.count}),{count:t}}).then(i=>J(i,[t],e.returnAllCodedValues))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(O(this,e),{signal:e.signal})).then(t=>C(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:V,view:e.view,signal:e.signal})).then(i=>J(i,t,e.returnAllCodedValues,V))}_getNormalizationTotal(e,t,i,r){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,outStatisticTypes:{include:["sum"]},filter:i,signal:r}).then(e=>e.sum):Promise.resolve(null)}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then(t=>{const i=b(e,this,t);return z(i,this,e.minValue,e.maxValue).then(r=>{const s=r.min,a=r.max;if(null==s||null==a)return{bins:[],minValue:s,maxValue:a,normalizationTotal:t};const n=e.numBins||A,o=H(s,a,n),l=re(i.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),c=this.layer.createQuery();return c.where=S(c.where,i.sqlWhere),c.sqlFormat="standard",c.outStatistics=[u],c.groupByFieldsForStatistics=[l],c.orderByFields=[l],I(c,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(c,{signal:i.signal})).then(e=>P(e,s,a,n,t))})})}async _histogramForFields(e){const{min:t,max:i}=await z({fields:e.fields,sqlWhere:e.sqlWhere,filter:e.filter,signal:e.signal},this,e.minValue,e.maxValue);if(null==t||null==i)return{bins:[],minValue:t,maxValue:i};const r="newField",s=e.numBins||A,a=re(r,H(t,i,s),null!=e.minValue&&null!=e.maxValue),n=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:r}),o=new h,{where:l,timeExtent:u}=this.createQuery();return o.where=S(l,e.sqlWhere),o.outPivots=[new y({sourceFields:e.fields,valueFieldName:r})],o.outStatistics=[n],o.groupByFieldsForStatistics=[a],o.orderByFields=[a],o.timeExtent=u,I(o,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryPivot(o,{signal:e.signal})).then(e=>P(e,t,i,s))}async _histogramFromQueryAttributeBins(e){const{field:t,normalizationType:i,filter:r,signal:s}=e,a=await this._getNormalizationTotal(t,i,r,s),{query:n,min:o,max:l}=await L(e,this,a,this.createQuery());if(!n)return{bins:[],minValue:o,maxValue:l,normalizationTotal:a};const u=await this.layer.queryAttributeBins(n,{signal:s});return Q(u,t?this.getField(t):null,{minValue:o,maxValue:l,normalizationTotal:a})}_classBreaksFromGenRend(e){const{field:t,normalizationType:i,normalizationField:r,normalizationTotal:s,signal:a}=e,n=w({field:t,normalizationType:i,normalizationField:r}),o=R({field:t,normalizationType:i,normalizationField:r,normalizationTotal:s,layer:this}),l=g(o,e.minValue,e.maxValue),u=Z({field:t,normalizationType:i,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||Y}),c=new m({classificationDefinition:u});return c.where=S(n,l),this.generateRenderer(c,a).then(t=>K(t,e.classificationMethod))}async summaryStatistics(e){const{field:t,fields:i,normalizationType:a,valueExpression:n,sqlExpression:o,view:u,features:c,useFeaturesInView:m}=e,h=t?this.getField(t):null,p=_(h)||l(h),d=n&&!(o&&this.supportsSQLExpression),y=this._hasLocalSource||c||m,f="3d"===u?.type;if(i?.length){const t={...e,fields:i};if(!this.layer.capabilities?.operations?.supportsQueryPivot)return await this._summaryStatsForFields(t);try{return await this._summaryStatsUsingQueryPivot(t)}catch{return await this._summaryStatsForFields(t)}}if(y||d)return d||c||m||f||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._summaryStatsFromMemory(e,h):this._summaryStatsFromClientQuery(e,h);if(!this.supportsSQLExpression&&(p||o||"natural-log"===a||"square-root"===a))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(a&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,h)).catch(()=>(s(e.signal),this._summaryStatsFromMemory(e,h)))}async uniqueValues(e){const{valueExpression:t,sqlExpression:i,features:r,useFeaturesInView:a,signal:n}=e,o=t&&!(i&&this.supportsSQLExpression),l=this._hasLocalSource||r||a||o,u=e.view,c="3d"===u?.type,m=await k(e,this);return l?o||r||a||c||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m):this._uvFromServiceQuery(e,m).catch(t=>(s(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,m[0]))).catch(()=>(s(n),c?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m)))}async histogram(e){const{field:t,normalizationType:i,normalizationField:a,classificationMethod:n,view:o,filter:u,signal:c}=e,m=t?this.getField(t):null,h=_(m)||l(m),p=e.valueExpression||e.sqlExpression,d=e.valueExpression&&!(e.sqlExpression&&this.supportsSQLExpression),y=this._hasLocalSource||e.features||e.useFeaturesInView||d,f=this.supportsSQLExpression,F=!n||"equal-interval"===n,S=e.minValue,w=e.maxValue,v=null!=S&&null!=w,x=e.numBins||A;if(e.fields?.length){if(!f)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");if(!this.layer.capabilities?.operations?.supportsQueryPivot)throw new r(`${this.adapterName}:not-supported`,"Layer does not support pivot queries");return this._histogramForFields(e)}if(this.layer.capabilities?.operations?.supportsQueryBins&&e.useQueryAttributeBins&&!d){if(y)return this._histogramFromQueryAttributeBinsFromMemory(e);try{return await this._histogramFromQueryAttributeBins(e)}catch{return s(c),this._histogramFromQueryAttributeBinsFromMemory(e)}}if(e.returnAggregateIds)throw new r(`${this.adapterName}:not-supported`,"returnAggregateIds option is only supported with queryAttributeBins");if(y)return this._histogramFromMemory(e);if((p||f)&&F){if(!f&&(p||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return this._histogramForExpr(e)}if(h&&F)throw new r(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!F?T(e,this).then(s=>{if(!v)return U(this,s,t,x,o,u,c);if(S>s.max||w<s.min)throw new r(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(F)return U(this,{min:S,max:w,sqlExpr:s.sqlExpr,excludeZerosExpr:s.excludeZerosExpr},t,x,o,u,c);{const r={field:t,normalizationType:i,normalizationField:a,normalizationTotal:s.normTotal,layer:this},n=R(r),l=g(n,S,w);return T(e,this,l).then(e=>U(this,e,t,x,o,u,c))}}):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,i=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&i)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch(()=>(s(e.signal),this._classBreaksFromMemory(e)))}async queryFeatureCount(e){if(this._hasLocalSource)throw new r(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=S(i.where,e.whereClause),I(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const s=i.createQuery();return e.where=S(e.where,s.where),c(i.parsedUrl?.path??"",{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:s,filter:a}=e,n=f(t),o=F(t),l=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:n,view:i,signal:s,filter:a}):await this._uvFromServiceQuery({sqlExpression:o.expression,valueExpression:n,signal:s,filter:a});return D(l.uniqueValueInfos,t)}async getSampleFeatures(e,r){const{view:a,requiredFields:n,returnGeometry:o,sqlWhere:l,filter:u,signal:c}=e,m=e.sampleSize;if(null==m||0===m)return[];const h=this.layer.createQuery(),p=1,d="json"===r;h.outSpatialReference=a?.spatialReference,h.returnGeometry=!!o,h.outFields=n,h.where=S(h.where,l),I(h,u);let y=[],f=!1;if(a)try{const s=await a.whenLayerView(this.layer);if(f=!G(this,n,s).length,f){if(m>=1&&!e.filter&&"getSampleFeatures"in s){await this._waitForLayerViewUpdate(s);const e=await s.getSampleFeatures({minFeatureCount:m,sampleSize:m});if(null!=e)return d?e:e.map(e=>t.fromJSON(e))}if(y=await this._fetchFeaturesFromMemory(s,h,c,r),y.length>=m&&m>0)return i(y,m,p)}}catch(F){s(c)}try{if(this._hasLocalSource)return f?y:d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c);const t=await this.queryFeatureCount({view:a,filter:u,signal:c}),r=this.layer.capabilities.query.maxRecordCount;let s=-1===m?t:m;if(s=r&&s>r?r:s,t<=y.length||y.length>=r)return y;if(h.maxAllowableOffset=e.resolution||(a?a.extent.width/a.width/a.scale:X(this.layer.spatialReference))*te,t<=s)return d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c);if(t<=ee){const e=this.layer.createQuery();I(e,u);const t=await this.layer.queryObjectIds();return h.objectIds=i(t,s,p),d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c)}return this.layer.capabilities?.query?.supportsPagination&&(h.num=Math.min(s,ee)),d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c)}catch(F){return s(c),y}}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource="parquet"!==t.type&&!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=v.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};function re(e,t,i){const r=[],s=t.length;return t.forEach((t,a)=>{const[n,o]=t;let l=null;l=0!==a||i?a!==s-1||i?S(`${e} >= ${n}`,`${e} ${a===s-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,r.push("WHEN ("+l+") THEN "+(a+1))}),["CASE",r.join(" "),"ELSE 0","END"].join(" ")}e([a({readOnly:!0})],ie.prototype,"adapterName",void 0),e([a({constructOnly:!0})],ie.prototype,"layer",void 0),ie=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],ie);export{ie as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import{pickRandom as i}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isTimeOnlyField as l,isNumericField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as c}from"../../../rest/generateRenderer.js";import m from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/PivotQuery.js";import p from"../../../rest/support/StatisticDefinition.js";import d from"../../../rest/support/UniqueValueDefinition.js";import y from"../../../rest/support/UnPivotDefinition.js";import{getArcadeForPredominantCategory as f,getSQLForPredominantCategoryName as F}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as S,getRangeExpr as g,getSQLFilterForNormalization as w}from"../../statistics/support/utils.js";import{WorkerClient as v}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as _,isIntegerField as x,castIntegerFieldToFloat as q,fieldDelimiter as V}from"../utils.js";import b from"./InMemoryLayerAdapter.js";import{getQueryParamsForExpr as E,getDataRange as z,getAttributeBinsQuery as L,processQueryAttributeBinsResult as Q,binParamsFromGenRend as T}from"./support/histogramUtils.js";import{ensureFeaturesJSON as N,getSummaryStatsQuery as j,getSummaryStatisticsFromFeatureSet as B,getSummaryStatsQueryForFields as M,getSummaryStatsPivotQuery as $,getUVQuery as O,getUniqueValuesFromFeatureSet as C,defaultNumBins as A,updateQueryWithFeatureFilter as I,getHistogramFromFeatureSet as P,getFieldExpr as R,getDomainsForFields as k,getBins as U,getPredominantCategoriesFromUVInfos as D,getMissingFields as G}from"./support/utils.js";import{processSummaryStatisticsResult as W,createUVResult as J,getEqualIntervalBins as H,createClassBreaksDefinition as Z,resolveCBResult as K}from"../../../statistics/utils.js";import{getScaleToResolutionFactor as X}from"../../../views/2d/viewpointUtils.js";const Y=5,ee=2e4,te=4e5;let ie=class extends b{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new r(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then(e=>e.features)}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(N)}_summaryStatsFromGenRend(e){const t=e.normalizationType,i=e.normalizationField;return this.classBreaks({field:e.field,numClasses:Y,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?i:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then(t=>{let i,r,s;if(t.classBreakInfos?.some(e=>(e.hasAvg&&(i=e),!!i)),i){const e=i.maxValue-i.minValue;r=i.minValue+e/2,s=4*e}const a={min:t.minValue,max:t.maxValue,avg:r,stddev:s};return W(a,e.outStatisticTypes)})}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const i=_(t)||l(t),r="capabilities"in this.layer?this.layer.capabilities:null,s=j(this,e,t,r?.query?.supportsPercentileStatistics??!1),a=await this.layer.queryFeatures(s,{signal:e.signal}),n=B(a,i);return W(n,e.outStatisticTypes)}async _summaryStatsForFieldsBasic(e){const{outStatisticTypes:t,fields:i}=e,r=50,s=[];for(let o=0;o<i.length;o+=r){const t=i.slice(o,o+r),a=M(this,e,t);s.push(this.layer.queryFeatures(a,{signal:e.signal}))}const a=(await Promise.all(s)).flatMap(e=>e.features).map(e=>e.attributes).reduce((e,t)=>Object.assign(e,t),{}),n={};for(const o in a){const e=o.match(/^(\w+)_value_/);if(null==a[o]||!e)continue;switch(e[1]){case"min":n.min=null==n.min?a[o]:Math.min(n.min,a[o]);break;case"max":n.max=null==n.max?a[o]:Math.max(n.max,a[o]);break;case"sum":n.sum=(n.sum||0)+a[o];break;case"count":n.count=(n.count||0)+a[o]}}return W(n,t)}async _summaryStatsForFieldsAdvanced(e,t){const{outStatisticTypes:i,fields:r}=e,s=i?.exclude?.includes("variance")||i?.include&&!i.include.includes("variance"),a=i?.exclude?.includes("stddev")||i?.include&&!i.include.includes("stddev");if(null==t.sum||!t.count||s&&a)return t;t.avg=t.sum/t.count;const n=50,o=[];for(let u=0;u<r.length;u+=n){const i=r.slice(u,u+n),s=M(this,e,i);s.outStatistics=[];for(const e of i){const i=`sumOfSquares_${e}`,r=`(power(${x(this.layer,e)?q(e):e} - ${t.avg}, 2))`,a=new p({statisticType:"sum",onStatisticField:r,outStatisticFieldName:i});s.outStatistics.push(a)}o.push(this.layer.queryFeatures(s,{signal:e.signal}))}const l=(await Promise.all(o)).reduce((e,t)=>e+Object.values(t.features[0].attributes).reduce((e,t)=>e+t,0),0);return t.variance=l/(t.count-1),t.stddev=Math.sqrt(t.variance),W(t,i)}async _summaryStatsForFields(e){const t=await this._summaryStatsForFieldsBasic(e);return this._summaryStatsForFieldsAdvanced(e,t)}async _summaryStatsUsingQueryPivot(e){await this._isStatsSupportedOnService();const t="capabilities"in this.layer?this.layer.capabilities:null,i=$(this,e,t?.query?.supportsPercentileStatistics??!1),r=await this.layer.queryPivot(i,{signal:e.signal}),s=B(r,!1);return W(s,e.outStatisticTypes)}_uvFromGenRenderer(e,t){const i=e.field??void 0,r=new d({attributeField:i}),s=new m({classificationDefinition:r});return this.generateRenderer(s,e.signal).then(e=>{const t={},r=this.getField(i);return e.uniqueValues.forEach(e=>{let i=e.value;null!=i&&""!==i&&("string"!=typeof i||""!==i.trim()&&"<null>"!==i.toLowerCase())||(i=null),null==t[i]?t[i]={count:e.count,data:u(r)&&i?Number(i):i}:t[i].count=t[i].count+e.count}),{count:t}}).then(i=>J(i,[t],e.returnAllCodedValues))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(O(this,e),{signal:e.signal})).then(t=>C(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:V,view:e.view,signal:e.signal})).then(i=>J(i,t,e.returnAllCodedValues,V))}_getNormalizationTotal(e,t,i,r){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,outStatisticTypes:{include:["sum"]},filter:i,signal:r}).then(e=>e.sum):Promise.resolve(null)}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then(t=>{const i=E(e,this,t);return z(i,this,e.minValue,e.maxValue).then(r=>{const s=r.min,a=r.max;if(null==s||null==a)return{bins:[],minValue:s,maxValue:a,normalizationTotal:t};const n=e.numBins||A,o=H(s,a,n),l=re(i.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),c=this.layer.createQuery();return c.where=S(c.where,i.sqlWhere),c.sqlFormat="standard",c.outStatistics=[u],c.groupByFieldsForStatistics=[l],c.orderByFields=[l],I(c,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(c,{signal:i.signal})).then(e=>P(e,s,a,n,t))})})}async _histogramForFields(e){const{min:t,max:i}=await z({fields:e.fields,sqlWhere:e.sqlWhere,filter:e.filter,signal:e.signal},this,e.minValue,e.maxValue);if(null==t||null==i)return{bins:[],minValue:t,maxValue:i};const r="newField",s=e.numBins||A,a=re(r,H(t,i,s),null!=e.minValue&&null!=e.maxValue),n=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:r}),o=new h,{where:l,timeExtent:u}=this.createQuery();return o.where=S(l,e.sqlWhere),o.outPivots=[new y({sourceFields:e.fields,valueFieldName:r})],o.outStatistics=[n],o.groupByFieldsForStatistics=[a],o.orderByFields=[a],o.timeExtent=u,I(o,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryPivot(o,{signal:e.signal})).then(e=>P(e,t,i,s))}async _histogramFromQueryAttributeBins(e){const{field:t,normalizationType:i,filter:r,signal:s}=e,a=await this._getNormalizationTotal(t,i,r,s),{query:n,min:o,max:l}=await L(e,this,a,this.createQuery());if(!n)return{bins:[],minValue:o,maxValue:l,normalizationTotal:a};const u=await this.layer.queryAttributeBins(n,{signal:s});return Q(u,t?this.getField(t):null,{minValue:o,maxValue:l,normalizationTotal:a})}_classBreaksFromGenRend(e){const{field:t,normalizationType:i,normalizationField:r,normalizationTotal:s,signal:a}=e,n=w({field:t,normalizationType:i,normalizationField:r}),o=R({field:t,normalizationType:i,normalizationField:r,normalizationTotal:s,layer:this}),l=g(o,e.minValue,e.maxValue),u=Z({field:t,normalizationType:i,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||Y}),c=new m({classificationDefinition:u});return c.where=S(n,l),this.generateRenderer(c,a).then(t=>K(t,e.classificationMethod))}async summaryStatistics(e){const{field:t,fields:i,normalizationType:a,valueExpression:n,sqlExpression:o,view:u,features:c,useFeaturesInView:m}=e,h=t?this.getField(t):null,p=_(h)||l(h),d=n&&!(o&&this.supportsSQLExpression),y=this._hasLocalSource||c||m,f="3d"===u?.type;if(i?.length){const t={...e,fields:i};if(!this.layer.capabilities?.operations?.supportsQueryPivot)return await this._summaryStatsForFields(t);try{return await this._summaryStatsUsingQueryPivot(t)}catch{return await this._summaryStatsForFields(t)}}if(y||d)return d||c||m||f||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._summaryStatsFromMemory(e,h):this._summaryStatsFromClientQuery(e,h);if(!this.supportsSQLExpression&&(p||o||"natural-log"===a||"square-root"===a))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(a&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,h)).catch(()=>(s(e.signal),this._summaryStatsFromMemory(e,h)))}async uniqueValues(e){const{valueExpression:t,sqlExpression:i,features:r,useFeaturesInView:a,signal:n}=e,o=t&&!(i&&this.supportsSQLExpression),l=this._hasLocalSource||r||a||o,u=e.view,c="3d"===u?.type,m=await k(e,this);return l?o||r||a||c||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m):this._uvFromServiceQuery(e,m).catch(t=>(s(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,m[0]))).catch(()=>(s(n),c?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m)))}async histogram(e){const{field:t,normalizationType:i,normalizationField:a,classificationMethod:n,view:o,filter:u,signal:c}=e,m=t?this.getField(t):null,h=_(m)||l(m),p=e.valueExpression||e.sqlExpression,d=e.valueExpression&&!(e.sqlExpression&&this.supportsSQLExpression),y=this._hasLocalSource||e.features||e.useFeaturesInView||d,f=this.supportsSQLExpression,F=!n||"equal-interval"===n,S=e.minValue,w=e.maxValue,v=null!=S&&null!=w,x=e.numBins||A;if(e.fields?.length){if(!f)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");if(!this.layer.capabilities?.operations?.supportsQueryPivot)throw new r(`${this.adapterName}:not-supported`,"Layer does not support pivot queries");return this._histogramForFields(e)}if(this.layer.capabilities?.operations?.supportsQueryBins&&e.useQueryAttributeBins&&!d){if(y)return this._histogramFromQueryAttributeBinsFromMemory(e);try{return await this._histogramFromQueryAttributeBins(e)}catch{return s(c),this._histogramFromQueryAttributeBinsFromMemory(e)}}if(e.returnAggregateIds)throw new r(`${this.adapterName}:not-supported`,"returnAggregateIds option is only supported with queryAttributeBins");if(y)return this._histogramFromMemory(e);if((p||f)&&F){if(!f&&(p||"natural-log"===i||"square-root"===i))throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");if(this.layer.capabilities.query.supportsOrderBy)return this._histogramForExpr(e)}if(h&&F)throw new r(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!F?T(e,this).then(s=>{if(!v)return U(this,s,t,x,o,u,c);if(S>s.max||w<s.min)throw new r(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(F)return U(this,{min:S,max:w,sqlExpr:s.sqlExpr,excludeZerosExpr:s.excludeZerosExpr},t,x,o,u,c);{const r={field:t,normalizationType:i,normalizationField:a,normalizationTotal:s.normTotal,layer:this},n=R(r),l=g(n,S,w);return T(e,this,l).then(e=>U(this,e,t,x,o,u,c))}}):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,i=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&i)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch(()=>(s(e.signal),this._classBreaksFromMemory(e)))}async queryFeatureCount(e){if(this._hasLocalSource)throw new r(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=S(i.where,e.whereClause),I(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const s=i.createQuery();return e.where=S(e.where,s.where),c(i.parsedUrl?.path??"",{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:s,filter:a}=e,n=f(t),o=F(t),l=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:n,view:i,signal:s,filter:a}):await this._uvFromServiceQuery({sqlExpression:o.expression,valueExpression:n,signal:s,filter:a});return D(l.uniqueValueInfos,t)}async getSampleFeatures(e,r){const{view:a,requiredFields:n,returnGeometry:o,sqlWhere:l,filter:u,signal:c}=e,m=e.sampleSize;if(null==m||0===m)return[];const h=this.layer.createQuery(),p=1,d="json"===r;h.outSpatialReference=a?.spatialReference,h.returnGeometry=!!o,h.outFields=n,h.where=S(h.where,l),I(h,u);let y=[],f=!1;if(a)try{const s=await a.whenLayerView(this.layer);if(f=!G(this,n,s).length,f){if(m>=1&&!e.filter&&"getSampleFeatures"in s){await this._waitForLayerViewUpdate(s);const e=await s.getSampleFeatures({minFeatureCount:m,sampleSize:m});if(null!=e)return d?e:e.map(e=>t.fromJSON(e))}if(y=await this._fetchFeaturesFromMemory(s,h,c,r),y.length>=m&&m>0)return i(y,m,p)}}catch(F){s(c)}try{if(this._hasLocalSource)return f?y:d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c);const t=await this.queryFeatureCount({view:a,filter:u,signal:c}),r=this.layer.capabilities.query.maxRecordCount;let s=-1===m?t:m;if(s=r&&s>r?r:s,t<=y.length||y.length>=r)return y;if(h.maxAllowableOffset=e.resolution||(a?a.extent.width/a.width/a.scale:X(this.layer.spatialReference))*te,t<=s)return d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c);if(t<=ee){const e=this.layer.createQuery();I(e,u);const t=await this.layer.queryObjectIds();return h.objectIds=i(t,s,p),d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c)}return this.layer.capabilities?.query?.supportsPagination&&(h.num=Math.min(s,ee)),d?await this._fetchFeaturesJSONFromService(h,c):await this._fetchFeaturesFromService(h,c)}catch(F){return s(c),y}}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource="parquet"!==t.type&&!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=v.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};function re(e,t,i){const r=[],s=t.length;return t.forEach((t,a)=>{const[n,o]=t;let l=null;l=0!==a||i?a!==s-1||i?S(`${e} >= ${n}`,`${e} ${a===s-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,r.push("WHEN ("+l+") THEN "+(a+1))}),["CASE",r.join(" "),"ELSE 0","END"].join(" ")}e([a({readOnly:!0})],ie.prototype,"adapterName",void 0),e([a({constructOnly:!0})],ie.prototype,"layer",void 0),ie=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],ie);export{ie as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const c="20260624",e="9207f4c2c95c2cd3905b7e738a2aebe9c32c72e8";export{c as buildDate,e as commitHash};
2
+ const a="20260625",d="a69a1783b26a71da04e227f673d0a4328793378d";export{a as buildDate,d as commitHash};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{EffectAddControlPoints as e}from"./effects/EffectAddControlPoints.js";import{EffectArrow as t}from"./effects/EffectArrow.js";import{EffectBuffer as r}from"./effects/EffectBuffer.js";import{EffectControlMeasureLine as c}from"./effects/EffectControlMeasureLine.js";import{EffectCut as o}from"./effects/EffectCut.js";import{EffectDashes as f}from"./effects/EffectDashes.js";import{EffectDonut as s}from"./effects/EffectDonut.js";import{EffectEnclosingPolygon as a}from"./effects/EffectEnclosingPolygon.js";import{EffectJog as n}from"./effects/EffectJog.js";import{EffectMove as l}from"./effects/EffectMove.js";import{EffectOffset as m}from"./effects/EffectOffset.js";import{EffectRadial as i}from"./effects/EffectRadial.js";import{EffectReverse as u}from"./effects/EffectReverse.js";import{EffectRotate as p}from"./effects/EffectRotate.js";import{EffectScale as E}from"./effects/EffectScale.js";import{EffectSuppress as M}from"./effects/EffectSuppress.js";import{EffectTaperedPolygon as C}from"./effects/EffectTaperedPolygon.js";import{EffectWave as P}from"./effects/EffectWave.js";import{PlacementAlongLineSameSize as j}from"./placements/PlacementAlongLineSameSize.js";import{PlacementAtExtremities as I}from"./placements/PlacementAtExtremities.js";import{PlacementAtMeasuredUnits as G}from"./placements/PlacementAtMeasuredUnits.js";import{PlacementAtRatioPositions as d}from"./placements/PlacementAtRatioPositions.js";import{PlacementInsidePolygon as g}from"./placements/PlacementInsidePolygon.js";import{PlacementOnLine as v}from"./placements/PlacementOnLine.js";import{PlacementOnVertices as y}from"./placements/PlacementOnVertices.js";import{PlacementPolygonCenter as A}from"./placements/PlacementPolygonCenter.js";import{PrivateDimensionEffect as k}from"../../views/2d/layers/support/annodime/PrivateDimensionEffect.js";import{PrivatePlacementMultipoint as R}from"../../views/2d/layers/support/annodime/PrivatePlacementMultipoint.js";function S(j){if(!j)return null;switch(j.type){case"CIMGeometricEffectAddControlPoints":return e.local();case"CIMGeometricEffectArrow":return t.local();case"CIMGeometricEffectBuffer":return r.local();case"CIMGeometricEffectControlMeasureLine":return c.local();case"CIMGeometricEffectCut":return o.local();case"CIMGeometricEffectDashes":return f.local();case"CIMGeometricEffectDonut":return s.local();case"CIMGeometricEffectJog":return n.local();case"CIMGeometricEffectMove":return l.local();case"CIMGeometricEffectOffset":return m.local();case"CIMGeometricEffectRadial":return i.local();case"CIMGeometricEffectReverse":return u.local();case"CIMGeometricEffectRotate":return p.local();case"CIMGeometricEffectScale":return E.local();case"CIMGeometricEffectSuppress":return M.local();case"CIMGeometricEffectTaperedPolygon":return C.local();case"CIMGeometricEffectWave":return P.local();case"CIMGeometricEffectEnclosingPolygon":return a.local();case"PrivateDimensionEffect":return k.local()}return null}function w(e){if(!e)return null;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":return j.local();case"CIMMarkerPlacementAtExtremities":return I.local();case"CIMMarkerPlacementAtMeasuredUnits":return G.local();case"CIMMarkerPlacementAtRatioPositions":return d.local();case"CIMMarkerPlacementInsidePolygon":return g.local();case"CIMMarkerPlacementOnLine":return v.local();case"PrivatePlacementMultipoint":return R.local();case"CIMMarkerPlacementOnVertices":return y.local();case"CIMMarkerPlacementPolygonCenter":return A.local()}return null}export{S as getEffectOperator,w as getPlacementOperator};
2
+ import{EffectAddControlPoints as e}from"./effects/EffectAddControlPoints.js";import{EffectArrow as t}from"./effects/EffectArrow.js";import{EffectBuffer as r}from"./effects/EffectBuffer.js";import{EffectControlMeasureLine as c}from"./effects/EffectControlMeasureLine.js";import{EffectCut as o}from"./effects/EffectCut.js";import{EffectDashes as f}from"./effects/EffectDashes.js";import{EffectDonut as s}from"./effects/EffectDonut.js";import{EffectEnclosingPolygon as a}from"./effects/EffectEnclosingPolygon.js";import{EffectJog as n}from"./effects/EffectJog.js";import{EffectMove as l}from"./effects/EffectMove.js";import{EffectOffset as m}from"./effects/EffectOffset.js";import{EffectRadial as i}from"./effects/EffectRadial.js";import{EffectReverse as u}from"./effects/EffectReverse.js";import{EffectRotate as p}from"./effects/EffectRotate.js";import{EffectScale as E}from"./effects/EffectScale.js";import{EffectSuppress as M}from"./effects/EffectSuppress.js";import{EffectTaperedPolygon as P}from"./effects/EffectTaperedPolygon.js";import{EffectWave as C}from"./effects/EffectWave.js";import{PlacementAlongLineSameSize as j}from"./placements/PlacementAlongLineSameSize.js";import{PlacementAtExtremities as I}from"./placements/PlacementAtExtremities.js";import{PlacementAtMeasuredUnits as d}from"./placements/PlacementAtMeasuredUnits.js";import{PlacementAtRatioPositions as G}from"./placements/PlacementAtRatioPositions.js";import{PlacementInsidePolygon as v}from"./placements/PlacementInsidePolygon.js";import{PlacementOnLine as y}from"./placements/PlacementOnLine.js";import{PlacementOnVertices as g}from"./placements/PlacementOnVertices.js";import{PlacementPolygonCenter as A}from"./placements/PlacementPolygonCenter.js";import{PrivateDimensionEffect as k}from"../../views/2d/layers/support/annodime/PrivateDimensionEffect.js";import{PrivateMatcherGeometryOverrideEffect as O}from"../../views/2d/layers/support/annodime/PrivateMatcherGeometryOverrideEffect.js";import{PrivatePlacementMultipoint as R}from"../../views/2d/layers/support/annodime/PrivatePlacementMultipoint.js";function S(j){if(!j)return null;switch(j.type){case"CIMGeometricEffectAddControlPoints":return e.local();case"CIMGeometricEffectArrow":return t.local();case"CIMGeometricEffectBuffer":return r.local();case"CIMGeometricEffectControlMeasureLine":return c.local();case"CIMGeometricEffectCut":return o.local();case"CIMGeometricEffectDashes":return f.local();case"CIMGeometricEffectDonut":return s.local();case"CIMGeometricEffectJog":return n.local();case"CIMGeometricEffectMove":return l.local();case"CIMGeometricEffectOffset":return m.local();case"CIMGeometricEffectRadial":return i.local();case"CIMGeometricEffectReverse":return u.local();case"CIMGeometricEffectRotate":return p.local();case"CIMGeometricEffectScale":return E.local();case"CIMGeometricEffectSuppress":return M.local();case"CIMGeometricEffectTaperedPolygon":return P.local();case"CIMGeometricEffectWave":return C.local();case"CIMGeometricEffectEnclosingPolygon":return a.local();case"PrivateDimensionEffect":return k.local();case"PrivateMatcherGeometryOverrideEffect":return O.local()}return null}function w(e){if(!e)return null;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":return j.local();case"CIMMarkerPlacementAtExtremities":return I.local();case"CIMMarkerPlacementAtMeasuredUnits":return d.local();case"CIMMarkerPlacementAtRatioPositions":return G.local();case"CIMMarkerPlacementInsidePolygon":return v.local();case"CIMMarkerPlacementOnLine":return y.local();case"PrivatePlacementMultipoint":return R.local();case"CIMMarkerPlacementOnVertices":return g.local();case"CIMMarkerPlacementPolygonCenter":return A.local()}return null}export{S as getEffectOperator,w as getPlacementOperator};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{defaultCIMValues as e,defaultCIMColor as t}from"./defaultCIMValues.js";function r(e){return"function"==typeof e}function n(e,t,n,o){return r(e)?e(t,n,o):e}function o(e){return[e.r,e.g,e.b,e.a]}const i=" /-,\n";function a(e){let t=e.length;for(;t--;)if(!i.includes(e.charAt(t)))return!1;return!0}function l(e,t){const r=[];let n=0,o=-1;do{if(o=e.indexOf("[",n),o>=n){if(o>n){const t=e.slice(n,o);r.push([t,null,a(t)])}if(n=o+1,o=e.indexOf("]",n),o>=n){if(o>n){const i=t[e.slice(n,o)];i&&r.push([null,i,!1])}n=o+1}}}while(-1!==o);if(n<e.length){const t=e.slice(n);r.push([t,null,a(t)])}return r}function c(e,t,r){let n="",o=null;for(const i of t){const[t,r,a]=i;if(null!=t&&""!==t)a?o=t:(null!=o&&(n+=o,o=null),n+=t);else{const t=e.readAttribute(r);null!=t&&""!==t&&(null!==o&&(n+=o,o=null),n+=t)}}return u(n,r)}function s(e,t,r,n){let o="",i=null;for(const a of t){const[t,n,l]=a;if(null!=t&&""!==t)l?i=t:(null!=i&&(o+=i,i=null),o+=t);else{let t=n;null!=r&&(t=Y(n,r));const a=e.attributes[t];null!=a&&""!==a&&(null!=i&&(o+=i,i=null),o+=a)}}return u(o,n)}function u(e,t){switch("string"!=typeof e&&(e=String(e)),t){case"LowerCase":return e.toLowerCase();case"Allcaps":return e.toUpperCase();default:return e}}function f(e,t,r,n,o,i,a=!0){const l=t/o,c=r/i,s=Math.ceil(l/2),u=Math.ceil(c/2);for(let f=0;f<i;f++)for(let r=0;r<o;r++){const M=4*(r+(a?i-f-1:f)*o);let m=0,y=0,C=0,h=0,I=0,p=0,b=0;const d=(f+.5)*c;for(let n=Math.floor(f*c);n<(f+1)*c;n++){const o=Math.abs(d-(n+.5))/u,i=(r+.5)*l,a=o*o;for(let c=Math.floor(r*l);c<(r+1)*l;c++){let r=Math.abs(i-(c+.5))/s;const o=Math.sqrt(a+r*r);o>=-1&&o<=1&&(m=2*o*o*o-3*o*o+1,m>0&&(r=4*(c+n*t),b+=m*e[r+3],C+=m,e[r+3]<255&&(m=m*e[r+3]/250),h+=m*e[r],I+=m*e[r+1],p+=m*e[r+2],y+=m))}}n[M]=h/y,n[M+1]=I/y,n[M+2]=p/y,n[M+3]=b/C}}function M(e){return e?[e[0],e[1],e[2],e[3]/255]:[0,0,0,0]}function m(e){return e.data?.symbol??null}function y(e){return"CIMVectorMarker"===e.type||"CIMPictureMarker"===e.type||"CIMBarChartMarker"===e.type||"CIMCharacterMarker"===e.type||"CIMPieChartMarker"===e.type||"CIMStackedBarChartMarker"===e.type}function C(e){return"CIMGradientStroke"===e.type||"CIMPictureStroke"===e.type||"CIMSolidStroke"===e.type}function h(e){return null!=e&&("CIMGradientFill"===e.type||"CIMHatchFill"===e.type||"CIMPictureFill"===e.type||"CIMSolidFill"===e.type||"CIMWaterFill"===e.type)}function I(e){return null!=e&&("CIMMarkerPlacementAlongLineRandomSize"===e.type||"CIMMarkerPlacementAlongLineSameSize"===e.type||"CIMMarkerPlacementAlongLineVariableSize"===e.type||"CIMMarkerPlacementAtExtremities"===e.type||"CIMMarkerPlacementAtMeasuredUnits"===e.type||"CIMMarkerPlacementAtRatioPositions"===e.type||"CIMMarkerPlacementOnLine"===e.type||"CIMMarkerPlacementOnVertices"===e.type)}const p=(e,t=0)=>null==e||isNaN(e)?t:e,b=(e,t)=>null!=e?e:t,d=(e,t)=>e??t,k=e=>e.tintColor?M(e.tintColor):[255,255,255,1];class g{constructor(e){this._import=e}getImportPromise(){return null==this._promise&&(this._promise=this._import().then(e=>this.module=e)),this._promise}}function S(e){return new g(e)}function P(e){if(!e)return"normal";switch(e.toLowerCase()){case"italic":return"italic";case"oblique":return"oblique";default:return"normal"}}function w(e){if(!e)return"normal";switch(e.toLowerCase()){case"bold":return"bold";case"bolder":return"bolder";case"lighter":return"lighter";default:return"normal"}}function L(e){let t="normal",r="normal";if(e){const n=e.toLowerCase();n.includes("italic")?t="italic":n.includes("oblique")&&(t="oblique"),n.includes("bold")?r="bold":n.includes("light")&&(r="lighter")}return{style:t,weight:r}}function E(e){return e.underline?"underline":e.strikethrough?"line-through":"none"}function x(e){if(!e)return null;switch(e.type){case"CIMPolygonSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=x(t);if(null!=e)return e}break;case"CIMTextSymbol":return x(e.symbol);case"CIMSolidFill":return e.color}return null}function G(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":{const t=e.symbolLayers;if(t)for(const e of t){const t=G(e);if(null!=t)return t}break}case"CIMTextSymbol":return G(e.symbol);case"CIMSolidStroke":return e.color}}function N(e){for(const t of e)if(t.enable)switch(t.type){case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return!0}return!1}function T(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=T(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return T(e.symbol);case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return e.width}}function v(e){switch(e){case"Left":default:return"left";case"Right":return"right";case"Center":return"center";case"Justify":return"justify"}}function A(e){switch(e){default:case"Bottom":return"bottom";case"Top":return"top";case"Center":return"middle";case"Baseline":return"baseline"}}function F(e){return(e?Object.keys(e):[]).map(t=>({name:t,alias:t,type:"string"==typeof e[t]?"esriFieldTypeString":"esriFieldTypeDouble"}))}const z=e=>e.includes("data:image/svg+xml");function B(e){if(!e)return null;switch(e.type){case"CIMPointSymbol":case"CIMTextSymbol":return"esriGeometryPoint";case"CIMLineSymbol":return"esriGeometryPolyline";case"CIMPolygonSymbol":return"esriGeometryPolygon";default:return null}}function O(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e}function V(e,t,r,n,o,i,a=!0){const{infos:l}=i;let c=1,s=0,u=0,f=0,M=1;for(const{absoluteAnchorPoint:C,offsetX:h,offsetY:I,rotation:p,size:b,frameHeight:d,rotateClockWise:k,scaleSymbolsProportionally:g}of l){M=C?1:c;u=Q(h,I,s,M,u),f=K(h,I,s,M,f),d&&(g||a)&&(c*=b/d),s=Z(p,k,s)}const m=Q(n,o,s,M,u),y=K(n,o,s,M,f);return{size:e*c,rotation:Z(t,r,s),offsetX:m,offsetY:y}}function R(e){if(null==e)return!1;if(Array.isArray(e))return e.every(e=>R(e));switch(typeof e){case"string":return!!e;case"number":return!isNaN(e)}}function D(r,n){if("color"===n||"outlinecolor"===n||"backgroundcolor"===n||"borderlinecolor"===n||"tintcolor"===n)return[...t[n]];const o=e[r];if(!o)throw new Error(`InternalError: default value for type ${r}.`);return o[n]}function W(e){return e.split(" ").map(e=>Number(e))}function j(e){return"string"==typeof e?W(e):e}function q(e){return e?.dashTemplate&&(e.dashTemplate=j(e.dashTemplate)),e}function _(e){if(null==e)return"Normal";switch(e.type){case"CIMTextSymbol":return e.textCase??"Normal";case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const t=e.symbolLayers;if(!t)return"Normal";for(const e of t)if("CIMVectorMarker"===e.type)return _(e)}break;case"CIMVectorMarker":{const t=e.markerGraphics;if(!t)return"Normal";for(const e of t)if(e.symbol)return _(e.symbol)}}return"Normal"}function X(t){if(t)switch(t.type){case"CIMTextSymbol":return t.height;case"CIMPointSymbol":{let r=0;if(t.symbolLayers)for(const n of t.symbolLayers)if(n)switch(n.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=n.size??e.CIMVectorMarker.size;t>r&&(r=t);break}}return r}case"CIMLineSymbol":case"CIMPolygonSymbol":{let r=0;if(t.symbolLayers)for(const n of t.symbolLayers)if(n)switch(n.type){case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=n.width;null!=e&&e>r&&(r=e);break}case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":if(n.markerPlacement&&I(n.markerPlacement)){const t=n.size??e.CIMVectorMarker.size;t>r&&(r=t)}break;case"CIMPictureFill":{const e=n.height;null!=e&&e>r&&(r=e)}}return r}}}function Y(e,t){if(null!==t){const r=t.get(e);return r?r.name:e}return e}function H(e){return e.map(e=>({...e,propertyName:O(e.propertyName)}))}function J(e){const t={};for(const r in e){const n=e[r];t[O(r)]=n}return t}function U(e){if(!e)return 0;let t=0;for(const r of e)t+=$(r);return t}function $(e){if(!e)return 0;if(le(e))return e.inflateSize??256;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectControlMeasureLine":return 500;case"CIMGeometricEffectExtension":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(p(e.offsetX)),Math.abs(p(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRadial":return Math.abs(e.length??5);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude);case"CIMGeometricEffectDonut":return Math.abs(e.width)}}function K(e,t,r,n,o){const i=r*Math.PI/180;if(i){const r=Math.cos(i);return(Math.sin(i)*e+r*t)*n+o}return t*n+o}function Q(e,t,r,n,o){const i=r*Math.PI/180;if(i){return(Math.cos(i)*e-Math.sin(i)*t)*n+o}return e*n+o}function Z(e,t,r){return t?r-e:r+e}function ee(e,t,r){const n="Color"===r||"TintColor"===r||"ToColor"===r,o="Rotation"===r||"Angle"===r||"ToRotation"===r;let i=t[O(r)];if(null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]/255]:o&&(i*=Math.PI/180)),null==i&&(i=D(t.type,r.toLowerCase()),null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]]:o&&(i*=Math.PI/180))),null!=t.primitiveName){const a=e[t.primitiveName];if(null!=a){const e=a[r];null==e||("string"==typeof e||"number"==typeof e||Array.isArray(e)?(i=e,null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]/255]:o&&(i*=Math.PI/180))):(i={valueExpressionInfo:e,defaultValue:i},null!=i&&(n?i={type:"Process",op:"ArcadeColor",value:i}:o&&(i={type:"Process",op:"Divide",left:i,right:180/Math.PI}))))}}if(null==i)throw new Error(`Failed to derive a value or an expression for "${r}".`);return i}function te(e,t,r){if(null!=t[O(r)])return!0;if(null!=t.primitiveName){const n=e[t.primitiveName];if(null!=n){if(null!=n[r])return!0}}return!1}function re(e,t){return Math.max(Math.min((e??t)/100,1),0)}function ne(e){if(!e)return"None";switch(e){case"Begin":return"Begin";case"End":return"End";case"Both":return"Both";default:return"None"}}function oe(e){if(!e)return"None";switch(e){case"Tolerance":return"Tolerance";case"Text":return"Text";default:return"None"}}function ie(e){if(!e)return"None";switch(e){case"MoveBegin":return"MoveBegin";case"MoveEnd":return"MoveEnd";default:return"None"}}function ae(e){if(!e)return"None";switch(e){case"Only":return"Only";case"Suffix":return"Suffix";case"Expression":return"Expression";default:return"None"}}function le(e){return e.type.startsWith("PRI")}function ce(e){return null!=e&&se(e)?e:void 0}function se(e){return"setControlPoint"in e&&"getControlPoint"in e&&"setControlPointAt"in e&&"getControlPointAt"in e}export{u as adjustTextCase,l as analyzeTextParts,V as applyParentTransform,ce as asCIMGeometryCursor,s as assignTextValuesFromFeature,F as attributesToFields,o as colorToArray,n as evaluateValueOrFunction,E as fromCIMFontDecoration,L as fromCIMFontStyle,v as fromCIMHorizontalAlignment,A as fromCIMVerticalAlignment,D as getDefaultCIMValue,U as getEffectsInflateSize,d as getEnum,Y as getFieldName,x as getFillColor,P as getFontStyle,w as getFontWeight,p as getNumericValue,ee as getProcessParam,re as getRelativeGradientSize,X as getSize,G as getStrokeColor,T as getStrokeWidth,_ as getTextCasing,c as getTextValuesFromFeatureHandle,k as getTintColor,b as getValue,te as hasProcessParam,N as hasStrokeLayer,S as importLazily,h as isCIMFill,y as isCIMMarker,I as isCIMMarkerStrokePlacement,C as isCIMStroke,r as isFeatureValueFn,le as isPrivateEffect,z as isSVGImage,R as isValidCIMValue,B as mapCIMSymbolToGeometryType,M as normalizeAlpha,q as normalizeDashEffectTemplate,j as normalizeDashTemplate,H as normalizePrimitiveOverrideProps,W as parseDashTemplate,f as resampleHermite,oe as stringToDimensionMarkerFit,ne as stringToDimensionPartOptions,ie as stringToDimensionTextFit,ae as stringToDimensionTextOptions,m as toCIMSymbolJSON,J as toLowerCaseProps,O as uncapitalize};
2
+ import{defaultCIMValues as e,defaultCIMColor as t}from"./defaultCIMValues.js";function r(e){return"function"==typeof e}function n(e,t,n,o){return r(e)?e(t,n,o):e}function o(e){return[e.r,e.g,e.b,e.a]}const i=" /-,\n";function a(e){let t=e.length;for(;t--;)if(!i.includes(e.charAt(t)))return!1;return!0}function l(e,t){const r=[];let n=0,o=-1;do{if(o=e.indexOf("[",n),o>=n){if(o>n){const t=e.slice(n,o);r.push([t,null,a(t)])}if(n=o+1,o=e.indexOf("]",n),o>=n){if(o>n){const i=t[e.slice(n,o)];i&&r.push([null,i,!1])}n=o+1}}}while(-1!==o);if(n<e.length){const t=e.slice(n);r.push([t,null,a(t)])}return r}function c(e,t,r){let n="",o=null;for(const i of t){const[t,r,a]=i;if(null!=t&&""!==t)a?o=t:(null!=o&&(n+=o,o=null),n+=t);else{const t=e.readAttribute(r);null!=t&&""!==t&&(null!==o&&(n+=o,o=null),n+=t)}}return u(n,r)}function s(e,t,r,n){let o="",i=null;for(const a of t){const[t,n,l]=a;if(null!=t&&""!==t)l?i=t:(null!=i&&(o+=i,i=null),o+=t);else{let t=n;null!=r&&(t=Y(n,r));const a=e.attributes[t];null!=a&&""!==a&&(null!=i&&(o+=i,i=null),o+=a)}}return u(o,n)}function u(e,t){switch("string"!=typeof e&&(e=String(e)),t){case"LowerCase":return e.toLowerCase();case"Allcaps":return e.toUpperCase();default:return e}}function f(e,t,r,n,o,i,a=!0){const l=t/o,c=r/i,s=Math.ceil(l/2),u=Math.ceil(c/2);for(let f=0;f<i;f++)for(let r=0;r<o;r++){const M=4*(r+(a?i-f-1:f)*o);let m=0,y=0,C=0,h=0,I=0,p=0,b=0;const d=(f+.5)*c;for(let n=Math.floor(f*c);n<(f+1)*c;n++){const o=Math.abs(d-(n+.5))/u,i=(r+.5)*l,a=o*o;for(let c=Math.floor(r*l);c<(r+1)*l;c++){let r=Math.abs(i-(c+.5))/s;const o=Math.sqrt(a+r*r);o>=-1&&o<=1&&(m=2*o*o*o-3*o*o+1,m>0&&(r=4*(c+n*t),b+=m*e[r+3],C+=m,e[r+3]<255&&(m=m*e[r+3]/250),h+=m*e[r],I+=m*e[r+1],p+=m*e[r+2],y+=m))}}n[M]=h/y,n[M+1]=I/y,n[M+2]=p/y,n[M+3]=b/C}}function M(e){return e?[e[0],e[1],e[2],e[3]/255]:[0,0,0,0]}function m(e){return e.data?.symbol??null}function y(e){return"CIMVectorMarker"===e.type||"CIMPictureMarker"===e.type||"CIMBarChartMarker"===e.type||"CIMCharacterMarker"===e.type||"CIMPieChartMarker"===e.type||"CIMStackedBarChartMarker"===e.type}function C(e){return"CIMGradientStroke"===e.type||"CIMPictureStroke"===e.type||"CIMSolidStroke"===e.type}function h(e){return null!=e&&("CIMGradientFill"===e.type||"CIMHatchFill"===e.type||"CIMPictureFill"===e.type||"CIMSolidFill"===e.type||"CIMWaterFill"===e.type)}function I(e){return null!=e&&("CIMMarkerPlacementAlongLineRandomSize"===e.type||"CIMMarkerPlacementAlongLineSameSize"===e.type||"CIMMarkerPlacementAlongLineVariableSize"===e.type||"CIMMarkerPlacementAtExtremities"===e.type||"CIMMarkerPlacementAtMeasuredUnits"===e.type||"CIMMarkerPlacementAtRatioPositions"===e.type||"CIMMarkerPlacementOnLine"===e.type||"CIMMarkerPlacementOnVertices"===e.type)}const p=(e,t=0)=>null==e||isNaN(e)?t:e,b=(e,t)=>null!=e?e:t,d=(e,t)=>e??t,k=e=>e.tintColor?M(e.tintColor):[255,255,255,1];class g{constructor(e){this._import=e}getImportPromise(){return null==this._promise&&(this._promise=this._import().then(e=>this.module=e)),this._promise}}function S(e){return new g(e)}function P(e){if(!e)return"normal";switch(e.toLowerCase()){case"italic":return"italic";case"oblique":return"oblique";default:return"normal"}}function w(e){if(!e)return"normal";switch(e.toLowerCase()){case"bold":return"bold";case"bolder":return"bolder";case"lighter":return"lighter";default:return"normal"}}function L(e){let t="normal",r="normal";if(e){const n=e.toLowerCase();n.includes("italic")?t="italic":n.includes("oblique")&&(t="oblique"),n.includes("bold")?r="bold":n.includes("light")&&(r="lighter")}return{style:t,weight:r}}function E(e){return e.underline?"underline":e.strikethrough?"line-through":"none"}function x(e){if(!e)return null;switch(e.type){case"CIMPolygonSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=x(t);if(null!=e)return e}break;case"CIMTextSymbol":return x(e.symbol);case"CIMSolidFill":return e.color}return null}function G(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":{const t=e.symbolLayers;if(t)for(const e of t){const t=G(e);if(null!=t)return t}break}case"CIMTextSymbol":return G(e.symbol);case"CIMSolidStroke":return e.color}}function N(e){for(const t of e)if(t.enable)switch(t.type){case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return!0}return!1}function T(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=T(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return T(e.symbol);case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return e.width}}function v(e){switch(e){case"Left":default:return"left";case"Right":return"right";case"Center":return"center";case"Justify":return"justify"}}function A(e){switch(e){default:case"Bottom":return"bottom";case"Top":return"top";case"Center":return"middle";case"Baseline":return"baseline"}}function F(e){return(e?Object.keys(e):[]).map(t=>({name:t,alias:t,type:"string"==typeof e[t]?"esriFieldTypeString":"esriFieldTypeDouble"}))}const z=e=>e.includes("data:image/svg+xml");function B(e){if(!e)return null;switch(e.type){case"CIMPointSymbol":case"CIMTextSymbol":return"esriGeometryPoint";case"CIMLineSymbol":return"esriGeometryPolyline";case"CIMPolygonSymbol":return"esriGeometryPolygon";default:return null}}function O(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e}function V(e,t,r,n,o,i,a=!0){const{infos:l}=i;let c=1,s=0,u=0,f=0,M=1;for(const{absoluteAnchorPoint:C,offsetX:h,offsetY:I,rotation:p,size:b,frameHeight:d,rotateClockWise:k,scaleSymbolsProportionally:g}of l){M=C?1:c;u=Q(h,I,s,M,u),f=K(h,I,s,M,f),d&&(g||a)&&(c*=b/d),s=Z(p,k,s)}const m=Q(n,o,s,M,u),y=K(n,o,s,M,f);return{size:e*c,rotation:Z(t,r,s),offsetX:m,offsetY:y}}function R(e){if(null==e)return!1;if(Array.isArray(e))return e.every(e=>R(e));switch(typeof e){case"string":return!!e;case"number":return!isNaN(e)}}function D(r,n){if("color"===n||"outlinecolor"===n||"backgroundcolor"===n||"borderlinecolor"===n||"tintcolor"===n)return[...t[n]];const o=e[r];if(!o)throw new Error(`InternalError: default value for type ${r}.`);return o[n]}function W(e){return e.split(" ").map(e=>Number(e))}function j(e){return"string"==typeof e?W(e):e}function q(e){return e?.dashTemplate&&(e.dashTemplate=j(e.dashTemplate)),e}function _(e){if(null==e)return"Normal";switch(e.type){case"CIMTextSymbol":return e.textCase??"Normal";case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const t=e.symbolLayers;if(!t)return"Normal";for(const e of t)if("CIMVectorMarker"===e.type)return _(e)}break;case"CIMVectorMarker":{const t=e.markerGraphics;if(!t)return"Normal";for(const e of t)if(e.symbol)return _(e.symbol)}}return"Normal"}function X(t){if(t)switch(t.type){case"CIMTextSymbol":return t.height;case"CIMPointSymbol":{let r=0;if(t.symbolLayers)for(const n of t.symbolLayers)if(n)switch(n.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=n.size??e.CIMVectorMarker.size;t>r&&(r=t);break}}return r}case"CIMLineSymbol":case"CIMPolygonSymbol":{let r=0;if(t.symbolLayers)for(const n of t.symbolLayers)if(n)switch(n.type){case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=n.width;null!=e&&e>r&&(r=e);break}case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":if(n.markerPlacement&&I(n.markerPlacement)){const t=n.size??e.CIMVectorMarker.size;t>r&&(r=t)}break;case"CIMPictureFill":{const e=n.height;null!=e&&e>r&&(r=e)}}return r}}}function Y(e,t){if(null!==t){const r=t.get(e);return r?r.name:e}return e}function H(e){return e.map(e=>({...e,propertyName:O(e.propertyName)}))}function J(e){const t={};for(const r in e){const n=e[r];t[O(r)]=n}return t}function U(e){if(!e)return 0;let t=0;for(const r of e)t+=$(r);return t}function $(e){if(!e)return 0;if(le(e))return e.inflateSize??256;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectControlMeasureLine":return 500;case"CIMGeometricEffectExtension":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(p(e.offsetX)),Math.abs(p(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRadial":return Math.abs(e.length??5);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude);case"CIMGeometricEffectDonut":return Math.abs(e.width)}}function K(e,t,r,n,o){const i=r*Math.PI/180;if(i){const r=Math.cos(i);return(Math.sin(i)*e+r*t)*n+o}return t*n+o}function Q(e,t,r,n,o){const i=r*Math.PI/180;if(i){return(Math.cos(i)*e-Math.sin(i)*t)*n+o}return e*n+o}function Z(e,t,r){return t?r-e:r+e}function ee(e,t,r){const n="Color"===r||"TintColor"===r||"ToColor"===r,o="Rotation"===r||"Angle"===r||"ToRotation"===r;let i=t[O(r)];if(null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]/255]:o&&(i*=Math.PI/180)),null==i&&(i=D(t.type,r.toLowerCase()),null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]]:o&&(i*=Math.PI/180))),null!=t.primitiveName){const a=e[t.primitiveName];if(null!=a){const e=a[r];null==e||("string"==typeof e||"number"==typeof e||Array.isArray(e)?(i=e,null!=i&&(n?i=[i[0]/255,i[1]/255,i[2]/255,i[3]/255]:o&&(i*=Math.PI/180))):(i={valueExpressionInfo:e,defaultValue:i},null!=i&&(n?i={type:"Process",op:"ArcadeColor",value:i}:o&&(i={type:"Process",op:"Divide",left:i,right:180/Math.PI}))))}}if(null==i)throw new Error(`Failed to derive a value or an expression for "${r}".`);return i}function te(e,t,r){if(null!=t[O(r)])return!0;if(null!=t.primitiveName){const n=e[t.primitiveName];if(null!=n){if(null!=n[r])return!0}}return!1}function re(e,t){return Math.max(Math.min((e??t)/100,1),0)}function ne(e){if(!e)return"None";switch(e){case"Begin":return"Begin";case"End":return"End";case"Both":return"Both";default:return"None"}}function oe(e){if(!e)return"None";switch(e){case"Tolerance":return"Tolerance";case"Text":return"Text";default:return"None"}}function ie(e){if(!e)return"None";switch(e){case"MoveBegin":return"MoveBegin";case"MoveEnd":return"MoveEnd";default:return"None"}}function ae(e){if(!e)return"None";switch(e){case"Only":return"Only";case"Suffix":return"Suffix";case"Expression":return"Expression";default:return"None"}}function le(e){return e.type.startsWith("Private")}function ce(e){return null!=e&&se(e)?e:void 0}function se(e){return"setControlPoint"in e&&"getControlPoint"in e&&"setControlPointAt"in e&&"getControlPointAt"in e}export{u as adjustTextCase,l as analyzeTextParts,V as applyParentTransform,ce as asCIMGeometryCursor,s as assignTextValuesFromFeature,F as attributesToFields,o as colorToArray,n as evaluateValueOrFunction,E as fromCIMFontDecoration,L as fromCIMFontStyle,v as fromCIMHorizontalAlignment,A as fromCIMVerticalAlignment,D as getDefaultCIMValue,U as getEffectsInflateSize,d as getEnum,Y as getFieldName,x as getFillColor,P as getFontStyle,w as getFontWeight,p as getNumericValue,ee as getProcessParam,re as getRelativeGradientSize,X as getSize,G as getStrokeColor,T as getStrokeWidth,_ as getTextCasing,c as getTextValuesFromFeatureHandle,k as getTintColor,b as getValue,te as hasProcessParam,N as hasStrokeLayer,S as importLazily,h as isCIMFill,y as isCIMMarker,I as isCIMMarkerStrokePlacement,C as isCIMStroke,r as isFeatureValueFn,le as isPrivateGeometricEffect,z as isSVGImage,R as isValidCIMValue,B as mapCIMSymbolToGeometryType,M as normalizeAlpha,q as normalizeDashEffectTemplate,j as normalizeDashTemplate,H as normalizePrimitiveOverrideProps,W as parseDashTemplate,f as resampleHermite,oe as stringToDimensionMarkerFit,ne as stringToDimensionPartOptions,ie as stringToDimensionTextFit,ae as stringToDimensionTextOptions,m as toCIMSymbolJSON,J as toLowerCaseProps,O as uncapitalize};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../Color.js";import{toCIMSymbolJSON as t,isCIMStroke as o,isCIMMarker as r,isCIMMarkerStrokePlacement as a,isCIMFill as n,normalizeAlpha as s}from"../cim/utils.js";function i(e){const a=t(e);if("CIMTextSymbol"===a?.type)return a.height??0;let s=0;if(a?.symbolLayers)for(const t of a.symbolLayers)r(t)&&null!=t.size&&t.size>s?s=t.size:o(t)&&null!=t.width&&t.width>s?s=t.width:n(t);return s}function c(e,o,r){if(!e)return;const a=t(e),n=i(e);if(0===n)return void l(a,o);f(a,o/n,!1,r)}function l(e,t){if(e)if("CIMTextSymbol"!==e.type){if(e.symbolLayers)for(const o of e.symbolLayers)switch(o.type){case"CIMPictureMarker":case"CIMVectorMarker":o.size=t;break;case"CIMPictureStroke":case"CIMSolidStroke":case"CIMGradientStroke":o.width=t}}else e.height=t}function f(e,t,o,r){if(e)if("CIMTextSymbol"!==e.type){if(o&&e.effects)for(const o of e.effects)M(o,t);if(e.symbolLayers)for(const o of e.symbolLayers){switch(o.type){case"CIMPictureMarker":case"CIMVectorMarker":m(o,t,r);break;case"CIMPictureStroke":case"CIMSolidStroke":case"CIMGradientStroke":!r?.preserveOutlineWidth&&o.width&&(o.width*=t);break;case"CIMPictureFill":o.height&&(o.height*=t),o.offsetX&&(o.offsetX*=t),o.offsetY&&(o.offsetY*=t);break;case"CIMHatchFill":f(o.lineSymbol,t,!0,{...r,preserveOutlineWidth:!1}),o.offsetX&&(o.offsetX*=t),o.offsetY&&(o.offsetY*=t),o.separation&&(o.separation*=t)}if(o.effects)for(const e of o.effects)M(e,t)}}else null!=e.height&&(e.height*=t)}function m(e,t,o){if(e&&(e.markerPlacement&&C(e.markerPlacement,t),e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t),e.anchorPoint&&"Absolute"===e.anchorPointUnits&&(e.anchorPoint={x:e.anchorPoint.x*t,y:e.anchorPoint.y*t}),e.size=null!=e.size?e.size*t:0,"CIMVectorMarker"===e.type&&e.markerGraphics))for(const r of e.markerGraphics)e.scaleSymbolsProportionally||f(r.symbol,t,!0,o)}function C(e,t){switch(a(e)&&e.offset&&(e.offset*=t),e.type){case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineSameSize":if(e.customEndingOffset&&(e.customEndingOffset*=t),e.offsetAlongLine&&(e.offsetAlongLine*=t),e.placementTemplate&&e.placementTemplate.length){const o=e.placementTemplate.map(e=>e*t);e.placementTemplate=o}break;case"CIMMarkerPlacementAlongLineVariableSize":if(e.maxRandomOffset&&(e.maxRandomOffset*=t),e.placementTemplate&&e.placementTemplate.length){const o=e.placementTemplate.map(e=>e*t);e.placementTemplate=o}break;case"CIMMarkerPlacementOnLine":e.startPointOffset&&(e.startPointOffset*=t);break;case"CIMMarkerPlacementAtExtremities":e.offsetAlongLine&&(e.offsetAlongLine*=t);break;case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementOnVertices":break;case"CIMMarkerPlacementAtRatioPositions":e.beginPosition&&(e.beginPosition*=t),e.endPosition&&(e.endPosition*=t);break;case"CIMMarkerPlacementPolygonCenter":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t);break;case"CIMMarkerPlacementInsidePolygon":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t),e.stepX&&(e.stepX*=t),e.stepY&&(e.stepY*=t)}}function M(e,t){switch(e.type){case"CIMGeometricEffectArrow":case"CIMGeometricEffectDonut":e.width&&(e.width*=t);break;case"CIMGeometricEffectBuffer":e.size&&(e.size*=t);break;case"CIMGeometricEffectCut":e.beginCut&&(e.beginCut*=t),e.endCut&&(e.endCut*=t),e.middleCut&&(e.middleCut*=t);break;case"CIMGeometricEffectDashes":if(e.customEndingOffset&&(e.customEndingOffset*=t),e.offsetAlongLine&&(e.offsetAlongLine*=t),e.dashTemplate&&e.dashTemplate.length){const o=e.dashTemplate.map(e=>e*t);e.dashTemplate=o}break;case"CIMGeometricEffectExtension":case"CIMGeometricEffectJog":case"CIMGeometricEffectRadial":e.length&&(e.length*=t);break;case"CIMGeometricEffectMove":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t);break;case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":e.offset&&(e.offset*=t);break;case"CIMGeometricEffectRegularPolygon":e.radius&&(e.radius*=t);break;case"CIMGeometricEffectTaperedPolygon":e.fromWidth&&(e.fromWidth*=t),e.length&&(e.length*=t),e.toWidth&&(e.toWidth*=t);break;case"CIMGeometricEffectWave":e.amplitude&&(e.amplitude*=t),e.period&&(e.period*=t)}}function u(o){const r=[];return y(t(o),r),r.length?new e(s(r[0])):null}function y(e,t){if(!e)return;let n;n="CIMTextSymbol"===e.type?e.symbol:e;const s="CIMPolygonSymbol"===e.type;if(n?.symbolLayers)for(const i of n.symbolLayers)if(!(i.colorLocked||s&&(o(i)||r(i)&&i.markerPlacement&&a(i.markerPlacement))))switch(i.type){case"CIMPictureMarker":case"CIMPictureStroke":case"CIMPictureFill":i.tintColor&&p(t,i.tintColor);break;case"CIMVectorMarker":i.markerGraphics?.forEach(e=>{y(e.symbol,t)});break;case"CIMSolidStroke":case"CIMSolidFill":p(t,i.color);break;case"CIMGradientFill":I(t,i);break;case"CIMHatchFill":y(i.lineSymbol,t)}}function p(e,t){for(const o of e)if(o.join(".")===t.join("."))return;e.push(t)}function I(e,t){const o=t.colorRamp?.type;switch(o){case"CIMMultipartColorRamp":t.colorRamp.colorRamps?.forEach(t=>{"CIMLinearContinuousColorRamp"===t.type&&b(e,t)});break;case"CIMLinearContinuousColorRamp":case"CIMPolarContinuousColorRamp":b(e,t.colorRamp)}}function b(e,t){t&&(t.fromColor&&p(e,t.fromColor),t.toColor&&p(e,t.toColor))}function k(o,r,a){r instanceof e||(r=new e(r));const n=t(o);n&&h(n,r,a)}function h(e,t,s){if(!e)return;let i;i="CIMTextSymbol"===e.type?e.symbol:e;const c="CIMPolygonSymbol"===i?.type;if(i?.symbolLayers)for(const l of i.symbolLayers){if(l.colorLocked)continue;if(c)if(s){const{layersToColor:e}=s;if((o(l)||r(l)&&l.markerPlacement&&a(l.markerPlacement))&&"fill"===e||n(l)&&"outline"===e)continue}else if(o(l)||r(l)&&l.markerPlacement&&a(l.markerPlacement))continue;const e=t.toArray();switch(l.type){case"CIMPictureMarker":case"CIMPictureStroke":case"CIMPictureFill":l.tintColor=e;break;case"CIMVectorMarker":l.markerGraphics?.forEach(e=>{h(e.symbol,t,s)});break;case"CIMSolidStroke":case"CIMSolidFill":l.color=e;break;case"CIMGradientFill":d(l,t);break;case"CIMHatchFill":h(l.lineSymbol,t,s)}}}function d(e,t){const o=e.colorRamp?.type;switch(o){case"CIMMultipartColorRamp":e.colorRamp.colorRamps?.forEach(e=>{"CIMLinearContinuousColorRamp"===e.type&&P(e,t)});break;case"CIMLinearContinuousColorRamp":case"CIMPolarContinuousColorRamp":P(e.colorRamp,t)}}function P(e,t){if(e&&(e.fromColor&&(e.fromColor=t.toArray()),e.toColor)){const o=t.clone();o.a=0,e.toColor=o.toArray()}}function g(e,o=!1){const r=t(e);if("CIMTextSymbol"===r?.type||"CIMPointSymbol"===r?.type){const e=r.angle;return null!=e&&o?360-e:e??0}return 0}function S(e,o,a=!1){const n=t(e);if(a&&(o=360-o),"CIMTextSymbol"!==n?.type){if("CIMPointSymbol"===n?.type&&n.symbolLayers){const e=o-(n.angle||0);for(const t of n.symbolLayers)if(r(t)){let o=t.rotation||0;t.rotateClockwise?o-=e:o+=e,t.rotation=o}n.angle=o}}else n.angle=o}function L(e){const o=t(e);if(!o)return null;switch(o.type){case"CIMPointSymbol":return"CIMPointSymbol";case"CIMLineSymbol":return"CIMLineSymbol";case"CIMPolygonSymbol":return"CIMPolygonSymbol";case"CIMTextSymbol":return"CIMTextSymbol";case"CIMMeshSymbol":return"CIMMeshSymbol";default:return null}}export{k as applyCIMSymbolColor,S as applyCIMSymbolRotation,u as getCIMSymbolColor,g as getCIMSymbolRotation,i as getCIMSymbolSize,L as getCIMSymbolType,m as scaleCIMMarker,f as scaleCIMSymbol,c as scaleCIMSymbolTo};
2
+ import e from"../../Color.js";import{toCIMSymbolJSON as t,isCIMStroke as o,isCIMMarker as r,isCIMMarkerStrokePlacement as a,isCIMFill as n,isPrivateGeometricEffect as s,normalizeAlpha as i}from"../cim/utils.js";function c(e){const a=t(e);if("CIMTextSymbol"===a?.type)return a.height??0;let s=0;if(a?.symbolLayers)for(const t of a.symbolLayers)r(t)&&null!=t.size&&t.size>s?s=t.size:o(t)&&null!=t.width&&t.width>s?s=t.width:n(t);return s}function l(e,o,r){if(!e)return;const a=t(e),n=c(e);if(0===n)return void f(a,o);m(a,o/n,!1,r)}function f(e,t){if(e)if("CIMTextSymbol"!==e.type){if(e.symbolLayers)for(const o of e.symbolLayers)switch(o.type){case"CIMPictureMarker":case"CIMVectorMarker":o.size=t;break;case"CIMPictureStroke":case"CIMSolidStroke":case"CIMGradientStroke":o.width=t}}else e.height=t}function m(e,t,o,r){if(e)if("CIMTextSymbol"!==e.type){if(o&&e.effects)for(const o of e.effects)u(o,t);if(e.symbolLayers)for(const o of e.symbolLayers){switch(o.type){case"CIMPictureMarker":case"CIMVectorMarker":C(o,t,r);break;case"CIMPictureStroke":case"CIMSolidStroke":case"CIMGradientStroke":!r?.preserveOutlineWidth&&o.width&&(o.width*=t);break;case"CIMPictureFill":o.height&&(o.height*=t),o.offsetX&&(o.offsetX*=t),o.offsetY&&(o.offsetY*=t);break;case"CIMHatchFill":m(o.lineSymbol,t,!0,{...r,preserveOutlineWidth:!1}),o.offsetX&&(o.offsetX*=t),o.offsetY&&(o.offsetY*=t),o.separation&&(o.separation*=t)}if(o.effects)for(const e of o.effects)u(e,t)}}else null!=e.height&&(e.height*=t)}function C(e,t,o){if(e&&(e.markerPlacement&&M(e.markerPlacement,t),e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t),e.anchorPoint&&"Absolute"===e.anchorPointUnits&&(e.anchorPoint={x:e.anchorPoint.x*t,y:e.anchorPoint.y*t}),e.size=null!=e.size?e.size*t:0,"CIMVectorMarker"===e.type&&e.markerGraphics))for(const r of e.markerGraphics)e.scaleSymbolsProportionally||m(r.symbol,t,!0,o)}function M(e,t){switch(a(e)&&e.offset&&(e.offset*=t),e.type){case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineSameSize":if(e.customEndingOffset&&(e.customEndingOffset*=t),e.offsetAlongLine&&(e.offsetAlongLine*=t),e.placementTemplate&&e.placementTemplate.length){const o=e.placementTemplate.map(e=>e*t);e.placementTemplate=o}break;case"CIMMarkerPlacementAlongLineVariableSize":if(e.maxRandomOffset&&(e.maxRandomOffset*=t),e.placementTemplate&&e.placementTemplate.length){const o=e.placementTemplate.map(e=>e*t);e.placementTemplate=o}break;case"CIMMarkerPlacementOnLine":e.startPointOffset&&(e.startPointOffset*=t);break;case"CIMMarkerPlacementAtExtremities":e.offsetAlongLine&&(e.offsetAlongLine*=t);break;case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementOnVertices":break;case"CIMMarkerPlacementAtRatioPositions":e.beginPosition&&(e.beginPosition*=t),e.endPosition&&(e.endPosition*=t);break;case"CIMMarkerPlacementPolygonCenter":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t);break;case"CIMMarkerPlacementInsidePolygon":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t),e.stepX&&(e.stepX*=t),e.stepY&&(e.stepY*=t)}}function u(e,t){if(!s(e))switch(e.type){case"CIMGeometricEffectArrow":case"CIMGeometricEffectDonut":e.width&&(e.width*=t);break;case"CIMGeometricEffectBuffer":e.size&&(e.size*=t);break;case"CIMGeometricEffectCut":e.beginCut&&(e.beginCut*=t),e.endCut&&(e.endCut*=t),e.middleCut&&(e.middleCut*=t);break;case"CIMGeometricEffectDashes":if(e.customEndingOffset&&(e.customEndingOffset*=t),e.offsetAlongLine&&(e.offsetAlongLine*=t),e.dashTemplate&&e.dashTemplate.length){const o=e.dashTemplate.map(e=>e*t);e.dashTemplate=o}break;case"CIMGeometricEffectExtension":case"CIMGeometricEffectJog":case"CIMGeometricEffectRadial":e.length&&(e.length*=t);break;case"CIMGeometricEffectMove":e.offsetX&&(e.offsetX*=t),e.offsetY&&(e.offsetY*=t);break;case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":e.offset&&(e.offset*=t);break;case"CIMGeometricEffectRegularPolygon":e.radius&&(e.radius*=t);break;case"CIMGeometricEffectTaperedPolygon":e.fromWidth&&(e.fromWidth*=t),e.length&&(e.length*=t),e.toWidth&&(e.toWidth*=t);break;case"CIMGeometricEffectWave":e.amplitude&&(e.amplitude*=t),e.period&&(e.period*=t)}}function y(o){const r=[];return p(t(o),r),r.length?new e(i(r[0])):null}function p(e,t){if(!e)return;let n;n="CIMTextSymbol"===e.type?e.symbol:e;const s="CIMPolygonSymbol"===e.type;if(n?.symbolLayers)for(const i of n.symbolLayers)if(!(i.colorLocked||s&&(o(i)||r(i)&&i.markerPlacement&&a(i.markerPlacement))))switch(i.type){case"CIMPictureMarker":case"CIMPictureStroke":case"CIMPictureFill":i.tintColor&&I(t,i.tintColor);break;case"CIMVectorMarker":i.markerGraphics?.forEach(e=>{p(e.symbol,t)});break;case"CIMSolidStroke":case"CIMSolidFill":I(t,i.color);break;case"CIMGradientFill":b(t,i);break;case"CIMHatchFill":p(i.lineSymbol,t)}}function I(e,t){for(const o of e)if(o.join(".")===t.join("."))return;e.push(t)}function b(e,t){const o=t.colorRamp?.type;switch(o){case"CIMMultipartColorRamp":t.colorRamp.colorRamps?.forEach(t=>{"CIMLinearContinuousColorRamp"===t.type&&k(e,t)});break;case"CIMLinearContinuousColorRamp":case"CIMPolarContinuousColorRamp":k(e,t.colorRamp)}}function k(e,t){t&&(t.fromColor&&I(e,t.fromColor),t.toColor&&I(e,t.toColor))}function h(o,r,a){r instanceof e||(r=new e(r));const n=t(o);n&&d(n,r,a)}function d(e,t,s){if(!e)return;let i;i="CIMTextSymbol"===e.type?e.symbol:e;const c="CIMPolygonSymbol"===i?.type;if(i?.symbolLayers)for(const l of i.symbolLayers){if(l.colorLocked)continue;if(c)if(s){const{layersToColor:e}=s;if((o(l)||r(l)&&l.markerPlacement&&a(l.markerPlacement))&&"fill"===e||n(l)&&"outline"===e)continue}else if(o(l)||r(l)&&l.markerPlacement&&a(l.markerPlacement))continue;const e=t.toArray();switch(l.type){case"CIMPictureMarker":case"CIMPictureStroke":case"CIMPictureFill":l.tintColor=e;break;case"CIMVectorMarker":l.markerGraphics?.forEach(e=>{d(e.symbol,t,s)});break;case"CIMSolidStroke":case"CIMSolidFill":l.color=e;break;case"CIMGradientFill":P(l,t);break;case"CIMHatchFill":d(l.lineSymbol,t,s)}}}function P(e,t){const o=e.colorRamp?.type;switch(o){case"CIMMultipartColorRamp":e.colorRamp.colorRamps?.forEach(e=>{"CIMLinearContinuousColorRamp"===e.type&&g(e,t)});break;case"CIMLinearContinuousColorRamp":case"CIMPolarContinuousColorRamp":g(e.colorRamp,t)}}function g(e,t){if(e&&(e.fromColor&&(e.fromColor=t.toArray()),e.toColor)){const o=t.clone();o.a=0,e.toColor=o.toArray()}}function S(e,o=!1){const r=t(e);if("CIMTextSymbol"===r?.type||"CIMPointSymbol"===r?.type){const e=r.angle;return null!=e&&o?360-e:e??0}return 0}function L(e,o,a=!1){const n=t(e);if(a&&(o=360-o),"CIMTextSymbol"!==n?.type){if("CIMPointSymbol"===n?.type&&n.symbolLayers){const e=o-(n.angle||0);for(const t of n.symbolLayers)if(r(t)){let o=t.rotation||0;t.rotateClockwise?o-=e:o+=e,t.rotation=o}n.angle=o}}else n.angle=o}function E(e){const o=t(e);if(!o)return null;switch(o.type){case"CIMPointSymbol":return"CIMPointSymbol";case"CIMLineSymbol":return"CIMLineSymbol";case"CIMPolygonSymbol":return"CIMPolygonSymbol";case"CIMTextSymbol":return"CIMTextSymbol";case"CIMMeshSymbol":return"CIMMeshSymbol";default:return null}}export{h as applyCIMSymbolColor,L as applyCIMSymbolRotation,y as getCIMSymbolColor,S as getCIMSymbolRotation,c as getCIMSymbolSize,E as getCIMSymbolType,C as scaleCIMMarker,m as scaleCIMSymbol,l as scaleCIMSymbolTo};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{AMeshFactory as e}from"./MeshFactory.js";import{createMatcher as s}from"../../util/createMatcher.js";class t extends e{static async create(e,o){const r=await s(e,o.symbology),c=o.labels?await s(e,o.labels):null;return new t(r,c)}constructor(e,s){super(),this._symbology=e,this._labels=s}destroy(){}async enqueueMatcherRequests(e,s,t,o){await Promise.all([this._symbology.fetchResources(e,s,t,o),this._labels?.fetchResources(e,s,t,o)])}enqueueWriterRequests(e,s,t,o){const r=this._symbology.match(s,t,o);if(r){for(const o of r)o.enqueueRequest(e,s,t);if(this._labels){const r=this._labels.match(s,t,o);if(!r)return;for(const o of r)o.enqueueRequest(e,s,t)}}}write(e,s,t,o,r,c,a,i){const l=null!=i?i/o.$view.scale:void 0,n=this._symbology.match(t,o,r);if(!n)return;for(const y of n)y.write(e,s,t,o,c,a,l,this._symbology);this._symbology.cleanup(s,t,e.id,o,r);if(e.entityRecordCount()>=1&&this._labels){const i=this._labels.match(t,o,r);if(!i)return;for(const r of i)r.setReferences(n),r.write(e,s,t,o,c,a,l)}}getSortKey(e,s){return this._symbology.getSortKey(e,s)}hasArcadeDependency(e){return!(!this._symbology.hasArcadeDependency(e)&&!this._labels?.hasArcadeDependency(e))}}export{t as FeatureMeshFactory};
2
+ import{AMeshFactory as e}from"./MeshFactory.js";import{createMatcher as s}from"../../util/createMatcher.js";class t extends e{static async create(e,o){const r=await s(e,o.symbology),i=o.labels?await s(e,o.labels):null;return new t(r,i)}constructor(e,s){super(),this._symbology=e,this._labels=s}destroy(){}async enqueueMatcherRequests(e,s,t,o){await Promise.all([this._symbology.fetchResources(e,s,t,o),this._labels?.fetchResources(e,s,t,o)])}enqueueWriterRequests(e,s,t,o,r){const i=this._symbology.match(s,t,o,r);if(i){for(const o of i)o.enqueueRequest(e,s,t);if(this._labels){const i=this._labels.match(s,t,o,r);if(!i)return;for(const o of i)o.enqueueRequest(e,s,t)}}}write(e,s,t,o,r,i,c,a){const l=null!=a?a/o.$view.scale:void 0,n=this._symbology.match(t,o,r,e.id);if(!n)return;for(const y of n)y.write(e,s,t,o,i,c,l,this._symbology);this._symbology.cleanup(s,t,e.id,o,r);if(e.entityRecordCount()>=1&&this._labels){const a=this._labels.match(t,o,r,e.id);if(!a)return;for(const r of a)r.setReferences(n),r.write(e,s,t,o,i,c,l)}}getSortKey(e,s){return this._symbology.getSortKey(e,s)}hasArcadeDependency(e){return!(!this._symbology.hasArcadeDependency(e)&&!this._labels?.hasArcadeDependency(e))}}export{t as FeatureMeshFactory};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clamp as t}from"../../../../../../../core/mathUtils.js";import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as o}from"../../../../../../../geometry/GeometryCursor.js";import{asCIMGeometryCursor as i}from"../../../../../../../symbols/cim/utils.js";import{CIMMarkerPlacementHelper as r}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{getXDirection as s,getYDirection as n}from"../../../alignmentUtils.js";import{maxTextLineWidth as a,minTextLineWidth as l,magicLabelLineHeight as d}from"../../../definitions.js";import{shapeGlyphs as c,shapeGlyphsForMultipoint as h}from"../../../mesh/templates/shapingUtils.js";import{getMinMaxZoom as f,processColorInput as u,packBitset as m}from"../fill/meshWriterUtils.js";import{MeshWriter as p}from"../mesh/MeshWriter.js";import{bitsetTextIsBackground as g,bitsetTextIsMapAligned as x}from"../shaders/constants.js";import{TextMeshTransformProps as y}from"./TextParams.js";import{DataType as S}from"../../../../../../webgl/enums.js";const z=28,b=[4,4],_=[16,4],P={topLeft:_,topRight:_,bottomLeft:_,bottomRight:_},M=[4,2],L=[4,6],B={topLeft:M,topRight:M,bottomLeft:L,bottomRight:L},R={topLeft:M,topRight:L,bottomLeft:M,bottomRight:L},T={topLeft:L,topRight:L,bottomLeft:b,bottomRight:b},k={topLeft:b,topRight:b,bottomLeft:L,bottomRight:L},A={topLeft:L,topRight:b,bottomLeft:L,bottomRight:b},v={topLeft:b,topRight:L,bottomLeft:b,bottomRight:L};function w(t){return{backgroundColor:t.boxBackgroundColor??t.backgroundColor??null,borderLineColor:t.boxBorderLineColor??t.borderLineColor??null,borderLineSize:t.boxBorderLineSize>0?t.boxBorderLineSize:t.borderLineWidth??0}}const I={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:S.HALF_FLOAT,count:2,packTessellation:({minZoom:t,maxZoom:e})=>[t||0,e||z]},clipAngle:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:t})=>G(t||0)},referenceSymbol:{type:S.BYTE,count:4,packTessellation:(t,o)=>{const i=t.isLineLabel||!t.referenceBounds,r=s(i?"center":o.horizontalAlignment),a=n(i?"middle":o.verticalAlignment),{offsetX:l,offsetY:d,size:c}=i?{offsetX:0,offsetY:0,size:0}:t.referenceBounds;return[e(l),-e(d),Math.round(e(c)),r+1<<2|a+1]}},visibility:{type:S.FLOAT,count:1,otherSource:!0}},attributes:{pos:{type:S.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:S.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:t,mapAligned:e})=>m([[g,t],[x,!!e]])},offset:{type:S.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},textureUV:{type:S.UNSIGNED_SHORT,count:2,packAlternating:{count:4,packTessellation:({texcoords:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},color:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:t})=>t},fontAndReferenceSize:{type:S.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,packTessellation:({fontSize:t,sdfSize:o,sdfRadius:i},{referenceSize:r})=>[Math.round(e(t)),Math.round(e(r||t)),o,i]},outlineColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>u(t)},haloColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:t})=>u(t)},outlineAndHaloSize:{type:S.UNSIGNED_SHORT,count:2,packPrecisionFactor:4,packTessellation:({outlineSize:t,haloSize:o})=>[Math.round(e(t)),Math.round(e(o))]}}};class C extends p{constructor(){super(...arguments),this.vertexSpec=I,this._textMeshParamsPropsInitialized=!1}ensurePacked(t,e,o){super.ensurePacked(t,e,o),this._textMeshParamsPropsInitialized&&!this._evaluator.hasDynamicProperties||(this._textMeshTransformProps=new y(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}_write(t,{target:e,effectGeometry:o}){const r=this._getShaping();if(!r)return;const s=1===this.evaluatedMeshParams.alignment,n=e.getDisplayId(),{placement:a}=this.evaluatedMeshParams;if(null!=a){if("PrivatePlacementMultipoint"!==a.type)this._writePlacedTextMarkers(t,e,r,i(o));else{const o=this._getMultipointShaping();o&&this._writeMultipointText(t,e,o)}return}if(o?.nextPath())return o.nextPoint(),this._writeGlyphs(t,n,o.x,o.y,r,0,void 0,{mapAligned:s});if("esriGeometryPolygon"===e.geometryType){const o=e.readCentroidForDisplay();if(!o)return;const[i,a]=o.coords;return this._writeGlyphs(t,n,i,a,r,0,void 0,{mapAligned:s})}if("esriGeometryMultipoint"===e.geometryType){const o=e.readGeometryForDisplay();return void o?.forEachVertex((e,o)=>this._writeGlyphs(t,n,e,o,r,0,void 0,{mapAligned:s}))}const l=e.readXForDisplay(),d=e.readYForDisplay();return this._writeGlyphs(t,n,l,d,r,0,void 0,{mapAligned:s})}_writePlacedTextMarkers(t,i,s,n){const a=n??o.fromFeatureSetReaderCIM(i);if(!a)return;const l=-1,d=r.getPlacement(a,l,this.evaluatedMeshParams.placement,e(1),t.id);if(!d)return;const c=i.getDisplayId();let h=d.next();for(;null!=h;){const e=-h.getAngle(),o=h.tx,i=-h.ty;this._writeGlyphs(t,c,o,i,s,e,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),h=d.next()}}_writeMultipointText(t,i,s){const n=o.fromFeatureSetReaderCIM(i);if(!n)return;const a=-1,l=r.getPlacement(n,a,this.evaluatedMeshParams.placement,e(1),t.id);if(!l)return;const d=i.getDisplayId();let c=l.next(),h=0;for(;null!=c;){const e=c.tx,o=-c.ty,i=-c.getAngle();this._writeGlyph(t,d,e,o,s,h,i,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),c=l.next(),h++}}_getShaping(o){const i=this._textMeshTransformProps,r=this.evaluatedMeshParams;if(!r.glyphs?.glyphs.length)return null;const s=e(i.fontSize),n=e(i.offsetX),h=e(i.offsetY),f=r.glyphs.sdfSize,u=t(e(r.lineWidth),l,a),m=f/24*d*t(r.lineHeightRatio,.25,4),{backgroundColor:p,borderLineSize:g}=w(r);return c(r.glyphs,{scale:s/f,angle:i.postAngle,xOffset:n,yOffset:h,horizontalAlignment:r.horizontalAlignment,verticalAlignment:o||r.verticalAlignment,maxLineWidth:u,lineHeight:m,decoration:r.decoration,borderLineSizePx:e(g),hasBackground:!!p,useCIMAngleBehavior:r.useCIMAngleBehavior})}_getMultipointShaping(){const o=this._textMeshTransformProps,i=this.evaluatedMeshParams;if(!i.glyphs?.glyphs.length)return null;const r=e(o.fontSize),s=e(o.offsetX),n=e(o.offsetY),c=i.glyphs.sdfSize,f=t(e(i.lineWidth),l,a),u=c/24*d*t(i.lineHeightRatio,.25,4),{backgroundColor:m,borderLineSize:p}=w(i);return h(i.glyphs,{scale:r/c,angle:o.postAngle,xOffset:s,yOffset:n,horizontalAlignment:i.horizontalAlignment,verticalAlignment:i.verticalAlignment,maxLineWidth:f,lineHeight:u,decoration:i.decoration,borderLineSizePx:e(p),hasBackground:!!m,useCIMAngleBehavior:i.useCIMAngleBehavior})}_writeGlyphs(t,o,i,r,s,n,a,l,d=!0){const c=this.evaluatedMeshParams,h=this._textMeshTransformProps,m=e(h.fontSize),p=h.haloSize,g=h.outlineSize,x=e(h.offsetX),y=e(h.offsetY),{sdfSize:S,sdfRadius:z}=c.glyphs,[b,_]=f(c.scaleInfo,this.getTileInfo());0!==n&&s.setRotation(n);const P=s.bounds,M=i+P.x+x,L=r+P.y-y,B=2*(c.minPixelBuffer?c.minPixelBuffer/m:1),R=Math.max(P.width,P.height)*B;s.textBox&&(t.recordStart(this.instanceId,this.attributeLayout,s.glyphs[0].textureBinding),d&&t.recordBounds(M,L,R,R),this._writeTextBox(t,o,i,r,s.textBox,a,l),t.recordEnd());for(const e of s.glyphs){t.recordStart(this.instanceId,this.attributeLayout,e.textureBinding),d&&t.recordBounds(M,L,R,R);const{texcoords:s,offsets:n}=e;this._writeQuad(t,o,i,r,{texcoords:s,offsets:n,fontSize:m,haloSize:p,outlineSize:g,sdfSize:S,sdfRadius:z,color:u(c.color),isBackground:!1,referenceBounds:a,minZoom:b,maxZoom:_,...l}),t.recordEnd()}0!==n&&s.setRotation(-n)}_writeGlyph(t,o,i,r,s,n,a,l,d,c=!0){const h=this.evaluatedMeshParams,f=this._textMeshTransformProps,m=e(f.fontSize),p=f.haloSize,g=f.outlineSize,x=e(f.offsetX),y=e(f.offsetY),{sdfSize:S,sdfRadius:z}=h.glyphs;0!==a&&s.setRotation(a);const b=s.bounds,_=i+b.x+x,P=r+b.y-y,M=2*(h.minPixelBuffer?h.minPixelBuffer/m:1),L=Math.max(b.width,b.height)*M,B=s.glyphs[n];t.recordStart(this.instanceId,this.attributeLayout,B.textureBinding),c&&t.recordBounds(_,P,L,L);const{texcoords:R,offsets:T}=B;this._writeQuad(t,o,i,r,{texcoords:R,offsets:T,fontSize:m,haloSize:p,outlineSize:g,sdfSize:S,sdfRadius:z,color:u(h.color),isBackground:!1,referenceBounds:l,minZoom:0,maxZoom:30,...d}),t.recordEnd(),0!==a&&s.setRotation(-a)}_writeTextBox(t,e,o,i,r,s,n){const a=this.evaluatedMeshParams,{fontSize:l,haloSize:d,outlineSize:c}=this._textMeshTransformProps,{backgroundColor:h,borderLineColor:f,borderLineSize:m}=w(a),{sdfSize:p,sdfRadius:g}=a.glyphs,x=!!f&&m>0,y={isBackground:!0,fontSize:l,haloSize:d,outlineSize:c,referenceBounds:s,sdfSize:p,sdfRadius:g,...n};h&&(this._writeQuad(t,e,o,i,{texcoords:P,offsets:r.main,color:u(h),...y}),x||(this._writeQuad(t,e,o,i,{texcoords:T,offsets:r.top,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:k,offsets:r.bot,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:A,offsets:r.left,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:v,offsets:r.right,color:u(h),...y}))),x&&(this._writeQuad(t,e,o,i,{texcoords:B,offsets:r.top,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:B,offsets:r.bot,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:R,offsets:r.left,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:R,offsets:r.right,color:u(f),...y}))}_writeQuad(t,e,o,i,r){const s=t.vertexCount();this._writeVertex(t,e,o,i,r),t.indexWrite(s+0),t.indexWrite(s+1),t.indexWrite(s+2),t.indexWrite(s+1),t.indexWrite(s+3),t.indexWrite(s+2)}}const G=t=>Math.round(t*(256/360));export{C as TextMeshWriter,I as TextVertexSpec,w as getTextBoxStyle,z as maxLabelZoom};
2
+ import{clamp as t}from"../../../../../../../core/mathUtils.js";import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as o}from"../../../../../../../geometry/GeometryCursor.js";import{asCIMGeometryCursor as i}from"../../../../../../../symbols/cim/utils.js";import{CIMMarkerPlacementHelper as r}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{getXDirection as s,getYDirection as n}from"../../../alignmentUtils.js";import{maxTextLineWidth as a,minTextLineWidth as l,magicLabelLineHeight as d}from"../../../definitions.js";import{shapeGlyphs as c,shapeGlyphsForMultipoint as h}from"../../../mesh/templates/shapingUtils.js";import{getMinMaxZoom as f,processColorInput as u,packBitset as m}from"../fill/meshWriterUtils.js";import{MeshWriter as p}from"../mesh/MeshWriter.js";import{bitsetTextIsBackground as g,bitsetTextIsMapAligned as x}from"../shaders/constants.js";import{TextMeshTransformProps as y}from"./TextParams.js";import{DataType as S}from"../../../../../../webgl/enums.js";const z=28,b=[4,4],_=[16,4],P={topLeft:_,topRight:_,bottomLeft:_,bottomRight:_},M=[4,2],L=[4,6],B={topLeft:M,topRight:M,bottomLeft:L,bottomRight:L},R={topLeft:M,topRight:L,bottomLeft:M,bottomRight:L},T={topLeft:L,topRight:L,bottomLeft:b,bottomRight:b},k={topLeft:b,topRight:b,bottomLeft:L,bottomRight:L},A={topLeft:L,topRight:b,bottomLeft:L,bottomRight:b},v={topLeft:b,topRight:L,bottomLeft:b,bottomRight:L};function w(t){return{backgroundColor:t.boxBackgroundColor??t.backgroundColor??null,borderLineColor:t.boxBorderLineColor??t.borderLineColor??null,borderLineSize:t.boxBorderLineSize>0?t.boxBorderLineSize:t.borderLineWidth??0}}const I={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:S.HALF_FLOAT,count:2,packTessellation:({minZoom:t,maxZoom:e})=>[t||0,e||z]},clipAngle:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:t})=>G(t||0)},referenceSymbol:{type:S.BYTE,count:4,packTessellation:(t,o)=>{const i=t.isLineLabel||!t.referenceBounds,r=s(i?"center":o.horizontalAlignment),a=n(i?"middle":o.verticalAlignment),{offsetX:l,offsetY:d,size:c}=i?{offsetX:0,offsetY:0,size:0}:t.referenceBounds;return[e(l),-e(d),Math.round(e(c)),r+1<<2|a+1]}},visibility:{type:S.FLOAT,count:1,otherSource:!0}},attributes:{pos:{type:S.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:S.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:t,mapAligned:e})=>m([[g,t],[x,!!e]])},offset:{type:S.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},textureUV:{type:S.UNSIGNED_SHORT,count:2,packAlternating:{count:4,packTessellation:({texcoords:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},color:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:t})=>t},fontAndReferenceSize:{type:S.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,packTessellation:({fontSize:t,sdfSize:o,sdfRadius:i},{referenceSize:r})=>[Math.round(e(t)),Math.round(e(r||t)),o,i]},outlineColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>u(t)},haloColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:t})=>u(t)},outlineAndHaloSize:{type:S.UNSIGNED_SHORT,count:2,packPrecisionFactor:4,packTessellation:({outlineSize:t,haloSize:o})=>[Math.round(e(t)),Math.round(e(o))]}}};class C extends p{constructor(){super(...arguments),this.vertexSpec=I,this._textMeshParamsPropsInitialized=!1}ensurePacked(t,e,o){super.ensurePacked(t,e,o),this._textMeshParamsPropsInitialized&&!this._evaluator.hasDynamicProperties||(this._textMeshTransformProps=new y(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}_write(t,{target:e,effectGeometry:o}){const r=this._getShaping();if(!r)return;const s=1===this.evaluatedMeshParams.alignment,n=e.getDisplayId(),{placement:a}=this.evaluatedMeshParams;if(null!=a){if("PrivatePlacementMultipoint"!==a.type)this._writePlacedTextMarkers(t,e,r,i(o));else{const r=this._getMultipointShaping();r&&this._writeMultipointText(t,e,r,i(o))}return}if(o?.nextPath())return o.nextPoint(),this._writeGlyphs(t,n,o.x,o.y,r,0,void 0,{mapAligned:s});if("esriGeometryPolygon"===e.geometryType){const o=e.readCentroidForDisplay();if(!o)return;const[i,a]=o.coords;return this._writeGlyphs(t,n,i,a,r,0,void 0,{mapAligned:s})}if("esriGeometryMultipoint"===e.geometryType){const o=e.readGeometryForDisplay();return void o?.forEachVertex((e,o)=>this._writeGlyphs(t,n,e,o,r,0,void 0,{mapAligned:s}))}const l=e.readXForDisplay(),d=e.readYForDisplay();return this._writeGlyphs(t,n,l,d,r,0,void 0,{mapAligned:s})}_writePlacedTextMarkers(t,i,s,n){const a=n??o.fromFeatureSetReaderCIM(i);if(!a)return;const l=-1,d=r.getPlacement(a,l,this.evaluatedMeshParams.placement,e(1),t.id);if(!d)return;const c=i.getDisplayId();let h=d.next();for(;null!=h;){const e=-h.getAngle(),o=h.tx,i=-h.ty;this._writeGlyphs(t,c,o,i,s,e,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),h=d.next()}}_writeMultipointText(t,i,s,n){const a=n??o.fromFeatureSetReaderCIM(i);if(!a)return;const l=-1,d=r.getPlacement(a,l,this.evaluatedMeshParams.placement,e(1),t.id);if(!d)return;const c=i.getDisplayId();let h=d.next(),f=0;for(;null!=h;){const e=h.tx,o=-h.ty,i=-h.getAngle();if(f>=s.glyphs.length)break;this._writeGlyph(t,c,e,o,s,f,i,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),h=d.next(),f++}}_getShaping(o){const i=this._textMeshTransformProps,r=this.evaluatedMeshParams;if(!r.glyphs?.glyphs.length)return null;const s=e(i.fontSize),n=e(i.offsetX),h=e(i.offsetY),f=r.glyphs.sdfSize,u=t(e(r.lineWidth),l,a),m=f/24*d*t(r.lineHeightRatio,.25,4),{backgroundColor:p,borderLineSize:g}=w(r);return c(r.glyphs,{scale:s/f,angle:i.postAngle,xOffset:n,yOffset:h,horizontalAlignment:r.horizontalAlignment,verticalAlignment:o||r.verticalAlignment,maxLineWidth:u,lineHeight:m,decoration:r.decoration,borderLineSizePx:e(g),hasBackground:!!p,useCIMAngleBehavior:r.useCIMAngleBehavior})}_getMultipointShaping(){const o=this._textMeshTransformProps,i=this.evaluatedMeshParams;if(!i.glyphs?.glyphs.length)return null;const r=e(o.fontSize),s=e(o.offsetX),n=e(o.offsetY),c=i.glyphs.sdfSize,f=t(e(i.lineWidth),l,a),u=c/24*d*t(i.lineHeightRatio,.25,4),{backgroundColor:m,borderLineSize:p}=w(i);return h(i.glyphs,{scale:r/c,angle:o.postAngle,xOffset:s,yOffset:n,horizontalAlignment:i.horizontalAlignment,verticalAlignment:i.verticalAlignment,maxLineWidth:f,lineHeight:u,decoration:i.decoration,borderLineSizePx:e(p),hasBackground:!!m,useCIMAngleBehavior:i.useCIMAngleBehavior})}_writeGlyphs(t,o,i,r,s,n,a,l,d=!0){const c=this.evaluatedMeshParams,h=this._textMeshTransformProps,m=e(h.fontSize),p=h.haloSize,g=h.outlineSize,x=e(h.offsetX),y=e(h.offsetY),{sdfSize:S,sdfRadius:z}=c.glyphs,[b,_]=f(c.scaleInfo,this.getTileInfo());0!==n&&s.setRotation(n);const P=s.bounds,M=i+P.x+x,L=r+P.y-y,B=2*(c.minPixelBuffer?c.minPixelBuffer/m:1),R=Math.max(P.width,P.height)*B;s.textBox&&(t.recordStart(this.instanceId,this.attributeLayout,s.glyphs[0].textureBinding),d&&t.recordBounds(M,L,R,R),this._writeTextBox(t,o,i,r,s.textBox,a,l),t.recordEnd());for(const e of s.glyphs){t.recordStart(this.instanceId,this.attributeLayout,e.textureBinding),d&&t.recordBounds(M,L,R,R);const{texcoords:s,offsets:n}=e;this._writeQuad(t,o,i,r,{texcoords:s,offsets:n,fontSize:m,haloSize:p,outlineSize:g,sdfSize:S,sdfRadius:z,color:u(c.color),isBackground:!1,referenceBounds:a,minZoom:b,maxZoom:_,...l}),t.recordEnd()}0!==n&&s.setRotation(-n)}_writeGlyph(t,o,i,r,s,n,a,l,d,c=!0){const h=this.evaluatedMeshParams,f=this._textMeshTransformProps,m=e(f.fontSize),p=f.haloSize,g=f.outlineSize,x=e(f.offsetX),y=e(f.offsetY),{sdfSize:S,sdfRadius:z}=h.glyphs;0!==a&&s.setRotation(a);const b=s.bounds,_=i+b.x+x,P=r+b.y-y,M=2*(h.minPixelBuffer?h.minPixelBuffer/m:1),L=Math.max(b.width,b.height)*M,B=s.glyphs[n];t.recordStart(this.instanceId,this.attributeLayout,B.textureBinding),c&&t.recordBounds(_,P,L,L);const{texcoords:R,offsets:T}=B;this._writeQuad(t,o,i,r,{texcoords:R,offsets:T,fontSize:m,haloSize:p,outlineSize:g,sdfSize:S,sdfRadius:z,color:u(h.color),isBackground:!1,referenceBounds:l,minZoom:0,maxZoom:30,...d}),t.recordEnd(),0!==a&&s.setRotation(-a)}_writeTextBox(t,e,o,i,r,s,n){const a=this.evaluatedMeshParams,{fontSize:l,haloSize:d,outlineSize:c}=this._textMeshTransformProps,{backgroundColor:h,borderLineColor:f,borderLineSize:m}=w(a),{sdfSize:p,sdfRadius:g}=a.glyphs,x=!!f&&m>0,y={isBackground:!0,fontSize:l,haloSize:d,outlineSize:c,referenceBounds:s,sdfSize:p,sdfRadius:g,...n};h&&(this._writeQuad(t,e,o,i,{texcoords:P,offsets:r.main,color:u(h),...y}),x||(this._writeQuad(t,e,o,i,{texcoords:T,offsets:r.top,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:k,offsets:r.bot,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:A,offsets:r.left,color:u(h),...y}),this._writeQuad(t,e,o,i,{texcoords:v,offsets:r.right,color:u(h),...y}))),x&&(this._writeQuad(t,e,o,i,{texcoords:B,offsets:r.top,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:B,offsets:r.bot,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:R,offsets:r.left,color:u(f),...y}),this._writeQuad(t,e,o,i,{texcoords:R,offsets:r.right,color:u(f),...y}))}_writeQuad(t,e,o,i,r){const s=t.vertexCount();this._writeVertex(t,e,o,i,r),t.indexWrite(s+0),t.indexWrite(s+1),t.indexWrite(s+2),t.indexWrite(s+1),t.indexWrite(s+3),t.indexWrite(s+2)}}const G=t=>Math.round(t*(256/360));export{C as TextMeshWriter,I as TextVertexSpec,w as getTextBoxStyle,z as maxLabelZoom};