@arcgis/core 4.33.0-next.20250226 → 4.33.0-next.20250228

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 (139) hide show
  1. package/WebLinkChart.js +1 -1
  2. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +2 -0
  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/{3170552a6310725d7730.js → 05b7c739115be0490583.js} +1 -1
  6. package/assets/esri/core/workers/chunks/2c227d97d00b3849f441.js +1 -0
  7. package/assets/esri/core/workers/chunks/2ce80c764cca9e6a20cd.js +1 -0
  8. package/assets/esri/core/workers/chunks/{2716394f121804d93b4e.js → 4253438dd3045566892d.js} +1 -1
  9. package/assets/esri/core/workers/chunks/6f9bfa6ed34ef6efcc6f.js +1 -0
  10. package/assets/esri/core/workers/chunks/8abd2235aa702d8b239f.js +1 -0
  11. package/assets/esri/core/workers/chunks/a288c2474ef193f9fbd3.js +1 -0
  12. package/assets/esri/core/workers/chunks/{e118245566be994a53da.js → a901c445d36f1a9e7df8.js} +1 -1
  13. package/assets/esri/core/workers/chunks/a91f2d1deb950f46ad09.js +1 -0
  14. package/assets/esri/core/workers/chunks/ae25c6108918d37e61bf.js +1 -0
  15. package/assets/esri/core/workers/chunks/{feb656f172ec9fe64752.js → af005704f23088db3ded.js} +1 -1
  16. package/assets/esri/core/workers/chunks/b8416f2560710258c239.js +1 -0
  17. package/assets/esri/core/workers/chunks/{dea40706ca4e37d5c6e2.js → d4d011eea16a89a5aad9.js} +1 -1
  18. package/assets/esri/core/workers/chunks/f45ef721d21388846101.js +1 -0
  19. package/assets/esri/core/workers/chunks/{2d4bfd747580ed3b6f4d.js → fdab6921d007929ab288.js} +1 -1
  20. package/assets/esri/themes/base/widgets/_Sketch.scss +4 -4
  21. package/assets/esri/themes/dark/main.css +1 -1
  22. package/assets/esri/themes/light/main.css +1 -1
  23. package/assets/esri/themes/light/view.css +1 -1
  24. package/chunks/chartUtilsAm5.js +1 -1
  25. package/core/sql/StandardizedFunctions.js +1 -1
  26. package/core/sql/WhereClause.js +1 -1
  27. package/core/sql/sqlCompareUtils.js +1 -1
  28. package/geometry/SpatialReference.js +1 -1
  29. package/interfaces.d.ts +17 -15
  30. package/intl/duration.js +1 -1
  31. package/intl/locale.js +1 -1
  32. package/intl/messages.js +1 -1
  33. package/layers/BingMapsLayer.js +1 -1
  34. package/layers/LinkChartLayer.js +1 -1
  35. package/layers/SubtypeGroupLayer.js +1 -1
  36. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  37. package/layers/mixins/SublayersOwner.js +1 -1
  38. package/layers/support/rasterDatasets/covJSONParser.js +1 -1
  39. package/package.json +1 -1
  40. package/support/popupUtils.js +1 -1
  41. package/support/revision.js +1 -1
  42. package/symbols/cim/animationUtils.js +1 -1
  43. package/symbols/support/previewSymbol2D.js +1 -1
  44. package/views/2d/engine/webgl/animations/utils.js +1 -1
  45. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  46. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  47. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  48. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  49. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  50. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  51. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  52. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  53. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  54. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  55. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  56. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  57. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  58. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  59. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  60. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  61. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  62. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  63. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  64. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  65. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  66. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  67. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TestShader.js +1 -1
  68. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  69. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerLUTShader.js +1 -1
  70. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerShadedReliefShader.js +1 -1
  71. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerStretchShader.js +1 -1
  72. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/AspectShader.js +1 -1
  73. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/BandArithmeticShader.js +1 -1
  74. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ColormapToRGBShader.js +1 -1
  75. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/CompositeBandShader.js +1 -1
  76. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ComputeChangeShader.js +1 -1
  77. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ContrastBrightnessShader.js +1 -1
  78. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ConvolutionShader.js +1 -1
  79. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/CurvatureShader.js +1 -1
  80. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ExtractBandShader.js +1 -1
  81. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/FocalStatisticsShader.js +1 -1
  82. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/GrayscaleShader.js +1 -1
  83. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/HillshadeShader.js +1 -1
  84. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/LocalShader.js +1 -1
  85. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MaskShader.js +1 -1
  86. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/NDVIShader.js +1 -1
  87. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/RemapShader.js +1 -1
  88. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ReprojectShader.js +1 -1
  89. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ShadedReliefShader.js +1 -1
  90. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/SlopeShader.js +1 -1
  91. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/StretchShader.js +1 -1
  92. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  93. package/views/3d/environment/CloudsRenderer.js +1 -1
  94. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  95. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  96. package/views/3d/layers/support/FeatureTileFetcher3DContext.js +1 -1
  97. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +11 -11
  98. package/views/3d/webgl-engine/core/shaderLibrary/util/LookupCubemapFromTextureArray.glsl.js +39 -0
  99. package/views/3d/webgl-engine/core/shaderModules/Texture2DArrayBindUniform.js +5 -0
  100. package/views/3d/webgl-engine/lib/ComponentUtils.js +1 -1
  101. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  102. package/views/View.js +1 -1
  103. package/views/webgl/FramebufferObject.js +1 -1
  104. package/views/webgl/ShaderBuilder.js +1 -1
  105. package/views/webgl/capabilities.js +1 -1
  106. package/webdoc/support/webdocSaveUtils.js +1 -1
  107. package/webdoc/support/writeUtils.js +1 -1
  108. package/widgets/Feature/FeatureRelationship.js +1 -1
  109. package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
  110. package/widgets/Feature/FeatureUtilityNetworkAssociations.js +1 -1
  111. package/widgets/Feature.js +1 -1
  112. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  113. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +1 -1
  114. package/widgets/FeatureTable.js +1 -1
  115. package/widgets/Features/FeaturesDrillIn.js +1 -1
  116. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  117. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  118. package/widgets/OrientedImageryViewer/adapters/sketch/DataCaptureAdapter.js +1 -1
  119. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  120. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
  121. package/widgets/OrientedImageryViewer/symbols.js +1 -1
  122. package/widgets/OrientedImageryViewer.js +1 -1
  123. package/widgets/Print/PrintViewModel.js +1 -1
  124. package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
  125. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  126. package/widgets/support/SelectionToolbar.js +1 -1
  127. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  128. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  129. package/widgets/support/UtilityNetworkAssociations/utilityNetworkUtils.js +1 -1
  130. package/widgets/support/chartUtilsAm5.js +1 -1
  131. package/assets/esri/core/workers/chunks/22e7db720724f2426d74.js +0 -1
  132. package/assets/esri/core/workers/chunks/2515ace848cf078c6263.js +0 -1
  133. package/assets/esri/core/workers/chunks/2c348d0e8131f08391cb.js +0 -1
  134. package/assets/esri/core/workers/chunks/380128e2cb74798478c1.js +0 -1
  135. package/assets/esri/core/workers/chunks/66338f008ff0992ffca2.js +0 -1
  136. package/assets/esri/core/workers/chunks/68ac336f7384bbca85ab.js +0 -1
  137. package/assets/esri/core/workers/chunks/84e50d3ff298b7b66070.js +0 -1
  138. package/assets/esri/core/workers/chunks/aa98a6c38e82d384403c.js +0 -1
  139. package/assets/esri/core/workers/chunks/d5ebe6b7cd9c8e40b386.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{decimalAdjust as a}from"../mathUtils.js";import{escapeRegExpString as n}from"../string.js";import{DateOnly as e}from"./DateOnly.js";import{SqlError as t,SqlErrorCodes as r}from"./errorSupport.js";import{sqlCompare as l}from"./sqlCompareUtils.js";import{isDateTime as u,isDateOnly as s,isTimeOnly as m,isTimestampOffset as o,convertToExecutingTimeZone as i,parseTimestamp as c,parseTime as f}from"./sqlDateParsingUtils.js";import{TimeOnly as h}from"./TimeOnly.js";import{isDate as P,isString as w}from"../../support/guards.js";import{DateTime as C}from"luxon";function p(a,n,e){const l=T[a.toLowerCase()];if(null==l)throw new t(r.FunctionNotRecognized);if(n.length<l.minParams||n.length>l.maxParams)throw new t(r.InvalidParameterCount,{name:a.toUpperCase()});return l.evaluate(n,e)}function g(a,n){const e=T[a.toLowerCase()];return null!=e&&n>=e.minParams&&n<=e.maxParams}function M(a){return!P(a)&&(!s(a)&&(!u(a)&&(!m(a)&&!o(a))))}function x(a){return s(a)||m(a)?a.toString():o(a)?a.toSQLValue():u(a)?0===a.millisecond?a.toFormat("yyyy-LL-dd HH:mm:ss"):a.toSQL({includeOffset:!1}):P(a)?x(C.fromJSDate(a)):a.toString()}function E(a){if(P(a))return e.fromDateJS(a);if(u(a))return e.fromParts(a.year,a.month,a.day);if(s(a))return a;if(m(a))throw new t(r.CannotCastValue);if(o(a)){if(null===e.fromParts(a.year,a.month,a.day))throw new t(r.CannotCastValue)}if(w(a)){const n=e.fromReader(a);if(null!==n&&n.isValid)return n}throw new t(r.CannotCastValue)}function v(a,n,e){if(P(a))return i(a,n);if(u(a))return a;if(s(a))return a.toDateTimeLuxon("unknown");if(m(a))throw new t(r.CannotCastValue);if(o(a))return a;if(w(a))return c(a,"unknown",e);throw new t(r.CannotCastValue)}function N(a){if(P(a))return h.fromDateJS(a);if(u(a))return h.fromDateTime(a);if(s(a))throw new t(r.CannotCastValue);if(m(a))return a;if(o(a))return h.fromSqlTimeStampOffset(a);if(w(a))return f(a);throw new t(r.CannotCastValue)}const T={extract:{minParams:2,maxParams:2,evaluate:([a,n])=>{if(null==n)return null;if(P(n))switch(a.toUpperCase()){case"SECOND":return n.getSeconds();case"MINUTE":return n.getMinutes();case"HOUR":return n.getHours();case"DAY":return n.getDate();case"MONTH":return n.getMonth()+1;case"YEAR":return n.getFullYear();case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":return 0}else if(u(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour;case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}else if(s(n))switch(a.toUpperCase()){case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}else if(m(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour}else if(o(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour;case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":return n.timezoneOffsetHour;case"TIMEZONE_MINUTE":return n.timezoneOffsetMinutes}throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}},substring:{minParams:2,maxParams:3,evaluate:a=>{if(2===a.length){const[n,e]=a;return null==n||null==e?null:n.toString().substring(e-1)}if(3===a.length){const[n,e,t]=a;return null==n||null==e||null==t?null:t<=0?"":n.toString().substring(e-1,e+t-1)}}},position:{minParams:2,maxParams:2,evaluate:([a,n])=>null==a||null==n?null:n.indexOf(a)+1},trim:{minParams:2,maxParams:3,evaluate:a=>{const e=3===a.length,l=e?a[1]:" ",u=e?a[2]:a[1];if(null==l||null==u)return null;const s=`(${n(l)})`;switch(a[0]){case"BOTH":return u.replaceAll(new RegExp(`^${s}*|${s}*$`,"g"),"");case"LEADING":return u.replaceAll(new RegExp(`^${s}*`,"g"),"");case"TRAILING":return u.replaceAll(new RegExp(`${s}*$`,"g"),"")}throw new t(r.InvalidFunctionParameters,{function:"TRIM"})}},abs:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.abs(a[0])},ceiling:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.ceil(a[0])},floor:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.floor(a[0])},log:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.log(a[0])},log10:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.log(a[0])*Math.LOG10E},sin:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.sin(a[0])},cos:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.cos(a[0])},tan:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.tan(a[0])},asin:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.asin(a[0])},acos:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.acos(a[0])},atan:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.atan(a[0])},sign:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0]>0?1:a[0]<0?-1:0},power:{minParams:2,maxParams:2,evaluate:a=>null==a[0]||null==a[1]?null:a[0]**a[1]},mod:{minParams:2,maxParams:2,evaluate:a=>null==a[0]||null==a[1]?null:a[0]%a[1]},round:{minParams:1,maxParams:2,evaluate:a=>{const n=a[0],e=2===a.length?10**a[1]:1;return null==n?null:Math.round(n*e)/e}},truncate:{minParams:1,maxParams:2,evaluate:n=>null==n[0]?null:1===n.length||0===n[1]?Math.trunc(n[0]):a("trunc",n[0],-Number(n[1]))},char_length:{minParams:1,maxParams:1,evaluate:a=>w(a[0])?a[0].length:0},concat:{minParams:1,maxParams:1/0,evaluate:a=>{let n="";for(let e=0;e<a.length;e++){if(null==a[e])return null;n+=a[e].toString()}return n}},lower:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0].toString().toLowerCase()},upper:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0].toString().toUpperCase()},coalesce:{minParams:1,maxParams:1/0,evaluate:a=>{for(const n of a)if(null!==n)return n;return null}},cosh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.cosh(a[0])},sinh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.sinh(a[0])},tanh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.tanh(a[0])},nullif:{minParams:2,maxParams:2,evaluate:(a,n)=>l(a[0],a[1],"=")?null:a[0]},cast:{minParams:2,maxParams:2,evaluate:(a,n)=>{const e=a[0],l=a[1];if(null===e)return null;switch(l.type){case"integer":{if(!M(e))throw new t(r.CannotCastValue);const a=parseInt(e,10);if(isNaN(a))throw new t(r.CannotCastValue);return a}case"smallint":{if(!M(e))throw new t(r.CannotCastValue);const a=parseInt(e,10);if(isNaN(a))throw new t(r.CannotCastValue);if(a>32767||a<-32767)throw new t(r.CannotCastValue);return a}case"float":case"real":{if(!M(e))throw new t(r.CannotCastValue);const a=parseFloat(e);if(isNaN(a))throw new t(r.CannotCastValue);return a}case"time":return N(e);case"date":return E(e);case"timestamp":return v(e,n,!0===l.withtimezone);case"varchar":{const a=x(e);if(a.length>l.size)throw new t(r.CannotCastValue);return a}default:throw new t(r.InvalidDataType)}}}};export{p as evaluateFunction,g as isStandardized};
5
+ import{decimalAdjust as a}from"../mathUtils.js";import{escapeRegExpString as n}from"../string.js";import{DateOnly as e}from"./DateOnly.js";import{SqlError as t,SqlErrorCodes as r}from"./errorSupport.js";import{sqlCompare as l}from"./sqlCompareUtils.js";import{isDateTime as u,isDateOnly as s,isTimeOnly as m,isTimestampOffset as o,convertToExecutingTimeZone as i,parseTimestamp as c,parseTime as f}from"./sqlDateParsingUtils.js";import{TimeOnly as h}from"./TimeOnly.js";import{isDate as P,isString as w}from"../../support/guards.js";import{DateTime as C}from"luxon";function p(a,n,e){const l=T[a.toLowerCase()];if(null==l)throw new t(r.FunctionNotRecognized);if(n.length<l.minParams||n.length>l.maxParams)throw new t(r.InvalidParameterCount,{name:a.toUpperCase()});return l.evaluate(n,e)}function g(a,n){const e=T[a.toLowerCase()];return null!=e&&n>=e.minParams&&n<=e.maxParams}function M(a){return!P(a)&&(!s(a)&&(!u(a)&&(!m(a)&&!o(a))))}function x(a){return s(a)||m(a)?a.toString():o(a)?a.toSQLValue():u(a)?0===a.millisecond?a.toFormat("yyyy-LL-dd HH:mm:ss"):a.toSQL({includeOffset:!1}):P(a)?x(C.fromJSDate(a)):a.toString()}function E(a){if(P(a))return e.fromDateJS(a);if(u(a))return e.fromParts(a.year,a.month,a.day);if(s(a))return a;if(m(a))throw new t(r.CannotCastValue);if(o(a)){if(null===e.fromParts(a.year,a.month,a.day))throw new t(r.CannotCastValue)}if(w(a)){const n=e.fromReader(a);if(null!==n&&n.isValid)return n}throw new t(r.CannotCastValue)}function v(a,n,e){if(P(a))return i(a,n);if(u(a))return a;if(s(a))return a.toDateTimeLuxon("unknown");if(m(a))throw new t(r.CannotCastValue);if(o(a))return a;if(w(a))return c(a,"unknown",e);throw new t(r.CannotCastValue)}function N(a){if(P(a))return h.fromDateJS(a);if(u(a))return h.fromDateTime(a);if(s(a))throw new t(r.CannotCastValue);if(m(a))return a;if(o(a))return h.fromSqlTimeStampOffset(a);if(w(a))return f(a);throw new t(r.CannotCastValue)}const T={extract:{minParams:2,maxParams:2,evaluate:([a,n])=>{if(null==n)return null;if(P(n))switch(a.toUpperCase()){case"SECOND":return n.getSeconds();case"MINUTE":return n.getMinutes();case"HOUR":return n.getHours();case"DAY":return n.getDate();case"MONTH":return n.getMonth()+1;case"YEAR":return n.getFullYear();case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":return 0}else if(u(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour;case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}else if(s(n))switch(a.toUpperCase()){case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":case"TIMEZONE_MINUTE":throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}else if(m(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour}else if(o(n))switch(a.toUpperCase()){case"SECOND":return n.second;case"MINUTE":return n.minute;case"HOUR":return n.hour;case"DAY":return n.day;case"MONTH":return n.month;case"YEAR":return n.year;case"TIMEZONE_HOUR":return n.timezoneOffsetHour;case"TIMEZONE_MINUTE":return n.timezoneOffsetMinutes}throw new t(r.InvalidFunctionParameters,{function:"EXTRACT"})}},substring:{minParams:2,maxParams:3,evaluate:a=>{if(2===a.length){const[n,e]=a;return null==n||null==e?null:n.toString().substring(e-1)}if(3===a.length){const[n,e,t]=a;return null==n||null==e||null==t?null:t<=0?"":n.toString().substring(e-1,e+t-1)}}},position:{minParams:2,maxParams:2,evaluate:([a,n])=>null==a||null==n?null:n.indexOf(a)+1},trim:{minParams:2,maxParams:3,evaluate:a=>{const e=3===a.length,l=e?a[1]:" ",u=e?a[2]:a[1];if(null==l||null==u)return null;const s=`(${n(l)})`;switch(a[0]){case"BOTH":return u.replaceAll(new RegExp(`^${s}*|${s}*$`,"g"),"");case"LEADING":return u.replaceAll(new RegExp(`^${s}*`,"g"),"");case"TRAILING":return u.replaceAll(new RegExp(`${s}*$`,"g"),"")}throw new t(r.InvalidFunctionParameters,{function:"TRIM"})}},abs:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.abs(a[0])},ceiling:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.ceil(a[0])},floor:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.floor(a[0])},log:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.log(a[0])},log10:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.log(a[0])*Math.LOG10E},sin:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.sin(a[0])},cos:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.cos(a[0])},tan:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.tan(a[0])},asin:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.asin(a[0])},acos:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.acos(a[0])},atan:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.atan(a[0])},sign:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0]>0?1:a[0]<0?-1:0},power:{minParams:2,maxParams:2,evaluate:a=>null==a[0]||null==a[1]?null:a[0]**a[1]},mod:{minParams:2,maxParams:2,evaluate:a=>null==a[0]||null==a[1]?null:a[0]%a[1]},round:{minParams:1,maxParams:2,evaluate:a=>{const n=a[0],e=2===a.length?10**a[1]:1;return null==n?null:Math.round(n*e)/e}},truncate:{minParams:1,maxParams:2,evaluate:n=>null==n[0]?null:1===n.length||0===n[1]?Math.trunc(n[0]):a("trunc",n[0],-Number(n[1]))},char_length:{minParams:1,maxParams:1,evaluate:a=>w(a[0])?a[0].length:0},concat:{minParams:1,maxParams:1/0,evaluate:a=>{let n="";for(let e=0;e<a.length;e++){if(null==a[e])return null;n+=a[e].toString()}return n}},lower:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0].toString().toLowerCase()},upper:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:a[0].toString().toUpperCase()},coalesce:{minParams:1,maxParams:1/0,evaluate:a=>{for(const n of a)if(null!==n)return n;return null}},cosh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.cosh(a[0])},sinh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.sinh(a[0])},tanh:{minParams:1,maxParams:1,evaluate:a=>null==a[0]?null:Math.tanh(a[0])},nullif:{minParams:2,maxParams:2,evaluate:a=>l(a[0],a[1],"=")?null:a[0]},cast:{minParams:2,maxParams:2,evaluate:(a,n)=>{const e=a[0],l=a[1];if(null===e)return null;switch(l.type){case"integer":{if(!M(e))throw new t(r.CannotCastValue);const a=parseInt(e,10);if(isNaN(a))throw new t(r.CannotCastValue);return a}case"smallint":{if(!M(e))throw new t(r.CannotCastValue);const a=parseInt(e,10);if(isNaN(a))throw new t(r.CannotCastValue);if(a>32767||a<-32767)throw new t(r.CannotCastValue);return a}case"float":case"real":{if(!M(e))throw new t(r.CannotCastValue);const a=parseFloat(e);if(isNaN(a))throw new t(r.CannotCastValue);return a}case"time":return N(e);case"date":return E(e);case"timestamp":return v(e,n,!0===l.withtimezone);case"varchar":{const a=x(e);if(a.length>l.size)throw new t(r.CannotCastValue);return a}default:throw new t(r.InvalidDataType)}}}};export{p as evaluateFunction,g as isStandardized};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import has from"../has.js";import{isAggregate as e,aggregateFunction as t}from"./AggregateFunctions.js";import{DateOnly as r}from"./DateOnly.js";import{SqlError as a,SqlErrorCodes as s}from"./errorSupport.js";import{sqlCalculateFunction as i}from"./sqlArithmeticUtils.js";import{sqlCompare as n,isDateOrTimeValue as o}from"./sqlCompareUtils.js";import{isDateTime as u,isTimestampOffset as l,isTimeOnly as c,isDateOnly as h,parseTime as p,parseTimestamp as m,parseDate as d,convertToExecutingTimeZone as f}from"./sqlDateParsingUtils.js";import{SqlInterval as v}from"./SqlInterval.js";import{SqlTimeStampOffset as N}from"./SqlTimestampOffset.js";import{evaluateFunction as g,isStandardized as S}from"./StandardizedFunctions.js";import{TimeOnly as T}from"./TimeOnly.js";import{WhereGrammar as y,visitAll as _}from"./WhereGrammar.js";import{isDate as J}from"../../support/guards.js";import{DateTime as w,FixedOffsetZone as I}from"luxon";const O=new Set(["current_timestamp","current_date","current_time"]);class F{static makeBool(e){return Z(e)}static featureValue(e,t,r,a){return R(e,t,r,a)}static equalsNull(e){return null===e}static applyLike(e,t,r){return L(e,t,r)}static ensureArray(e){return x(e)}static applyIn(e,t,r){return U(e,t)}static currentTimestamp(e){return f(new Date,e)}static currentDate(e){return r.fromNow(e)}static currentTime(e){const t=f(new Date,e);return T.fromDateTime(t)}static makeSqlInterval(e,t,r){return v.createFromValueAndQualifier(e,t,r)}static convertInterval(e){return v.isInterval(e)?e.valueInMilliseconds():e}static compare(e,t,r,a){return n(t,r,e)}static calculate(e,t,r,a){return i(e,t,r,a)}static evaluateTime(e){return p(e)}static evaluateTimestamp(e,t,r){return m(e,t,r)}static evaluateDate(e,t){return d(e,t)}static evaluateFunction(e,t,r){return g(e,t,r)}static lookup(e,t){const r=t[e];return void 0===r?null:r}static between(e,t,r){return null==e||null==t[0]||null==t[1]?null:n(e,t[0],">=")&&n(e,t[1],"<=")}static notbetween(e,t,r){return null==e||null==t[0]||null==t[1]?null:n(e,t[0],"<")||n(e,t[1],">")}static ternaryNot(e){return b(e)}static ternaryAnd(e,t){return A(e,t)}static ternaryOr(e,t){return E(e,t)}}class D{constructor(e,t,r="UTC",a=null){this.fieldsIndex=t,this.timeZone=r,this.currentUser=a,this.parameters={},this._hasDateFunctions=void 0,this.parseTree=y.parse(e);const{isStandardized:s,isAggregate:i,currentUserRequired:n,referencedFieldNames:o}=this._extractExpressionInfo(t);this._referencedFieldNames=o,this.isStandardized=s,this.isAggregate=i,this.currentUserRequired=n}static convertValueToStorageFormat(e,t=null){if(null===t)return J(e)?e.getTime():u(e)?e.toMillis():l(e)?e.toStorageFormat():c(e)?e.toStorageString():h(e)?e.toStorageFormat():e;switch(t){case"date":return J(e)?e.getTime():u(e)?e.toMillis():l(e)?e.toMilliseconds():h(e)?e.toNumber():e;case"date-only":return J(e)?r.fromDateJS(e).toString():l(e)?r.fromSqlTimeStampOffset(e).toString():u(e)?r.fromDateTime(e).toString():e;case"time-only":return J(e)?T.fromDateJS(e).toStorageString():u(e)?T.fromDateTime(e).toStorageString():l(e)?T.fromSqlTimeStampOffset(e).toStorageString():c(e)?e.toStorageString():e;case"timestamp-offset":if(J(e))return N.fromJSDate(e).toStorageFormat();if(u(e))return N.fromDateTime(e).toStorageFormat();if(l(e))return e.toStorageFormat()}return e}static create(e,t={}){return new D(e,t.fieldsIndex,t.timeZone??void 0,t.currentUser)}get fieldNames(){return this._referencedFieldNames}testSet(e,t=C,r=this.currentUser){return!!this._evaluateNode(this.parseTree,null,t,e,r)}calculateValue(e,t=C,r=this.currentUser){const a=this._evaluateNode(this.parseTree,e,t,null,r);return v.isInterval(a)?a.valueInMilliseconds()/864e5:a}calculateValueCompiled(e,t=C,r=this.currentUser){return null!=this.parseTree._compiledVersion?this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null):has("esri-csp-restrictions")?this.calculateValue(e,t):(this._compileMe(),this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null))}testFeature(e,t=C,r=this.currentUser){return!!this._evaluateNode(this.parseTree,e,t,null,r)}testFeatureCompiled(e,t=C,r=this.currentUser){return null!=this.parseTree._compiledVersion?!!this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null):has("esri-csp-restrictions")?this.testFeature(e,t):(this._compileMe(),!!this.parseTree._compiledVersion(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null))}get hasDateFunctions(){return null!=this._hasDateFunctions||(this._hasDateFunctions=!1,_(this.parseTree,(e=>{"current-time"===e.type?this._hasDateFunctions=!0:"function"===e.type&&(this._hasDateFunctions=this._hasDateFunctions||O.has(e.name.toLowerCase()))}))),this._hasDateFunctions}getFunctions(){const e=new Set;return _(this.parseTree,(t=>{"function"===t.type&&e.add(t.name.toLowerCase())})),Array.from(e)}getExpressions(){const e=new Map;return _(this.parseTree,(t=>{if("function"===t.type){const r=t.name.toLowerCase(),a=t.args.value[0];if("column-reference"===a.type){const t=a.column,s=`${r}-${t}`;e.has(s)||e.set(s,{aggregateType:r,field:t})}}})),[...e.values()]}getVariables(){const e=new Set;return _(this.parseTree,(t=>{"parameter"===t.type&&e.add(t.value.toLowerCase())})),Array.from(e)}_compileMe(){const e="return this.convertInterval("+this.evaluateNodeToJavaScript(this.parseTree)+")";this.parseTree._compiledVersion=new Function("feature","lookups","attributeAdapter","fieldsIndex","timeZone","currentUser",e).bind(F)}_extractExpressionInfo(t){const r=[],a=new Set;let s=!0,i=!1,n=!1;return _(this.parseTree,(o=>{switch(o.type){case"column-reference":{const e=t?.get(o.column);let s,i;e?s=i=e.name??"":(i=o.column,s=i.toLowerCase()),a.has(s)||(a.add(s),r.push(i)),o.column=i;break}case"current-user":n=!0;break;case"function":{const{name:t,args:r}=o,a=r.value.length;s&&(s=S(t,a)),!1===i&&(i=e(t,a));break}}})),{referencedFieldNames:Array.from(r),isStandardized:s,isAggregate:i,currentUserRequired:n}}evaluateNodeToJavaScript(e){switch(e.type){case"interval":return"this.makeSqlInterval("+this.evaluateNodeToJavaScript(e.value)+", "+JSON.stringify(e.qualifier)+","+JSON.stringify(e.op)+")";case"case-expression":{let t="";if("simple"===e.format){const r=this.evaluateNodeToJavaScript(e.operand);t="( ";for(let a=0;a<e.clauses.length;a++)t+=" (this.compare('=',"+r+","+this.evaluateNodeToJavaScript(e.clauses[a].operand)+") ? ("+this.evaluateNodeToJavaScript(e.clauses[a].value)+") : ";null!==e.else?t+=this.evaluateNodeToJavaScript(e.else):t+="null",t+=" )"}else{t="( ";for(let r=0;r<e.clauses.length;r++)t+=" this.makeBool("+this.evaluateNodeToJavaScript(e.clauses[r].operand)+")===true ? ("+this.evaluateNodeToJavaScript(e.clauses[r].value)+") : ";null!==e.else?t+=this.evaluateNodeToJavaScript(e.else):t+="null",t+=" )"}return t}case"parameter":return"this.lookup("+JSON.stringify(e.value.toLowerCase())+",lookups)";case"expression-list":{let t="[";for(const r of e.value)"["!==t&&(t+=","),t+=this.evaluateNodeToJavaScript(r);return t+="]",t}case"unary-expression":return"this.ternaryNot("+this.evaluateNodeToJavaScript(e.expr)+")";case"binary-expression":switch(e.operator){case"AND":return"this.ternaryAnd("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+" )";case"OR":return"this.ternaryOr("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+" )";case"IS":if("null"!==e.right.type)throw new a(s.UnsupportedIsRhs);return"this.equalsNull("+this.evaluateNodeToJavaScript(e.left)+")";case"ISNOT":if("null"!==e.right.type)throw new a(s.UnsupportedIsRhs);return"(!(this.equalsNull("+this.evaluateNodeToJavaScript(e.left)+")))";case"IN":return"this.applyIn("+this.evaluateNodeToJavaScript(e.left)+",this.ensureArray("+this.evaluateNodeToJavaScript(e.right)+"), timeZone)";case"NOT IN":return"this.ternaryNot(this.applyIn("+this.evaluateNodeToJavaScript(e.left)+",this.ensureArray("+this.evaluateNodeToJavaScript(e.right)+"), timeZone))";case"BETWEEN":return"this.between("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+", timeZone)";case"NOTBETWEEN":return"this.notbetween("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+", timeZone)";case"LIKE":return"this.applyLike("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+","+JSON.stringify(e.escape)+")";case"NOT LIKE":return"this.ternaryNot(this.applyLike("+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+","+JSON.stringify(e.escape)+"))";case"<>":case"<":case">":case">=":case"<=":case"=":return"this.compare("+JSON.stringify(e.operator)+","+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+", timeZone)";case"*":case"-":case"+":case"/":case"||":return"this.calculate("+JSON.stringify(e.operator)+","+this.evaluateNodeToJavaScript(e.left)+","+this.evaluateNodeToJavaScript(e.right)+", timeZone)";default:throw new a(s.UnsupportedOperator,{operator:e.operator})}case"null":case"boolean":case"string":case"number":return JSON.stringify(e.value);case"time":return"this.evaluateTime("+JSON.stringify(e.value)+")";case"date":return"this.evaluateDate("+JSON.stringify(e.value)+", 'unknown')";case"timestamp":return"this.evaluateTimestamp("+JSON.stringify(e.value)+", 'unknown')";case"current-time":return"date"===e.mode?"this.currentDate(timeZone)":"time"===e.mode?"this.currentTime(timeZone)":"this.currentTimestamp(timeZone)";case"current-user":return"currentUser";case"column-reference":return"this.featureValue(feature,"+JSON.stringify(e.column)+",fieldsIndex,attributeAdapter)";case"function":return"this.evaluateFunction("+JSON.stringify(e.name)+","+this.evaluateNodeToJavaScript(e.args)+", timeZone)"}throw new a(s.UnsupportedSyntax,{node:e.type})}_evaluateNode(r,o,u,l,c){let h;switch(r.type){case"interval":{const e=this._evaluateNode(r.value,o,u,l,c);return v.createFromValueAndQualifier(e,r.qualifier,r.op)}case"case-expression":if("simple"===r.format){const e=this._evaluateNode(r.operand,o,u,l,c);for(let t=0;t<r.clauses.length;t++)if(n(e,this._evaluateNode(r.clauses[t].operand,o,u,l,c),"=",this.timeZone))return this._evaluateNode(r.clauses[t].value,o,u,l,c);if(null!==r.else)return this._evaluateNode(r.else,o,u,l,c)}else{for(let e=0;e<r.clauses.length;e++)if(Z(this._evaluateNode(r.clauses[e].operand,o,u,l,c)))return this._evaluateNode(r.clauses[e].value,o,u,l,c);if(null!==r.else)return this._evaluateNode(r.else,o,u,l,c)}return null;case"parameter":return h=this.parameters[r.value.toLowerCase()],J(h)?w.fromJSDate(h):null!=h&&"object"==typeof h&&"toDateTime"in h?h.toDateTime():h;case"expression-list":{const e=[];for(const t of r.value)e.push(this._evaluateNode(t,o,u,l,c));return e}case"unary-expression":return b(this._evaluateNode(r.expr,o,u,l,c));case"binary-expression":switch(r.operator){case"AND":return A(this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c));case"OR":return E(this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c));case"IS":if("null"!==r.right.type)throw new a(s.UnsupportedIsRhs);return null===this._evaluateNode(r.left,o,u,l,c);case"ISNOT":if("null"!==r.right.type)throw new a(s.UnsupportedIsRhs);return null!==this._evaluateNode(r.left,o,u,l,c);case"IN":{const e=x(this._evaluateNode(r.right,o,u,l,c));return U(this._evaluateNode(r.left,o,u,l,c),e,this.timeZone)}case"NOT IN":{const e=x(this._evaluateNode(r.right,o,u,l,c));return b(U(this._evaluateNode(r.left,o,u,l,c),e,this.timeZone))}case"BETWEEN":{const e=this._evaluateNode(r.left,o,u,l,c),t=this._evaluateNode(r.right,o,u,l,c);return null==e||null==t[0]||null==t[1]?null:n(e,t[0],">=",this.timeZone)&&n(e,t[1],"<=",this.timeZone)}case"NOTBETWEEN":{const e=this._evaluateNode(r.left,o,u,l,c),t=this._evaluateNode(r.right,o,u,l,c);return null==e||null==t[0]||null==t[1]?null:n(e,t[0],"<",this.timeZone)||n(e,t[1],">",this.timeZone)}case"LIKE":return L(this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c),r.escape);case"NOT LIKE":return b(L(this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c),r.escape));case"<>":case"<":case">":case">=":case"<=":case"=":return n(this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c),r.operator,this.timeZone);case"-":case"+":case"*":case"/":case"||":return i(r.operator,this._evaluateNode(r.left,o,u,l,c),this._evaluateNode(r.right,o,u,l,c),this.timeZone)}case"null":case"boolean":case"string":case"number":return r.value;case"date":return r.parsedValue??=d(r.value,"unknown"),r.parsedValue;case"timestamp":return r.parsedValue??=m(r.value,"unknown"),r.parsedValue;case"time":return p(r.value);case"current-time":return"date"===r.mode?F.currentDate(this.timeZone):"time"===r.mode?F.currentTime(this.timeZone):F.currentTimestamp(this.timeZone);case"current-user":return c??null;case"column-reference":return R(o,r.column,this.fieldsIndex,u);case"data-type":return r.value;case"function":{if(this.isAggregate&&e(r.name,r.args.value.length)){const e=[];for(const t of r.args?.value||[]){const r=[];for(const e of l||[])r.push(this._evaluateNode(t,e,u,null,c));e.push(r)}return t(r.name,e)}const a=this._evaluateNode(r.args,o,u,l,c);return g(r.name,a,this.timeZone)}}throw new a(s.UnsupportedSyntax,{node:r.type})}}function Z(e){return!0===e}function x(e){return Array.isArray(e)?e:[e]}function b(e){return null!==e?!0!==e:null}function A(e,t){return null!=e&&null!=t?!0===e&&!0===t:!1!==e&&!1!==t&&null}function E(e,t){return null!=e&&null!=t?!0===e||!0===t:!0===e||!0===t||null}function U(e,t,r){if(null==e)return null;let a=!1;for(const s of t)if(null==s)a=null;else{if(e===s){a=!0;break}if(o(e)&&o(s)&&(a=n(e,s,"="),a))break}return a}const k="-[]/{}()*+?.\\^$|";var V;function q(e,t){const r=t;let a="",s=V.Normal;for(let i=0;i<e.length;i++){const t=e.charAt(i);switch(s){case V.Normal:t===r?s=V.Escaped:k.includes(t)?a+="\\"+t:a+="%"===t?".*":"_"===t?".":t;break;case V.Escaped:k.includes(t)?a+="\\"+t:a+=t,s=V.Normal}}return new RegExp("^"+a+"$","m")}function L(e,t,r){if(null==e)return null;return q(t,r).test(e)}function j(e){return e&&"object"==typeof e.attributes}function R(e,t,a,s){if("getAttributeSQL"in s)return s.getAttributeSQL(e,t);const i=s.getAttribute(e,t),n=a?.get(t);return null==i||"esriFieldTypeDate"!==n?.type&&"date"!==n?.type?null==i||"esriFieldTypeDateOnly"!==n?.type&&"date-only"!==n?.type?null==i||"esriFieldTypeTimeOnly"!==n?.type&&"time-only"!==n?.type?null==i||"esriFieldTypeTimestampOffset"!==n?.type&&"timestamp-offset"!==n?.type?i:new N(i):T.fromReader(i):r.fromReader(i):f(new Date(i),a?.getLuxonTimeZone(n.name)??I.utcInstance)}!function(e){e[e.Normal=0]="Normal",e[e.Escaped=1]="Escaped"}(V||(V={}));const C={getAttribute:(e,t)=>(j(e)?e.attributes:e)[t]};export{D as default};
5
+ import has from"../has.js";import{isAggregate as e,aggregateFunction as t}from"./AggregateFunctions.js";import{DateOnly as r}from"./DateOnly.js";import{SqlError as a,SqlErrorCodes as s}from"./errorSupport.js";import{sqlCalculateFunction as n}from"./sqlArithmeticUtils.js";import{sqlCompare as i,isDateOrTimeValue as o}from"./sqlCompareUtils.js";import{isDateTime as l,isTimestampOffset as u,isTimeOnly as c,isDateOnly as p,parseTime as m,parseTimestamp as h,parseDate as d,convertToExecutingTimeZone as f}from"./sqlDateParsingUtils.js";import{SqlInterval as _}from"./SqlInterval.js";import{SqlTimeStampOffset as N}from"./SqlTimestampOffset.js";import{evaluateFunction as v,isStandardized as g}from"./StandardizedFunctions.js";import{TimeOnly as y}from"./TimeOnly.js";import{WhereGrammar as S,visitAll as T}from"./WhereGrammar.js";import{isDate as w}from"../../support/guards.js";import{DateTime as D,FixedOffsetZone as I}from"luxon";const x=new Set(["current_timestamp","current_date","current_time"]);class E{constructor(e){this.staticData=e}makeBool(e){return Z(e)}featureValue(e,t,r,a){return te(e,t,r,a)}equalsNull(e){return null===e}applyLike(e,t,r){return Y(e,t,r)}ensureArray(e){return z(e)}applyIn(e,t){return W(e,t)}currentTimestamp(e){return G(e)}currentDate(e){return K(e)}currentTime(e){return Q(e)}makeSqlInterval(e,t,r){return _.createFromValueAndQualifier(e,t,r)}convertInterval(e){return _.isInterval(e)?e.valueInMilliseconds():e}compare(e,t,r){return i(t,r,e)}calculate(e,t,r,a){return n(e,t,r,a)}evaluateTime(e){return m(e)}evaluateTimestamp(e,t,r){return h(e,t,r)}evaluateDate(e,t){return d(e,t)}evaluateFunction(e,t,r){return v(e,t,r)}lookup(e,t){const r=t[e];return void 0===r?null:r}between(e,t){return null==e||null==t[0]||null==t[1]?null:i(e,t[0],">=")&&i(e,t[1],"<=")}notbetween(e,t){return null==e||null==t[0]||null==t[1]?null:i(e,t[0],"<")||i(e,t[1],">")}ternaryNot(e){return J(e)}ternaryAnd(e,t){return B(e,t)}ternaryOr(e,t){return M(e,t)}}function $(e,...t){return`this.${e}(${t.join(", ")})`}function F(e){return void 0===e?"void 0":JSON.stringify(e)}function b({type:e,start:t,end:r}){return`{type: ${F(e)}, start: ${A(t)}, end: ${A(r)}}`}function A({type:e,period:t,precision:r,secondary:a}){return JSON.stringify({type:e,period:t,precision:r,secondary:a})}function O({type:e,size:t,withtimezone:r}){return JSON.stringify({type:e,size:t,withtimezone:r})}const k="feature",U="lookups",V="attributeAdapter",j="fieldsIndex",q="timeZone",C="currentUser";class L{constructor(e){this._parseTree=e,this._staticData=Object.create(null),this._nextStaticDataId=0,this._tempVars=new Set,this._nextTempVarId=0}compile(){const e=this._compileNode(this._parseTree),t=`\n ${this._tempVars.size>0?`var ${Array.from(this._tempVars).join(", ")};`:""}\n return this.convertInterval(${e});\n `;return new Function(k,U,V,j,q,C,t).bind(new E(this._staticData))}_storeStaticData(e){const t="static$"+this._nextStaticDataId++;return this._staticData[t]=e,t}_compileRefStaticData(e){return`this.staticData[${F(e)}]`}_generateTempVar(){const e="temp$"+this._nextTempVarId++;return this._tempVars.add(e),e}_compileSimpleCase(e){const t=this._compileNode(e.operand),r=this._generateTempVar(),a=[];for(const s of e.clauses){const e=$("compare",F("="),r,this._compileNode(s.operand)),t=this._compileNode(s.value);a.push(`${e} ? (${t}) :`)}return null!=e.else?a.push(this._compileNode(e.else)):a.push(F(null)),`(${r} = ${t}, ${a.join(" ")})`}_compileSearchedCase(e){const t=[];for(const r of e.clauses){const e=$("makeBool",this._compileNode(r.operand)),a=this._compileNode(r.value);t.push(`${e} ? (${a}) :`)}return null!=e.else?t.push(this._compileNode(e.else)):t.push(F(null)),t.join(" ")}_compileInExpr(e,t){const r=new Set,a=[];for(const i of t.value)"number"===i.type||"string"===i.type?r.add(i.value):a.push(i);const s=this._compileNode(e),n=$("ensureArray",this._compileNode({type:"expression-list",location:t.location,value:a}));if(r.size>0){const e=this._compileRefStaticData(this._storeStaticData(r)),t=this._generateTempVar();return a.length>0?`(${t} = ${s}, ${e}.has(${t}) || ${$("applyIn",t,n)})`:`(${t} = ${s}, ${t} == null ? null : ${e}.has(${t}))`}return $("applyIn",s,n)}_compileNode(e){switch(e.type){case"interval":return $("makeSqlInterval",this._compileNode(e.value),"interval-qualifier"===e.qualifier.type?b(e.qualifier):A(e.qualifier),F(e.op));case"case-expression":return"simple"===e.format?this._compileSimpleCase(e):this._compileSearchedCase(e);case"parameter":return $("lookup",F(e.value.toLowerCase()),U);case"expression-list":return`[${e.value.map((e=>this._compileNode(e))).join(", ")}]`;case"unary-expression":return $("ternaryNot",this._compileNode(e.expr));case"binary-expression":switch(e.operator){case"AND":return $("ternaryAnd",this._compileNode(e.left),this._compileNode(e.right));case"OR":return $("ternaryOr",this._compileNode(e.left),this._compileNode(e.right));case"IS":if("null"!==e.right.type)throw new a(s.UnsupportedIsRhs);return $("equalsNull",this._compileNode(e.left));case"ISNOT":if("null"!==e.right.type)throw new a(s.UnsupportedIsRhs);return`!${$("equalsNull",this._compileNode(e.left))}`;case"IN":return this._compileInExpr(e.left,e.right);case"NOT IN":return $("ternaryNot",this._compileInExpr(e.left,e.right));case"BETWEEN":return $("between",this._compileNode(e.left),this._compileNode(e.right));case"NOTBETWEEN":return $("notbetween",this._compileNode(e.left),this._compileNode(e.right));case"LIKE":return $("applyLike",this._compileNode(e.left),this._compileNode(e.right),F(e.escape));case"NOT LIKE":return $("ternaryNot",$("applyLike",this._compileNode(e.left),this._compileNode(e.right),F(e.escape)));case"<>":case"<":case">":case">=":case"<=":case"=":return $("compare",F(e.operator),this._compileNode(e.left),this._compileNode(e.right));case"*":case"-":case"+":case"/":case"||":return $("calculate",F(e.operator),this._compileNode(e.left),this._compileNode(e.right),q);default:throw new a(s.UnsupportedOperator,{operator:e.operator})}case"null":case"boolean":case"string":case"number":return F(e.value);case"time":try{return this._compileRefStaticData(this._storeStaticData(m(e.value)))}catch{return $("evaluateTime",F(e.value))}case"date":try{return this._compileRefStaticData(this._storeStaticData(d(e.value,"unknown")))}catch{return $("evaluateDate",F(e.value),F("unknown"))}case"timestamp":try{return this._compileRefStaticData(this._storeStaticData(h(e.value,"unknown")))}catch{return $("evaluateTimestamp",F(e.value),F("unknown"))}case"current-time":return"date"===e.mode?$("currentDate",q):"time"===e.mode?$("currentTime",q):$("currentTimestamp",q);case"current-user":return C;case"column-reference":return $("featureValue",k,F(e.column),j,V);case"data-type":return O(e.value);case"function":return $("evaluateFunction",F(e.name),this._compileNode(e.args),q)}throw new a(s.UnsupportedSyntax,{node:e.type})}}class R{static create(e,t={}){return new R(e,t.fieldsIndex,t.timeZone??void 0,t.currentUser)}constructor(e,t,r="UTC",a=null){this.fieldsIndex=t,this.timeZone=r,this.currentUser=a,this.parameters={},this._compiledExecutor=null,this._hasDateFunctions=void 0,this.parseTree=S.parse(e);const{isStandardized:s,isAggregate:n,currentUserRequired:i,referencedFieldNames:o}=this._extractExpressionInfo(t);this._referencedFieldNames=o,this.isStandardized=s,this.isAggregate=n,this.currentUserRequired=i}static convertValueToStorageFormat(e,t=null){if(null===t)return w(e)?e.getTime():l(e)?e.toMillis():u(e)?e.toStorageFormat():c(e)?e.toStorageString():p(e)?e.toStorageFormat():e;switch(t){case"date":return w(e)?e.getTime():l(e)?e.toMillis():u(e)?e.toMilliseconds():p(e)?e.toNumber():e;case"date-only":return w(e)?r.fromDateJS(e).toString():u(e)?r.fromSqlTimeStampOffset(e).toString():l(e)?r.fromDateTime(e).toString():e;case"time-only":return w(e)?y.fromDateJS(e).toStorageString():l(e)?y.fromDateTime(e).toStorageString():u(e)?y.fromSqlTimeStampOffset(e).toStorageString():c(e)?e.toStorageString():e;case"timestamp-offset":if(w(e))return N.fromJSDate(e).toStorageFormat();if(l(e))return N.fromDateTime(e).toStorageFormat();if(u(e))return e.toStorageFormat()}return e}get fieldNames(){return this._referencedFieldNames}testSet(e,t=re,r=this.currentUser){return!!this._evaluateNode(this.parseTree,null,t,e,r)}calculateValue(e,t=re,r=this.currentUser){const a=this._evaluateNode(this.parseTree,e,t,null,r);return _.isInterval(a)?a.valueInMilliseconds()/864e5:a}tryGetCompiledExecutor(){if(null!=this._compiledExecutor)return this._compiledExecutor;if(has("esri-csp-restrictions"))return null;const e=new L(this.parseTree);return this._compiledExecutor=e.compile(),this._compiledExecutor}calculateValueCompiled(e,t=re,r=this.currentUser){const a=this.tryGetCompiledExecutor();return null==a?this.calculateValue(e,t):a(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null)}testFeature(e,t=re,r=this.currentUser){return!!this._evaluateNode(this.parseTree,e,t,null,r)}testFeatureCompiled(e,t=re,r=this.currentUser){const a=this.tryGetCompiledExecutor();return null==a?this.testFeature(e,t):!!a(e,this.parameters,t,this.fieldsIndex,this.timeZone,r??null)}get hasDateFunctions(){return null!=this._hasDateFunctions||(this._hasDateFunctions=!1,T(this.parseTree,(e=>{"current-time"===e.type?this._hasDateFunctions=!0:"function"===e.type&&(this._hasDateFunctions=this._hasDateFunctions||x.has(e.name.toLowerCase()))}))),this._hasDateFunctions}getFunctions(){const e=new Set;return T(this.parseTree,(t=>{"function"===t.type&&e.add(t.name.toLowerCase())})),Array.from(e)}getExpressions(){const e=new Map;return T(this.parseTree,(t=>{if("function"===t.type){const r=t.name.toLowerCase(),a=t.args.value[0];if("column-reference"===a.type){const t=a.column,s=`${r}-${t}`;e.has(s)||e.set(s,{aggregateType:r,field:t})}}})),[...e.values()]}getVariables(){const e=new Set;return T(this.parseTree,(t=>{"parameter"===t.type&&e.add(t.value.toLowerCase())})),Array.from(e)}_extractExpressionInfo(t){const r=[],a=new Set;let s=!0,n=!1,i=!1;return T(this.parseTree,(o=>{switch(o.type){case"column-reference":{const e=t?.get(o.column);let s,n;e?s=n=e.name??"":(n=o.column,s=n.toLowerCase()),a.has(s)||(a.add(s),r.push(n)),o.column=n;break}case"current-user":i=!0;break;case"function":{const{name:t,args:r}=o,a=r.value.length;s&&(s=g(t,a)),!1===n&&(n=e(t,a));break}}})),{referencedFieldNames:Array.from(r),isStandardized:s,isAggregate:n,currentUserRequired:i}}_evaluateNode(r,o,l,u,c){let p;switch(r.type){case"interval":{const e=this._evaluateNode(r.value,o,l,u,c);return _.createFromValueAndQualifier(e,r.qualifier,r.op)}case"case-expression":if("simple"===r.format){const e=this._evaluateNode(r.operand,o,l,u,c);for(let t=0;t<r.clauses.length;t++)if(i(e,this._evaluateNode(r.clauses[t].operand,o,l,u,c),"="))return this._evaluateNode(r.clauses[t].value,o,l,u,c);if(null!==r.else)return this._evaluateNode(r.else,o,l,u,c)}else{for(let e=0;e<r.clauses.length;e++)if(Z(this._evaluateNode(r.clauses[e].operand,o,l,u,c)))return this._evaluateNode(r.clauses[e].value,o,l,u,c);if(null!==r.else)return this._evaluateNode(r.else,o,l,u,c)}return null;case"parameter":return p=this.parameters[r.value.toLowerCase()],w(p)?D.fromJSDate(p):null!=p&&"object"==typeof p&&"toDateTime"in p?p.toDateTime():p;case"expression-list":{const e=[];for(const t of r.value)e.push(this._evaluateNode(t,o,l,u,c));return e}case"unary-expression":return J(this._evaluateNode(r.expr,o,l,u,c));case"binary-expression":switch(r.operator){case"AND":return B(this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c));case"OR":return M(this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c));case"IS":if("null"!==r.right.type)throw new a(s.UnsupportedIsRhs);return null===this._evaluateNode(r.left,o,l,u,c);case"ISNOT":if("null"!==r.right.type)throw new a(s.UnsupportedIsRhs);return null!==this._evaluateNode(r.left,o,l,u,c);case"IN":{const e=z(this._evaluateNode(r.right,o,l,u,c));return W(this._evaluateNode(r.left,o,l,u,c),e)}case"NOT IN":{const e=z(this._evaluateNode(r.right,o,l,u,c));return J(W(this._evaluateNode(r.left,o,l,u,c),e))}case"BETWEEN":{const e=this._evaluateNode(r.left,o,l,u,c),t=this._evaluateNode(r.right,o,l,u,c);return null==e||null==t[0]||null==t[1]?null:i(e,t[0],">=")&&i(e,t[1],"<=")}case"NOTBETWEEN":{const e=this._evaluateNode(r.left,o,l,u,c),t=this._evaluateNode(r.right,o,l,u,c);return null==e||null==t[0]||null==t[1]?null:i(e,t[0],"<")||i(e,t[1],">")}case"LIKE":return Y(this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c),r.escape);case"NOT LIKE":return J(Y(this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c),r.escape));case"<>":case"<":case">":case">=":case"<=":case"=":return i(this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c),r.operator);case"-":case"+":case"*":case"/":case"||":return n(r.operator,this._evaluateNode(r.left,o,l,u,c),this._evaluateNode(r.right,o,l,u,c),this.timeZone)}case"null":case"boolean":case"string":case"number":return r.value;case"date":return r.parsedValue??=d(r.value,"unknown"),r.parsedValue;case"timestamp":return r.parsedValue??=h(r.value,"unknown"),r.parsedValue;case"time":return m(r.value);case"current-time":return"date"===r.mode?K(this.timeZone):"time"===r.mode?Q(this.timeZone):G(this.timeZone);case"current-user":return c??null;case"column-reference":return te(o,r.column,this.fieldsIndex,l);case"data-type":return r.value;case"function":{if(this.isAggregate&&e(r.name,r.args.value.length)){const e=[];for(const t of r.args?.value||[]){const r=[];for(const e of u||[])r.push(this._evaluateNode(t,e,l,null,c));e.push(r)}return t(r.name,e)}const a=this._evaluateNode(r.args,o,l,u,c);return v(r.name,a,this.timeZone)}}throw new a(s.UnsupportedSyntax,{node:r.type})}}function Z(e){return!0===e}function z(e){return Array.isArray(e)?e:[e]}function J(e){return null!==e?!0!==e:null}function B(e,t){return null!=e&&null!=t?!0===e&&!0===t:!1!==e&&!1!==t&&null}function M(e,t){return null!=e&&null!=t?!0===e||!0===t:!0===e||!0===t||null}function W(e,t){if(null==e)return null;let r=!1;for(const a of t)if(null==a)r=null;else{if(e===a){r=!0;break}if(o(e)&&o(a)&&(r=i(e,a,"="),r))break}return r}function G(e){return f(new Date,e)}function K(e){return r.fromNow(e)}function Q(e){const t=f(new Date,e);return y.fromDateTime(t)}const P="-[]/{}()*+?.\\^$|";var H;function X(e,t){const r=t;let a="",s=H.Normal;for(let n=0;n<e.length;n++){const t=e.charAt(n);switch(s){case H.Normal:t===r?s=H.Escaped:P.includes(t)?a+="\\"+t:a+="%"===t?".*":"_"===t?".":t;break;case H.Escaped:P.includes(t)?a+="\\"+t:a+=t,s=H.Normal}}return new RegExp("^"+a+"$","m")}function Y(e,t,r){if(null==e)return null;return X(t,r).test(e)}function ee(e){return e&&"object"==typeof e.attributes}function te(e,t,a,s){if("getAttributeSQL"in s)return s.getAttributeSQL(e,t);const n=s.getAttribute(e,t),i=a?.get(t);return null==n||"esriFieldTypeDate"!==i?.type&&"date"!==i?.type?null==n||"esriFieldTypeDateOnly"!==i?.type&&"date-only"!==i?.type?null==n||"esriFieldTypeTimeOnly"!==i?.type&&"time-only"!==i?.type?null==n||"esriFieldTypeTimestampOffset"!==i?.type&&"timestamp-offset"!==i?.type?n:new N(n):y.fromReader(n):r.fromReader(n):f(new Date(n),a?.getLuxonTimeZone(i.name)??I.utcInstance)}!function(e){e[e.Normal=0]="Normal",e[e.Escaped=1]="Escaped"}(H||(H={}));const re={getAttribute:(e,t)=>(ee(e)?e.attributes:e)[t]};export{R as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{SqlError as r,SqlErrorCodes as e}from"./errorSupport.js";import{isDateTime as t,isTimestampOffset as n,isDateOnly as i,isTimeOnly as o}from"./sqlDateParsingUtils.js";import{SqlTimeStampOffset as a}from"./SqlTimestampOffset.js";import{isUnknownTimeZone as s}from"./UnknownTimeZone.js";import{isNumber as u,isString as f}from"../../support/guards.js";import{DateTime as c}from"luxon";const l=321408e5,w=26784e5,m=864e5,p=36e5,d=6e4;function h(r){return!!t(r)||!!n(r)}function O(r){return!!t(r)||(!!i(r)||(!!n(r)||!!o(r)))}function v(o){if(t(o))return o.toMillis();if(i(o))return o.toNumber();if(n(o))return o.toMilliseconds();throw new r(e.InvalidDataType)}function I(l,w,m,p){if(null==l||null==w)return null;if(u(l)){if(u(w))return T(l,w,m);if(f(w))return D(l,w,m);if(O(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator)}else if(f(l)){if(u(w))return M(l,w,m);if(f(w))return z(l,w,m);if(t(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator);if(o(w))throw new r(e.InvalidOperator);if(n(w))throw new r(e.InvalidOperator)}else if(t(l)){if(h(w)){if(s(l.zone)){if(c.isDateTime(w)&&!s(w.zone))return j(l,w,m);if(a.isTimestampOffset(w))return j(l,w,m)}else if(c.isDateTime(w)&&s(w.zone)){if(!s(l.zone))return j(l,w,m);if(a.isTimestampOffset(l))return j(l,w,m)}return T(v(l),v(w),m)}if(f(w))throw new r(e.InvalidOperator);if(i(w))return N(l,w,m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}else if(i(l)){if(n(w))return b(l,w,m);if(t(w))return x(l,w,m);if(f(w))throw new r(e.InvalidOperator);if(i(w))return T(l.toNumber(),w.toNumber(),m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}else if(o(l)){if(o(w))return T(l.toNumber(),w.toNumber(),m);if(f(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator);if(h(w))throw new r(e.InvalidOperator)}else if(n(l)){if(h(w))return c.isDateTime(w)&&s(w.zone)?j(l,w,m):T(v(l),v(w),m);if(f(w))throw new r(e.InvalidOperator);if(i(w))return y(l,w,m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}switch(m){case"<>":return l!==w;case"=":return l===w;case">":return l>w;case"<":return l<w;case">=":return l>=w;case"<=":return l<=w}}function T(r,e,t){switch(t){case"<>":return r!==e;case"=":return r===e;case">":return r>e;case"<":return r<e;case">=":return r>=e;case"<=":return r<=e}}function D(r,e,t){const n=parseFloat(e);if(!isNaN(n))return T(r,n,t);const i=r.toString();switch(t){case"<>":return i!==e;case"=":return i===e;case">":return i>e;case"<":return i<e;case">=":return i>=e;case"<=":return i<=e}}function M(r,e,t){const n=parseFloat(r);if(!isNaN(n))return T(n,e,t);const i=e.toString();switch(t){case"<>":return r!==i;case"=":return r===i;case">":return r>i;case"<":return r<i;case">=":return r>=i;case"<=":return r<=i}}function z(r,e,t){switch(t){case"<>":return r!==e;case"=":return r===e;case">":return r>e;case"<":return r<e;case">=":return r>=e;case"<=":return r<=e}}function N(r,e,t){const n=e.toDateTimeLuxon(r.zone);return T((r=r.startOf("day")).toMillis(),n.toMillis(),t)}function y(r,e,t){const n=e.toDateTimeLuxon(r.toDateTime().zone);return T((r=r.startOfDay()).toMilliseconds(),n.toMillis(),t)}function x(r,e,t){const n=r.toDateTimeLuxon(e.zone);return e=e.startOf("day"),T(n.toMillis(),e.toMillis(),t)}function b(r,e,t){const n=r.toDateTimeLuxon(e.toDateTime().zone);return e=e.startOfDay(),T(n.toMillis(),e.toMilliseconds(),t)}function j(r,e,t){a.isTimestampOffset(r)&&(r=r.toDateTime()),a.isTimestampOffset(e)&&(e=e.toDateTime());const n=g(r),i=g(e);switch(t){case"<>":return n!==i;case"=":return n===i;case">":return n>i;case"<":return n<i;case">=":return n>=i;case"<=":return n<=i}}function g(r){return r.year*l+r.month*w+r.day*m+r.hour*p+r.minute*d+1e3*r.second+r.millisecond}export{v as dateValueInMilliseconds,O as isDateOrTimeValue,h as isDateTimeComparableValue,I as sqlCompare};
5
+ import{SqlError as r,SqlErrorCodes as e}from"./errorSupport.js";import{isDateTime as t,isTimestampOffset as n,isDateOnly as i,isTimeOnly as o}from"./sqlDateParsingUtils.js";import{SqlTimeStampOffset as a}from"./SqlTimestampOffset.js";import{isUnknownTimeZone as s}from"./UnknownTimeZone.js";import{isNumber as u,isString as f}from"../../support/guards.js";import{DateTime as c}from"luxon";const l=321408e5,w=26784e5,m=864e5,p=36e5,d=6e4;function h(r){return!!t(r)||!!n(r)}function O(r){return!!t(r)||(!!i(r)||(!!n(r)||!!o(r)))}function v(o){if(t(o))return o.toMillis();if(i(o))return o.toNumber();if(n(o))return o.toMilliseconds();throw new r(e.InvalidDataType)}function I(l,w,m){if(null==l||null==w)return null;if(u(l)){if(u(w))return T(l,w,m);if(f(w))return D(l,w,m);if(O(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator)}else if(f(l)){if(u(w))return M(l,w,m);if(f(w))return z(l,w,m);if(t(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator);if(o(w))throw new r(e.InvalidOperator);if(n(w))throw new r(e.InvalidOperator)}else if(t(l)){if(h(w)){if(s(l.zone)){if(c.isDateTime(w)&&!s(w.zone))return j(l,w,m);if(a.isTimestampOffset(w))return j(l,w,m)}else if(c.isDateTime(w)&&s(w.zone)){if(!s(l.zone))return j(l,w,m);if(a.isTimestampOffset(l))return j(l,w,m)}return T(v(l),v(w),m)}if(f(w))throw new r(e.InvalidOperator);if(i(w))return N(l,w,m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}else if(i(l)){if(n(w))return b(l,w,m);if(t(w))return x(l,w,m);if(f(w))throw new r(e.InvalidOperator);if(i(w))return T(l.toNumber(),w.toNumber(),m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}else if(o(l)){if(o(w))return T(l.toNumber(),w.toNumber(),m);if(f(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator);if(i(w))throw new r(e.InvalidOperator);if(h(w))throw new r(e.InvalidOperator)}else if(n(l)){if(h(w))return c.isDateTime(w)&&s(w.zone)?j(l,w,m):T(v(l),v(w),m);if(f(w))throw new r(e.InvalidOperator);if(i(w))return y(l,w,m);if(o(w))throw new r(e.InvalidOperator);if(u(w))throw new r(e.InvalidOperator)}switch(m){case"<>":return l!==w;case"=":return l===w;case">":return l>w;case"<":return l<w;case">=":return l>=w;case"<=":return l<=w}}function T(r,e,t){switch(t){case"<>":return r!==e;case"=":return r===e;case">":return r>e;case"<":return r<e;case">=":return r>=e;case"<=":return r<=e}}function D(r,e,t){const n=parseFloat(e);if(!isNaN(n))return T(r,n,t);const i=r.toString();switch(t){case"<>":return i!==e;case"=":return i===e;case">":return i>e;case"<":return i<e;case">=":return i>=e;case"<=":return i<=e}}function M(r,e,t){const n=parseFloat(r);if(!isNaN(n))return T(n,e,t);const i=e.toString();switch(t){case"<>":return r!==i;case"=":return r===i;case">":return r>i;case"<":return r<i;case">=":return r>=i;case"<=":return r<=i}}function z(r,e,t){switch(t){case"<>":return r!==e;case"=":return r===e;case">":return r>e;case"<":return r<e;case">=":return r>=e;case"<=":return r<=e}}function N(r,e,t){const n=e.toDateTimeLuxon(r.zone);return T((r=r.startOf("day")).toMillis(),n.toMillis(),t)}function y(r,e,t){const n=e.toDateTimeLuxon(r.toDateTime().zone);return T((r=r.startOfDay()).toMilliseconds(),n.toMillis(),t)}function x(r,e,t){const n=r.toDateTimeLuxon(e.zone);return e=e.startOf("day"),T(n.toMillis(),e.toMillis(),t)}function b(r,e,t){const n=r.toDateTimeLuxon(e.toDateTime().zone);return e=e.startOfDay(),T(n.toMillis(),e.toMilliseconds(),t)}function j(r,e,t){a.isTimestampOffset(r)&&(r=r.toDateTime()),a.isTimestampOffset(e)&&(e=e.toDateTime());const n=g(r),i=g(e);switch(t){case"<>":return n!==i;case"=":return n===i;case">":return n>i;case"<":return n<i;case">=":return n>=i;case"<=":return n<=i}}function g(r){return r.year*l+r.month*w+r.day*m+r.hour*p+r.minute*d+1e3*r.second+r.millisecond}export{v as dateValueInMilliseconds,O as isDateOrTimeValue,h as isDateTimeComparableValue,I as sqlCompare};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Accessor.js";import r from"../core/JSONSupport.js";import{clone as i}from"../core/lang.js";import{getMetersPerUnitForSR as s,getUnitString as o}from"../core/unitUtils.js";import{Integer as n}from"../core/accessorSupport/ensureType.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import{writer as p}from"../core/accessorSupport/decorators/writer.js";import{isWGS84 as u,isWebMercator as c,isGeographic as d,isWrappable as m,wgs84 as h,webMercator as w,equals as y,plateCarree as k}from"./support/spatialReferenceUtils.js";var S;let f=class extends r{static{S=this}static{this.GCS_NAD_1927=null}static{this.WGS84=null}static{this.WebMercator=null}static{this.PlateCarree=null}static fromJSON(t){if(!t)return null;if(102100===t?.wkid)return S.WebMercator;if(4326===t?.wkid)return S.WGS84;const e=new S;return e.read(t),e}constructor(t){super(t),this.latestWkid=null,this.wkid=null,this.wkt=null,this.wkt2=null,this.vcsWkid=null,this.latestVcsWkid=null,this.imageCoordinateSystem=null}normalizeCtorArgs(t){if(t&&"object"==typeof t)return t;const e="string"==typeof t?"wkt":"wkid";return{[e]:t}}get isWGS84(){return u(this)}get isWebMercator(){return c(this)}get isGeographic(){return d(this)}get isWrappable(){return m(this)}get metersPerUnit(){return s(this)}get unit(){return o(this)||(this.isGeographic?"degrees":null)}writeWkt(t,e){this.wkid||(e.wkt=t)}clone(){if(this===S.WGS84)return new S(h);if(this===S.WebMercator)return new S(w);const t=new S;return null!=this.wkid?(t.wkid=this.wkid,null!=this.latestWkid&&(t.latestWkid=this.latestWkid),null!=this.vcsWkid&&(t.vcsWkid=this.vcsWkid),null!=this.latestVcsWkid&&(t.latestVcsWkid=this.latestVcsWkid)):(null!=this.wkt&&(t.wkt=this.wkt),null!=this.wkt2&&(t.wkt2=this.wkt2)),this.imageCoordinateSystem&&(t.imageCoordinateSystem=i(this.imageCoordinateSystem)),t}equals(t){if(null==t)return!1;if(this.imageCoordinateSystem||t.imageCoordinateSystem){if(null==this.imageCoordinateSystem||null==t.imageCoordinateSystem)return!1;const{id:e,referenceServiceName:r}=t.imageCoordinateSystem,{geodataXform:i}=t.imageCoordinateSystem,s=this.imageCoordinateSystem;return null==e||i?JSON.stringify(s)===JSON.stringify(t.imageCoordinateSystem):r?s.id===e&&s.referenceServiceName===r:s.id===e}return y(this,t)}toJSON(t){return this.write(void 0,t)}};t([l({readOnly:!0})],f.prototype,"isWGS84",null),t([l({readOnly:!0})],f.prototype,"isWebMercator",null),t([l({readOnly:!0})],f.prototype,"isGeographic",null),t([l({readOnly:!0})],f.prototype,"isWrappable",null),t([l({type:n,json:{write:!0}})],f.prototype,"latestWkid",void 0),t([l({readOnly:!0})],f.prototype,"metersPerUnit",null),t([l({readOnly:!0})],f.prototype,"unit",null),t([l({type:n,json:{write:!0,origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkt}}}}}}})],f.prototype,"wkid",void 0),t([l({type:String,json:{origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkid}}}}}}})],f.prototype,"wkt",void 0),t([p("wkt"),p("web-scene","wkt")],f.prototype,"writeWkt",null),t([l({type:String,json:{write:!1}})],f.prototype,"wkt2",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"vcsWkid",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"latestVcsWkid",void 0),t([l()],f.prototype,"imageCoordinateSystem",void 0),f=S=t([a("esri.geometry.SpatialReference")],f),f.prototype.toJSON.isDefaultToJSON=!0,f.GCS_NAD_1927=e.freeze(new f({wkid:4267,wkt:'GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'})),f.WGS84=e.freeze(new f(h)),f.WebMercator=e.freeze(new f(w)),f.PlateCarree=e.freeze(new f(k));const g=f;export{g as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Accessor.js";import r from"../core/JSONSupport.js";import{clone as i}from"../core/lang.js";import{getMetersPerUnitForSR as s,getUnitString as o}from"../core/unitUtils.js";import{Integer as n}from"../core/accessorSupport/ensureType.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import{writer as p}from"../core/accessorSupport/decorators/writer.js";import{isWGS84 as u,isWebMercator as c,isGeographic as d,isWrappable as m,wgs84 as h,webMercator as w,equals as y,plateCarree as k}from"./support/spatialReferenceUtils.js";var S;let f=class extends r{static{S=this}static{this.GCS_NAD_1927=null}static{this.WGS84=null}static{this.WebMercator=null}static{this.PlateCarree=null}static fromJSON(t){if(!t)return null;if(102100===t?.wkid)return S.WebMercator;if(4326===t?.wkid)return S.WGS84;const e=new S;return e.read(t),e}constructor(t){super(t),this.latestWkid=null,this.wkid=null,this.wkt=null,this.wkt2=null,this.vcsWkid=null,this.latestVcsWkid=null,this.imageCoordinateSystem=null}normalizeCtorArgs(t){if(t&&"object"==typeof t)return t;const e="string"==typeof t?"wkt":"wkid";return{[e]:t}}get isWGS84(){return u(this)}get isWebMercator(){return c(this)}get isGeographic(){return d(this)}get isWrappable(){return m(this)}get metersPerUnit(){return s(this)}get unit(){return o(this)||(this.isGeographic?"degrees":null)}writeWkt(t,e){this.wkid||(e.wkt=t)}clone(){if(this===S.WGS84)return new S(h);if(this===S.WebMercator)return new S(w);const t=new S;return null!=this.wkid?(t.wkid=this.wkid,null!=this.latestWkid&&(t.latestWkid=this.latestWkid),null!=this.vcsWkid&&(t.vcsWkid=this.vcsWkid),null!=this.latestVcsWkid&&(t.latestVcsWkid=this.latestVcsWkid)):(null!=this.wkt&&(t.wkt=this.wkt),null!=this.wkt2&&(t.wkt2=this.wkt2)),this.imageCoordinateSystem&&(t.imageCoordinateSystem=i(this.imageCoordinateSystem)),t}equals(t){if(null==t)return!1;if(this.imageCoordinateSystem||t.imageCoordinateSystem){if(null==this.imageCoordinateSystem||null==t.imageCoordinateSystem)return!1;const{id:e,referenceServiceName:r}=t.imageCoordinateSystem,{geodataXform:i}=t.imageCoordinateSystem,s=this.imageCoordinateSystem;return null==e||i?JSON.stringify(s)===JSON.stringify(t.imageCoordinateSystem):r?s.id===e&&s.referenceServiceName===r:s.id===e}return y(this,t)}toJSON(t){return this.write(void 0,t)}};t([l({readOnly:!0})],f.prototype,"isWGS84",null),t([l({readOnly:!0})],f.prototype,"isWebMercator",null),t([l({readOnly:!0})],f.prototype,"isGeographic",null),t([l({readOnly:!0})],f.prototype,"isWrappable",null),t([l({type:n,json:{write:!0}})],f.prototype,"latestWkid",void 0),t([l({readOnly:!0})],f.prototype,"metersPerUnit",null),t([l({readOnly:!0})],f.prototype,"unit",null),t([l({type:n,json:{write:!0,origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkt}}}}}}})],f.prototype,"wkid",void 0),t([l({type:String,json:{origins:{"web-scene":{write:{overridePolicy(){return{isRequired:null==this.wkid}}}}}}})],f.prototype,"wkt",void 0),t([p("wkt"),p("web-scene","wkt")],f.prototype,"writeWkt",null),t([l({type:String,json:{write:!1}})],f.prototype,"wkt2",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"vcsWkid",void 0),t([l({type:n,json:{write:!0}})],f.prototype,"latestVcsWkid",void 0),t([l()],f.prototype,"imageCoordinateSystem",void 0),f=S=t([a("esri.geometry.SpatialReference")],f);const g=f;f.prototype.toJSON.isDefaultToJSON=!0,f.GCS_NAD_1927=e.freeze(new f({wkid:4267,wkt:'GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]'})),f.WGS84=e.freeze(new f(h)),f.WebMercator=e.freeze(new f(w)),f.PlateCarree=e.freeze(new f(k));export{g as default};
package/interfaces.d.ts CHANGED
@@ -1629,6 +1629,8 @@ declare namespace __esri {
1629
1629
  interface generalSharedKgUtils {
1630
1630
  extentToInBoundsRings(extent: Extent): number[][][];
1631
1631
  getBindParametersFromCypherQuery(query: string): Promise<BindParamsFromCypherQueryResult>;
1632
+ getDefaultKnowledgeSublayerLabelingInfos(graphTypeName: string, geometryType: "point" | "multipoint" | "polyline" | "polygon" | nullish, displayLabelProperty: string): LabelClass[] | nullish;
1633
+ getDefaultLinkChartSublayerLabelingInfos(graphType: "entity" | "relationship", graphTypeName: string, displayLabelProperty: string): LabelClass[] | nullish;
1632
1634
  newLinkChartLayerWithOptimizedGeometry(properties?: LinkChartLayerConstructProperties): LinkChartLayer;
1633
1635
  }
1634
1636
 
@@ -100032,7 +100034,7 @@ declare namespace __esri {
100032
100034
  *
100033
100035
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100034
100036
  */
100035
- whenLayerView(layer: PointCloudLayer): Promise<any>;
100037
+ whenLayerView(layer: PointCloudLayer): Promise<PointCloudLayerView>;
100036
100038
  /**
100037
100039
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100038
100040
  * on the view for the given layer.
@@ -100041,7 +100043,7 @@ declare namespace __esri {
100041
100043
  *
100042
100044
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100043
100045
  */
100044
- whenLayerView(layer: StreamLayer): Promise<any>;
100046
+ whenLayerView(layer: StreamLayer): Promise<StreamLayerView>;
100045
100047
  /**
100046
100048
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100047
100049
  * on the view for the given layer.
@@ -100050,7 +100052,7 @@ declare namespace __esri {
100050
100052
  *
100051
100053
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100052
100054
  */
100053
- whenLayerView(layer: WFSLayer): Promise<any>;
100055
+ whenLayerView(layer: WFSLayer): Promise<WFSLayerView>;
100054
100056
  /**
100055
100057
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100056
100058
  * on the view for the given layer.
@@ -100059,7 +100061,7 @@ declare namespace __esri {
100059
100061
  *
100060
100062
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100061
100063
  */
100062
- whenLayerView(layer: OGCFeatureLayer): Promise<any>;
100064
+ whenLayerView(layer: OGCFeatureLayer): Promise<OGCFeatureLayerView>;
100063
100065
  /**
100064
100066
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100065
100067
  * on the view for the given layer.
@@ -100068,7 +100070,7 @@ declare namespace __esri {
100068
100070
  *
100069
100071
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100070
100072
  */
100071
- whenLayerView(layer: FeatureLayer): Promise<any>;
100073
+ whenLayerView(layer: FeatureLayer): Promise<FeatureLayerView>;
100072
100074
  /**
100073
100075
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100074
100076
  * on the view for the given layer.
@@ -100077,7 +100079,7 @@ declare namespace __esri {
100077
100079
  *
100078
100080
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100079
100081
  */
100080
- whenLayerView(layer: CSVLayer): Promise<any>;
100082
+ whenLayerView(layer: CSVLayer): Promise<CSVLayerView>;
100081
100083
  /**
100082
100084
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100083
100085
  * on the view for the given layer.
@@ -100086,7 +100088,7 @@ declare namespace __esri {
100086
100088
  *
100087
100089
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100088
100090
  */
100089
- whenLayerView(layer: GeoJSONLayer): Promise<any>;
100091
+ whenLayerView(layer: GeoJSONLayer): Promise<GeoJSONLayerView>;
100090
100092
  /**
100091
100093
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100092
100094
  * on the view for the given layer.
@@ -100095,7 +100097,7 @@ declare namespace __esri {
100095
100097
  *
100096
100098
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100097
100099
  */
100098
- whenLayerView(layer: GeoRSSLayer): Promise<any>;
100100
+ whenLayerView(layer: GeoRSSLayer): Promise<GeoRSSLayerView>;
100099
100101
  /**
100100
100102
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100101
100103
  * on the view for the given layer.
@@ -100104,7 +100106,7 @@ declare namespace __esri {
100104
100106
  *
100105
100107
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100106
100108
  */
100107
- whenLayerView(layer: GraphicsLayer): Promise<any>;
100109
+ whenLayerView(layer: GraphicsLayer): Promise<GraphicsLayerView>;
100108
100110
  /**
100109
100111
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100110
100112
  * on the view for the given layer.
@@ -100113,7 +100115,7 @@ declare namespace __esri {
100113
100115
  *
100114
100116
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100115
100117
  */
100116
- whenLayerView(layer: ImageryLayer): Promise<any>;
100118
+ whenLayerView(layer: ImageryLayer): Promise<ImageryLayerView>;
100117
100119
  /**
100118
100120
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100119
100121
  * on the view for the given layer.
@@ -100122,7 +100124,7 @@ declare namespace __esri {
100122
100124
  *
100123
100125
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100124
100126
  */
100125
- whenLayerView(layer: KMLLayer): Promise<any>;
100127
+ whenLayerView(layer: KMLLayer): Promise<KMLLayerView>;
100126
100128
  /**
100127
100129
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100128
100130
  * on the view for the given layer.
@@ -100131,7 +100133,7 @@ declare namespace __esri {
100131
100133
  *
100132
100134
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100133
100135
  */
100134
- whenLayerView(layer: SceneLayer): Promise<any>;
100136
+ whenLayerView(layer: SceneLayer): Promise<SceneLayerView>;
100135
100137
  /**
100136
100138
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100137
100139
  * on the view for the given layer.
@@ -100140,7 +100142,7 @@ declare namespace __esri {
100140
100142
  *
100141
100143
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100142
100144
  */
100143
- whenLayerView(layer: DimensionLayer): Promise<any>;
100145
+ whenLayerView(layer: DimensionLayer): Promise<DimensionLayerView>;
100144
100146
  /**
100145
100147
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100146
100148
  * on the view for the given layer.
@@ -100149,7 +100151,7 @@ declare namespace __esri {
100149
100151
  *
100150
100152
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100151
100153
  */
100152
- whenLayerView(layer: MediaLayer): Promise<any>;
100154
+ whenLayerView(layer: MediaLayer): Promise<MediaLayerView>;
100153
100155
  /**
100154
100156
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100155
100157
  * on the view for the given layer.
@@ -100158,7 +100160,7 @@ declare namespace __esri {
100158
100160
  *
100159
100161
  * {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#whenLayerView Read more...}
100160
100162
  */
100161
- whenLayerView(layer: ViewshedLayer): Promise<any>;
100163
+ whenLayerView(layer: ViewshedLayer): Promise<ViewshedLayerView>;
100162
100164
  /**
100163
100165
  * Gets the {@link https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html LayerView} created
100164
100166
  * on the view for the given layer.
package/intl/duration.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{convertTime as o}from"../core/timeUtils.js";import{getLanguage as l,getLocale as r}from"./locale.js";import{Duration as t}from"luxon";function n(l,r="milliseconds",n={}){const i={locale:e(),numberingSystem:"latn"};let s;return s=l?t.fromMillis(o(l,r,"milliseconds"),i).rescale():t.fromObject({seconds:0},i),s.toHuman({listStyle:"narrow",unitDisplay:"long",...n})}function e(){return"bs"===l()?"hr":r()}export{n as formatDuration};
5
+ import{convertTime as o}from"../core/timeUtils.js";import{getLocale as l,getLocaleParts as n}from"./locale.js";import{Duration as t}from"luxon";function r(l,n="milliseconds",r={}){const i={locale:e(),numberingSystem:"latn"};let s;return s=l?t.fromMillis(o(l,n,"milliseconds"),i).rescale():t.fromObject({seconds:0},i),s.toHuman({listStyle:"narrow",unitDisplay:"long",...r})}function e(){const o=l();return"bs"===n(o)?.language?"hr":o}export{r as formatDuration};
package/intl/locale.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{makeHandle as n}from"../core/handleUtils.js";let e,t;const o=globalThis.esriConfig?.locale??globalThis.dojoConfig?.locale,a=globalThis.document?.documentElement;function i(){const n=a?.getAttribute("lang"),e=globalThis.navigator?.language;return o??n??e??"en"}function r(){return void 0===t&&(t=i()),t}function c(n){e=n||void 0,v()}function s(n=r()){const e=/^([a-zA-Z]{2,3})(?:[_-][a-zA-Z0-9]+)*$/.exec(n);return e?.[1].toLowerCase()}const l=/^(?<language>[a-z]{2,3})(-(?<extlang>[a-z]{3}))?(-(?<script>[A-Z][a-z]{3}))?(-(?<region>[A-Z]{2}|\d{3}))?(-(?<variant>[a-zA-Z0-9]{5,8}|\d[a-zA-Z0-9]{3}))?(-x-(?<privateUse>[a-zA-Z0-9]{1,8}(-[a-zA-Z0-9]{1,8})*))?$/;function u(n=r()){return l.exec(n)?.groups}const g={he:!0,ar:!0};function f(n=r()){const e=s(n);return void 0!==e&&(g[e]||!1)}const d=[];function h(e){return d.push(e),n((()=>d.splice(d.indexOf(e),1)))}const b=[];function p(e){return b.push(e),n((()=>b.splice(b.indexOf(e),1)))}function v(){const n=e??i();t!==n&&([...b].forEach((e=>e(n))),t=n,[...d].forEach((e=>e(n))))}if(globalThis.addEventListener?.("languagechange",v),a){new MutationObserver((()=>{v()})).observe(a,{attributeFilter:["lang"]})}export{p as beforeLocaleChange,i as getDefaultLocale,s as getLanguage,r as getLocale,u as getLocaleParts,h as onLocaleChange,f as prefersRTL,c as setLocale};
5
+ import{makeHandle as n}from"../core/handleUtils.js";let e,o;const t=globalThis.esriConfig?.locale??globalThis.dojoConfig?.locale,i=globalThis.document?.documentElement;function a(){const n=i?.getAttribute("lang"),e=globalThis.navigator?.language;return t??n??e??"en"}function r(){return void 0===o&&(o=a()),o}function l(n){e=n||void 0,b()}const c=/^(?<language>[a-z]{2,3})(?:-[a-z]{3})?(?:-[A-Z][a-z]{3})?(?:-(?<region>[A-Z]{2}|\d{3}))?(?:-.*)?$/;function u(n=r()){return c.exec(n)?.groups}function s(n=r()){const e=u(n)?.language;return"he"===e||"ar"===e}const g=[];function f(e){return g.push(e),n((()=>g.splice(g.indexOf(e),1)))}const h=[];function d(e){return h.push(e),n((()=>h.splice(h.indexOf(e),1)))}function b(){const n=e??a();o!==n&&([...h].forEach((e=>e(n))),o=n,[...g].forEach((e=>e(n))))}if(globalThis.addEventListener?.("languagechange",b),i){new MutationObserver((()=>{b()})).observe(i,{attributeFilter:["lang"]})}export{d as beforeLocaleChange,a as getDefaultLocale,r as getLocale,u as getLocaleParts,f as onLocaleChange,s as prefersRTL,l as setLocale};
package/intl/messages.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import t from"../core/Error.js";import{makeHandle as n}from"../core/handleUtils.js";import{createResolver as e}from"../core/promiseUtils.js";import{beforeLocaleChange as r,getLocale as s}from"./locale.js";const o=/^([a-z]{2})(?:[-_]([A-Za-z]{2}))?$/,i={ar:!0,bg:!0,bs:!0,ca:!0,cs:!0,da:!0,de:!0,el:!0,en:!0,es:!0,et:!0,fi:!0,fr:!0,he:!0,hr:!0,hu:!0,id:!0,it:!0,ja:!0,ko:!0,lt:!0,lv:!0,nb:"no",nl:!0,no:!0,pl:!0,pt:"pt-BR","pt-BR":!0,"pt-PT":!0,ro:!0,ru:!0,sk:!0,sl:!0,sr:!0,sv:!0,th:!0,tr:!0,uk:!0,vi:!0,zh:"zh-CN","zh-CN":!0,"zh-HK":!0,"zh-TW":!0};function a(t){return t in i}function c(t){if(a(t)){const n=i[t];return!0===n?t:n}return null}const d=[],l=new Map;function u(t){for(const n of l.keys())_(t.pattern,n)&&l.delete(n)}function h(t){return d.includes(t)||(u(t),d.unshift(t)),n((()=>{const n=d.indexOf(t);n>-1&&(d.splice(n,1),u(t))}))}async function f(t){const n=s();l.has(t)||l.set(t,m(t,n));const e=l.get(t);return e&&await g.add(e),e}function p(t){if(!o.test(t))return null;const n=o.exec(t);if(null===n)return null;const[,e,r]=n;return c(e+(r?"-"+r.toUpperCase():""))??c(e)}async function m(n,e){const r=[];for(const t of d)if(_(t.pattern,n))try{return await t.fetchMessageBundle(n,e)}catch(s){r.push(s)}if(r.length)throw new t("intl:message-bundle-error",`Errors occurred while loading "${n}"`,{errors:r});throw new t("intl:no-message-bundle-loader",`No loader found for message bundle "${n}"`)}function _(t,n){return"string"==typeof t?n.startsWith(t):t.test(n)}r((()=>{l.clear()}));const g=new class{constructor(){this._numLoading=0,this._dfd=null}async waitForAll(){this._dfd&&await this._dfd.promise}add(t){return this._increase(),t.then((()=>this._decrease()),(()=>this._decrease())),this.waitForAll()}_increase(){this._numLoading++,this._dfd||(this._dfd=e())}_decrease(){this._numLoading=Math.max(this._numLoading-1,0),this._dfd&&0===this._numLoading&&(this._dfd.resolve(),this._dfd=null)}},w={cache:l,loaders:d};export{f as fetchMessageBundle,i as messageBundlesLocaleMap,p as normalizeMessageBundleLocale,h as registerMessageBundleLoader,w as test};
5
+ import t from"../core/Error.js";import{makeHandle as n}from"../core/handleUtils.js";import{createResolver as e}from"../core/promiseUtils.js";import{beforeLocaleChange as r,getLocale as s,getLocaleParts as o}from"./locale.js";const i={ar:!0,bg:!0,bs:!0,ca:!0,cs:!0,da:!0,de:!0,el:!0,en:!0,es:!0,et:!0,fi:!0,fr:!0,he:!0,hr:!0,hu:!0,id:!0,it:!0,ja:!0,ko:!0,lt:!0,lv:!0,nb:"no",nl:!0,no:!0,pl:!0,pt:"pt-BR","pt-BR":!0,"pt-PT":!0,ro:!0,ru:!0,sk:!0,sl:!0,sr:!0,sv:!0,th:!0,tr:!0,uk:!0,vi:!0,zh:"zh-CN","zh-CN":!0,"zh-HK":!0,"zh-TW":!0};function a(t){return t in i}function c(t){if(a(t)){const n=i[t];return!0===n?t:n}return null}const d=[],l=new Map;function h(t){for(const n of l.keys())_(t.pattern,n)&&l.delete(n)}function u(t){return d.includes(t)||(h(t),d.unshift(t)),n((()=>{const n=d.indexOf(t);n>-1&&(d.splice(n,1),h(t))}))}async function f(t){const n=s();l.has(t)||l.set(t,p(t,n));const e=l.get(t);return e&&await g.add(e),e}function m(t){const n=o(t);return n?c(t)??c(n.language):null}async function p(n,e){const r=[];for(const t of d)if(_(t.pattern,n))try{return await t.fetchMessageBundle(n,e)}catch(s){r.push(s)}if(r.length)throw new t("intl:message-bundle-error",`Errors occurred while loading "${n}"`,{errors:r});throw new t("intl:no-message-bundle-loader",`No loader found for message bundle "${n}"`)}function _(t,n){return"string"==typeof t?n.startsWith(t):t.test(n)}r((()=>{l.clear()}));const g=new class{constructor(){this._numLoading=0,this._dfd=null}async waitForAll(){this._dfd&&await this._dfd.promise}add(t){return this._increase(),t.then((()=>this._decrease()),(()=>this._decrease())),this.waitForAll()}_increase(){this._numLoading++,this._dfd||(this._dfd=e())}_decrease(){this._numLoading=Math.max(this._numLoading-1,0),this._dfd&&0===this._numLoading&&(this._dfd.resolve(),this._dfd=null)}},w={cache:l,loaders:d};export{f as fetchMessageBundle,i as messageBundlesLocaleMap,m as normalizeMessageBundleLocale,u as registerMessageBundleLoader,w as test};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import r from"../core/Error.js";import{JSONMap as o}from"../core/jsonMap.js";import{MultiOriginJSONMixin as a}from"../core/MultiOriginJSONSupport.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import n from"../geometry/Point.js";import l from"../geometry/SpatialReference.js";import p from"./BaseTileLayer.js";import{BlendLayer as u}from"./mixins/BlendLayer.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import d from"./support/LOD.js";import y from"./support/TileInfo.js";const c=new o({BingMapsAerial:"aerial",BingMapsRoad:"road",BingMapsHybrid:"hybrid"}),m="https://dev.virtualearth.net";let h=class extends(u(g(a(p)))){constructor(e){super(e),this.type="bing-maps",this.tileInfo=new y({size:[256,256],dpi:96,origin:new n({x:-20037508.342787,y:20037508.342787,spatialReference:l.WebMercator}),spatialReference:l.WebMercator,lods:[new d({level:1,resolution:78271.5169639999,scale:295828763.795777}),new d({level:2,resolution:39135.7584820001,scale:147914381.897889}),new d({level:3,resolution:19567.8792409999,scale:73957190.948944}),new d({level:4,resolution:9783.93962049996,scale:36978595.474472}),new d({level:5,resolution:4891.96981024998,scale:18489297.737236}),new d({level:6,resolution:2445.98490512499,scale:9244648.868618}),new d({level:7,resolution:1222.99245256249,scale:4622324.434309}),new d({level:8,resolution:611.49622628138,scale:2311162.217155}),new d({level:9,resolution:305.748113140558,scale:1155581.108577}),new d({level:10,resolution:152.874056570411,scale:577790.554289}),new d({level:11,resolution:76.4370282850732,scale:288895.277144}),new d({level:12,resolution:38.2185141425366,scale:144447.638572}),new d({level:13,resolution:19.1092570712683,scale:72223.819286}),new d({level:14,resolution:9.55462853563415,scale:36111.909643}),new d({level:15,resolution:4.77731426794937,scale:18055.954822}),new d({level:16,resolution:2.38865713397468,scale:9027.977411}),new d({level:17,resolution:1.19432856685505,scale:4513.988705}),new d({level:18,resolution:.597164283559817,scale:2256.994353}),new d({level:19,resolution:.298582141647617,scale:1128.497176}),new d({level:20,resolution:.1492910708238085,scale:564.248588})]}),this.key=null,this.style="road",this.culture="en-US",this.region=null,this.portalUrl=null,this.hasAttributionData=!0}get bingMetadata(){return this._get("bingMetadata")}set bingMetadata(e){this._set("bingMetadata",e)}get copyright(){return null!=this.bingMetadata?this.bingMetadata.copyright:null}get operationalLayerType(){return c.toJSON(this.style)}get bingLogo(){return null!=this.bingMetadata?this.bingMetadata.brandLogoUri:null}load(e){return this.key?this.addResolvingPromise(this._getMetadata()):this.portalUrl?this.addResolvingPromise(this._getPortalBingKey().then((()=>this._getMetadata()))):this.addResolvingPromise(Promise.reject(new r("bingmapslayer:load","Bing layer must have bing key."))),Promise.resolve(this)}getTileUrl(e,t,r){if(!this.loaded||null==this.bingMetadata)return null;const o=this.bingMetadata.resourceSets[0].resources[0],a=o.imageUrlSubdomains[t%o.imageUrlSubdomains.length],s=this._getQuadKey(e,t,r);return o.imageUrl.replace("{subdomain}",a).replace("{quadkey}",s)}async fetchAttributionData(){return this.load().then((()=>{if(null==this.bingMetadata)return null;return{contributors:this.bingMetadata.resourceSets[0].resources[0].imageryProviders.map((e=>({attribution:e.attribution,coverageAreas:e.coverageAreas.map((e=>({zoomMin:e.zoomMin,zoomMax:e.zoomMax,score:1,bbox:[e.bbox[0],e.bbox[1],e.bbox[2],e.bbox[3]]})))})))}}))}_getMetadata(){const e={road:"roadOnDemand",aerial:"aerial",hybrid:"aerialWithLabelsOnDemand"}[this.style];return t(`${m}/REST/v1/Imagery/Metadata/${e}`,{responseType:"json",query:{include:"ImageryProviders",uriScheme:"https",key:this.key,suppressStatus:!0,output:"json",culture:this.culture,userRegion:this.region}}).then((e=>{const t=e.data;if(200!==t.statusCode)throw new r("bingmapslayer:getmetadata",t.statusDescription);if(this.bingMetadata=t,0===this.bingMetadata.resourceSets.length)throw new r("bingmapslayer:getmetadata","no bing resourcesets");if(0===this.bingMetadata.resourceSets[0].resources.length)throw new r("bingmapslayer:getmetadata","no bing resources")})).catch((e=>{throw new r("bingmapslayer:getmetadata",e.message)}))}_getPortalBingKey(){return t(this.portalUrl??"",{responseType:"json",authMode:"no-prompt",query:{f:"json"}}).then((e=>{if(!e.data.bingKey)throw new r("bingmapslayer:getportalbingkey","The referenced Portal does not contain a valid bing key");this.key=e.data.bingKey})).catch((e=>{throw new r("bingmapslayer:getportalbingkey",e.message)}))}_getQuadKey(e,t,r){let o="";for(let a=e;a>0;a--){let e=0;const s=1<<a-1;r&s&&(e+=1),t&s&&(e+=2),o+=e.toString()}return o}};e([s({json:{read:!1,write:!1},value:null})],h.prototype,"bingMetadata",null),e([s({json:{read:!1,write:!1},value:"bing-maps",readOnly:!0})],h.prototype,"type",void 0),e([s({type:y})],h.prototype,"tileInfo",void 0),e([s({type:String,readOnly:!0,json:{read:!1,write:!1}})],h.prototype,"copyright",null),e([s({type:String,json:{write:!1,read:!1}})],h.prototype,"key",void 0),e([s({type:c.apiValues,nonNullable:!0,json:{read:{source:"layerType",reader:c.read}}})],h.prototype,"style",void 0),e([s({type:["BingMapsAerial","BingMapsHybrid","BingMapsRoad"]})],h.prototype,"operationalLayerType",null),e([s({type:String,json:{write:!1,read:!1}})],h.prototype,"culture",void 0),e([s({type:String,json:{write:!1,read:!1}})],h.prototype,"region",void 0),e([s({type:String,json:{write:!0,read:!0}})],h.prototype,"portalUrl",void 0),e([s({type:Boolean,json:{write:!1,read:!1}})],h.prototype,"hasAttributionData",void 0),e([s({type:String,readOnly:!0})],h.prototype,"bingLogo",null),h=e([i("esri.layers.BingMapsLayer")],h);const b=h;export{b as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../request.js";import{deprecatedModule as r}from"../core/deprecate.js";import o from"../core/Error.js";import{JSONMap as a}from"../core/jsonMap.js";import s from"../core/Logger.js";import{MultiOriginJSONMixin as i}from"../core/MultiOriginJSONSupport.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import p from"../geometry/Point.js";import u from"../geometry/SpatialReference.js";import g from"./BaseTileLayer.js";import{BlendLayer as d}from"./mixins/BlendLayer.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import c from"./support/LOD.js";import m from"./support/TileInfo.js";const h=new a({BingMapsAerial:"aerial",BingMapsRoad:"road",BingMapsHybrid:"hybrid"}),b="https://dev.virtualearth.net";r(s.getLogger("esri.layers.BingMapsLayer"),"esri.layers.BingMapsLayer",{version:"4.33",warnOnce:!0});let w=class extends(d(y(i(g)))){constructor(e){super(e),this.type="bing-maps",this.tileInfo=new m({size:[256,256],dpi:96,origin:new p({x:-20037508.342787,y:20037508.342787,spatialReference:u.WebMercator}),spatialReference:u.WebMercator,lods:[new c({level:1,resolution:78271.5169639999,scale:295828763.795777}),new c({level:2,resolution:39135.7584820001,scale:147914381.897889}),new c({level:3,resolution:19567.8792409999,scale:73957190.948944}),new c({level:4,resolution:9783.93962049996,scale:36978595.474472}),new c({level:5,resolution:4891.96981024998,scale:18489297.737236}),new c({level:6,resolution:2445.98490512499,scale:9244648.868618}),new c({level:7,resolution:1222.99245256249,scale:4622324.434309}),new c({level:8,resolution:611.49622628138,scale:2311162.217155}),new c({level:9,resolution:305.748113140558,scale:1155581.108577}),new c({level:10,resolution:152.874056570411,scale:577790.554289}),new c({level:11,resolution:76.4370282850732,scale:288895.277144}),new c({level:12,resolution:38.2185141425366,scale:144447.638572}),new c({level:13,resolution:19.1092570712683,scale:72223.819286}),new c({level:14,resolution:9.55462853563415,scale:36111.909643}),new c({level:15,resolution:4.77731426794937,scale:18055.954822}),new c({level:16,resolution:2.38865713397468,scale:9027.977411}),new c({level:17,resolution:1.19432856685505,scale:4513.988705}),new c({level:18,resolution:.597164283559817,scale:2256.994353}),new c({level:19,resolution:.298582141647617,scale:1128.497176}),new c({level:20,resolution:.1492910708238085,scale:564.248588})]}),this.key=null,this.style="road",this.culture="en-US",this.region=null,this.portalUrl=null,this.hasAttributionData=!0}get bingMetadata(){return this._get("bingMetadata")}set bingMetadata(e){this._set("bingMetadata",e)}get copyright(){return null!=this.bingMetadata?this.bingMetadata.copyright:null}get operationalLayerType(){return h.toJSON(this.style)}get bingLogo(){return null!=this.bingMetadata?this.bingMetadata.brandLogoUri:null}load(e){return this.key?this.addResolvingPromise(this._getMetadata()):this.portalUrl?this.addResolvingPromise(this._getPortalBingKey().then((()=>this._getMetadata()))):this.addResolvingPromise(Promise.reject(new o("bingmapslayer:load","Bing layer must have bing key."))),Promise.resolve(this)}getTileUrl(e,t,r){if(!this.loaded||null==this.bingMetadata)return null;const o=this.bingMetadata.resourceSets[0].resources[0],a=o.imageUrlSubdomains[t%o.imageUrlSubdomains.length],s=this._getQuadKey(e,t,r);return o.imageUrl.replace("{subdomain}",a).replace("{quadkey}",s)}async fetchAttributionData(){return this.load().then((()=>{if(null==this.bingMetadata)return null;return{contributors:this.bingMetadata.resourceSets[0].resources[0].imageryProviders.map((e=>({attribution:e.attribution,coverageAreas:e.coverageAreas.map((e=>({zoomMin:e.zoomMin,zoomMax:e.zoomMax,score:1,bbox:[e.bbox[0],e.bbox[1],e.bbox[2],e.bbox[3]]})))})))}}))}_getMetadata(){const e={road:"roadOnDemand",aerial:"aerial",hybrid:"aerialWithLabelsOnDemand"}[this.style];return t(`${b}/REST/v1/Imagery/Metadata/${e}`,{responseType:"json",query:{include:"ImageryProviders",uriScheme:"https",key:this.key,suppressStatus:!0,output:"json",culture:this.culture,userRegion:this.region}}).then((e=>{const t=e.data;if(200!==t.statusCode)throw new o("bingmapslayer:getmetadata",t.statusDescription);if(this.bingMetadata=t,0===this.bingMetadata.resourceSets.length)throw new o("bingmapslayer:getmetadata","no bing resourcesets");if(0===this.bingMetadata.resourceSets[0].resources.length)throw new o("bingmapslayer:getmetadata","no bing resources")})).catch((e=>{throw new o("bingmapslayer:getmetadata",e.message)}))}_getPortalBingKey(){return t(this.portalUrl??"",{responseType:"json",authMode:"no-prompt",query:{f:"json"}}).then((e=>{if(!e.data.bingKey)throw new o("bingmapslayer:getportalbingkey","The referenced Portal does not contain a valid bing key");this.key=e.data.bingKey})).catch((e=>{throw new o("bingmapslayer:getportalbingkey",e.message)}))}_getQuadKey(e,t,r){let o="";for(let a=e;a>0;a--){let e=0;const s=1<<a-1;r&s&&(e+=1),t&s&&(e+=2),o+=e.toString()}return o}};e([n({json:{read:!1,write:!1},value:null})],w.prototype,"bingMetadata",null),e([n({json:{read:!1,write:!1},value:"bing-maps",readOnly:!0})],w.prototype,"type",void 0),e([n({type:m})],w.prototype,"tileInfo",void 0),e([n({type:String,readOnly:!0,json:{read:!1,write:!1}})],w.prototype,"copyright",null),e([n({type:String,json:{write:!1,read:!1}})],w.prototype,"key",void 0),e([n({type:h.apiValues,nonNullable:!0,json:{read:{source:"layerType",reader:h.read}}})],w.prototype,"style",void 0),e([n({type:["BingMapsAerial","BingMapsHybrid","BingMapsRoad"]})],w.prototype,"operationalLayerType",null),e([n({type:String,json:{write:!1,read:!1}})],w.prototype,"culture",void 0),e([n({type:String,json:{write:!1,read:!1}})],w.prototype,"region",void 0),e([n({type:String,json:{write:!0,read:!0}})],w.prototype,"portalUrl",void 0),e([n({type:Boolean,json:{write:!1,read:!1}})],w.prototype,"hasAttributionData",void 0),e([n({type:String,readOnly:!0})],w.prototype,"bingLogo",null),w=e([l("esri.layers.BingMapsLayer")],w);const v=w;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{serializationUtilsModuleWrapper as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import a from"../core/Collection.js";import i from"../core/Error.js";import n from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{MultiOriginJSONMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as s,isAbortError as l,createAbortError as h}from"../core/promiseUtils.js";import{watch as d,sync as p}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{OriginId as y,idToName as g}from"../core/accessorSupport/PropertyOrigin.js";import m from"../geometry/Extent.js";import f from"../geometry/Point.js";import L from"../geometry/Polyline.js";import b from"./Layer.js";import{convertFromGeometry as w}from"./graphics/featureConversionUtils.js";import{systemOidFieldName as M,systemOriginIdFieldName as k,systemDestinationIdFieldName as C,systemLayoutGeometryFieldName as T,systemAggregationCountFieldName as N}from"./knowledgeGraph/constants.js";import{IdealEdgeLengthTypeOptions as D}from"./knowledgeGraph/IdealEdgeLengthTypeOptions.js";import{KnowledgeGraphLayerDataManager as v}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import x from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{initializeLayersFromClientData as I}from"./knowledgeGraph/layerUtils.js";import E from"./knowledgeGraph/SessionMemoryStorage.js";import{convertLayoutTypeToWebSupportedFormat as S,getRelationshipEndNodeIds as _}from"./knowledgeGraph/supportUtils.js";import{BlendLayer as R}from"./mixins/BlendLayer.js";import{OperationalLayer as A}from"./mixins/OperationalLayer.js";import{ScaleRangeLayer as j}from"./mixins/ScaleRangeLayer.js";import{LCChronologicalLayout as G,LCSimpleLayout as z,LCSmartTreeLayout as P,LCRadialTreeLayout as O,LCHierarchicalLayout as F,LCCommunityLayout as U,LCForceDirectedLayout as B,NodeFlag as Q,load as W,CallStatus as $,LinkType as H}from"../libs/linkchartlayout/LinkChartLayout.js";import{fetchKnowledgeGraph as K}from"../rest/knowledgeGraphService.js";let V=class extends(A(R(j(r(b))))){constructor(e){if(super(e),this.dataPreloadedInLocalCache=!1,this.initializationLinkChartConfig=null,this.membershipModified=!0,this._currentLinkChartConfig={layoutMode:"organic-standard"},this._graphTypeLookup=new Map,this.dataManager=null,this.knowledgeGraph=null,this.layers=new(a.ofType(x)),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map,this.linkChartExtent=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7}),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="LinkChartLayer",this.sublayerIdsCache=new Map,this.tables=new(a.ofType(x)),this.type="link-chart",this.chronologicalAuxiliaryGraphics=null,this._originalInclusionList=e?.initializationInclusionModeDefinition,e?.dataPreloadedInLocalCache&&!e?.initializationInclusionModeDefinition)throw new i("knowledge-graph:linkchart-layer-constructor","If creating a link chart composite layer and configured that data is already loaded in the cache, you must specify an inclusion list so the Composite Layer knows what records belong to it");this.addHandles(d((()=>this.layers.concat(this.tables)),((e,t)=>this._handleSublayersChange(e,t)),p))}normalizeCtorArgs(e){if(!e)return{};const{url:t,title:a,dataPreloadedInLocalCache:i,initializationLinkChartConfig:n}=e;return{url:t,title:a,dataPreloadedInLocalCache:i,initializationLinkChartConfig:n}}_initializeLayerProperties(e){if(!this.title&&this.url){const e=this.url.split("/");this.title=e[e.length-2]}const t=new Set;let a=[],o=[];if(e.inclusionModeDefinition&&(!e.inclusionModeDefinition.namedTypeDefinitions||e.inclusionModeDefinition.namedTypeDefinitions.size<1))throw new i("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined");e.inclusionModeDefinition?.generateAllSublayers?(a=e.knowledgeGraph.dataModel.entityTypes??[],o=e.knowledgeGraph.dataModel.relationshipTypes??[]):e.inclusionModeDefinition?.namedTypeDefinitions&&e.inclusionModeDefinition?.namedTypeDefinitions.size>0?e.inclusionModeDefinition?.namedTypeDefinitions.forEach(((i,r)=>{const s=this._graphTypeLookup.get(r);if(!s)return n.getLogger(this).warn(`A named type, ${r}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(r);"relationship"===s.type?t.has(r)||(t.add(r),o.push(s)):"entity"===s.type?t.has(r)||(t.add(r),a.push(s)):(n.getLogger(this).warn(`A named type, ${r}, was in the inclusion list that wasn't properly modeled and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(r))})):(a=e.knowledgeGraph.dataModel.entityTypes??[],o=e.knowledgeGraph.dataModel.relationshipTypes??[]);const r=new v({knowledgeGraph:e.knowledgeGraph,inclusionModeDefinition:e.inclusionModeDefinition});this.knowledgeGraph=e.knowledgeGraph,this.memberEntityTypes=a,this.memberRelationshipTypes=o,this.dataManager=r}load(e){const a=async()=>{const e=[],t=[];this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await I(this),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach((e=>{e.useAllData=!1})),await this._initializeDiagram(),this.layers.forEach((a=>{t.push(a.refreshCachedQueryEngine()),e.push(new Promise((e=>{a.on("layerview-create",(()=>{e(null)}))})))})),this.tables.forEach((e=>{t.push(e.refreshCachedQueryEngine())})),await Promise.all(t)};return this.addResolvingPromise(new Promise((i=>{K(this.url).then((async n=>{n.dataModel.entityTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)})),n.dataModel.relationshipTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)}));const r=this.linkChart?.linkChartProperties;if(r?.originIdOf("entitiesUrl")===y.LINK_CHART&&(this.membershipModified=!1,this._originalInclusionList=await t.fetchAndConvertSerializedLinkChart({entitiesUrl:r?.entitiesUrl,relationshipsUrl:r?.relationshipsUrl}),this._alignLayersDataModelAndInclusionDefinition(n.dataModel),this.initializationLinkChartConfig={layoutSettings:r?.layoutSettings??void 0,layoutMode:S(r.layoutType)}),this._initializeLayerProperties({knowledgeGraph:n,inclusionModeDefinition:this._originalInclusionList}),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.size||(this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.dataManager.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})})),this.dataManager.knowledgeGraph.dataModel.relationshipTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}))),this.dataPreloadedInLocalCache){const e=E.getInstance();for(const[t,a]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions??[])for(const i of a.members?.values()??[]){const a=e.readFromStoreById(`${t}__${i.id}`);if(a){o(this.dataManager.sublayerCaches,t,(()=>new Map)).set(i.id,a)}}await a()}else{const t="geographic-organic-standard"===this.initializationLinkChartConfig?.layoutMode;this.addResolvingPromise(this.dataManager.refreshCacheContent(void 0,!1,t,!0).then((async()=>{s(e),await a()})))}i(null)}))}))),Promise.resolve(this)}set initializationInclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("initializationInclusionModeDefinition",e):n.getLogger(this).error("#initializationInclusionModeDefinition","initializationInclusionModeDefinition cannot be changed after the layer is loaded.")}get linkChart(){return this.parent}async addRecords(e,t){let a=[];t?.cascadeAddRelationshipEndNodes&&this.dataManager.knowledgeGraph.dataModel&&(a=await _(e,this.dataManager.knowledgeGraph));const i=e.concat(a).filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)));i.length>0&&(this.membershipModified=!0),await this._handleNewRecords(i,t)}async removeRecords(e,{cascadeRemoveRelationships:t=!0,recalculateLayout:a=!1,overrideMembershipCheck:i=!1}={cascadeRemoveRelationships:!0,recalculateLayout:!1,overrideMembershipCheck:!1}){let n=[];for(const r of e)(i||!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.members?.has(r.id))&&n.push(r);if(t){const e=new Set,t=[];for(const a of n)if(this.dataManager.nodeConnectionsLookup.has(a.id))for(const t of this.dataManager.nodeConnectionsLookup.get(a.id))e.add(t);for(const a of e)if(this.dataManager.memberIdTypeLookup.has(a))for(const e of this.dataManager.memberIdTypeLookup.get(a))this.dataManager.relationshipTypeNames.has(e)&&t.push({id:a,typeName:e});n=n.concat(t)}this.dataManager.removeFromLayer(n);for(const r of n)this.sublayerIdsCache.get(r.typeName)?.delete(r.id),this.dataManager.relationshipTypeNames.has(r.typeName)?this.relationshipLinkChartDiagramLookup.delete(r.id):this.entityLinkChartDiagramLookup.delete(r.id);a&&await this._calculateLayoutWithSublayerTimeInfo(this._currentLinkChartConfig.layoutMode,{layoutSettings:this._currentLinkChartConfig.layoutSettings}),n.length>0&&(this.membershipModified=!0);const o=[];return this.layers.forEach((e=>{o.push(e.refreshCachedQueryEngine())})),await Promise.all(o),this._refreshNamedTypes(),n}async expand(e,t){let a=[];try{const i=await this.dataManager.getConnectedRecordIds(e,t?.relationshipTypeNames,t);a=i.filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id))),await this._handleNewRecords(i,t),i.length>0&&(this.membershipModified=!0),s(t?.signal)}catch(i){throw l(i)&&a.length>0&&this.removeRecords(a,{overrideMembershipCheck:!0}),i}return{records:a}}loadLayerAssumingLocalCache(){const e=[...this.memberRelationshipTypes,...this.memberEntityTypes];this.originIdOf("layers")===y.DEFAULTS?this._createSublayers(e,this.layers,(e=>!!e.geometryType)):this._updateSublayers(e,this.layers),this.originIdOf("tables")===y.DEFAULTS?this._createSublayers(e,this.tables,(e=>!e.geometryType)):this._updateSublayers(e,this.tables),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{const a=o(this.sublayerIdsCache,t,(()=>new Set));e.members?.forEach((({id:e,linkChartLocation:i})=>{if(a.add(e),i){const a="coords"in i&&"lengths"in i?i:w(i);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e,a):this.entityLinkChartDiagramLookup.set(e,a)}}))}))}async calculateLinkChartLayout(e="organic-standard",t){const a=[],r=[],l=[];this.dataManager.sublayerCaches.forEach(((e,t)=>{this.dataManager.entityTypeNames.has(t)?e.forEach((e=>{a.push({typeName:t,feature:e})})):this.dataManager.relationshipTypeNames.has(t)&&e.forEach((e=>{r.push({typeName:t,feature:e})}))})),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map;const d=new Map,p=new Map,c=new Map,u=new Map,y=new Uint8Array(a.length),g=new Float64Array(a.length),b=new Float64Array(a.length),D=new Float64Array(a.length),v=new Float64Array(a.length),x=new Uint32Array(r.length),I=new Uint32Array(r.length),E=new Float64Array(r.length),S=new Float64Array(r.length),_=[],R="organic-standard",A=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7});let j,K="organic-standard",V=0,q=0;const J=G.apply;switch(K="geographic-organic-standard"===e?R:e,K){case"organic-standard":j=B.apply;break;case"organic-community":j=U.apply;break;case"hierarchical-bottom-to-top":j=F.apply;break;case"radial-root-centric":j=O.apply;break;case"tree-left-to-right":j=P.apply;break;default:j=z.apply}let X=!1;a.forEach((({typeName:a,feature:i})=>{if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e&&t?.lockedNodeLocations?.has(i.attributes[M])){"geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(a)?y[V]=Q.IsGeographic:y[V]=Q.None;const n=t.lockedNodeLocations.get(i.attributes[M]);g[V]=n.x,b[V]=n.y}else if("geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(a)){y[V]=Q.IsGeographic;let e=null;const t=i.attributes[this.dataManager.geographicLookup.get(a).name],n=this.dataManager.geographicLookup.get(a)?.geometryType;switch(n){case"esriGeometryPoint":g[V]=t?.x,b[V]=t?.y;break;case"esriGeometryPolygon":e=t?.centroid,null!=e?.x&&null!=e?.y?(g[V]=e.x,b[V]=e.y):y[V]=Q.IsMovable;break;case"esriGeometryPolyline":case"esriGeometryMultipoint":e=t?.extent?.center,null!=e?.x&&null!=e?.y?(g[V]=e.x,b[V]=e.y):y[V]=Q.IsMovable;break;default:y[V]=Q.IsMovable}(null==g[V]||null==b[V]||Number.isNaN(g[V])||Number.isNaN(b[V]))&&(y[V]=Q.IsMovable,g[V]=0,b[V]=0)}else if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){!X&&t?.lockedNodeLocations?.has(i.attributes[M])&&(X=!0);const e=t?.timeInfoByTypeName?.get(a),n=e?.startField,o=n&&e?.startField?i.attributes[n]:null;D[V]=o?new Date(o).getTime():NaN;const r=e?.endField,s=r&&e?.endField?i.attributes[r]:null;v[V]=s?new Date(s).getTime():NaN,g[V]=0,b[V]=0,y[V]=Q.IsMovable}else y[V]=Q.IsMovable,g[V]=0,b[V]=0;u.set(i.attributes[M],V),_[V]={feature:i,typeName:a},V++})),X&&n.getLogger(this).warn("Locked node locations are not supported for chronological layout at this time. Requested node locations were ignored");let Y=!1;const Z=new Map;r.forEach((a=>{const i=a.feature.attributes[k],n=a.feature.attributes[C],o=u.get(i),r=u.get(n),s=t?.timeInfoByTypeName?.get(a.typeName),h=t?.timeInfoByTypeName?s?.startField:null,d=h?a.feature.attributes[h]:null,p=s?.endField,c=p?a.feature.attributes[p]:null;if(void 0!==o&&void 0!==r){let t=i+"-"+n;"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(t=t+"-"+d+"-"+c);const s=Z.get(t),h=s?.has(a.typeName);h||(x[q]=o,I[q]=r,"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(E[q]=d?new Date(d).getTime():NaN,S[q]=c?new Date(c).getTime():NaN),void 0===s?Z.set(t,new Map([[a.typeName,q]])):s.set(a.typeName,q),q++),l.push(a)}else Y=!0,this.relationshipLinkChartDiagramLookup.set(i,null)})),Y&&n.getLogger(this).warn("A relationship is a member of this layer that has either origin or destination entity nodes that are not members. The diagram geometry will be set to null");const ee=this._validateOrganicLayoutSettings(e,t?.layoutSettings?.organicLayoutSettings),te=this._convertValidatedOrganicSettingsToCalculationSettings(ee);await W();let ae=$.Error,ie=null;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){let a;({status:ae,links:ie,graphics:a}=J((()=>t?.signal?.aborted??!1),y,g,b,D,v,x.subarray(0,q),I.subarray(0,q),E.subarray(0,q),S.subarray(0,q),"chronological-multi-timeline"===e,t?.layoutSettings?.chronologicalLayoutSettings)),ae===$.Success&&(this.chronologicalAuxiliaryGraphics=a)}else({status:ae,links:ie}=j((()=>t?.signal?.aborted??!1),y,g,b,x.subarray(0,q),I.subarray(0,q),te.computationBudgetTime,te.idealEdgeLengthMultiplier,te.repulsionRadiusMultiplier));if(s(t?.signal),ae===$.Error)throw new i("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");if(ae===$.Canceled)throw h();for(let i=0;i<_.length;i++){if(b[i]>84.9999?b[i]=84.9999:b[i]<-84.9999&&(b[i]=-84.9999),g[i]>179.9999?g[i]=179.9999:g[i]<-179.9999&&(g[i]=-179.9999),_[i].feature.attributes[T]=new f(g[i],b[i]),d.has(_[i].typeName)){const e=d.get(_[i].typeName);e?.set(_[i].feature.attributes[M],_[i].feature)}else{const e=new Map;e.set(_[i].feature.attributes[M],_[i].feature),d.set(_[i].typeName,e)}c.set(_[i].feature.attributes[M],_[i].feature);const e=w(_[i].feature.attributes[T]);this.entityLinkChartDiagramLookup.set(_[i].feature.attributes[M],_[i].feature.attributes[T]?e:null);const t=o(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,_[i].typeName,(()=>({useAllData:!1,members:new Map})));o(t.members,_[i].feature.attributes[M],(()=>({id:_[i].feature.attributes[M],linkChartLocation:void 0}))).linkChartLocation=_[i].feature.attributes[T],_[i].feature.attributes[T].x<A.xmin&&(A.xmin=_[i].feature.attributes[T].x),_[i].feature.attributes[T].x>A.xmax&&(A.xmax=_[i].feature.attributes[T].x),_[i].feature.attributes[T].y<A.ymin&&(A.ymin=_[i].feature.attributes[T].y),_[i].feature.attributes[T].y>A.ymax&&(A.ymax=_[i].feature.attributes[T].y)}if(this.linkChartExtent.xmin=A.xmin,this.linkChartExtent.xmax=A.xmax,this.linkChartExtent.ymin=A.ymin,this.linkChartExtent.ymax=A.ymax,!ie)throw new i("knowledge-graph:layout-failed","Attempting to retrieve link geometry from diagram engine failed");const ne=new Map,oe=new Map,re=new Map,se=new Set;for(let i=0;i<l.length;i++){const a=[],r=l[i],s=r.feature.attributes[k],h=r.feature.attributes[C];let d=s+"-"+h;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){const e=t?.timeInfoByTypeName?.get(r.typeName),a=t?.timeInfoByTypeName?e?.startField:null,i=a?r.feature.attributes[a]:null,n=e?.endField;d+="-"+i+"-"+(n?r.feature.attributes[n]:null)}const y=Z.get(d).get(r.typeName),g=0===y?0:ie?.vertexEndIndex[y-1];if(!se.has(y)){if(se.add(y),ie.types[y]===H.Recursive){const e=[ie.vertices[2*g],ie.vertices[2*g+1]],t=[ie.vertices[2*(g+1)],ie.vertices[2*(g+1)+1]],i=[.5*(e[0]+t[0]),.5*(e[1]+t[1])],n=[i[0]-e[0],i[1]-e[1]],o=[i[0]+n[1],i[1]-n[0]],r=[i[0]-n[1],i[1]+n[0]];a.push(e),a.push(o),a.push(t),a.push(r),a.push(e)}else{if(ie.types[y]!==H.Regular){n.getLogger(this).warn("A relationship generated an unsupported link geometry type. It will not be rendered");continue}for(let e=g;e<ie.vertexEndIndex[y];e++)a.push([ie.vertices[2*e],ie.vertices[2*e+1]])}if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e){const e=_[u.get(s)]?.feature.attributes[T],t=_[u.get(h)]?.feature.attributes[T];a[0][0]===e.x&&a[0][1]===e.y||(a[0]=[e.x,e.y]),a[a.length-1][0]===t.x&&a[a.length-1][1]===t.y||(a[a.length-1]=[t.x,t.y])}for(let e=1;e<a.length-1;e++)a[e][1]>85.5?a[e][1]=85.5:a[e][1]<-85.5&&(a[e][1]=-85.5),a[e][0]>179.9999?a[e][0]=179.9999:a[e][0]<-179.9999&&(a[e][0]=-179.9999);ne.has(d)?ne.get(d).push(a):ne.set(d,[a])}const m=ne.get(d);oe.has(d)||(oe.set(d,new Map),re.set(d,new Map));const f=oe.get(d),b=re.get(d);f.has(r.typeName)||(f.set(r.typeName,m.shift()),b.set(r.typeName,0));const N=f.get(r.typeName);b.set(r.typeName,b.get(r.typeName)+1);const D=new L({paths:[N]});if(r.feature.attributes[T]=D,p.has(r.typeName)){const e=p.get(r.typeName);e?.set(r.feature.attributes[M],r.feature)}else{const e=new Map;e.set(r.feature.attributes[M],r.feature),p.set(r.typeName,e)}c.set(r.feature.attributes[M],r.feature);const v=w(r.feature.attributes[T]);this.relationshipLinkChartDiagramLookup.set(r.feature.attributes[M],r.feature.attributes[T]?v:null);const x=o(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,r.typeName,(()=>({useAllData:!1,members:new Map})));o(x.members,r.feature.attributes[M],(()=>({id:r.feature.attributes[M],linkChartLocation:void 0}))).linkChartLocation=v}for(const i of l)i.feature.attributes[N]=re.get(i.feature.attributes[k]+"-"+i.feature.attributes[C])?.get(i.typeName)??null;return this._currentLinkChartConfig={layoutMode:e,layoutSettings:t?.layoutSettings?.clone()},{nodes:d,links:p,idMap:c}}async applyNewLinkChartLayout(e="organic-standard",t){const a=[];await this._calculateLayoutWithSublayerTimeInfo(e,t),this.layers.forEach((e=>{a.push(e.refreshCachedQueryEngine())})),this.membershipModified=!0,await Promise.all(a),this._refreshNamedTypes()}getCurrentNodeLocations(){const e=new Map;for(const[t,a]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.entries()??[])this.dataManager.relationshipTypeNames.has(t)||a?.members?.forEach((t=>{const a=t.linkChartLocation;let i;const n=t.id;a&&(i="x"in a?{x:a.x,y:a.y}:{x:a.coords[0],y:a.coords[1]},e.set(n,new f({x:i.x,y:i.y})))}));return e}async refreshLinkChartCache(e){await this.dataManager.refreshCacheContent(e);const t=[];this.layers.forEach((e=>{t.push(e.refreshCachedQueryEngine())})),await Promise.all(t),this._refreshNamedTypes()}async connectBetweenEntities(e,t){if(!e.length)return{records:[]};let a=[];try{let i=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(i=i.concat(Array.from(t.keys())))}a=await this.dataManager.getRelationshipsBetweenNodes(e,i,t),await this._handleNewRecords(a,t),s(t)}catch(i){throw l(i)&&this.removeRecords(a),i}return{records:a}}async connectFromEntities(e,t){if(!e.length)return{records:[]};let a=[];try{let i=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(i=i.concat(Array.from(t.keys())))}let n=[];for(const e of this.dataManager.entityTypeNames){const t=this.sublayerIdsCache.get(e);t&&(n=n.concat(Array.from(t)))}a=await this.dataManager.getRelationshipsFromNodes(e,n,i,t),await this._handleNewRecords(a,t),a.length>0&&(this.membershipModified=!0),s(t)}catch(i){throw l(i)&&this.removeRecords(a),i}return{records:a}}getCurrentLayout(){return this._currentLinkChartConfig.layoutMode}async _calculateLayoutWithSublayerTimeInfo(e="organic-standard",t){const a=new Map;this.layers.forEach((e=>{a.set(e.objectType.name,e.timeInfo)})),await this.calculateLinkChartLayout(e,{timeInfoByTypeName:a,...t}),this.linkChart?.handleChronologicalOverlay()}async _handleNewRecords(e,t){const a=[];this.dataManager.addToLayer(e);for(const n of e)this.sublayerIdsCache.has(n.typeName)||(this.sublayerIdsCache.set(n.typeName,new Set),a.push(n.typeName)),this.sublayerIdsCache.get(n.typeName).add(n.id);for(const n of a){const e=this._graphTypeLookup.get(n);if(e){const t=this._createSublayer(e);"entity"===e.type?this.dataManager.entityTypeNames.add(n):this.dataManager.relationshipTypeNames.add(n),t.geometryType?this.layers.push(t):this.tables.push(t),this.dataManager.sublayerCaches.set(n,new Map)}}await I(this,a,t),await this.dataManager.refreshCacheContent(e.map((e=>e.id)),void 0,void 0,void 0,t);const i={layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedNodeLocations:new Map};for(const[n,o]of this.entityLinkChartDiagramLookup.entries())o&&i.lockedNodeLocations.set(n,new f(o.coords[0],o.coords[1]));await this.applyNewLinkChartLayout(this._currentLinkChartConfig.layoutMode,i)}_createSublayers(e,t,a){e.forEach((e=>{const i=this._createSublayer(e);a(i)&&t.push(i),this._updateSublayerCaches(e)}))}_updateSublayers(e,t){t.forEach((t=>{t.parentCompositeLayer=this;const a=e.find((e=>e.type===t.graphType&&e.name===t.graphTypeName));a&&(t.objectType=a,t.read({title:a.name},{origin:"service"}),this._updateSublayerCaches(a))}))}_updateSublayerCaches(e){const t=this.dataManager.sublayerCaches;t.has(e.name)||t.set(e.name,new Map)}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=y.PORTAL_ITEM&&e<y.USER}async _initializeDiagram(){this.initializationLinkChartConfig?this.initializationLinkChartConfig.doNotRecalculateLayout?(this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{e?.members?.forEach((e=>{const a=e.linkChartLocation;let i;const n=e.id;if(!a)return;i="x"in a?{x:a.x,y:a.y}:{x:a.coords[0],y:a.coords[1]};const o=w(i);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(n,o):this.entityLinkChartDiagramLookup.set(n,o),this.linkChartExtent.xmin>i.x&&(this.linkChartExtent.xmin=i.x),this.linkChartExtent.xmax<i.x&&(this.linkChartExtent.xmax=i.x),this.linkChartExtent.ymin>i.y&&(this.linkChartExtent.ymin=i.y),this.linkChartExtent.ymax<i.y&&(this.linkChartExtent.ymax=i.y)}))})),this.memberRelationshipTypes.forEach((e=>{e.name&&this.dataManager.sublayerCaches.get(e.name)?.forEach((e=>{const t=this.relationshipLinkChartDiagramLookup.get(e.attributes[k]),a=this.relationshipLinkChartDiagramLookup.get(e.attributes[C]);if(t&&a){const i=w(new L({paths:[[[t.coords[0],t.coords[1]],[a.coords[0],a.coords[1]]]]}));this.relationshipLinkChartDiagramLookup.set(e.attributes[M],i)}else this.relationshipLinkChartDiagramLookup.set(e.attributes[M],null)}))}))):await this._calculateLayoutWithSublayerTimeInfo(this.initializationLinkChartConfig.layoutMode,{lockedNodeLocations:this.getCurrentNodeLocations(),...this.initializationLinkChartConfig||{}}):await this._calculateLayoutWithSublayerTimeInfo("organic-standard",{lockedNodeLocations:this.getCurrentNodeLocations()})}_refreshNamedTypes(){for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}_validateOrganicLayoutSettings(e,t){const a=e=>"number"==typeof e&&!isNaN(e),i=e=>a(e)&&e>=1,o=e=>a(e)&&e>=1,r=e=>Object.values(D).includes(e),s=e=>a(e)&&e>=0,l={};if(!new Set(["organic-standard","organic-community","geographic-organic-standard","chronological-multi-timeline","chronological-mono-timeline"]).has(e)||!t)return l;const{computationBudgetTime:h,autoRepulsionRadius:d,repulsionRadiusMultiplier:p,absoluteIdealEdgeLength:c,multiplicativeIdealEdgeLength:u,idealEdgeLengthType:y}=t;return o(h)?l.computationBudgetTime=h:h&&n.getLogger(this).warn("Invalid layout computationBudgetTime setting, will revert to default setting"),l.autoRepulsionRadius=d,!d&&i(p)?l.repulsionRadiusMultiplier=p:d||(l.autoRepulsionRadius=!0,n.getLogger(this).warn("Invalid layout repulsionRadiusMultiplier setting, will revert to default setting")),"geographic-organic-standard"===e&&(r(y)?l.idealEdgeLengthType=y:void 0!==y&&n.getLogger(this).warn('Invalid layout idealEdgeLengthType setting, will revert to "multiplier" setting'),"absolute-value"===y&&s(c)?l.absoluteIdealEdgeLength=c:"absolute-value"===y&&void 0!==c?n.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting"):"multiplier"===y&&s(u)?l.multiplicativeIdealEdgeLength=u:"multiplier"===y&&void 0!==u&&n.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting")),l}_convertValidatedOrganicSettingsToCalculationSettings(e){let t=e.idealEdgeLengthType===D.ABSOLUTE?e.absoluteIdealEdgeLength:e.multiplicativeIdealEdgeLength;return e.idealEdgeLengthType===D.ABSOLUTE&&(void 0===t?t=-1:t*=-1),{computationBudgetTime:e.computationBudgetTime??void 0,repulsionRadiusMultiplier:e.repulsionRadiusMultiplier&&!e.autoRepulsionRadius?e.repulsionRadiusMultiplier:void 0,idealEdgeLengthMultiplier:t}}_createSublayer(e){return new x({objectType:e,parentCompositeLayer:this,graphType:e.type})}_handleSublayersChange(e,t){t&&(t.forEach((e=>{e.parent=null})),this.removeHandles("sublayers-owner")),e&&(e.forEach((e=>{e.parent=this})),this.addHandles([e.on("after-add",(({item:e})=>{e.parent=this})),e.on("after-remove",(({item:e})=>{e.parent=null}))],"sublayers-owner"))}_alignLayersDataModelAndInclusionDefinition(e){const t=new Set((e.entityTypes??[]).map((e=>e.name)).concat((e.relationshipTypes??[]).map((e=>e.name)))),i=new Set((e.entityTypes??[]).map((e=>e.name))),o=new Set((e.relationshipTypes??[]).map((e=>e.name)));if(this.layers){for(const a of this.layers)!a.graphType&&t.has(a.graphTypeName)&&(a.graphType=i.has(a.graphTypeName)?"entity":"relationship");const e=this.layers.filter((e=>t.has(e.graphTypeName)&&("entity"===e.graphType?i.has(e.graphTypeName):o.has(e.graphTypeName))));this.setAtOrigin("layers",e,g(this.originIdOf("layers")))}else this.layers=new a;if(this.layers&&this._originalInclusionList){const e=new Set(this._originalInclusionList.namedTypeDefinitions.keys()),t=this.tables?.map((e=>e.graphTypeName))??[],a=this.layers.map((e=>e.graphTypeName)).concat(t);for(const n of a)e.has(n)||this._originalInclusionList.namedTypeDefinitions.set(n,{useAllData:!1,members:new Map});const i=[];for(const o of this._originalInclusionList.namedTypeDefinitions.keys())a.includes(o)||(n.getLogger(this).warn(`A named type, ${o}, was in the serialized feature collection but did not have a sublayer config in the item, so will be removed`),i.push(o));for(const n of i)this._originalInclusionList.namedTypeDefinitions.delete(n)}}};e([c()],V.prototype,"dataPreloadedInLocalCache",void 0),e([c()],V.prototype,"initializationLinkChartConfig",void 0),e([c()],V.prototype,"membershipModified",void 0),e([c()],V.prototype,"dataManager",void 0),e([c()],V.prototype,"initializationInclusionModeDefinition",null),e([c()],V.prototype,"knowledgeGraph",void 0),e([c({type:a.ofType(x),json:{write:{ignoreOrigin:!0}}})],V.prototype,"layers",void 0),e([c({readOnly:!0})],V.prototype,"linkChart",null),e([c()],V.prototype,"entityLinkChartDiagramLookup",void 0),e([c()],V.prototype,"relationshipLinkChartDiagramLookup",void 0),e([c()],V.prototype,"linkChartExtent",void 0),e([c()],V.prototype,"memberEntityTypes",void 0),e([c()],V.prototype,"memberRelationshipTypes",void 0),e([c({type:["LinkChartLayer"]})],V.prototype,"operationalLayerType",void 0),e([c()],V.prototype,"sublayerIdsCache",void 0),e([c({type:a.ofType(x),json:{write:{ignoreOrigin:!0}}})],V.prototype,"tables",void 0),e([c({json:{read:!1}})],V.prototype,"type",void 0),e([c({json:{read:!1}})],V.prototype,"chronologicalAuxiliaryGraphics",void 0),V=e([u("esri.layers.LinkChartLayer")],V);const q=V;export{q as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{serializationUtilsModuleWrapper as t}from"../applications/KnowledgeStudio/resourceSerializationUtils.js";import a from"../core/Collection.js";import i from"../core/Error.js";import n from"../core/Logger.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{MultiOriginJSONMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as s,isAbortError as l,createAbortError as h}from"../core/promiseUtils.js";import{watch as d,sync as p}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{OriginId as y,idToName as g}from"../core/accessorSupport/PropertyOrigin.js";import m from"../geometry/Extent.js";import f from"../geometry/Point.js";import L from"../geometry/Polyline.js";import b from"./Layer.js";import{convertFromGeometry as w}from"./graphics/featureConversionUtils.js";import{systemOidFieldName as M,systemOriginIdFieldName as k,systemDestinationIdFieldName as C,systemLayoutGeometryFieldName as T,systemAggregationCountFieldName as N}from"./knowledgeGraph/constants.js";import{IdealEdgeLengthTypeOptions as v}from"./knowledgeGraph/IdealEdgeLengthTypeOptions.js";import{KnowledgeGraphLayerDataManager as D}from"./knowledgeGraph/KnowledgeGraphLayerDataManager.js";import x from"./knowledgeGraph/KnowledgeGraphSublayer.js";import{initializeLayersFromClientData as I}from"./knowledgeGraph/layerUtils.js";import E from"./knowledgeGraph/SessionMemoryStorage.js";import{convertLayoutTypeToWebSupportedFormat as S,getRelationshipEndNodeIds as _}from"./knowledgeGraph/supportUtils.js";import{BlendLayer as R}from"./mixins/BlendLayer.js";import{OperationalLayer as A}from"./mixins/OperationalLayer.js";import{ScaleRangeLayer as j}from"./mixins/ScaleRangeLayer.js";import{url as G}from"./support/commonProperties.js";import{LCChronologicalLayout as z,LCSimpleLayout as P,LCSmartTreeLayout as O,LCRadialTreeLayout as F,LCHierarchicalLayout as U,LCCommunityLayout as B,LCForceDirectedLayout as Q,NodeFlag as W,load as $,CallStatus as H,LinkType as K}from"../libs/linkchartlayout/LinkChartLayout.js";import{fetchKnowledgeGraph as V}from"../rest/knowledgeGraphService.js";let q=class extends(A(R(j(r(b))))){constructor(e){if(super(e),this.url=null,this.dataPreloadedInLocalCache=!1,this.initializationLinkChartConfig=null,this.membershipModified=!0,this._currentLinkChartConfig={layoutMode:"organic-standard"},this._graphTypeLookup=new Map,this.dataManager=null,this.knowledgeGraph=null,this.layers=new(a.ofType(x)),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map,this.linkChartExtent=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7}),this.memberEntityTypes=null,this.memberRelationshipTypes=null,this.operationalLayerType="LinkChartLayer",this.sublayerIdsCache=new Map,this.tables=new(a.ofType(x)),this.type="link-chart",this.chronologicalAuxiliaryGraphics=null,this._originalInclusionList=e?.initializationInclusionModeDefinition,e?.dataPreloadedInLocalCache&&!e?.initializationInclusionModeDefinition)throw new i("knowledge-graph:linkchart-layer-constructor","If creating a link chart composite layer and configured that data is already loaded in the cache, you must specify an inclusion list so the Composite Layer knows what records belong to it");this.addHandles(d((()=>this.layers.concat(this.tables)),((e,t)=>this._handleSublayersChange(e,t)),p))}normalizeCtorArgs(e){if(!e)return{};const{url:t,title:a,dataPreloadedInLocalCache:i,initializationLinkChartConfig:n}=e;return{url:t,title:a,dataPreloadedInLocalCache:i,initializationLinkChartConfig:n}}_initializeLayerProperties(e){if(!this.title&&this.url){const e=this.url.split("/");this.title=e[e.length-2]}const t=new Set;let a=[],o=[];if(e.inclusionModeDefinition&&(!e.inclusionModeDefinition.namedTypeDefinitions||e.inclusionModeDefinition.namedTypeDefinitions.size<1))throw new i("knowledge-graph:composite-layer-constructor","If an explicit inclusion definition is defined, at least one namedTypeDefinition must also be defined");e.inclusionModeDefinition?.generateAllSublayers?(a=e.knowledgeGraph.dataModel.entityTypes??[],o=e.knowledgeGraph.dataModel.relationshipTypes??[]):e.inclusionModeDefinition?.namedTypeDefinitions&&e.inclusionModeDefinition?.namedTypeDefinitions.size>0?e.inclusionModeDefinition?.namedTypeDefinitions.forEach(((i,r)=>{const s=this._graphTypeLookup.get(r);if(!s)return n.getLogger(this).warn(`A named type, ${r}, was in the inclusion list that wasn't in the data model and will be removed`),void e.inclusionModeDefinition?.namedTypeDefinitions.delete(r);"relationship"===s.type?t.has(r)||(t.add(r),o.push(s)):"entity"===s.type?t.has(r)||(t.add(r),a.push(s)):(n.getLogger(this).warn(`A named type, ${r}, was in the inclusion list that wasn't properly modeled and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(r))})):(a=e.knowledgeGraph.dataModel.entityTypes??[],o=e.knowledgeGraph.dataModel.relationshipTypes??[]);const r=new D({knowledgeGraph:e.knowledgeGraph,inclusionModeDefinition:e.inclusionModeDefinition});this.knowledgeGraph=e.knowledgeGraph,this.memberEntityTypes=a,this.memberRelationshipTypes=o,this.dataManager=r}load(e){const a=async()=>{const e=[],t=[];this.loadLayerAssumingLocalCache(),this._layersLoadedFromAuthoritativeItem()||await I(this),this.dataManager.inclusionModeDefinition&&(this.dataManager.inclusionModeDefinition.generateAllSublayers=!1),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.forEach((e=>{e.useAllData=!1})),await this._initializeDiagram(),this.layers.forEach((a=>{t.push(a.refreshCachedQueryEngine()),e.push(new Promise((e=>{a.on("layerview-create",(()=>{e(null)}))})))})),this.tables.forEach((e=>{t.push(e.refreshCachedQueryEngine())})),await Promise.all(t)};return this.addResolvingPromise(new Promise((i=>{V(this.url).then((async n=>{n.dataModel.entityTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)})),n.dataModel.relationshipTypes?.forEach((e=>{e.name&&this._graphTypeLookup.set(e.name,e)}));const r=this.linkChart?.linkChartProperties;if(r?.originIdOf("entitiesUrl")===y.LINK_CHART&&(this.membershipModified=!1,this._originalInclusionList=await t.fetchAndConvertSerializedLinkChart({entitiesUrl:r?.entitiesUrl,relationshipsUrl:r?.relationshipsUrl}),this._alignLayersDataModelAndInclusionDefinition(n.dataModel),this.initializationLinkChartConfig={layoutSettings:r?.layoutSettings??void 0,layoutMode:S(r.layoutType)}),this._initializeLayerProperties({knowledgeGraph:n,inclusionModeDefinition:this._originalInclusionList}),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.size||(this.dataManager.inclusionModeDefinition={generateAllSublayers:!1,namedTypeDefinitions:new Map},this.dataManager.knowledgeGraph.dataModel.entityTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})})),this.dataManager.knowledgeGraph.dataModel.relationshipTypes?.forEach((e=>{e.name&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.set(e.name,{useAllData:!0})}))),this.dataPreloadedInLocalCache){const e=E.getInstance();for(const[t,a]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions??[])for(const i of a.members?.values()??[]){const a=e.readFromStoreById(`${t}__${i.id}`);if(a){o(this.dataManager.sublayerCaches,t,(()=>new Map)).set(i.id,a)}}await a()}else{const t="geographic-organic-standard"===this.initializationLinkChartConfig?.layoutMode;this.addResolvingPromise(this.dataManager.refreshCacheContent(void 0,!1,t,!0).then((async()=>{s(e),await a()})))}i(null)}))}))),Promise.resolve(this)}set initializationInclusionModeDefinition(e){"loaded"!==this.loadStatus&&"failed"!==this.loadStatus?this._set("initializationInclusionModeDefinition",e):n.getLogger(this).error("#initializationInclusionModeDefinition","initializationInclusionModeDefinition cannot be changed after the layer is loaded.")}get linkChart(){return this.parent}async addRecords(e,t){let a=[];t?.cascadeAddRelationshipEndNodes&&this.dataManager.knowledgeGraph.dataModel&&(a=await _(e,this.dataManager.knowledgeGraph));const i=e.concat(a).filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id)));i.length>0&&(this.membershipModified=!0),await this._handleNewRecords(i,t)}async removeRecords(e,{cascadeRemoveRelationships:t=!0,recalculateLayout:a=!1,overrideMembershipCheck:i=!1}={cascadeRemoveRelationships:!0,recalculateLayout:!1,overrideMembershipCheck:!1}){let n=[];for(const r of e)(i||!1===this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.useAllData&&this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.get(r.typeName)?.members?.has(r.id))&&n.push(r);if(t){const e=new Set,t=[];for(const a of n)if(this.dataManager.nodeConnectionsLookup.has(a.id))for(const t of this.dataManager.nodeConnectionsLookup.get(a.id))e.add(t);for(const a of e)if(this.dataManager.memberIdTypeLookup.has(a))for(const e of this.dataManager.memberIdTypeLookup.get(a))this.dataManager.relationshipTypeNames.has(e)&&t.push({id:a,typeName:e});n=n.concat(t)}this.dataManager.removeFromLayer(n);for(const r of n)this.sublayerIdsCache.get(r.typeName)?.delete(r.id),this.dataManager.relationshipTypeNames.has(r.typeName)?this.relationshipLinkChartDiagramLookup.delete(r.id):this.entityLinkChartDiagramLookup.delete(r.id);a&&await this._calculateLayoutWithSublayerTimeInfo(this._currentLinkChartConfig.layoutMode,{layoutSettings:this._currentLinkChartConfig.layoutSettings}),n.length>0&&(this.membershipModified=!0);const o=[];return this.layers.forEach((e=>{o.push(e.refreshCachedQueryEngine())})),await Promise.all(o),this._refreshNamedTypes(),n}async expand(e,t){let a=[];try{const i=await this.dataManager.getConnectedRecordIds(e,t?.relationshipTypeNames,t);a=i.filter((e=>!this.sublayerIdsCache.get(e.typeName)?.has(e.id))),await this._handleNewRecords(i,t),i.length>0&&(this.membershipModified=!0),s(t?.signal)}catch(i){throw l(i)&&a.length>0&&this.removeRecords(a,{overrideMembershipCheck:!0}),i}return{records:a}}loadLayerAssumingLocalCache(){const e=[...this.memberRelationshipTypes,...this.memberEntityTypes];this.originIdOf("layers")===y.DEFAULTS?this._createSublayers(e,this.layers,(e=>!!e.geometryType)):this._updateSublayers(e,this.layers),this.originIdOf("tables")===y.DEFAULTS?this._createSublayers(e,this.tables,(e=>!e.geometryType)):this._updateSublayers(e,this.tables),this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{const a=o(this.sublayerIdsCache,t,(()=>new Set));e.members?.forEach((({id:e,linkChartLocation:i})=>{if(a.add(e),i){const a="coords"in i&&"lengths"in i?i:w(i);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(e,a):this.entityLinkChartDiagramLookup.set(e,a)}}))}))}async calculateLinkChartLayout(e="organic-standard",t){const a=[],r=[],l=[];this.dataManager.sublayerCaches.forEach(((e,t)=>{this.dataManager.entityTypeNames.has(t)?e.forEach((e=>{a.push({typeName:t,feature:e})})):this.dataManager.relationshipTypeNames.has(t)&&e.forEach((e=>{r.push({typeName:t,feature:e})}))})),this.entityLinkChartDiagramLookup=new Map,this.relationshipLinkChartDiagramLookup=new Map;const d=new Map,p=new Map,c=new Map,u=new Map,y=new Uint8Array(a.length),g=new Float64Array(a.length),b=new Float64Array(a.length),v=new Float64Array(a.length),D=new Float64Array(a.length),x=new Uint32Array(r.length),I=new Uint32Array(r.length),E=new Float64Array(r.length),S=new Float64Array(r.length),_=[],R="organic-standard",A=new m({xmin:-1e-7,ymin:-1e-7,xmax:1e-7,ymax:1e-7});let j,G="organic-standard",V=0,q=0;const J=z.apply;switch(G="geographic-organic-standard"===e?R:e,G){case"organic-standard":j=Q.apply;break;case"organic-community":j=B.apply;break;case"hierarchical-bottom-to-top":j=U.apply;break;case"radial-root-centric":j=F.apply;break;case"tree-left-to-right":j=O.apply;break;default:j=P.apply}let X=!1;a.forEach((({typeName:a,feature:i})=>{if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e&&t?.lockedNodeLocations?.has(i.attributes[M])){"geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(a)?y[V]=W.IsGeographic:y[V]=W.None;const n=t.lockedNodeLocations.get(i.attributes[M]);g[V]=n.x,b[V]=n.y}else if("geographic-organic-standard"===e&&this.dataManager.geographicLookup.has(a)){y[V]=W.IsGeographic;let e=null;const t=i.attributes[this.dataManager.geographicLookup.get(a).name],n=this.dataManager.geographicLookup.get(a)?.geometryType;switch(n){case"esriGeometryPoint":g[V]=t?.x,b[V]=t?.y;break;case"esriGeometryPolygon":e=t?.centroid,null!=e?.x&&null!=e?.y?(g[V]=e.x,b[V]=e.y):y[V]=W.IsMovable;break;case"esriGeometryPolyline":case"esriGeometryMultipoint":e=t?.extent?.center,null!=e?.x&&null!=e?.y?(g[V]=e.x,b[V]=e.y):y[V]=W.IsMovable;break;default:y[V]=W.IsMovable}(null==g[V]||null==b[V]||Number.isNaN(g[V])||Number.isNaN(b[V]))&&(y[V]=W.IsMovable,g[V]=0,b[V]=0)}else if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){!X&&t?.lockedNodeLocations?.has(i.attributes[M])&&(X=!0);const e=t?.timeInfoByTypeName?.get(a),n=e?.startField,o=n&&e?.startField?i.attributes[n]:null;v[V]=o?new Date(o).getTime():NaN;const r=e?.endField,s=r&&e?.endField?i.attributes[r]:null;D[V]=s?new Date(s).getTime():NaN,g[V]=0,b[V]=0,y[V]=W.IsMovable}else y[V]=W.IsMovable,g[V]=0,b[V]=0;u.set(i.attributes[M],V),_[V]={feature:i,typeName:a},V++})),X&&n.getLogger(this).warn("Locked node locations are not supported for chronological layout at this time. Requested node locations were ignored");let Y=!1;const Z=new Map;r.forEach((a=>{const i=a.feature.attributes[k],n=a.feature.attributes[C],o=u.get(i),r=u.get(n),s=t?.timeInfoByTypeName?.get(a.typeName),h=t?.timeInfoByTypeName?s?.startField:null,d=h?a.feature.attributes[h]:null,p=s?.endField,c=p?a.feature.attributes[p]:null;if(void 0!==o&&void 0!==r){let t=i+"-"+n;"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(t=t+"-"+d+"-"+c);const s=Z.get(t),h=s?.has(a.typeName);h||(x[q]=o,I[q]=r,"chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e||(E[q]=d?new Date(d).getTime():NaN,S[q]=c?new Date(c).getTime():NaN),void 0===s?Z.set(t,new Map([[a.typeName,q]])):s.set(a.typeName,q),q++),l.push(a)}else Y=!0,this.relationshipLinkChartDiagramLookup.set(i,null)})),Y&&n.getLogger(this).warn("A relationship is a member of this layer that has either origin or destination entity nodes that are not members. The diagram geometry will be set to null");const ee=this._validateOrganicLayoutSettings(e,t?.layoutSettings?.organicLayoutSettings),te=this._convertValidatedOrganicSettingsToCalculationSettings(ee);await $();let ae=H.Error,ie=null;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){let a;({status:ae,links:ie,graphics:a}=J((()=>t?.signal?.aborted??!1),y,g,b,v,D,x.subarray(0,q),I.subarray(0,q),E.subarray(0,q),S.subarray(0,q),"chronological-multi-timeline"===e,t?.layoutSettings?.chronologicalLayoutSettings)),ae===H.Success&&(this.chronologicalAuxiliaryGraphics=a)}else({status:ae,links:ie}=j((()=>t?.signal?.aborted??!1),y,g,b,x.subarray(0,q),I.subarray(0,q),te.computationBudgetTime,te.idealEdgeLengthMultiplier,te.repulsionRadiusMultiplier));if(s(t?.signal),ae===H.Error)throw new i("knowledge-graph:layout-failed","Attempting to arrange the records in the specified layout failed");if(ae===H.Canceled)throw h();for(let i=0;i<_.length;i++){if(b[i]>84.9999?b[i]=84.9999:b[i]<-84.9999&&(b[i]=-84.9999),g[i]>179.9999?g[i]=179.9999:g[i]<-179.9999&&(g[i]=-179.9999),_[i].feature.attributes[T]=new f(g[i],b[i]),d.has(_[i].typeName)){const e=d.get(_[i].typeName);e?.set(_[i].feature.attributes[M],_[i].feature)}else{const e=new Map;e.set(_[i].feature.attributes[M],_[i].feature),d.set(_[i].typeName,e)}c.set(_[i].feature.attributes[M],_[i].feature);const e=w(_[i].feature.attributes[T]);this.entityLinkChartDiagramLookup.set(_[i].feature.attributes[M],_[i].feature.attributes[T]?e:null);const t=o(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,_[i].typeName,(()=>({useAllData:!1,members:new Map})));o(t.members,_[i].feature.attributes[M],(()=>({id:_[i].feature.attributes[M],linkChartLocation:void 0}))).linkChartLocation=_[i].feature.attributes[T],_[i].feature.attributes[T].x<A.xmin&&(A.xmin=_[i].feature.attributes[T].x),_[i].feature.attributes[T].x>A.xmax&&(A.xmax=_[i].feature.attributes[T].x),_[i].feature.attributes[T].y<A.ymin&&(A.ymin=_[i].feature.attributes[T].y),_[i].feature.attributes[T].y>A.ymax&&(A.ymax=_[i].feature.attributes[T].y)}if(this.linkChartExtent.xmin=A.xmin,this.linkChartExtent.xmax=A.xmax,this.linkChartExtent.ymin=A.ymin,this.linkChartExtent.ymax=A.ymax,!ie)throw new i("knowledge-graph:layout-failed","Attempting to retrieve link geometry from diagram engine failed");const ne=new Map,oe=new Map,re=new Map,se=new Set;for(let i=0;i<l.length;i++){const a=[],r=l[i],s=r.feature.attributes[k],h=r.feature.attributes[C];let d=s+"-"+h;if("chronological-mono-timeline"===e||"chronological-multi-timeline"===e){const e=t?.timeInfoByTypeName?.get(r.typeName),a=t?.timeInfoByTypeName?e?.startField:null,i=a?r.feature.attributes[a]:null,n=e?.endField;d+="-"+i+"-"+(n?r.feature.attributes[n]:null)}const y=Z.get(d).get(r.typeName),g=0===y?0:ie?.vertexEndIndex[y-1];if(!se.has(y)){if(se.add(y),ie.types[y]===K.Recursive){const e=[ie.vertices[2*g],ie.vertices[2*g+1]],t=[ie.vertices[2*(g+1)],ie.vertices[2*(g+1)+1]],i=[.5*(e[0]+t[0]),.5*(e[1]+t[1])],n=[i[0]-e[0],i[1]-e[1]],o=[i[0]+n[1],i[1]-n[0]],r=[i[0]-n[1],i[1]+n[0]];a.push(e),a.push(o),a.push(t),a.push(r),a.push(e)}else{if(ie.types[y]!==K.Regular){n.getLogger(this).warn("A relationship generated an unsupported link geometry type. It will not be rendered");continue}for(let e=g;e<ie.vertexEndIndex[y];e++)a.push([ie.vertices[2*e],ie.vertices[2*e+1]])}if("chronological-mono-timeline"!==e&&"chronological-multi-timeline"!==e){const e=_[u.get(s)]?.feature.attributes[T],t=_[u.get(h)]?.feature.attributes[T];a[0][0]===e.x&&a[0][1]===e.y||(a[0]=[e.x,e.y]),a[a.length-1][0]===t.x&&a[a.length-1][1]===t.y||(a[a.length-1]=[t.x,t.y])}for(let e=1;e<a.length-1;e++)a[e][1]>85.5?a[e][1]=85.5:a[e][1]<-85.5&&(a[e][1]=-85.5),a[e][0]>179.9999?a[e][0]=179.9999:a[e][0]<-179.9999&&(a[e][0]=-179.9999);ne.has(d)?ne.get(d).push(a):ne.set(d,[a])}const m=ne.get(d);oe.has(d)||(oe.set(d,new Map),re.set(d,new Map));const f=oe.get(d),b=re.get(d);f.has(r.typeName)||(f.set(r.typeName,m.shift()),b.set(r.typeName,0));const N=f.get(r.typeName);b.set(r.typeName,b.get(r.typeName)+1);const v=new L({paths:[N]});if(r.feature.attributes[T]=v,p.has(r.typeName)){const e=p.get(r.typeName);e?.set(r.feature.attributes[M],r.feature)}else{const e=new Map;e.set(r.feature.attributes[M],r.feature),p.set(r.typeName,e)}c.set(r.feature.attributes[M],r.feature);const D=w(r.feature.attributes[T]);this.relationshipLinkChartDiagramLookup.set(r.feature.attributes[M],r.feature.attributes[T]?D:null);const x=o(this.dataManager.inclusionModeDefinition.namedTypeDefinitions,r.typeName,(()=>({useAllData:!1,members:new Map})));o(x.members,r.feature.attributes[M],(()=>({id:r.feature.attributes[M],linkChartLocation:void 0}))).linkChartLocation=D}for(const i of l)i.feature.attributes[N]=re.get(i.feature.attributes[k]+"-"+i.feature.attributes[C])?.get(i.typeName)??null;return this._currentLinkChartConfig={layoutMode:e,layoutSettings:t?.layoutSettings?.clone()},{nodes:d,links:p,idMap:c}}async applyNewLinkChartLayout(e="organic-standard",t){const a=[];await this._calculateLayoutWithSublayerTimeInfo(e,t),this.layers.forEach((e=>{a.push(e.refreshCachedQueryEngine())})),this.membershipModified=!0,await Promise.all(a),this._refreshNamedTypes()}getCurrentNodeLocations(){const e=new Map;for(const[t,a]of this.dataManager.inclusionModeDefinition?.namedTypeDefinitions.entries()??[])this.dataManager.relationshipTypeNames.has(t)||a?.members?.forEach((t=>{const a=t.linkChartLocation;let i;const n=t.id;a&&(i="x"in a?{x:a.x,y:a.y}:{x:a.coords[0],y:a.coords[1]},e.set(n,new f({x:i.x,y:i.y})))}));return e}async refreshLinkChartCache(e){await this.dataManager.refreshCacheContent(e);const t=[];this.layers.forEach((e=>{t.push(e.refreshCachedQueryEngine())})),await Promise.all(t),this._refreshNamedTypes()}async connectBetweenEntities(e,t){if(!e.length)return{records:[]};let a=[];try{let i=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(i=i.concat(Array.from(t.keys())))}a=await this.dataManager.getRelationshipsBetweenNodes(e,i,t),await this._handleNewRecords(a,t),s(t)}catch(i){throw l(i)&&this.removeRecords(a),i}return{records:a}}async connectFromEntities(e,t){if(!e.length)return{records:[]};let a=[];try{let i=[];for(const e of this.dataManager.relationshipTypeNames){const t=this.sublayerIdsCache.get(e);t&&(i=i.concat(Array.from(t.keys())))}let n=[];for(const e of this.dataManager.entityTypeNames){const t=this.sublayerIdsCache.get(e);t&&(n=n.concat(Array.from(t)))}a=await this.dataManager.getRelationshipsFromNodes(e,n,i,t),await this._handleNewRecords(a,t),a.length>0&&(this.membershipModified=!0),s(t)}catch(i){throw l(i)&&this.removeRecords(a),i}return{records:a}}getCurrentLayout(){return this._currentLinkChartConfig.layoutMode}async _calculateLayoutWithSublayerTimeInfo(e="organic-standard",t){const a=new Map;this.layers.forEach((e=>{a.set(e.objectType.name,e.timeInfo)})),await this.calculateLinkChartLayout(e,{timeInfoByTypeName:a,...t}),this.linkChart?.handleChronologicalOverlay()}async _handleNewRecords(e,t){const a=[];this.dataManager.addToLayer(e);for(const n of e)this.sublayerIdsCache.has(n.typeName)||(this.sublayerIdsCache.set(n.typeName,new Set),a.push(n.typeName)),this.sublayerIdsCache.get(n.typeName).add(n.id);for(const n of a){const e=this._graphTypeLookup.get(n);if(e){const t=this._createSublayer(e);"entity"===e.type?this.dataManager.entityTypeNames.add(n):this.dataManager.relationshipTypeNames.add(n),t.geometryType?this.layers.push(t):this.tables.push(t),this.dataManager.sublayerCaches.set(n,new Map)}}await I(this,a,t),await this.dataManager.refreshCacheContent(e.map((e=>e.id)),void 0,void 0,void 0,t);const i={layoutSettings:this._currentLinkChartConfig.layoutSettings,lockedNodeLocations:new Map};for(const[n,o]of this.entityLinkChartDiagramLookup.entries())o&&i.lockedNodeLocations.set(n,new f(o.coords[0],o.coords[1]));await this.applyNewLinkChartLayout(this._currentLinkChartConfig.layoutMode,i)}_createSublayers(e,t,a){e.forEach((e=>{const i=this._createSublayer(e);a(i)&&t.push(i),this._updateSublayerCaches(e)}))}_updateSublayers(e,t){t.forEach((t=>{t.parentCompositeLayer=this;const a=e.find((e=>e.type===t.graphType&&e.name===t.graphTypeName));a&&(t.objectType=a,t.read({title:a.name},{origin:"service"}),this._updateSublayerCaches(a))}))}_updateSublayerCaches(e){const t=this.dataManager.sublayerCaches;t.has(e.name)||t.set(e.name,new Map)}_layersLoadedFromAuthoritativeItem(){const e=this.originIdOf("layers");return e>=y.PORTAL_ITEM&&e<y.USER}async _initializeDiagram(){this.initializationLinkChartConfig?this.initializationLinkChartConfig.doNotRecalculateLayout?(this.dataManager.inclusionModeDefinition?.namedTypeDefinitions?.forEach(((e,t)=>{e?.members?.forEach((e=>{const a=e.linkChartLocation;let i;const n=e.id;if(!a)return;i="x"in a?{x:a.x,y:a.y}:{x:a.coords[0],y:a.coords[1]};const o=w(i);this.dataManager.relationshipTypeNames.has(t)?this.relationshipLinkChartDiagramLookup.set(n,o):this.entityLinkChartDiagramLookup.set(n,o),this.linkChartExtent.xmin>i.x&&(this.linkChartExtent.xmin=i.x),this.linkChartExtent.xmax<i.x&&(this.linkChartExtent.xmax=i.x),this.linkChartExtent.ymin>i.y&&(this.linkChartExtent.ymin=i.y),this.linkChartExtent.ymax<i.y&&(this.linkChartExtent.ymax=i.y)}))})),this.memberRelationshipTypes.forEach((e=>{e.name&&this.dataManager.sublayerCaches.get(e.name)?.forEach((e=>{const t=this.relationshipLinkChartDiagramLookup.get(e.attributes[k]),a=this.relationshipLinkChartDiagramLookup.get(e.attributes[C]);if(t&&a){const i=w(new L({paths:[[[t.coords[0],t.coords[1]],[a.coords[0],a.coords[1]]]]}));this.relationshipLinkChartDiagramLookup.set(e.attributes[M],i)}else this.relationshipLinkChartDiagramLookup.set(e.attributes[M],null)}))}))):await this._calculateLayoutWithSublayerTimeInfo(this.initializationLinkChartConfig.layoutMode,{lockedNodeLocations:this.getCurrentNodeLocations(),...this.initializationLinkChartConfig||{}}):await this._calculateLayoutWithSublayerTimeInfo("organic-standard",{lockedNodeLocations:this.getCurrentNodeLocations()})}_refreshNamedTypes(){for(const e of this.layers)e.emit("refresh",{dataChanged:!0});for(const e of this.tables)e.emit("refresh",{dataChanged:!0})}_validateOrganicLayoutSettings(e,t){const a=e=>"number"==typeof e&&!isNaN(e),i=e=>a(e)&&e>=1,o=e=>a(e)&&e>=1,r=e=>Object.values(v).includes(e),s=e=>a(e)&&e>=0,l={};if(!new Set(["organic-standard","organic-community","geographic-organic-standard","chronological-multi-timeline","chronological-mono-timeline"]).has(e)||!t)return l;const{computationBudgetTime:h,autoRepulsionRadius:d,repulsionRadiusMultiplier:p,absoluteIdealEdgeLength:c,multiplicativeIdealEdgeLength:u,idealEdgeLengthType:y}=t;return o(h)?l.computationBudgetTime=h:h&&n.getLogger(this).warn("Invalid layout computationBudgetTime setting, will revert to default setting"),l.autoRepulsionRadius=d,!d&&i(p)?l.repulsionRadiusMultiplier=p:d||(l.autoRepulsionRadius=!0,n.getLogger(this).warn("Invalid layout repulsionRadiusMultiplier setting, will revert to default setting")),"geographic-organic-standard"===e&&(r(y)?l.idealEdgeLengthType=y:void 0!==y&&n.getLogger(this).warn('Invalid layout idealEdgeLengthType setting, will revert to "multiplier" setting'),"absolute-value"===y&&s(c)?l.absoluteIdealEdgeLength=c:"absolute-value"===y&&void 0!==c?n.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting"):"multiplier"===y&&s(u)?l.multiplicativeIdealEdgeLength=u:"multiplier"===y&&void 0!==u&&n.getLogger(this).warn("Invalid layout idealEdgeLength setting, will revert to default setting")),l}_convertValidatedOrganicSettingsToCalculationSettings(e){let t=e.idealEdgeLengthType===v.ABSOLUTE?e.absoluteIdealEdgeLength:e.multiplicativeIdealEdgeLength;return e.idealEdgeLengthType===v.ABSOLUTE&&(void 0===t?t=-1:t*=-1),{computationBudgetTime:e.computationBudgetTime??void 0,repulsionRadiusMultiplier:e.repulsionRadiusMultiplier&&!e.autoRepulsionRadius?e.repulsionRadiusMultiplier:void 0,idealEdgeLengthMultiplier:t}}_createSublayer(e){return new x({objectType:e,parentCompositeLayer:this,graphType:e.type})}_handleSublayersChange(e,t){t&&(t.forEach((e=>{e.parent=null})),this.removeHandles("sublayers-owner")),e&&(e.forEach((e=>{e.parent=this})),this.addHandles([e.on("after-add",(({item:e})=>{e.parent=this})),e.on("after-remove",(({item:e})=>{e.parent=null}))],"sublayers-owner"))}_alignLayersDataModelAndInclusionDefinition(e){const t=new Set((e.entityTypes??[]).map((e=>e.name)).concat((e.relationshipTypes??[]).map((e=>e.name)))),i=new Set((e.entityTypes??[]).map((e=>e.name))),o=new Set((e.relationshipTypes??[]).map((e=>e.name)));if(this.layers){for(const a of this.layers)!a.graphType&&t.has(a.graphTypeName)&&(a.graphType=i.has(a.graphTypeName)?"entity":"relationship");const e=this.layers.filter((e=>t.has(e.graphTypeName)&&("entity"===e.graphType?i.has(e.graphTypeName):o.has(e.graphTypeName))));this.setAtOrigin("layers",e,g(this.originIdOf("layers")))}else this.layers=new a;if(this.layers&&this._originalInclusionList){const e=new Set(this._originalInclusionList.namedTypeDefinitions.keys()),t=this.tables?.map((e=>e.graphTypeName))??[],a=this.layers.map((e=>e.graphTypeName)).concat(t);for(const n of a)e.has(n)||this._originalInclusionList.namedTypeDefinitions.set(n,{useAllData:!1,members:new Map});const i=[];for(const o of this._originalInclusionList.namedTypeDefinitions.keys())a.includes(o)||(n.getLogger(this).warn(`A named type, ${o}, was in the serialized feature collection but did not have a sublayer config in the item, so will be removed`),i.push(o));for(const n of i)this._originalInclusionList.namedTypeDefinitions.delete(n)}}};e([c(G)],q.prototype,"url",void 0),e([c()],q.prototype,"dataPreloadedInLocalCache",void 0),e([c()],q.prototype,"initializationLinkChartConfig",void 0),e([c()],q.prototype,"membershipModified",void 0),e([c()],q.prototype,"dataManager",void 0),e([c()],q.prototype,"initializationInclusionModeDefinition",null),e([c()],q.prototype,"knowledgeGraph",void 0),e([c({type:a.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"layers",void 0),e([c({readOnly:!0})],q.prototype,"linkChart",null),e([c()],q.prototype,"entityLinkChartDiagramLookup",void 0),e([c()],q.prototype,"relationshipLinkChartDiagramLookup",void 0),e([c()],q.prototype,"linkChartExtent",void 0),e([c()],q.prototype,"memberEntityTypes",void 0),e([c()],q.prototype,"memberRelationshipTypes",void 0),e([c({type:["LinkChartLayer"]})],q.prototype,"operationalLayerType",void 0),e([c()],q.prototype,"sublayerIdsCache",void 0),e([c({type:a.ofType(x),json:{write:{ignoreOrigin:!0}}})],q.prototype,"tables",void 0),e([c({json:{read:!1}})],q.prototype,"type",void 0),e([c({json:{read:!1}})],q.prototype,"chronologicalAuxiliaryGraphics",void 0),q=e([u("esri.layers.LinkChartLayer")],q);const J=q;export{J as default};