@arcgis/core 4.33.0 → 4.33.2

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 (44) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{4546bff78aaa69b44518.js → 58f093b776b160a7d1b8.js} +1 -1
  3. package/assets/esri/core/workers/chunks/9258f07c3041741b01cd.js +1 -0
  4. package/interfaces.d.ts +35 -2
  5. package/kernel.js +1 -1
  6. package/layers/orientedImagery/core/bestImageUtils.js +1 -1
  7. package/layers/video/videoUtils.js +1 -1
  8. package/package.json +1 -1
  9. package/smartMapping/renderers/color.js +1 -1
  10. package/smartMapping/renderers/heatmap.js +1 -1
  11. package/smartMapping/renderers/pieChart.js +1 -1
  12. package/smartMapping/renderers/size.js +1 -1
  13. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  14. package/smartMapping/renderers/support/rendererUtils.js +1 -1
  15. package/smartMapping/renderers/type.js +1 -1
  16. package/smartMapping/symbology/color.js +1 -1
  17. package/smartMapping/symbology/support/utils.js +1 -1
  18. package/support/revision.js +1 -1
  19. package/symbols/support/utils.js +1 -1
  20. package/views/2d/engine/ParentChildStage.js +1 -1
  21. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  22. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  23. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  24. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  25. package/views/VideoView.js +1 -1
  26. package/views/video/VideoOperationalDataView.js +1 -1
  27. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  28. package/widgets/Editor/support/SketchController.js +1 -1
  29. package/widgets/Editor/workflowUtils.js +1 -1
  30. package/widgets/Editor.js +1 -1
  31. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  32. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  33. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  34. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  35. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  36. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  37. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  38. package/widgets/OrientedImageryViewer.js +1 -1
  39. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  40. package/widgets/PanoramicViewer/PanoramicZoomConditions.js +1 -1
  41. package/widgets/PanoramicViewer.js +1 -1
  42. package/widgets/Sketch/SketchViewModel.js +1 -1
  43. package/widgets/support/SelectionList.js +1 -1
  44. package/assets/esri/core/workers/chunks/a5d36f2442ca1cd6a672.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 e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:s,filter:a}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(s){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(a)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const s="featureReduction"in r?r.featureReduction:null,a=t?.clone()??(i&&"binning"===s?.type?s?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!a)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return a}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find((e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n))}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(p),s=r?.find(y),a=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===a?.type)return"univariate-color-size";if(t)return s?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(s)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===a?.type?"color-class-breaks":"class-breaks-size"===a?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===a?.type?"predominance":"relationship"===a?.type?s||l||c?"relationship-size":"relationship":s||l||c?"type-size":"type":s?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":null}function s(e){return!!e.visualVariables?.some(z)}function a(e){return!!e.visualVariables?.some(m)}function o(e){return e?.findIndex(z)??-1}function u(e){return e?.findIndex(y)??-1}function l(e){return e?.findIndex(p)??-1}function c(e){return e?.findIndex(d)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return"color"===e.type}function d(e){return"opacity"===e.type}function y(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function z(e){return"size"===e.type&&"outline"===e.target}function m(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function h(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const s=n.map((e=>e.clone()));i?t>-1?i.splice(t,1,...s):i.push(...s):e.visualVariables=s}function v(e,n,r){const t=n?.visualVariables.find((e=>e.type===r)),s=i(e,r);s&&t&&(s.minSliderValue=t.minSliderValue,s.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==s.theme&&"spike"!==s.theme||(s.sizeStops=t.sizeStops?.map((e=>e.clone())),"reference-size"===s.theme&&(s.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,s as hasOutlineVV,a as hasScaleDependentSizeVV,p as isColorVV,d as isOpacityVV,z as isOutlineVV,m as isScaleDependentSizeVV,y as isSizeVV,n as processRegenerateParams,h as spliceVisualVariables,v as updateAuthoringInfoVisualVariable};
5
+ import e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:a,filter:s}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(a){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(s)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const a="featureReduction"in r?r.featureReduction:null,s=t?.clone()??(i&&"binning"===a?.type?a?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!s)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return s}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find((e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n))}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(p),a=r?.find(y),s=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===s?.type)return"univariate-color-size";if(t)return a?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(a)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===s?.type?"color-class-breaks":"class-breaks-size"===s?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===s?.type?"predominance":"relationship"===s?.type?a||l||c?"relationship-size":"relationship":a||l||c?"type-size":"type":a?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":"heatmap"===n?"heatmap":null}function a(e){return!!e.visualVariables?.some(z)}function s(e){return!!e.visualVariables?.some(m)}function o(e){return e?.findIndex(z)??-1}function u(e){return e?.findIndex(y)??-1}function l(e){return e?.findIndex(p)??-1}function c(e){return e?.findIndex(d)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return"color"===e.type}function d(e){return"opacity"===e.type}function y(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function z(e){return"size"===e.type&&"outline"===e.target}function m(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function h(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const a=n.map((e=>e.clone()));i?t>-1?i.splice(t,1,...a):i.push(...a):e.visualVariables=a}function v(e,n,r){const t=n?.visualVariables.find((e=>e.type===r)),a=i(e,r);a&&t&&(a.minSliderValue=t.minSliderValue,a.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==a.theme&&"spike"!==a.theme||(a.sizeStops=t.sizeStops?.map((e=>e.clone())),"reference-size"===a.theme&&(a.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,a as hasOutlineVV,s as hasScaleDependentSizeVV,p as isColorVV,d as isOpacityVV,z as isOutlineVV,m as isScaleDependentSizeVV,y as isSizeVV,n as processRegenerateParams,h as spliceVisualVariables,v as updateAuthoringInfoVisualVariable};
@@ -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 e from"../../../core/Error.js";import{getRendererToUpdate as r,getStyleType as t,spliceVisualVariables as a,findSizeVVIndex as i,updateAuthoringInfoVisualVariable as n,getAuthoringInfoVisualVariable as s,hasScaleDependentSizeVV as o}from"./regenerateUtils.js";async function c(a){const i=await r(a),n=t(i),s=a.includedParts,o=s?.includes("size-variable")??!0,c=s?.includes("color-variable")??!0,u=s?.includes("class-breaks")??!0;switch(n){case"color-continuous":{if(!c)return i;const{regenerateContinuousRenderer:e}=await import("../color.js");return(await e(a)).renderer}case"color-class-breaks":{if(!u)return i;const{regenerateClassBreaksRenderer:e}=await import("../color.js");return(await e(a)).renderer}case"color-age":{if(!c)return i;const{regenerateAgeRenderer:e}=await import("../color.js");return(await e(a)).renderer}case"size-continuous":{if(!o)return i;const{regenerateContinuousRenderer:e}=await import("../size.js");return(await e(a)).renderer}case"size-class-breaks":{if(!u)return i;const{regenerateClassBreaksRenderer:e}=await import("../size.js");return(await e(a)).renderer}case"size-age":{if(!o)return i;const{regenerateAgeRenderer:e}=await import("../size.js");return(await e(a)).renderer}case"color-size":{let e=i;if(c){const{regenerateContinuousRenderer:r}=await import("../color.js");e=(await r(a)).renderer}return o?await d(a,e):e}case"type":{const{regenerateRenderer:e}=await import("../type.js");return(await e(a)).renderer}case"type-size":{const{regenerateRenderer:e}=await import("../type.js"),{renderer:r}=await e(a);return o?await d(a,r):r}case"predominance":{const{regenerateRenderer:e}=await import("../predominance.js");return(await e(a)).renderer}case"relationship":{if(!u)return i;const{regenerateRenderer:e}=await import("../relationship.js");return(await e(a)).renderer}case"relationship-size":{let e=i;if(u){const{regenerateRenderer:r}=await import("../relationship.js"),{renderer:t}=await r(a);e=t}return o?await d(a,e):e}case"pie-chart":{const{regenerateRenderer:e}=await import("../pieChart.js");return(await e(a)).renderer}case"dot-density":{const{regenerateRenderer:e}=await import("../dotDensity.js");return(await e(a)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await import("../univariateColorSize.js");return(await e(a)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function d(e,r){const{regenerateVisualVariables:t,updateRendererWithReferenceSize:c,updateRendererWithSpike:d}=await import("../size.js"),{visualVariables:u,authoringInfo:p,isGrid:w}=await t({...e,renderer:r});a(r,u,i),n(r,p,"size");const l=s(r,"size","reference-size"),g=s(r,"size","spike");return l||g?g?await d({layer:e.layer,renderer:r,sizeStops:g.sizeStops,forBinning:e.forBinning}):await c({layer:e.layer,renderer:r,sizeStops:l.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:o(r),isGrid:w}):r}export{c as regenerateRenderer};
5
+ import e from"../../../core/Error.js";import{getRendererToUpdate as r,getStyleType as a,spliceVisualVariables as t,findSizeVVIndex as n,updateAuthoringInfoVisualVariable as i,getAuthoringInfoVisualVariable as s,hasScaleDependentSizeVV as o}from"./regenerateUtils.js";async function c(t){const n=await r(t),i=a(n),s=t.includedParts,o=s?.includes("size-variable")??!0,c=s?.includes("color-variable")??!0,u=s?.includes("class-breaks")??!0;switch(i){case"color-continuous":{if(!c)return n;const{regenerateContinuousRenderer:e}=await import("../color.js");return(await e(t)).renderer}case"color-class-breaks":{if(!u)return n;const{regenerateClassBreaksRenderer:e}=await import("../color.js");return(await e(t)).renderer}case"color-age":{if(!c)return n;const{regenerateAgeRenderer:e}=await import("../color.js");return(await e(t)).renderer}case"size-continuous":{if(!o)return n;const{regenerateContinuousRenderer:e}=await import("../size.js");return(await e(t)).renderer}case"size-class-breaks":{if(!u)return n;const{regenerateClassBreaksRenderer:e}=await import("../size.js");return(await e(t)).renderer}case"size-age":{if(!o)return n;const{regenerateAgeRenderer:e}=await import("../size.js");return(await e(t)).renderer}case"color-size":{let e=n;if(c){const{regenerateContinuousRenderer:r}=await import("../color.js");e=(await r(t)).renderer}return o?await d(t,e):e}case"type":{const{regenerateRenderer:e}=await import("../type.js");return(await e(t)).renderer}case"type-size":{const{regenerateRenderer:e}=await import("../type.js"),{renderer:r}=await e(t);return o?await d(t,r):r}case"predominance":{const{regenerateRenderer:e}=await import("../predominance.js");return(await e(t)).renderer}case"relationship":{if(!u)return n;const{regenerateRenderer:e}=await import("../relationship.js");return(await e(t)).renderer}case"relationship-size":{let e=n;if(u){const{regenerateRenderer:r}=await import("../relationship.js"),{renderer:a}=await r(t);e=a}return o?await d(t,e):e}case"pie-chart":{const{regenerateRenderer:e}=await import("../pieChart.js");return(await e(t)).renderer}case"dot-density":{const{regenerateRenderer:e}=await import("../dotDensity.js");return(await e(t)).renderer}case"heatmap":{const{regenerateRenderer:e}=await import("../heatmap.js");return(await e(t)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await import("../univariateColorSize.js");return(await e(t)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function d(e,r){const{regenerateVisualVariables:a,updateRendererWithReferenceSize:c,updateRendererWithSpike:d}=await import("../size.js"),{visualVariables:u,authoringInfo:p,isGrid:w}=await a({...e,renderer:r});t(r,u,n),i(r,p,"size");const l=s(r,"size","reference-size"),g=s(r,"size","spike");return l||g?g?await d({layer:e.layer,renderer:r,sizeStops:g.sizeStops,forBinning:e.forBinning}):await c({layer:e.layer,renderer:r,sizeStops:l.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:o(r),isGrid:w}):r}export{c as regenerateRenderer};
@@ -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{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as a,calculateDateFormatInterval as u,dateFormatIntervalOptions as p}from"../../renderers/support/utils.js";import m from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import d from"../heuristics/outline.js";import c from"../heuristics/sizeRange.js";import{spliceVisualVariables as f,processRegenerateParams as y,getRendererToUpdate as v,getStyleType as b,hasOutlineVV as w,hasScaleDependentSizeVV as g,findOutlineVVIndex as h,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{errorCallback as z,getPointSizeAlgorithm as E,verifyBasicFieldValidity as x,getSymbolSizeFromScheme as I,getSymbolOutlineFromScheme as V,createSymbol as M,isValidPointSize as j,getBasemapInfo as S}from"./support/utils.js";import O from"../statistics/uniqueValues.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as U,fieldDelimiter as C,isAnyDateField as B}from"../support/utils.js";import{binningCapableLayerTypes as P,featureCapableLayerTypes as Z,createLayerAdapter as F,getLayerTypeLabels as R,LayerType as D}from"../support/adapters/support/layerUtils.js";import{cloneScheme as L,getSchemes as k}from"../symbology/type.js";async function A(e){if(!e?.layer||!e.field&&!e.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");e.forBinning&&q(e,"type-renderer");const n={...e,layer:e.layer};n.symbolType=n.symbolType||"2d",n.defaultSymbolEnabled??=!0,n.sortBy??="count",n.sortEnabled??=!0,n.statistics=l(n.statistics);const r=null==n.numTypes?10:n.numTypes,o=e.forBinning?P:Z,t=F(n.layer,o,e.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+R(o).join(", "));const s=null!=n.signal?{signal:n.signal}:null;await t.load(s);const a=t.geometryType;if(n.outlineOptimizationEnabled="polygon"===a&&n.outlineOptimizationEnabled,n.sizeOptimizationEnabled=("point"===a||"multipoint"===a||"polyline"===a)&&n.sizeOptimizationEnabled,"mesh"===a)n.symbolType="3d-volumetric",n.colorMixMode=n.colorMixMode||"replace",n.edgesType=n.edgesType||"none";else{if("3d-volumetric-uniform"===n.symbolType&&"point"!==a)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(n.symbolType.includes("3d-volumetric")&&(!n.view||"3d"!==n.view.type))throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const u=await U({field:n.field,field2:n.field2,field3:n.field3,valueExpression:n.valueExpression}),p=x(t,u,"type-renderer:invalid-parameters");if(p)throw p;return{...n,layer:t,numTypes:r}}async function $(e){const l="regenerate-type-renderer";await y(e,l);const n=await v(e),r=b(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:h}=e,T=w(n),z=g(n),E=await A({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:T,sizeOptimizationEnabled:z,forBinning:d,filter:c,view:f,signal:h});return{...e,creatorParameters:E,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[D.PointCloudLayer],o=F(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+R(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!j(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await U({field:n.field}),a=x(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await S(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:L(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function N(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function W(e,i,l){let n;"count"===i?(n=Q,l&&"codedValues"in l&&l.codedValues&&(n=N)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function X(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:u,field2:p,field3:m}=i,d=e.uniqueValueInfos,c=i.layer,f=u?c.getField(u):null,y=f?c.getFieldDomain(f.name):null,v=-1===i.numTypes?d.length:i.numTypes,b=c.geometryType,w=new t({field:u,field2:p,field3:m,fieldDelimiter:u&&p?C:null}),g=[],h=[],T={value:null,domain:y,fieldInfo:f};d.forEach(((e,i)=>{T.value=e.value,e.label=a(T);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&g.unshift(i)}));for(const n of g)h.unshift(d.splice(n,1)[0]);!1!==i.sortEnabled&&W(d,i.sortBy,y),Y(T,i,d);const z=l?.opacity,E=await H({numColors:d.length,basemap:i.basemap,geometryType:b,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),x=E.scheme,j=x.colors.map((e=>e.clone())),S=I(x,b),O=V(x,b,z);d.forEach(((e,l)=>{T.value=e.value,e.label=a(T),e.symbol=M(b,{type:i.symbolType,color:j[l],size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})),i.valueExpression&&(w.valueExpression=i.valueExpression,w.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(w.legendOptions=new s(i.legendOptions));for(let n=0;n<v;n++){const e=d[n];e&&w.addUniqueValueInfo({value:e.value,label:e.label,symbol:M(b,{type:i.symbolType,color:j[n].clone(),size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(w.defaultSymbol=M(b,{type:i.symbolType,color:x.noDataColor,size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),w.defaultLabel=o.other);for(const n of h)n.symbol=M(b,{type:i.symbolType,color:x.noDataColor,size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),d.push(n);const q=[],U=w.uniqueValueInfos?.length??0,B=U===d.length?-1:U;if(B>-1)for(let n=B;n<d.length;n++)q.push({...d[n]});return l?.visualVariables?.length&&(w.visualVariables=l.visualVariables.map((e=>e.clone()))),r?.minSize&&(w.visualVariables?w.visualVariables.push(r.minSize):w.visualVariables=[r.minSize]),{renderer:w,uniqueValueInfos:d,excludedUniqueValueInfos:q,typeScheme:L(x),basemapId:E.basemapId,basemapTheme:E.basemapTheme}}function Y(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(B(a)||r(a))){const i=l.filter(((e,i)=>i<o)).map((e=>e.value)),n=r(a)?null:u(i),m=n?p[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:m},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function _(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return W(n,"value"),n.map(((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new m({values:[l],color:n,label:e.label})}))}async function ee(e){const i=await A(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:O(t),i.outlineOptimizationEnabled?d({layer:l,view:n,signal:r,filter:o}).catch(z):null,i.sizeOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(z):null]);return X(s,i,a,u)}async function ie(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await $(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a}=i,[u,p]=await Promise.all([s?d({layer:t,view:l,signal:n,filter:r}).catch(z):null,a?c({layer:t,view:l,signal:n,filter:r}).catch(z):null]);return f(o,u?.visualVariables,h),f(o,p?.minSize,T),{renderer:o}}async function le(e){const i=await G(e),l=null!=i.statistics?i.statistics:await O({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:E(i.size),colorUniqueValueInfos:await _(l,i.typeScheme)})}}export{le as createPCClassRenderer,ee as createRenderer,ie as regenerateRenderer};
5
+ import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as a,calculateDateFormatInterval as u,dateFormatIntervalOptions as p}from"../../renderers/support/utils.js";import m from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import d from"../heuristics/outline.js";import c from"../heuristics/sizeRange.js";import{spliceVisualVariables as f,processRegenerateParams as y,getRendererToUpdate as v,getStyleType as b,hasOutlineVV as w,hasScaleDependentSizeVV as g,findOutlineVVIndex as h,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{getBasemapInfo as z,errorCallback as E,getPointSizeAlgorithm as x,verifyBasicFieldValidity as I,getSymbolSizeFromScheme as V,getSymbolOutlineFromScheme as M,createSymbol as j,isValidPointSize as S}from"./support/utils.js";import O from"../statistics/uniqueValues.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as U,fieldDelimiter as C,isAnyDateField as B}from"../support/utils.js";import{binningCapableLayerTypes as P,featureCapableLayerTypes as Z,createLayerAdapter as F,getLayerTypeLabels as R,LayerType as D}from"../support/adapters/support/layerUtils.js";import{cloneScheme as L,getSchemes as k}from"../symbology/type.js";async function A(e){if(!e?.layer||!e.field&&!e.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");e.forBinning&&q(e,"type-renderer");const n={...e,layer:e.layer};n.symbolType=n.symbolType||"2d",n.defaultSymbolEnabled??=!0,n.sortBy??="count",n.sortEnabled??=!0,n.statistics=l(n.statistics);const r=null==n.numTypes?10:n.numTypes,o=e.forBinning?P:Z,t=F(n.layer,o,e.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+R(o).join(", "));const s=null!=n.signal?{signal:n.signal}:null;await t.load(s);const a=t.geometryType;if(n.outlineOptimizationEnabled="polygon"===a&&n.outlineOptimizationEnabled,n.sizeOptimizationEnabled=("point"===a||"multipoint"===a||"polyline"===a)&&n.sizeOptimizationEnabled,"mesh"===a)n.symbolType="3d-volumetric",n.colorMixMode=n.colorMixMode||"replace",n.edgesType=n.edgesType||"none";else{if("3d-volumetric-uniform"===n.symbolType&&"point"!==a)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(n.symbolType.includes("3d-volumetric")&&(!n.view||"3d"!==n.view.type))throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const u=await U({field:n.field,field2:n.field2,field3:n.field3,valueExpression:n.valueExpression}),p=I(t,u,"type-renderer:invalid-parameters");if(p)throw p;return{...n,layer:t,numTypes:r}}async function $(e){const l="regenerate-type-renderer";await y(e,l);const n=await v(e),r=b(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:h}=e,T=w(n),z=g(n),E=await A({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:T,sizeOptimizationEnabled:z,forBinning:d,filter:c,view:f,signal:h});return{...e,creatorParameters:E,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[D.PointCloudLayer],o=F(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+R(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!S(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await U({field:n.field}),a=I(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await z(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:L(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function N(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function W(e,i,l){let n;"count"===i?(n=Q,l&&"codedValues"in l&&l.codedValues&&(n=N)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function X(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:u,field2:p,field3:m}=i,d=e.uniqueValueInfos,c=i.layer,f=u?c.getField(u):null,y=f?c.getFieldDomain(f.name):null,v=-1===i.numTypes?d.length:i.numTypes,b=c.geometryType,w=new t({field:u,field2:p,field3:m,fieldDelimiter:u&&p?C:null}),g=[],h=[],T={value:null,domain:y,fieldInfo:f};d.forEach(((e,i)=>{T.value=e.value,e.label=a(T);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&g.unshift(i)}));for(const n of g)h.unshift(d.splice(n,1)[0]);!1!==i.sortEnabled&&W(d,i.sortBy,y),Y(T,i,d);const z=l?.opacity,E=await H({numColors:d.length,basemap:i.basemap,geometryType:b,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),x=E.scheme,I=x.colors.map((e=>e.clone())),S=V(x,b),O=M(x,b,z);d.forEach(((e,l)=>{T.value=e.value,e.label=a(T),e.symbol=j(b,{type:i.symbolType,color:I[l],size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})),i.valueExpression&&(w.valueExpression=i.valueExpression,w.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(w.legendOptions=new s(i.legendOptions));for(let n=0;n<v;n++){const e=d[n];e&&w.addUniqueValueInfo({value:e.value,label:e.label,symbol:j(b,{type:i.symbolType,color:I[n].clone(),size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(w.defaultSymbol=j(b,{type:i.symbolType,color:x.noDataColor,size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),w.defaultLabel=o.other);for(const n of h)n.symbol=j(b,{type:i.symbolType,color:x.noDataColor,size:S,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),d.push(n);const q=[],U=w.uniqueValueInfos?.length??0,B=U===d.length?-1:U;if(B>-1)for(let n=B;n<d.length;n++)q.push({...d[n]});return l?.visualVariables?.length&&(w.visualVariables=l.visualVariables.map((e=>e.clone()))),r?.minSize&&(w.visualVariables?w.visualVariables.push(r.minSize):w.visualVariables=[r.minSize]),{renderer:w,uniqueValueInfos:d,excludedUniqueValueInfos:q,typeScheme:L(x),basemapId:E.basemapId,basemapTheme:E.basemapTheme}}function Y(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(B(a)||r(a))){const i=l.filter(((e,i)=>i<o)).map((e=>e.value)),n=r(a)?null:u(i),m=n?p[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:m},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function _(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return W(n,"value"),n.map(((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new m({values:[l],color:n,label:e.label})}))}async function ee(e){const i=await A(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:O(t),i.outlineOptimizationEnabled?d({layer:l,view:n,signal:r,filter:o}).catch(E):null,i.sizeOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(E):null]);return X(s,i,a,u)}async function ie(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await $(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a}=i,[u,p]=await Promise.all([s?d({layer:t,view:l,signal:n,filter:r}).catch(E):null,a?c({layer:t,view:l,signal:n,filter:r}).catch(E):null]);return f(o,u?.visualVariables,h),f(o,p?.minSize,T),{renderer:o}}async function le(e){const i=await G(e),l=null!=i.statistics?i.statistics:await O({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:x(i.size),colorUniqueValueInfos:await _(l,i.typeScheme)})}}export{le as createPCClassRenderer,ee as createRenderer,H as getTypeSchemeData,ie as regenerateRenderer};
@@ -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 e from"../../Color.js";import{isSome as r}from"../../core/arrayUtils.js";import i from"./support/colors.js";import{createThemes as l,getThemesforBasemap as g,getRawSchemes as t,filterSchemesByName as a,filterSchemesByTag as s}from"./support/symbologyUtils.js";import{hasIdenticalColors as n,toWorldScale as o}from"./support/utils.js";const d={light:{color:[153,153,153,.25],width:"0.5px"},lighter:{color:[194,194,194,.25],width:"0.5px"},lightest:{color:[153,153,153,.25],width:"0.5px"}},b={grayBasemaps:{outline:d.lightest,fillOpacity:.8,width:"2px",size:"8px"}},h="#aaaaaa",u="#ffffff",y="12px",p=["seq-cividis","seq-single-blues","seq-yellow-red-purple","seq-yellow-orange-red","seq-yellow-pink-purple","seq-yellow-purple-blue","seq-yellow-green-blue","seq-teal-lightgreen-bright","seq-green-lightgray-bright","seq-teal-lightbrown-bright","seq-lightred-darkgray-bright","seq-orange-red-light","seq-red-lightgray-bright","seq-blue-lightgray-bright","seq-orange-lightgray-bright","seq-blue-red-yellow-bright","seq-blue-tan-bright","seq-pink-red","seq-red-blue-green","seq-orange-red-dark","seq-magenta-light","seq-red-light","seq-orange-light","seq-mustard-light","seq-yellowgreen-light","seq-green-light","seq-aqua-light","seq-cyan-light","seq-blue-light","seq-purple-light","seq-brown-light","seq-steel-light","seq-brown-palegreen","seq-purple-pink-yellow","seq-blue-green-yellow","seq-green-avocado-lightpurple","seq-turquoise-lightgreen","seq-red-brown-white","seq-purple-pink-white","seq-blue-green-white","seq-green-avocado-white","seq-turquoise-lightgreen-white","seq-snowy-mountain","seq-snow-cactus","seq-subdued-red-yellow","seq-subdued-purple-blue","seq-subdued-blue-cyan","seq-subdued-green-yellow","seq-subdued-green","seq-lines-blue-orange","seq-lines-purple-brown","seq-esribrand-red","seq-esribrand-red-orange","seq-esribrand-orange","seq-esribrand-orangeyellow","seq-esribrand-yellow","seq-esribrand-yellowgreen","seq-esribrand-green","seq-esribrand-greenblue","seq-esribrand-blue","seq-esribrand-violet","seq-esribrand-violetred","seq-esribrand-brown","seq-esribrand-gray","seq-single-greens","seq-single-grays","seq-single-oranges","seq-single-purples","seq-single-reds","seq-multi-bugn","seq-multi-bupu","seq-multi-gnbu","seq-multi-orrd","seq-multi-pubu","seq-multi-pubugn","seq-multi-purd","seq-multi-rdpu","seq-multi-ylgn","seq-multi-ylgnbu","seq-multi-ylorbr","seq-multi-ylorrd","point-cloud-intensity-scheme"],m=["seq-magma","seq-inferno","seq-plasma","seq-viridis","seq-blue-gray-bright","seq-reds-bright","seq-purples-bright","seq-greens-bright","seq-browns-bright","seq-dark-to-light-magenta-bright","seq-dark-to-light-purple-bright","seq-dark-to-light-blue-bright","seq-dark-to-light-green-bright","seq-brown-to-tan-bright","seq-lightgray-blue-bright","seq-lightgray-green-bright","seq-lightgray-darkmagenta-bright","seq-yellow-darkblue-bright","seq-blues-bright","seq-gray-lightgreen-bright","seq-lightmagenta-darkgray-bright","seq-lightblue-darkgray-bright","seq-magenta","seq-red","seq-orange","seq-yellow","seq-yellowgreen","seq-green","seq-turquoise","seq-royal","seq-blueberry","seq-purple","seq-brown","seq-blue","seq-red-darkblue","seq-purple-darkgreen","seq-blue-darkgreen","seq-green-darkpurple","seq-blue-gray","seq-mentone-beach","seq-subdued-brown-tan","seq-subdued-gray-green","seq-subdued-green-tan","seq-subdued-blue-purple","seq-subdued-pink-brown","seq-subdued-green-pink","seq-lines-green-brown","seq-lines-yellow-blue","seq-blue-bright-1","seq-green-bright-1","seq-green-bright-2","seq-green-bright-3","seq-blue-bright-2","seq-blue-bright-3","seq-blue-bright-4","seq-blue-bright-5","seq-red-purple-bright","seq-red-magenta-bright","seq-red-bright-3","seq-red-bright-4","seq-yellow-bright-1","seq-yellow-bright-2","seq-yellow-bright-3","seq-yellow-bright-4","seq-yellow-gray-bright","seq-green-gray-bright","seq-red-gray-bright","seq-gray-redbright","seq-gray-green-bright","seq-gray-blue-bright","seq-gray-purple-bright","seq-plaingray-bright","seq-greengray-bright","seq-coolgray-bright","seq-warmgray-bright","seq-yellow-green-combo-bright","seq-cyan-blue-combo-bright","seq-magenta-purple-combo-bright","point-cloud-elevation-scheme"],v=["div-bluegreen-yellow-orange","div-orange-yellow-blue-light","div-green-yellow-redpurple","div-green-yellow-orange","div-green-gray-bright","div-red-blue-bright","div-blue-orange-bright","div-blue-lightgreen-bright","div-red-gray-bright","div-blue-gray-bright","div-red-lightgreen-bright","div-green-teal-bright","div-bluegreen-orange","div-orange-purple","div-bluegreen-purple","div-orange-pink","div-blue-yellow-red-bright","div-red-green-bright","div-orange-gray-bright","div-blue-green-bright","div-purple-brown-bright","div-blue-brown-bright","div-teal-brown-bright","div-lightblue-gray-bright","div-redpurple-blue","div-orange-blue","div-green-pink","div-bluegreen-redpurple","div-green-redpurple","div-green-orange","div-red-yellow-pink","div-blue-green","div-bluegreen-yellow-redpurple","div-bluegreen-pink","div-red-yellow-purple","div-orange-yellow-pink","div-orange-yellow-blue-dark","div-green-purple-light","div-blue-red-light","div-green-purple-light-2","div-cyan-blue-light","div-blue-yellow-light","div-purple-yellow-light","div-magenta-yellow-light","div-purple-green-light","div-blue-blue","div-green-green","div-blue-green-light","div-red-green-light","div-blue-yellow-brown-light","div-blue-white-brown","div-subdued-red-green","div-subdued-red-purple","div-subdued-brown-gray","div-subdued-sepia-gray","div-subdued-blue-gray","div-subdued-green-brown","div-lines-blue-brown","div-lines-green-purple","div-lines-red-gray","div-esribrand-red-bluegreen","div-esribrand-red-blue","div-esribrand-red-violet","div-esribrand-red-violetred","div-esribrand-red-gray","div-esribrand-redorange-greenblue","div-esribrand-redorange-blue","div-esribrand-redorange-violet","div-esribrand-redorange-violetred","div-esribrand-redorange-gray","div-esribrand-orange-greenblue","div-esribrand-orange-blue","div-esribrand-orange-violet","div-esribrand-orange-violetred","div-esribrand-orange-gray","div-esribrand-orangeyellow-greenblue","div-esribrand-orangeyellow-blue","div-esribrand-orangeyellow-violet","div-esribrand-orangeyellow-violetred","div-esribrand-orangeyellow-gray","div-esribrand-yellow-green-blue","div-esribrand-yellow-blue","div-esribrand-yellow-violet","div-esribrand-yellow-violetred","div-esribrand-yellow-brown","div-esribrand-yellow-gray","div-esribrand-yellowgreen-greenblue","div-esribrand-yellowgreen-blue","div-esribrand-yellowgreen-violet","div-esribrand-yellowgreen-violetred","div-esribrand-yellowgreen-brown","div-esribrand-yellowgreen-gray","div-esribrand-green-blue","div-esribrand-green-violet","div-esribrand-green-violetred","div-esribrand-green-gray","div-esribrand-greenblue-blue","div-esribrand-greenblue-violetred","div-esribrand-greenblue-brown","div-esribrand-greenblue-gray","div-esribrand-blue-brown","div-esribrand-blue-gray","div-esribrand-violet-brown","esribrand-violet-gray","div-esribrand-violetred-gray","div-esribrand-brown-gray","div-blue-yellow-brown","div-purple-yellow-brown","div-purple-beige-green","div-teal-yellow-brown","div-yellow-magenta-light","div-green-yellow-blue","div-brown-blue","div-red-green-cyan","div-yellow-slate-teal","div-brbg","div-piyg","div-prgn","div-puor","div-rdbu","div-rdgy","div-rdylbu","div-rdylgn","div-spectral"],w=["div-blue-green-bright-1","div-blue-red-bright-1","div-lightgreen-yellow-bright","div-lightred-gray-bright","div-lightgreen-gray-bright","div-yellow-green-bright","div-green-darkgray-bright","div-lightmagenta-gray-bright","div-lightblue-yellow-bright","div-yellow-gray-purple","div-red-gray-blue","div-green-gray-purple","div-orange-gray-blue","div-green-purple","div-blue-red","div-green-magenta","div-blue-orange","div-blue-yellow","div-purple-yellow","div-magenta-yellow","div-purple-green-dark","div-green-brown","div-green-gray","div-blue-white","div-red-steel","div-aqua-darkgray-red","div-subdued-tan-blue","div-subdued-green-blue","div-subdued-green-pink","div-lines-green-orange","div-lines-yellow-blue","div-yellow-orange-purple-bright","div-yellow-blue-bright-1","div-yellow-blue-bright-2","div-yellow-blue-bright","div-yellow-blue-bright-3","div-yellow-purple-bright-1","div-yellow-purple-bright-2","div-yellow-red-bright-1","div-yellow-red-bright-2","div-yellow-gray-bright-1","div-yellow-gray-bright-2","div-yellow-gray-bright-3","div-purple-green-bright-1","div-purple-green-bright-2","div-pink-yellow-bright-1","div-pink-yellow-bright-2","div-red-blue-bright-1","div-red-blue-bright-2","div-orange-blue-bright-3","div-orange-blue-bright-4","div-red-purple-bright","div-red-gray-bright-1","div-red-gray-bright-2","div-red-gray-bright-3","div-teal-yellow-bright-1","div-teal-yellow-bright-2","div-teal-orange-bright","div-green-red-bright","div-green-magenta-bright","div-green-purple-bright-1","div-green-purple-bright-2","div-green-blue-bright-1","div-green-blue-bright-2","div-green-gray-bright-1","div-green-gray-bright-2","div-green-gray-bright-3","div-blue-yellow-bright-2","div-blue-lightorange-bright","div-blue-orange-bright-1","div-blue-orange-bright-2","div-blue-red-bright-2","div-blue-tan-bright","div-blue-gray-bright-1","div-blue-gray-bright-2","div-blue-gray-bright-3","div-blue-green-orange","div-purple-orange","div-purple-green","div-teal-orange","div-red-purple-blue","div-yellow-magenta","div-green-blue","div-blue-brown","div-red-cyan","div-yellow-teal"],c=["highlight-orange","highlight-blue","highlight-bluegreen","highlight-pink","highlight-purple","highlight-red","highlight-blue-dark","highlight-orange-dark","highlight-blue-gray","highlight-bluegreen-gray","highlight-orange-gray","highlight-pink-gray","highlight-purple-gray","highlight-red-gray","highlight-blue-gray-dark","highlight-orange-gray-dark","highlight-pink-gray-dark","highlight-purple-gray-dark","highlight-blue-bright-gray-dark","highlight-green-gray-dark","highlight-brown-gray-dark"],q=["highlight-orange-bright","highlight-blue-bright","highlight-blue-gray-bright","highlight-orange-gray-bright","highlight-red-gray-bright","highlight-purple-gray-bright","highlight-blue-bright-gray-bright","highlight-green-gray-bright","highlight-yellow-gray-bright"],k=["extremesdiv-orange-yellow-blue-dark","extremes-blue","extremes-blue-dark","extremes-bluegreen","extremes-orange","extremes-orange-dark","extremes-pink","extremes-purple","extremes-red","extremesdiv-blue-green","extremesdiv-bluegreen-pink","extremesdiv-bluegreen-purple","extremesdiv-bluegreen-redpurple","extremesdiv-bluegreen-yellow-orange","extremesdiv-green-pink","extremesdiv-green-yellow-orange","extremesdiv-green-yellow-redpurple","extremesdiv-orange-pink","extremesdiv-orange-purple","extremesdiv-orange-yellow-blue-light","extremesdiv-red-yellow-pink","extremesdiv-red-yellow-purple","extremesdiv-redpurple-blue","extremes-blue-gray","extremes-blue-gray-dark","extremes-bluegreen-gray","extremes-orange-gray","extremes-orange-gray-dark","extremes-pink-gray","extremes-purple-gray","extremes-red-gray","extremes-pink-gray-dark","extremes-purple-gray-dark","extremes-blue-bright-gray-dark","extremes-green-gray-dark","extremes-brown-gray-dark"],x=["extremes-orange-bright","extremes-blue-bright","extremes-blue-gray-bright","extremes-orange-gray-bright","extremesdiv-green-purple","extremesdiv-orange-blue","extremesdiv-red-blue","extremesdiv-yellow-purple","extremes-red-gray-bright","extremes-purple-gray-bright","extremes-blue-bright-gray-bright","extremes-green-gray-bright","extremes-yellow-gray-bright"],f=["highlight-orange-gray","highlight-bluegreen-gray","highlight-purple-gray","highlight-pink-gray","highlight-blue-gray","highlight-red-gray","highlight-orange-gray-dark","highlight-blue-gray-dark","highlight-orange-gray-bright","highlight-blue-gray-bright","extremes-orange-gray","extremes-bluegreen-gray","extremes-purple-gray","extremes-pink-gray","extremes-blue-gray","extremes-red-gray","extremes-orange-gray-dark","extremes-blue-gray-dark","extremes-orange-gray-bright","extremes-blue-gray-bright","highlight-red-gray-bright","highlight-purple-gray-bright","highlight-blue-bright-gray-bright","highlight-green-gray-bright","highlight-yellow-gray-bright","highlight-pink-gray-dark","highlight-purple-gray-dark","highlight-blue-bright-gray-dark","highlight-green-gray-dark","highlight-brown-gray-dark","extremes-red-gray-bright","extremes-purple-gray-bright","extremes-blue-bright-gray-bright","extremes-green-gray-bright","extremes-yellow-gray-bright","extremes-pink-gray-dark","extremes-purple-gray-dark","extremes-blue-bright-gray-dark","extremes-green-gray-dark","extremes-brown-gray-dark"],C={light:{common:b.grayBasemaps,primary:"seq-single-blues",secondary:[...p,...m].filter((e=>"seq-single-blues"!==e))},dark:{common:b.grayBasemaps,primary:"seq-blue-gray-bright",secondary:[...m,...p].filter((e=>"seq-blue-gray-bright"!==e))}},D=l({themeDictionary:{"high-to-low":{name:"high-to-low",label:"TODO",description:"TODO",schemes:{default:C}},"above-and-below":{name:"above-and-below",label:"TODO",description:"TODO",schemes:{default:{light:{common:b.grayBasemaps,primary:"div-rdbu",secondary:[...v,...w].filter((e=>"div-rdbu"!==e))},dark:{common:b.grayBasemaps,primary:"div-blue-red-bright-1",secondary:[...w,...v].filter((e=>"div-blue-red-bright-1"!==e))}}}},"centered-on":{name:"centered-on",label:"TODO",description:"TODO",schemes:{default:{light:{common:{outline:d.lighter,width:"2px",size:"8px"},primary:"highlight-orange",primaryGray:"highlight-orange-gray",secondary:[...c,...q].filter((e=>"highlight-orange"!==e))},dark:{common:{outline:d.light,width:"2px",size:"8px"},primary:"highlight-orange-bright",primaryGray:"highlight-orange-gray-bright",secondary:[...q,...c].filter((e=>"highlight-orange-bright"!==e))}}}},extremes:{name:"extremes",label:"TODO",description:"TODO",schemes:{default:{light:{common:{outline:d.lighter,width:"2px",size:"8px"},primary:"extremesdiv-orange-purple",primaryGray:"extremes-orange-gray",secondary:[...k,...x].filter((e=>"extremesdiv-orange-purple"!==e))},dark:{common:{outline:d.light,width:"2px",size:"8px"},primary:"extremesdiv-orange-blue",primaryGray:"extremes-orange-gray-bright",secondary:[...x,...k].filter((e=>"extremesdiv-orange-blue"!==e))}}}},above:{name:"above",label:"TODO",description:"TODO",schemes:{default:C}},below:{name:"below",label:"TODO",description:"TODO",schemes:{default:C}}}});function O(e){return g(D,e)}function T(e){const i=e.theme,l=t({basemap:e.basemap,basemapTheme:e.basemapTheme,theme:i?D.get(i):null});if(!l)return;let g=l.schemesInfo;const a=g.common,{basemapId:s,basemapTheme:n}=l;!e.worldScale||"centered-on"!==i&&"extremes"!==i||(g={...g},g.secondary=g.secondary.slice(),g.secondary.push(g.primary),g.primary=g.primaryGray,delete g.primaryGray,g.secondary=g.secondary.filter((e=>{const r=e.includes("gray");return e!==g.primary&&r})));const o={...e,basemap:s};return{primaryScheme:E(o,g.primary,a),secondarySchemes:g.secondary.map((e=>E(o,e,a))).filter(r),basemapId:s,basemapTheme:n}}function B(e){return a(e.name,T(e))}function F(e){return s(e.includedTags,e.excludedTags,T(e))}function z(e){let r,i,l="";const g=e.id;if(g){const e=g.split("/");e&&(l=e[0],r=e[1],i=e[2])}const a=t({basemap:r,theme:D.get(l)});if(!a)return;const{schemesInfo:s}=a;return E({theme:l,basemap:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view},i,s.common)}function S(r){if(!r)return;const i={...r};return i.colors=i.colors.map((r=>new e(r))),i.tags=[...i.tags],i.colorsForClassBreaks=i.colorsForClassBreaks.map((r=>({numClasses:r.numClasses,colors:r.colors.map((r=>new e(r)))}))),i.noDataColor&&(i.noDataColor=new e(i.noDataColor)),"outline"in i&&i.outline&&(i.outline={color:i.outline.color&&new e(i.outline.color),width:i.outline.width}),i}function G(e){const r=e;return r.colors.reverse(),r.colorsForClassBreaks.forEach((e=>{e.colors.reverse()})),r}function j(e){const r=e.theme,i=e.colors,l=D.get(r).supportedBasemaps,g=[],a={theme:r,basemap:null,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view};return l.forEach((e=>{const l=t({basemap:e,theme:D.get(r)}).schemesInfo;if(a.basemap=e,l){const e=I(E(a,l.primary,l.common),i);e&&g.push(e),l.secondary.forEach((e=>{const r=I(E(a,e,l.common),i);r&&g.push(r)}))}})),g}function I(e,r){let i,l;if(l=n(e.colors,r),l)i=l>0?e:G(e);else{let g;e.colorsForClassBreaks.some((e=>(e.numClasses===r.length&&(g=e.colors),!!g))),g&&(l=n(g,r),l&&(i=l>0?e:G(e)))}return i}function E(e,r,l){const g=i[r];if(!g)return;const t=e.theme??"",a="mesh"!==e.geometryType&&e.worldScale?e.view:null;let s=l.fillOpacity;null==s&&null!=r&&f.includes(r)&&(s=.8);const n="below"===e.theme,o=n?[...g.stops].reverse():g.stops,d=[];for(const i in g)if("stops"!==i&&"name"!==i&&"tags"!==i){const e=+i;d.push({numClasses:e,colors:n?[...g[e]].reverse():g[e]})}const b=null!=r&&f.includes(r)?u:h,p=t+"/"+e.basemap+"/"+r,m=s||1;switch(e.geometryType){case"point":case"multipoint":return U({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,outline:l.outline,size:l.size},a);case"polyline":return A({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,width:l.width},a);case"polygon":return H({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,outline:l.outline,size:y},a);case"mesh":return J({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b});default:return}}function U(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),outline:{color:new e(r.outline.color),width:r.outline.width},size:i&&"3d"===i.type?o(r.size,i):r.size,opacity:r.opacity}}function A(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),width:i&&"3d"===i.type?o(r.width,i):r.width,opacity:r.opacity}}function H(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),outline:{color:new e(r.outline.color),width:r.outline.width},opacity:r.opacity,size:i&&"3d"===i.type?o(r.size,i):r.size}}function J(r){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),opacity:r.opacity}}function K(r){return r.map((r=>({numClasses:r.numClasses,colors:r.colors.map((r=>new e(r)))})))}export{q as centeredOnDarkSchemes,c as centeredOnLightSchemes,S as cloneScheme,w as divergingDarkSchemes,v as divergingLightSchemes,x as extremesDarkSchemes,k as extremesLightSchemes,f as fadeToGraySchemes,G as flipColors,j as getMatchingSchemes,z as getSchemeById,B as getSchemeByName,T as getSchemes,F as getSchemesByTag,O as getThemes,m as sequentialDarkSchemes,p as sequentialLightSchemes};
5
+ import e from"../../Color.js";import{isSome as r}from"../../core/arrayUtils.js";import i from"./support/colors.js";import{createThemes as l,getThemesforBasemap as g,getRawSchemes as t,filterSchemesByName as a,filterSchemesByTag as s}from"./support/symbologyUtils.js";import{hasIdenticalColors as n,toWorldScale as o}from"./support/utils.js";const d={light:{color:[153,153,153,.25],width:"0.5px"},lighter:{color:[194,194,194,.25],width:"0.5px"},lightest:{color:[153,153,153,.25],width:"0.5px"}},b={grayBasemaps:{outline:d.lightest,fillOpacity:.8,width:"2px",size:"8px"}},h="#aaaaaa",u="#ffffff",y="12px",p=["seq-cividis","seq-single-blues","seq-yellow-red-purple","seq-yellow-orange-red","seq-yellow-pink-purple","seq-yellow-purple-blue","seq-yellow-green-blue","seq-teal-lightgreen-bright","seq-green-lightgray-bright","seq-teal-lightbrown-bright","seq-lightred-darkgray-bright","seq-orange-red-light","seq-red-lightgray-bright","seq-blue-lightgray-bright","seq-orange-lightgray-bright","seq-blue-red-yellow-bright","seq-blue-tan-bright","seq-pink-red","seq-red-blue-green","seq-orange-red-dark","seq-magenta-light","seq-red-light","seq-orange-light","seq-mustard-light","seq-yellowgreen-light","seq-green-light","seq-aqua-light","seq-cyan-light","seq-blue-light","seq-purple-light","seq-brown-light","seq-steel-light","seq-brown-palegreen","seq-purple-pink-yellow","seq-blue-green-yellow","seq-green-avocado-lightpurple","seq-turquoise-lightgreen","seq-red-brown-white","seq-purple-pink-white","seq-blue-green-white","seq-green-avocado-white","seq-turquoise-lightgreen-white","seq-snowy-mountain","seq-snow-cactus","seq-subdued-red-yellow","seq-subdued-purple-blue","seq-subdued-blue-cyan","seq-subdued-green-yellow","seq-subdued-green","seq-lines-blue-orange","seq-lines-purple-brown","seq-esribrand-red","seq-esribrand-red-orange","seq-esribrand-orange","seq-esribrand-orangeyellow","seq-esribrand-yellow","seq-esribrand-yellowgreen","seq-esribrand-green","seq-esribrand-greenblue","seq-esribrand-blue","seq-esribrand-violet","seq-esribrand-violetred","seq-esribrand-brown","seq-esribrand-gray","seq-single-greens","seq-single-grays","seq-single-oranges","seq-single-purples","seq-single-reds","seq-multi-bugn","seq-multi-bupu","seq-multi-gnbu","seq-multi-orrd","seq-multi-pubu","seq-multi-pubugn","seq-multi-purd","seq-multi-rdpu","seq-multi-ylgn","seq-multi-ylgnbu","seq-multi-ylorbr","seq-multi-ylorrd","point-cloud-intensity-scheme"],m=["seq-magma","seq-inferno","seq-plasma","seq-viridis","seq-blue-gray-bright","seq-reds-bright","seq-purples-bright","seq-greens-bright","seq-browns-bright","seq-dark-to-light-magenta-bright","seq-dark-to-light-purple-bright","seq-dark-to-light-blue-bright","seq-dark-to-light-green-bright","seq-brown-to-tan-bright","seq-lightgray-blue-bright","seq-lightgray-green-bright","seq-lightgray-darkmagenta-bright","seq-yellow-darkblue-bright","seq-blues-bright","seq-gray-lightgreen-bright","seq-lightmagenta-darkgray-bright","seq-lightblue-darkgray-bright","seq-magenta","seq-red","seq-orange","seq-yellow","seq-yellowgreen","seq-green","seq-turquoise","seq-royal","seq-blueberry","seq-purple","seq-brown","seq-blue","seq-red-darkblue","seq-purple-darkgreen","seq-blue-darkgreen","seq-green-darkpurple","seq-blue-gray","seq-mentone-beach","seq-subdued-brown-tan","seq-subdued-gray-green","seq-subdued-green-tan","seq-subdued-blue-purple","seq-subdued-pink-brown","seq-subdued-green-pink","seq-lines-green-brown","seq-lines-yellow-blue","seq-blue-bright-1","seq-green-bright-1","seq-green-bright-2","seq-green-bright-3","seq-blue-bright-2","seq-blue-bright-3","seq-blue-bright-4","seq-blue-bright-5","seq-red-purple-bright","seq-red-magenta-bright","seq-red-bright-3","seq-red-bright-4","seq-yellow-bright-1","seq-yellow-bright-2","seq-yellow-bright-3","seq-yellow-bright-4","seq-yellow-gray-bright","seq-green-gray-bright","seq-red-gray-bright","seq-gray-redbright","seq-gray-green-bright","seq-gray-blue-bright","seq-gray-purple-bright","seq-plaingray-bright","seq-greengray-bright","seq-coolgray-bright","seq-warmgray-bright","seq-yellow-green-combo-bright","seq-cyan-blue-combo-bright","seq-magenta-purple-combo-bright","point-cloud-elevation-scheme"],v=["div-bluegreen-yellow-orange","div-orange-yellow-blue-light","div-green-yellow-redpurple","div-green-yellow-orange","div-green-gray-bright","div-red-blue-bright","div-blue-orange-bright","div-blue-lightgreen-bright","div-red-gray-bright","div-blue-gray-bright","div-red-lightgreen-bright","div-green-teal-bright","div-bluegreen-orange","div-orange-purple","div-bluegreen-purple","div-orange-pink","div-blue-yellow-red-bright","div-red-green-bright","div-orange-gray-bright","div-blue-green-bright","div-purple-brown-bright","div-blue-brown-bright","div-teal-brown-bright","div-lightblue-gray-bright","div-redpurple-blue","div-orange-blue","div-green-pink","div-bluegreen-redpurple","div-green-redpurple","div-green-orange","div-red-yellow-pink","div-blue-green","div-bluegreen-yellow-redpurple","div-bluegreen-pink","div-red-yellow-purple","div-orange-yellow-pink","div-orange-yellow-blue-dark","div-green-purple-light","div-blue-red-light","div-green-purple-light-2","div-cyan-blue-light","div-blue-yellow-light","div-purple-yellow-light","div-magenta-yellow-light","div-purple-green-light","div-blue-blue","div-green-green","div-blue-green-light","div-red-green-light","div-blue-yellow-brown-light","div-blue-white-brown","div-subdued-red-green","div-subdued-red-purple","div-subdued-brown-gray","div-subdued-sepia-gray","div-subdued-blue-gray","div-subdued-green-brown","div-lines-blue-brown","div-lines-green-purple","div-lines-red-gray","div-esribrand-red-bluegreen","div-esribrand-red-blue","div-esribrand-red-violet","div-esribrand-red-violetred","div-esribrand-red-gray","div-esribrand-redorange-greenblue","div-esribrand-redorange-blue","div-esribrand-redorange-violet","div-esribrand-redorange-violetred","div-esribrand-redorange-gray","div-esribrand-orange-greenblue","div-esribrand-orange-blue","div-esribrand-orange-violet","div-esribrand-orange-violetred","div-esribrand-orange-gray","div-esribrand-orangeyellow-greenblue","div-esribrand-orangeyellow-blue","div-esribrand-orangeyellow-violet","div-esribrand-orangeyellow-violetred","div-esribrand-orangeyellow-gray","div-esribrand-yellow-green-blue","div-esribrand-yellow-blue","div-esribrand-yellow-violet","div-esribrand-yellow-violetred","div-esribrand-yellow-brown","div-esribrand-yellow-gray","div-esribrand-yellowgreen-greenblue","div-esribrand-yellowgreen-blue","div-esribrand-yellowgreen-violet","div-esribrand-yellowgreen-violetred","div-esribrand-yellowgreen-brown","div-esribrand-yellowgreen-gray","div-esribrand-green-blue","div-esribrand-green-violet","div-esribrand-green-violetred","div-esribrand-green-gray","div-esribrand-greenblue-blue","div-esribrand-greenblue-violetred","div-esribrand-greenblue-brown","div-esribrand-greenblue-gray","div-esribrand-blue-brown","div-esribrand-blue-gray","div-esribrand-violet-brown","esribrand-violet-gray","div-esribrand-violetred-gray","div-esribrand-brown-gray","div-blue-yellow-brown","div-purple-yellow-brown","div-purple-beige-green","div-teal-yellow-brown","div-yellow-magenta-light","div-green-yellow-blue","div-brown-blue","div-red-green-cyan","div-yellow-slate-teal","div-brbg","div-piyg","div-prgn","div-puor","div-rdbu","div-rdgy","div-rdylbu","div-rdylgn","div-spectral"],w=["div-blue-green-bright-1","div-blue-red-bright-1","div-lightgreen-yellow-bright","div-lightred-gray-bright","div-lightgreen-gray-bright","div-yellow-green-bright","div-green-darkgray-bright","div-lightmagenta-gray-bright","div-lightblue-yellow-bright","div-yellow-gray-purple","div-red-gray-blue","div-green-gray-purple","div-orange-gray-blue","div-green-purple","div-blue-red","div-green-magenta","div-blue-orange","div-blue-yellow","div-purple-yellow","div-magenta-yellow","div-purple-green-dark","div-green-brown","div-green-gray","div-blue-white","div-red-steel","div-aqua-darkgray-red","div-subdued-tan-blue","div-subdued-green-blue","div-subdued-green-pink","div-lines-green-orange","div-lines-yellow-blue","div-yellow-orange-purple-bright","div-yellow-blue-bright-1","div-yellow-blue-bright-2","div-yellow-blue-bright","div-yellow-blue-bright-3","div-yellow-purple-bright-1","div-yellow-purple-bright-2","div-yellow-red-bright-1","div-yellow-red-bright-2","div-yellow-gray-bright-1","div-yellow-gray-bright-2","div-yellow-gray-bright-3","div-purple-green-bright-1","div-purple-green-bright-2","div-pink-yellow-bright-1","div-pink-yellow-bright-2","div-red-blue-bright-1","div-red-blue-bright-2","div-orange-blue-bright-3","div-orange-blue-bright-4","div-red-purple-bright","div-red-gray-bright-1","div-red-gray-bright-2","div-red-gray-bright-3","div-teal-yellow-bright-1","div-teal-yellow-bright-2","div-teal-orange-bright","div-green-red-bright","div-green-magenta-bright","div-green-purple-bright-1","div-green-purple-bright-2","div-green-blue-bright-1","div-green-blue-bright-2","div-green-gray-bright-1","div-green-gray-bright-2","div-green-gray-bright-3","div-blue-yellow-bright-2","div-blue-lightorange-bright","div-blue-orange-bright-1","div-blue-orange-bright-2","div-blue-red-bright-2","div-blue-tan-bright","div-blue-gray-bright-1","div-blue-gray-bright-2","div-blue-gray-bright-3","div-blue-green-orange","div-purple-orange","div-purple-green","div-teal-orange","div-red-purple-blue","div-yellow-magenta","div-green-blue","div-blue-brown","div-red-cyan","div-yellow-teal"],c=["highlight-orange","highlight-blue","highlight-bluegreen","highlight-pink","highlight-purple","highlight-red","highlight-blue-dark","highlight-orange-dark","highlight-blue-gray","highlight-bluegreen-gray","highlight-orange-gray","highlight-pink-gray","highlight-purple-gray","highlight-red-gray","highlight-blue-gray-dark","highlight-orange-gray-dark","highlight-pink-gray-dark","highlight-purple-gray-dark","highlight-blue-bright-gray-dark","highlight-green-gray-dark","highlight-brown-gray-dark"],q=["highlight-orange-bright","highlight-blue-bright","highlight-blue-gray-bright","highlight-orange-gray-bright","highlight-red-gray-bright","highlight-purple-gray-bright","highlight-blue-bright-gray-bright","highlight-green-gray-bright","highlight-yellow-gray-bright"],k=["extremesdiv-orange-yellow-blue-dark","extremes-blue","extremes-blue-dark","extremes-bluegreen","extremes-orange","extremes-orange-dark","extremes-pink","extremes-purple","extremes-red","extremesdiv-blue-green","extremesdiv-bluegreen-pink","extremesdiv-bluegreen-purple","extremesdiv-bluegreen-redpurple","extremesdiv-bluegreen-yellow-orange","extremesdiv-green-pink","extremesdiv-green-yellow-orange","extremesdiv-green-yellow-redpurple","extremesdiv-orange-pink","extremesdiv-orange-purple","extremesdiv-orange-yellow-blue-light","extremesdiv-red-yellow-pink","extremesdiv-red-yellow-purple","extremesdiv-redpurple-blue","extremes-blue-gray","extremes-blue-gray-dark","extremes-bluegreen-gray","extremes-orange-gray","extremes-orange-gray-dark","extremes-pink-gray","extremes-purple-gray","extremes-red-gray","extremes-pink-gray-dark","extremes-purple-gray-dark","extremes-blue-bright-gray-dark","extremes-green-gray-dark","extremes-brown-gray-dark"],x=["extremes-orange-bright","extremes-blue-bright","extremes-blue-gray-bright","extremes-orange-gray-bright","extremesdiv-green-purple","extremesdiv-orange-blue","extremesdiv-red-blue","extremesdiv-yellow-purple","extremes-red-gray-bright","extremes-purple-gray-bright","extremes-blue-bright-gray-bright","extremes-green-gray-bright","extremes-yellow-gray-bright"],f=["highlight-orange-gray","highlight-bluegreen-gray","highlight-purple-gray","highlight-pink-gray","highlight-blue-gray","highlight-red-gray","highlight-orange-gray-dark","highlight-blue-gray-dark","highlight-orange-gray-bright","highlight-blue-gray-bright","extremes-orange-gray","extremes-bluegreen-gray","extremes-purple-gray","extremes-pink-gray","extremes-blue-gray","extremes-red-gray","extremes-orange-gray-dark","extremes-blue-gray-dark","extremes-orange-gray-bright","extremes-blue-gray-bright","highlight-red-gray-bright","highlight-purple-gray-bright","highlight-blue-bright-gray-bright","highlight-green-gray-bright","highlight-yellow-gray-bright","highlight-pink-gray-dark","highlight-purple-gray-dark","highlight-blue-bright-gray-dark","highlight-green-gray-dark","highlight-brown-gray-dark","extremes-red-gray-bright","extremes-purple-gray-bright","extremes-blue-bright-gray-bright","extremes-green-gray-bright","extremes-yellow-gray-bright","extremes-pink-gray-dark","extremes-purple-gray-dark","extremes-blue-bright-gray-dark","extremes-green-gray-dark","extremes-brown-gray-dark"],C={light:{common:b.grayBasemaps,primary:"seq-single-blues",secondary:[...p,...m].filter((e=>"seq-single-blues"!==e))},dark:{common:b.grayBasemaps,primary:"seq-blue-gray-bright",secondary:[...m,...p].filter((e=>"seq-blue-gray-bright"!==e))}},D=l({themeDictionary:{"high-to-low":{name:"high-to-low",label:"TODO",description:"TODO",schemes:{default:C}},"above-and-below":{name:"above-and-below",label:"TODO",description:"TODO",schemes:{default:{light:{common:b.grayBasemaps,primary:"div-rdbu",secondary:[...v,...w].filter((e=>"div-rdbu"!==e))},dark:{common:b.grayBasemaps,primary:"div-blue-red-bright-1",secondary:[...w,...v].filter((e=>"div-blue-red-bright-1"!==e))}}}},"centered-on":{name:"centered-on",label:"TODO",description:"TODO",schemes:{default:{light:{common:{outline:d.lighter,width:"2px",size:"8px"},primary:"highlight-orange",primaryGray:"highlight-orange-gray",secondary:[...c,...q].filter((e=>"highlight-orange"!==e))},dark:{common:{outline:d.light,width:"2px",size:"8px"},primary:"highlight-orange-bright",primaryGray:"highlight-orange-gray-bright",secondary:[...q,...c].filter((e=>"highlight-orange-bright"!==e))}}}},extremes:{name:"extremes",label:"TODO",description:"TODO",schemes:{default:{light:{common:{outline:d.lighter,width:"2px",size:"8px"},primary:"extremesdiv-orange-purple",primaryGray:"extremes-orange-gray",secondary:[...k,...x].filter((e=>"extremesdiv-orange-purple"!==e))},dark:{common:{outline:d.light,width:"2px",size:"8px"},primary:"extremesdiv-orange-blue",primaryGray:"extremes-orange-gray-bright",secondary:[...x,...k].filter((e=>"extremesdiv-orange-blue"!==e))}}}},above:{name:"above",label:"TODO",description:"TODO",schemes:{default:C}},below:{name:"below",label:"TODO",description:"TODO",schemes:{default:C}}}});function O(e){return g(D,e)}function T(e){const i=e.theme,l=t({basemap:e.basemap,basemapTheme:e.basemapTheme,theme:i?D.get(i):null});if(!l)return;let g=l.schemesInfo;const a=g.common,{basemapId:s,basemapTheme:n}=l;!e.worldScale||"centered-on"!==i&&"extremes"!==i||(g={...g},g.secondary=g.secondary.slice(),g.secondary.push(g.primary),g.primary=g.primaryGray,delete g.primaryGray,g.secondary=g.secondary.filter((e=>{const r=e.includes("gray");return e!==g.primary&&r})));const o={...e,basemap:s};return{primaryScheme:E(o,g.primary,a),secondarySchemes:g.secondary.map((e=>E(o,e,a))).filter(r),basemapId:s,basemapTheme:n}}function B(e){return a(e.name,T(e))}function F(e){return s(e.includedTags,e.excludedTags,T(e))}function z(e){let r,i,l="";const g=e.id;if(g){const e=g.split("/");e&&(l=e[0],r=e[1],i=e[2])}const a=t({basemap:r,theme:D.get(l)});if(!a)return;const{schemesInfo:s}=a;return E({theme:l,basemap:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view},i,s.common)}function S(r){if(!r)return;const i={...r};return i.colors=i.colors.map((r=>new e(r))),i.tags=[...i.tags],i.colorsForClassBreaks=i.colorsForClassBreaks.map((r=>({numClasses:r.numClasses,colors:r.colors.map((r=>new e(r)))}))),i.noDataColor&&(i.noDataColor=new e(i.noDataColor)),"outline"in i&&i.outline&&(i.outline={color:i.outline.color&&new e(i.outline.color),width:i.outline.width}),i}function G(e){const r=e;return r.colors.reverse(),r.colorsForClassBreaks.forEach((e=>{e.colors.reverse()})),r}function j(e){const r=e.theme,i=e.colors,l=D.get(r).supportedBasemaps,g=[],a={theme:r,basemap:null,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view};return l.forEach((e=>{const l=t({basemap:e,theme:D.get(r)}).schemesInfo;if(a.basemap=e,l){const e=I(E(a,l.primary,l.common),i);e&&g.push(e),l.secondary.forEach((e=>{const r=I(E(a,e,l.common),i);r&&g.push(r)}))}})),g}function I(e,r){let i,l;if(l=n(e.colors,r),l)i=l>0?e:G(e);else{let g;e.colorsForClassBreaks.some((e=>(e.numClasses===r.length&&(g=e.colors),!!g))),g&&(l=n(g,r),l&&(i=l>0?e:G(e)))}return i}function E(e,r,l,g){if(g??=i[r],!g)return;const t=e.theme??"",a="mesh"!==e.geometryType&&e.worldScale?e.view:null;let s=l.fillOpacity;null==s&&null!=r&&f.includes(r)&&(s=.8);const n="below"===e.theme,o=g.stops?n?[...g.stops].reverse():g.stops:[],d=[];for(const i in g)if("stops"!==i&&"name"!==i&&"tags"!==i){const e=+i;d.push({numClasses:e,colors:n?[...g[e]].reverse():g[e]})}const b=null!=r&&f.includes(r)?u:h,p=t+"/"+e.basemap+"/"+r,m=s||1;switch(e.geometryType){case"point":case"multipoint":return U({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,outline:l.outline,size:l.size},a);case"polyline":return A({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,width:l.width},a);case"polygon":return H({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b,outline:l.outline,size:y},a);case"mesh":return J({id:p,name:g.name,tags:g.tags,theme:t,opacity:m,colors:o,colorsForClassBreaks:d,noDataColor:b});default:return}}function U(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),outline:{color:new e(r.outline.color),width:r.outline.width},size:i&&"3d"===i.type?o(r.size,i):r.size,opacity:r.opacity}}function A(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),width:i&&"3d"===i.type?o(r.width,i):r.width,opacity:r.opacity}}function H(r,i){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),outline:{color:new e(r.outline.color),width:r.outline.width},opacity:r.opacity,size:i&&"3d"===i.type?o(r.size,i):r.size}}function J(r){return{id:r.id,name:r.name,tags:[...r.tags],theme:r.theme,colors:r.colors.map((r=>new e(r))),colorsForClassBreaks:K(r.colorsForClassBreaks),noDataColor:new e(r.noDataColor),opacity:r.opacity}}function K(r){return r.map((r=>({numClasses:r.numClasses,colors:r.colors.map((r=>new e(r)))})))}export{q as centeredOnDarkSchemes,c as centeredOnLightSchemes,S as cloneScheme,E as createScheme,w as divergingDarkSchemes,v as divergingLightSchemes,x as extremesDarkSchemes,k as extremesLightSchemes,f as fadeToGraySchemes,G as flipColors,j as getMatchingSchemes,z as getSchemeById,B as getSchemeByName,T as getSchemes,F as getSchemesByTag,O as getThemes,m as sequentialDarkSchemes,p as sequentialLightSchemes};
@@ -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{createScreenPoint as e,pt2px as t,toPt as n}from"../../../core/screenUtils.js";import{getBasemapId as r,defaultBasemapGroups as i}from"../../support/utils.js";const o=i.light,c=i.dark,s=[...o,...c];function l(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b}function u(e,t){let n=0;if(e.length===t.length){let r=e.every(((e,n)=>l(e,t[n])));if(r)n=1;else{r=e.slice().reverse().every(((e,n)=>l(e,t[n]))),r&&(n=-1)}}return n}function a(t){const n=t.width,r=t.height;let i=t.pixelSizeAt(t.toMap(e(.5*n,.5*r),{exclude:[]}));if(i<=0&&(i=t.pixelSizeAt(t.toMap(e(.5*n,.95*r),{exclude:[]})),i<=0&&"camera"in t)){const e=t.camera.position.clone();e.z=0,i=2*t.pixelSizeAt(e)}return i}function f(e,r){return Math.ceil(a(r)*t(n(e)))}function h(e){const t=r(e,s,!1);return t?o.includes(t)?"light":c.includes(t)?"dark":void 0:null}function p(e){if(!e)return[];const t=new Set,n=[e.primaryScheme];e.secondarySchemes&&n.push(...e.secondarySchemes);for(const r of n)r&&"tags"in r&&r.tags&&r.tags.forEach((e=>t.add(e)));return[...t]}export{h as getBasemapTheme,a as getPixelSize,p as getTagsFromSchemes,u as hasIdenticalColors,f as toWorldScale};
5
+ import{pt2px as t,createScreenPoint as e,toPt as o}from"../../../core/screenUtils.js";import{getBasemapId as i,defaultBasemapGroups as n}from"../../support/utils.js";import{getCIMSymbolSize as r}from"../../../symbols/support/cimSymbolUtils.js";import{getSymbolOutlineColor as s,getSymbolOutlineSize as l,getColorFromSymbol as c}from"../../../symbols/support/utils.js";const u=n.light,p=n.dark,m=[...u,...p];function a(e){const o=e[0],i=s(o),n=l(o),u="cim"===o.type?r(o):"size"in o?o.size:"width"in o?o.width:null,p={outline:i&&null!=n?{color:i?.toArray(),width:`${t(n)}px`}:{color:[153,153,153,.25],width:"0.5px"},fillOpacity:.8,width:null!=n?`${t(n)}px`:"2px",size:null!=u?`${t(u)}px`:"8px"},m={stops:e.map((t=>c(t,1)?.toHex())).filter(Boolean),tags:["custom-scheme"],name:"custom"};return{commonProps:p,colorRampInfo:m}}function f(t,e){return t.r===e.r&&t.g===e.g&&t.b===e.b}function h(t,e){let o=0;if(t.length===e.length){let i=t.every(((t,o)=>f(t,e[o])));if(i)o=1;else{i=t.slice().reverse().every(((t,o)=>f(t,e[o]))),i&&(o=-1)}}return o}function d(t){const o=t.width,i=t.height;let n=t.pixelSizeAt(t.toMap(e(.5*o,.5*i),{exclude:[]}));if(n<=0&&(n=t.pixelSizeAt(t.toMap(e(.5*o,.95*i),{exclude:[]})),n<=0&&"camera"in t)){const e=t.camera.position.clone();e.z=0,n=2*t.pixelSizeAt(e)}return n}function x(e,i){return Math.ceil(d(i)*t(o(e)))}function g(t){const e=i(t,m,!1);return e?u.includes(e)?"light":p.includes(e)?"dark":void 0:null}function y(t){if(!t)return[];const e=new Set,o=[t.primaryScheme];t.secondarySchemes&&o.push(...t.secondarySchemes);for(const i of o)i&&"tags"in i&&i.tags&&i.tags.forEach((t=>e.add(t)));return[...e]}export{g as getBasemapTheme,a as getColorSchemeDefinition,d as getPixelSize,y as getTagsFromSchemes,h as hasIdenticalColors,x as toWorldScale};
@@ -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
- const a="20250620",c="b546c9a32c2091a03860fe8ef6a72bbe778f4a9c";export{a as buildDate,c as commitHash};
5
+ const e="20250624",c="562e012918d0148cd78ec33eb412d82850095b08";export{e as buildDate,c as commitHash};
@@ -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 e from"../../Color.js";import{forEach as t}from"../../core/asyncUtils.js";import"../../core/has.js";import{px2pt as r}from"../../core/screenUtils.js";import{ONES as o}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{effectFunctionsFromJSON as n}from"../../layers/effects/jsonUtils.js";import{getCIMSymbolColor as l}from"./cimSymbolUtils.js";import{getStroke as i}from"./gfxUtils.js";import{Symbol3DMaterial as c}from"./Symbol3DMaterial.js";import{isSymbol3D as s,isSymbol2D as u}from"./typeUtils.js";const a=new e("white");function f(e){const t=e.symbolLayers?.at(-1);if(t&&"outline"in t)return t?.outline?.size}function m(e){if(!e)return 0;if(s(e)){const t=f(e);return null!=t?t:0}return r(i(e)?.width)}function y(e){if(null==e||!("symbolLayers"in e)||null==e.symbolLayers)return!1;switch(e.type){case"point-3d":return e.symbolLayers.some((e=>"object"===e.type));case"line-3d":return e.symbolLayers.some((e=>"path"===e.type));case"polygon-3d":return e.symbolLayers.some((e=>"object"===e.type||"extrude"===e.type));default:return!1}}function p(e){return e.resource?.href??""}function h(t,r){if(!t)return null;let o=null;return s(t)?o=b(t):u(t)&&(o="cim"===t.type?l(t):t.color?new e(t.color):null),o?w(o,r):null}function b(t){const r=t.symbolLayers;if(!r)return null;let o=null;return r.forEach((e=>{"object"===e.type&&e.resource?.href||(o="water"===e.type?e.color:e.material?e.material.color:null)})),o?new e(o):null}function w(t,r){if(null==r||null==t)return t;const o=t.toRgba();return o[3]=o[3]*r,new e(o)}function d(e,t,r){const o=e.symbolLayers;if(!o)return;const n=e=>w(t??e??(null!=r?a:null),r);o.forEach((e=>{if("object"!==e.type||!e.resource?.href||t)if("water"===e.type)e.color=n(e.color);else{const t=null!=e.material?e.material.color:null,o=n(t);if(null==e.material?e.material=new c({color:o}):e.material.color=o,null!=r&&"outline"in e&&null!=e.outline?.color&&(e.outline.color=w(e.outline.color,r)),"marker"in e&&null!=e.marker){const t=n(e.marker.color);e.marker.color=t}}}))}function j(e,t,r){(t=t??e.color)&&(e.color=w(t,r)),null!=r&&"outline"in e&&e.outline?.color&&(e.outline.color=w(e.outline.color,r))}function k(t,r,o){t&&(r||null!=o)&&(r&&(r=new e(r)),s(t)?d(t,r,o):u(t)&&j(t,r,o))}async function g(e,r){const o=e.symbolLayers;o&&await t(o,(async e=>L(e,r)))}async function L(e,t){switch(e.type){case"extrude":S(e,t);break;case"icon":case"line":case"text":z(e,t);break;case"path":v(e,t);break;case"object":await U(e,t)}}function z(e,t){const r=x(t);null!=r&&(e.size=r)}function x(e){for(const t of e)if("number"==typeof t)return t;return null}function S(e,t){const r=t[2];"number"==typeof r&&(e.size=r)}async function U(e,t){const{resourceSize:r,symbolSize:o}=await O(e),n=E(t,r,o);null!=n&&(e.width=R(t[0],o[0],r[0],n),e.depth=R(t[1],o[1],r[1],n),e.height=R(t[2],o[2],r[2],n))}function v(e,t){const r=E(t,o,[e.width,void 0,e.height]);null!=r&&(e.width=R(t[0],e.width,1,r),e.height=R(t[2],e.height,1,r))}function E(e,t,r){for(let o=0;o<3;o++){const n=e[o];switch(n){case"symbol-value":{const e=r[o];return null!=e?e/t[o]:1}case"proportional":break;default:if(n&&t[o])return n/t[o]}}return null}async function O(e){const{computeObjectLayerResourceSize:t}=await import("./symbolLayerUtils.js"),r=await t(e,10),{width:o,height:n,depth:l}=e,i=[o,l,n];let c=1;for(let s=0;s<3;s++){const e=i[s];if(null!=e){c=e/r[s];break}}for(let s=0;s<3;s++)null==i[s]&&(i[s]=r[s]*c);return{resourceSize:r,symbolSize:i}}function R(e,t,r,o){switch(e){case"proportional":return r*o;case"symbol-value":return null!=t?t:r;default:return e}}function C(e,t){const r=x(t);if(null!=r)switch(e.type){case"simple-marker":e.size=r;break;case"picture-marker":{const t=e.width/e.height;t>1?(e.width=r,e.height=r*t):(e.width=r*t,e.height=r);break}case"simple-line":e.width=r;break;case"text":e.font.size=r}}async function D(e,t){if(e&&t)return s(e)?g(e,t):void(u(e)&&C(e,t))}function J(e,t,r){if(e&&null!=t)if(s(e)){const o=e.symbolLayers;o&&o.forEach((e=>{if("object"===e.type)switch(r){case"tilt":e.tilt=(e.tilt??0)+t;break;case"roll":e.roll=(e.roll??0)+t;break;default:e.heading=(e.heading??0)+t}"icon"===e.type&&(e.angle+=t)}))}else u(e)&&("simple-marker"!==e.type&&"picture-marker"!==e.type&&"text"!==e.type||(e.angle+=t))}function M(e){if(!e)return null;const t=e.effects.filter((e=>"bloom"!==e.type)).map((e=>e.toJSON()));return n(t)}function N(e){return null!=e&&"polygon-3d"===e.type&&e.symbolLayers.some((e=>"extrude"===e.type))}export{k as applyColorToSymbol,w as applyOpacityToColor,J as applyRotationToSymbol,D as applySizesToSymbol,M as getCSSFilterFromEffectList,h as getColorFromSymbol,p as getIconHref,m as getSymbolOutlineSize,y as isVolumetricSymbol,N as symbolHasExtrudeSymbolLayer};
5
+ import e from"../../Color.js";import{forEach as t}from"../../core/asyncUtils.js";import"../../core/has.js";import{px2pt as r}from"../../core/screenUtils.js";import{ONES as o}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{effectFunctionsFromJSON as n}from"../../layers/effects/jsonUtils.js";import{getCIMSymbolColor as l}from"./cimSymbolUtils.js";import{getStroke as i}from"./gfxUtils.js";import{Symbol3DMaterial as c}from"./Symbol3DMaterial.js";import{isSymbol3D as s,isSymbol2D as u}from"./typeUtils.js";const a=new e("white");function f(e){const t=e.symbolLayers?.at(-1);if(t&&"outline"in t)return t?.outline?.size}function m(e){if(!e)return 0;if(s(e)){const t=f(e);return null!=t?t:0}return r(i(e)?.width)}function y(e){const t=e.symbolLayers?.at(-1);if(t&&"outline"in t)return t?.outline?.color}function p(t){if(!t)return null;if(s(t))return y(t);const r=i(t)?.color;return r?new e(r):null}function h(e){if(null==e||!("symbolLayers"in e)||null==e.symbolLayers)return!1;switch(e.type){case"point-3d":return e.symbolLayers.some((e=>"object"===e.type));case"line-3d":return e.symbolLayers.some((e=>"path"===e.type));case"polygon-3d":return e.symbolLayers.some((e=>"object"===e.type||"extrude"===e.type));default:return!1}}function b(e){return e.resource?.href??""}function w(t,r){if(!t)return null;let o=null;return s(t)?o=d(t):u(t)&&(o="cim"===t.type?l(t):t.color?new e(t.color):null),o?j(o,r):null}function d(t){const r=t.symbolLayers;if(!r)return null;let o=null;return r.forEach((e=>{"object"===e.type&&e.resource?.href||(o="water"===e.type?e.color:e.material?e.material.color:null)})),o?new e(o):null}function j(t,r){if(null==r||null==t)return t;const o=t.toRgba();return o[3]=o[3]*r,new e(o)}function k(e,t,r){const o=e.symbolLayers;if(!o)return;const n=e=>j(t??e??(null!=r?a:null),r);o.forEach((e=>{if("object"!==e.type||!e.resource?.href||t)if("water"===e.type)e.color=n(e.color);else{const t=null!=e.material?e.material.color:null,o=n(t);if(null==e.material?e.material=new c({color:o}):e.material.color=o,null!=r&&"outline"in e&&null!=e.outline?.color&&(e.outline.color=j(e.outline.color,r)),"marker"in e&&null!=e.marker){const t=n(e.marker.color);e.marker.color=t}}}))}function g(e,t,r){(t=t??e.color)&&(e.color=j(t,r)),null!=r&&"outline"in e&&e.outline?.color&&(e.outline.color=j(e.outline.color,r))}function L(t,r,o){t&&(r||null!=o)&&(r&&(r=new e(r)),s(t)?k(t,r,o):u(t)&&g(t,r,o))}async function z(e,r){const o=e.symbolLayers;o&&await t(o,(async e=>x(e,r)))}async function x(e,t){switch(e.type){case"extrude":v(e,t);break;case"icon":case"line":case"text":S(e,t);break;case"path":O(e,t);break;case"object":await E(e,t)}}function S(e,t){const r=U(t);null!=r&&(e.size=r)}function U(e){for(const t of e)if("number"==typeof t)return t;return null}function v(e,t){const r=t[2];"number"==typeof r&&(e.size=r)}async function E(e,t){const{resourceSize:r,symbolSize:o}=await C(e),n=R(t,r,o);null!=n&&(e.width=D(t[0],o[0],r[0],n),e.depth=D(t[1],o[1],r[1],n),e.height=D(t[2],o[2],r[2],n))}function O(e,t){const r=R(t,o,[e.width,void 0,e.height]);null!=r&&(e.width=D(t[0],e.width,1,r),e.height=D(t[2],e.height,1,r))}function R(e,t,r){for(let o=0;o<3;o++){const n=e[o];switch(n){case"symbol-value":{const e=r[o];return null!=e?e/t[o]:1}case"proportional":break;default:if(n&&t[o])return n/t[o]}}return null}async function C(e){const{computeObjectLayerResourceSize:t}=await import("./symbolLayerUtils.js"),r=await t(e,10),{width:o,height:n,depth:l}=e,i=[o,l,n];let c=1;for(let s=0;s<3;s++){const e=i[s];if(null!=e){c=e/r[s];break}}for(let s=0;s<3;s++)null==i[s]&&(i[s]=r[s]*c);return{resourceSize:r,symbolSize:i}}function D(e,t,r,o){switch(e){case"proportional":return r*o;case"symbol-value":return null!=t?t:r;default:return e}}function J(e,t){const r=U(t);if(null!=r)switch(e.type){case"simple-marker":e.size=r;break;case"picture-marker":{const t=e.width/e.height;t>1?(e.width=r,e.height=r*t):(e.width=r*t,e.height=r);break}case"simple-line":e.width=r;break;case"text":e.font.size=r}}async function M(e,t){if(e&&t)return s(e)?z(e,t):void(u(e)&&J(e,t))}function N(e,t,r){if(e&&null!=t)if(s(e)){const o=e.symbolLayers;o&&o.forEach((e=>{if("object"===e.type)switch(r){case"tilt":e.tilt=(e.tilt??0)+t;break;case"roll":e.roll=(e.roll??0)+t;break;default:e.heading=(e.heading??0)+t}"icon"===e.type&&(e.angle+=t)}))}else u(e)&&("simple-marker"!==e.type&&"picture-marker"!==e.type&&"text"!==e.type||(e.angle+=t))}function q(e){if(!e)return null;const t=e.effects.filter((e=>"bloom"!==e.type)).map((e=>e.toJSON()));return n(t)}function A(e){return null!=e&&"polygon-3d"===e.type&&e.symbolLayers.some((e=>"extrude"===e.type))}export{L as applyColorToSymbol,j as applyOpacityToColor,N as applyRotationToSymbol,M as applySizesToSymbol,q as getCSSFilterFromEffectList,w as getColorFromSymbol,b as getIconHref,p as getSymbolOutlineColor,m as getSymbolOutlineSize,h as isVolumetricSymbol,A as symbolHasExtrudeSymbolLayer};
@@ -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 e from"../../../Color.js";import{ManagedCanvas as r}from"./ManagedCanvas.js";import{Stage as s}from"./Stage.js";import n from"./webgl/VideoScreenRenderer.js";class d extends s{constructor(e,s,d){super(null,s={...s,renderFrame:e=>{}},new r(null,{canvas:e})),this._requestRender=d,this.viewIsReady=!1,this.videoScreenRenderer=new n(this,s),this.videoScreenRenderer.visible=!0}requestRender(){this._requestRender()}renderChildren(r){this.videoScreenRenderer.bind(r),r.backgroundColor=e.fromArray([0,0,0,0]),super.renderChildren(r),this.videoScreenRenderer.unbind(r)}}class i extends s{constructor(e,r,s){super(e,r={...r,renderFrame:e=>{this.render(e)}},s),this._childStage=new d(s.canvas,r,(()=>this.requestRender()))}get childStage(){return this._childStage}render(e){this._childStage.viewIsReady?this._childStage.renderFrame(e):this.requestRender(),super.renderFrame(e)}processRender(e){super.processRender(e),this._childStage.viewIsReady&&this._childStage.visible&&this._childStage.videoScreenRenderer.processRender(e)}}export{d as ChildStage,i as ParentStage};
5
+ import e from"../../../Color.js";import{ManagedCanvas as r}from"./ManagedCanvas.js";import{Stage as s}from"./Stage.js";import n from"./webgl/VideoScreenRenderer.js";class d extends s{constructor(e,s,d){super(null,s={...s,renderFrame:e=>{}},new r(null,{canvas:e})),this._requestRender=d,this.viewIsReady=!1,this.videoScreenRenderer=new n(this,s),this.videoScreenRenderer.visible=!0}requestRender(){this._requestRender()}processRender(r){this.videoScreenRenderer.bind(r),r.backgroundColor=e.fromArray([0,0,0,0]),super.processRender(r),this.videoScreenRenderer.unbind(r)}}class i extends s{constructor(e,r,s){super(e,r={...r,renderFrame:e=>{this.render(e)}},s),this._childStage=new d(s.canvas,r,(()=>this.requestRender()))}get childStage(){return this._childStage}render(e){this._childStage.viewIsReady?this._childStage.renderFrame(e):this.requestRender(),super.renderFrame(e)}processRender(e){super.processRender(e),this._childStage.viewIsReady&&this._childStage.visible&&this._childStage.videoScreenRenderer.processRender(e)}}export{d as ChildStage,i as ParentStage};
@@ -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{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import o from"../../../../geometry/Point.js";import{load as s,execute as i}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as a}from"../DisplayObject.js";import{VideoScreenTechnique as n}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{TextureSamplingMode as h,TextureWrapMode as d,ColorAttachment0 as c,SizedPixelFormat as u}from"../../../webgl/enums.js";import{FramebufferObject as l}from"../../../webgl/FramebufferObject.js";import{Texture as m}from"../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../webgl/TextureDescriptor.js";class b extends a{constructor(e,t){super(),this._controlPointsOwner=t,this.readbackScreenCoords=r(),this.videoTextureCoords=new Array(36),this.overlayTextureCoords=new Array(36),this._prevFBO=null,this._acquiredFBO=null,this._isBound=!1,this._hasCoordinates=!1,this._geIsLoaded=!1,this._technique=new n,this.visible=!1,this.stage=e;for(let r=0;r<6;r++){const e=r/5;for(let t=0;t<6;t++){const o=t/5;this.videoTextureCoords[6*r+t]={u:o,v:e}}}}getMesh(e){throw new Error("Method not implemented.")}destroy(){e(this._readbackTexture)}bind(e){const{context:t,pixelRatio:r,state:o}=e;if(this._update(o),!this.ready||0===this.readbackScreenCoords[2]||0===this.readbackScreenCoords[3])return this.requestRender(),!1;const{size:s}=o,i=Math.round(r*s[0]),a=Math.round(r*s[1]),n=new x(i,a);return n.samplingMode=h.LINEAR,n.wrapMode=d.CLAMP_TO_EDGE,this._acquiredFBO||(this._acquiredFBO=new l(t,n)),this._acquiredFBO.resize(i,a),t.bindFramebuffer(this._acquiredFBO),this._isBound=!0,!0}unbind(e){if(!this._isBound)return;const{context:t,pixelRatio:r,state:o}=e,{size:s}=o,i=this._acquiredFBO;if(!i.getColorTexture(c))throw new Error("Failed to get color texture from FBO.");const a=this._getReadbackTexture(e),n=this.readbackScreenCoords,h=Math.round(r*n[0]),d=Math.round(r*(s[1]-n[1]))-a.descriptor.height,u=h+a.descriptor.width,l=d+a.descriptor.height,m=Math.max(h,0),x=Math.max(d,0),b=Math.min(u,i.width)-m,f=Math.min(l,i.height)-x;b>0&&f>0&&i.copyToTexture(m,x,b,f,m-h,x-d,a),t.bindFramebuffer(this._prevFBO)}_update(e){const r=this._controlPointsOwner.groundControlPoints(),a=r?.length;if(!a)return;if(s().then((()=>{this._geIsLoaded=!0})),!this._geIsLoaded)return void this.requestRender();const n=new Array(a),h=e.spatialReference;for(let t=0;t<a;t++){const{lat:e,lon:s}=r[t],a=new o(s,e);n[t]=i(a,h)}const d=[];let c=1/0,u=1/0,l=-1/0,m=-1/0;for(const o of n){const r=t();e.toScreen(r,o.x,o.y),d.push({x:r[0],y:r[1]}),c=Math.min(c,r[0]),u=Math.min(u,r[1]),l=Math.max(l,r[0]),m=Math.max(m,r[1])}const x=[c,m],b=[l,u];this.readbackScreenCoords[0]=Math.max(Math.floor(x[0]),0),this.readbackScreenCoords[1]=Math.max(Math.floor(b[1]),0),this.readbackScreenCoords[2]=Math.ceil(b[0]),this.readbackScreenCoords[3]=Math.ceil(x[1]);for(let t=0;t<d.length;t++){const e=d[t],r=(e.x-c)/(l-c),o=(m-e.y)/(m-u);this.overlayTextureCoords[t]={u:r,v:o}}this._hasCoordinates=!0}_createTransforms(){return null}doRender(e){if(!this._readbackTexture||!this._hasCoordinates)return void this.requestRender();const{state:t,pixelRatio:r}=e,{size:o}=t,s=[Math.round(r*o[0]),Math.round(r*o[1])],i=this._readbackTexture.descriptor,a=[i.width,i.height];this._technique.render(e,{texture:this._readbackTexture,textureCoords:this.overlayTextureCoords,opacity:1,screenSize:s,size:a})}_getReadbackTexture(e){const{context:t,pixelRatio:r}=e,o=Math.round(r*Math.abs(this.readbackScreenCoords[2]-this.readbackScreenCoords[0])),s=Math.round(r*Math.abs(this.readbackScreenCoords[3]-this.readbackScreenCoords[1]));if(this._readbackTexture)this._readbackTexture.resize(o,s);else{const e=new x(o,s);e.wrapMode=d.CLAMP_TO_EDGE,e.internalFormat=u.RGBA8,this._readbackTexture=new m(t,e)}return this._readbackTexture}}export{b as default};
5
+ import{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import o from"../../../../geometry/Point.js";import{load as s,execute as i}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as a}from"../DisplayObject.js";import{VideoScreenTechnique as n}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{TextureSamplingMode as c,TextureWrapMode as h,ColorAttachment0 as d,SizedPixelFormat as u}from"../../../webgl/enums.js";import{FramebufferObject as l}from"../../../webgl/FramebufferObject.js";import{Texture as m}from"../../../webgl/Texture.js";import{TextureDescriptor as _}from"../../../webgl/TextureDescriptor.js";class x extends a{constructor(e,t){super(),this._controlPointsOwner=t,this.readbackScreenCoords=r(),this.videoTextureCoords=new Array(36),this.overlayTextureCoords=new Array(36),this._prevFBO=null,this._acquiredFBO=null,this._isBound=!1,this._hasCoordinates=!1,this._geIsLoaded=!1,this._ndcRect=[0,0,2,2],this._technique=new n,this.visible=!1,this.stage=e;for(let r=0;r<6;r++){const e=r/5;for(let t=0;t<6;t++){const o=t/5;this.videoTextureCoords[6*r+t]={u:o,v:e}}}}getMesh(e){throw new Error("Method not implemented.")}destroy(){e(this._readbackTexture)}bind(e){const{context:t,pixelRatio:r,state:o}=e;if(this._update(e),!this.ready||0===this.readbackScreenCoords[2]||0===this.readbackScreenCoords[3])return this.requestRender(),!1;const{size:s}=o,i=Math.round(r*s[0]),a=Math.round(r*s[1]),n=new _(i,a);return n.samplingMode=c.LINEAR,n.wrapMode=h.CLAMP_TO_EDGE,this._acquiredFBO||(this._acquiredFBO=new l(t,n)),this._acquiredFBO.resize(i,a),t.bindFramebuffer(this._acquiredFBO),this._isBound=!0,!0}unbind(e){if(!this._isBound)return;const{context:t,pixelRatio:r,state:o}=e,{size:s}=o,i=this._acquiredFBO;if(!i.getColorTexture(d))throw new Error("Failed to get color texture from FBO.");const a=this._getReadbackTexture(e),n=this.readbackScreenCoords,c=Math.round(r*n[0]),h=Math.round(r*(s[1]-n[1]))-a.descriptor.height,u=c+a.descriptor.width,l=h+a.descriptor.height,m=Math.max(c,0),_=Math.max(h,0),x=Math.min(u,i.width)-m,b=Math.min(l,i.height)-_;x>0&&b>0&&i.copyToTexture(m,_,x,b,m-c,_-h,a),t.bindFramebuffer(this._prevFBO)}_update(e){const{state:r}=e,a=this._controlPointsOwner,n=a.groundControlPoints(),c=a.getSize(),h=r.size,d=n?.length;if(!d)return;if(s().then((()=>{this._geIsLoaded=!0})),!this._geIsLoaded)return void this.requestRender();const u=c[0],l=c[1],m=h[0],_=l/h[1],x=u/m;if(_>x){const e=x/_*2,t=(2-e)/2;this._ndcRect[0]=-1+t,this._ndcRect[1]=1,this._ndcRect[2]=e,this._ndcRect[3]=2}else{const e=_/x*2,t=(2-e)/2;this._ndcRect[0]=-1,this._ndcRect[1]=1-t,this._ndcRect[2]=2,this._ndcRect[3]=e}const b=new Array(d),f=r.spatialReference;for(let t=0;t<d;t++){const{lat:e,lon:r}=n[t],s=new o(r,e);b[t]=i(s,f)}const p=[];let M=1/0,g=1/0,C=-1/0,R=-1/0;for(const o of b){const e=t();r.toScreen(e,o.x,o.y),p.push({x:e[0],y:e[1]}),M=Math.min(M,e[0]),g=Math.min(g,e[1]),C=Math.max(C,e[0]),R=Math.max(R,e[1])}const T=[M,R],w=[C,g];this.readbackScreenCoords[0]=Math.max(Math.floor(T[0]),0),this.readbackScreenCoords[1]=Math.max(Math.floor(w[1]),0),this.readbackScreenCoords[2]=Math.ceil(w[0]),this.readbackScreenCoords[3]=Math.ceil(T[1]);for(let t=0;t<p.length;t++){const e=p[t],r=(e.x-M)/(C-M),o=(R-e.y)/(R-g);this.overlayTextureCoords[t]={u:r,v:o}}this._hasCoordinates=!0}_createTransforms(){return null}doRender(e){this._readbackTexture&&this._hasCoordinates?this._technique.render(e,{texture:this._readbackTexture,textureCoords:this.overlayTextureCoords,opacity:1,ndcRect:this._ndcRect}):this.requestRender()}_getReadbackTexture(e){const{context:t,pixelRatio:r}=e,o=Math.round(r*Math.abs(this.readbackScreenCoords[2]-this.readbackScreenCoords[0])),s=Math.round(r*Math.abs(this.readbackScreenCoords[3]-this.readbackScreenCoords[1]));if(this._readbackTexture)this._readbackTexture.resize(o,s);else{const e=new _(o,s);e.wrapMode=h.CLAMP_TO_EDGE,e.internalFormat=u.RGBA8,this._readbackTexture=new m(t,e)}return this._readbackTexture}}export{x 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{destroyMaybe as e}from"../../../../../../../core/maybe.js";import{Mesh as t}from"../../../meshing/Mesh.js";import{simplePipelineState as r}from"../../utils.js";import{Technique as s}from"../Technique.js";import{TechniqueType as o}from"../TechniqueType.js";import{VideoScreenShader as i}from"../shaders/VideoScreenShader.js";import{PrimitiveType as n,DataType as m}from"../../../../../../webgl/enums.js";import{VertexElementDescriptor as h}from"../../../../../../webgl/VertexElementDescriptor.js";class u extends s{constructor(){super(...arguments),this.type=o.VideoScreen,this._mesh=null,this.shaders={geometry:new i}}render(e,t){const{context:s,painter:o}=e,{texture:i,textureCoords:n}=t,m=this._getMesh(e),h=2,u=2,a=-1,p=1,c=new Float32Array(180);for(let r=0;r<6;r++){const e=u*r/5;for(let t=0;t<6;t++){const s=h*t/5,{u:o,v:i}=n[6*r+t];c[5*(6*r+t)]=a+s,c[5*(6*r+t)+1]=p-e,c[5*(6*r+t)+2]=o,c[5*(6*r+t)+3]=i,c[5*(6*r+t)+4]=1}}m.vertexBuffers.get("geometry")?.buffer.setData(c);const f={texture:{texture:i,unit:0},opacity:t.opacity},d={shader:this.shaders.geometry,uniforms:{config:f},defines:{},optionalAttributes:null,useComputeBuffer:!1};o.setPipelineState(r),o.submitDrawMeshUntyped(s,d,m)}shutdown(){e(this._mesh)}_getMesh(e){const{context:r}=e,s=new Uint32Array(150);for(let t=0;t<5;t++)for(let e=0;e<5;e++){const r=6*(5*t+e),o=6*(t+1)+e+1,i=o-1,n=o-6,m=o-7;s[r]=o,s[r+1]=i,s[r+2]=n,s[r+3]=i,s[r+4]=m,s[r+5]=n}return this._mesh||(this._mesh=new t(r,{vertex:{geometry:{data:new Float32Array(180),attributes:[new h("position",2,m.FLOAT,0,20),new h("texcoord",2,m.FLOAT,8,20),new h("w",1,m.FLOAT,16,20)]}},index:{index:{data:s}},groups:[{primitive:n.TRIANGLES,index:"index"}],parts:[{group:0,start:0,count:s.length}]})),this._mesh}}export{u as VideoScreenTechnique};
5
+ import{destroyMaybe as e}from"../../../../../../../core/maybe.js";import{Mesh as t}from"../../../meshing/Mesh.js";import{simplePipelineState as r}from"../../utils.js";import{Technique as s}from"../Technique.js";import{TechniqueType as o}from"../TechniqueType.js";import{VideoScreenShader as n}from"../shaders/VideoScreenShader.js";import{PrimitiveType as i,DataType as m}from"../../../../../../webgl/enums.js";import{VertexElementDescriptor as c}from"../../../../../../webgl/VertexElementDescriptor.js";class h extends s{constructor(){super(...arguments),this.type=o.VideoScreen,this._mesh=null,this.shaders={geometry:new n}}render(e,t){const{context:s,painter:o}=e,{texture:n,textureCoords:i}=t,m=this._getMesh(e),c=t.ndcRect[2],h=t.ndcRect[3],u=t.ndcRect[0],a=t.ndcRect[1],p=new Float32Array(180);for(let r=0;r<6;r++){const e=h*r/5;for(let t=0;t<6;t++){const s=c*t/5,{u:o,v:n}=i[6*r+t];p[5*(6*r+t)]=u+s,p[5*(6*r+t)+1]=a-e,p[5*(6*r+t)+2]=o,p[5*(6*r+t)+3]=n,p[5*(6*r+t)+4]=1}}m.vertexBuffers.get("geometry")?.buffer.setData(p);const d={texture:{texture:n,unit:0},opacity:t.opacity},f={shader:this.shaders.geometry,uniforms:{config:d},defines:{},optionalAttributes:null,useComputeBuffer:!1};o.setPipelineState(r),o.submitDrawMeshUntyped(s,f,m)}shutdown(){e(this._mesh)}_getMesh(e){const{context:r}=e,s=new Uint32Array(150);for(let t=0;t<5;t++)for(let e=0;e<5;e++){const r=6*(5*t+e),o=6*(t+1)+e+1,n=o-1,i=o-6,m=o-7;s[r]=o,s[r+1]=n,s[r+2]=i,s[r+3]=n,s[r+4]=m,s[r+5]=i}return this._mesh||(this._mesh=new t(r,{vertex:{geometry:{data:new Float32Array(180),attributes:[new c("position",2,m.FLOAT,0,20),new c("texcoord",2,m.FLOAT,8,20),new c("w",1,m.FLOAT,16,20)]}},index:{index:{data:s}},groups:[{primitive:i.TRIANGLES,index:"index"}],parts:[{group:0,start:0,count:s.length}]})),this._mesh}}export{h as VideoScreenTechnique};
@@ -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 has from"../../../../../core/has.js";import e from"../../../../../core/Logger.js";import{diff as i}from"../../../../../core/accessorSupport/diffUtils.js";import{collectExpressionDependencies as s}from"../../../../../support/ArcadeExpression.js";import{attributeStoreInitialSize as r,maxHighlightReasons as a,AttributeDataType as n}from"../../../engine/webgl/definitions.js";import{getDisplayIdTexel as o}from"../../../engine/webgl/DisplayId.js";import{getPixelArrayCtor as l}from"../../../engine/webgl/Utils.js";import{nanMagicNumber as h}from"../../../engine/webgl/shaderGraph/techniques/shaders/constants.js";import{createDebugLogger as d,DEBUG_ATTR_UPDATES as c}from"../../../engine/webgl/util/debug.js";import{DisplayIdGenerator as u}from"./DisplayIdGenerator.js";import p from"./FeatureFilterEvaluator.js";import{PixelType as g}from"../../../../webgl/enums.js";function _(t,e){if(!t||!e)return t;switch(e){case"radius":case"distance":return 2*t;case"diameter":case"width":return t;case"area":return Math.sqrt(t)}return t}const y=()=>e.getLogger("esri.views.layers.2d.features.support.AttributeStore"),m=d(c,y()),f={sharedArrayBuffer:has("esri-shared-array-buffer"),atomics:has("esri-atomics")};class b{constructor(t,e,i){this.size=0,this.texelSize=4,this.dirtyStart=0,this.dirtyEnd=0;const{pixelType:s,layout:r,textureOnly:a}=e;this.textureOnly=a||!1,this.pixelType=s,this.layout=r,this._resetRange(),this.size=t,this.isLocal=i,a||(this.data=this._initData(s,t))}get buffer(){return this.data?.buffer}unsetComponentAllTexels(t,e){const i=this.data;for(let s=0;s<this.size*this.size;s++)i[s*this.texelSize+t]&=~e;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponentAllTexels(t,e){const i=this.data;for(let s=0;s<this.size*this.size;s++)i[s*this.texelSize+t]|=255&e;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponent(t,e,i){const s=this.data;for(const r of i)s[r*this.texelSize+t]|=e,this.dirtyStart=Math.min(this.dirtyStart,r),this.dirtyEnd=Math.max(this.dirtyEnd,r)}setComponentTexel(t,e,i){this.data[i*this.texelSize+t]|=e,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}unsetComponentTexel(t,e,i){this.data[i*this.texelSize+t]&=~e,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}getData(t,e){const i=o(t);return this.data[i*this.texelSize+e]}setData(t,e,i){const s=o(t),r=1<<e;0!==(this.layout&r)?null!=this.data&&(this.data[s*this.texelSize+e]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s)):y().error("mapview-attributes-store","Tried to set a value for a texel's readonly component")}expand(t){if(this.size=t,!this.textureOnly){const e=this._initData(this.pixelType,t),i=this.data;e.set(i),this.data=e}}toMessage(){const t=this.dirtyStart,e=this.dirtyEnd,i=this.texelSize;if(t>e)return null;this._resetRange();const s=!this.isLocal,r=this.pixelType,a=this.layout,n=this.data;return{start:t,end:e,data:s&&n.slice(t*i,(e+1)*i)||null,pixelType:r,layout:a}}_initData(t,e){const i=ArrayBuffer,s=l(t),r=new s(new i(e*e*4*s.BYTES_PER_ELEMENT));for(let a=0;a<r.length;a+=4)r[a+1]=255;return r}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}}class x{constructor(t){this._client=t,this._filters=[],this._blocks=new Array,this._attributeComputeInfo=null,this._abortController=new AbortController,this._size=r,this._idsToHighlight=new Map,this._arcadeDependencies=new Set,this._initialized=!1,this.version=0,this._idGenerator=new u,this._epoch=1}destroy(){this._abortController.abort()}_initialize(){if(null!=this._blockDescriptors)return;const t=g.FLOAT;m(`Creating AttributeStore ${f.sharedArrayBuffer?"with":"without"} shared memory`),this._blockDescriptors=[{pixelType:g.UNSIGNED_BYTE,layout:1},{pixelType:g.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:g.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:g.FLOAT,layout:15}],this._blocks=this._blockDescriptors.map((()=>null))}get hasHighlight(){return this._idsToHighlight.size>0}createDisplayIdForObjectId(t){return this._idGenerator.createIdForObjectId(t)}releaseDisplayIdForObjectId(t){return this._idGenerator.releaseIdForObjectId(t)}getDisplayIdForObjectId(t){return this._idGenerator.getDisplayIdForObjectId(t)}incrementDisplayIdGeneration(){this._idGenerator.incrementGeneration()}hasArcadeDependency(t){return this._arcadeDependencies.has(t)}releaseAllIds(){this._idGenerator.releaseAll()}async update(t,e,s,r=0){const a=i(this._schema,t);if(this.version=r,a&&(has("esri-2d-update-debug")&&console.debug(`Version[${r}] AttributeStore.update`,{changed:a}),this._schema=t,this._attributeComputeInfo=null,this._initialize(),null!=t))if(s&&(this._filters=await Promise.all(t.filters.map((t=>t?p.create({geometryType:s.geometryType,hasM:!1,hasZ:!1,timeInfo:s.timeInfo,fieldsIndex:s.fieldsIndex,spatialReference:s.outSpatialReference,filterJSON:t}):null)))),"multi"!==t.type)this._attributeComputeInfo={type:"feature",map:new Map},await Promise.all(t.bindings.map((async t=>{const i=await this._bind(e,t);this._updateReferences(i)})));else{this._attributeComputeInfo={type:"multi",keyField:t.keyField,map:new Map};for(const i in t.bindings){const s=t.bindings[i];await Promise.all(s.map((async t=>{const s=await this._bind(e,t,parseInt(i,10));this._updateReferences(s)})))}}}setHighlight(t,e){let i=null;for(const{displayId:s,highlightFlags:r}of t){if(null==s||-1===s)continue;i||(i=this._getBlock(0),i.unsetComponentAllTexels(0,(1<<a)-1));const t=o(s);i.setComponent(0,r,[t])}this._idsToHighlight.clear();for(const{objectId:s,highlightFlags:r}of t)this._idsToHighlight.set(s,r);for(const{objectId:s,highlightFlags:r}of e)this._idsToHighlight.set(s,r)}setData(t,e,i,s){const r=o(t);this._ensureSizeForTexel(r),this._getBlock(e).setData(t,i,s)}getData(t,e,i){return this._getBlock(e).getData(t,i)}getHighlightFlags(t){return this._idsToHighlight.get(t)||0}unsetAttributeData(t){const e=o(t);this._getBlock(0).setData(e,0,0)}setAttributeData(t,e,i,s){const r=o(t);this._ensureSizeForTexel(r),this._getBlock(0).setData(r,0,this.getFilterFlags(e,s));const a=this._attributeComputeInfo,l=1,d=4;let c=null;a&&(c="multi"===a.type?a.map.get(e.readAttribute(a.keyField)):a.map,c?.size&&c.forEach(((t,s)=>{const a=s*l%d,o=Math.floor(s*l/d),c=this._getBlock(o+n.VV);let u=t.field?.read(e,i);t.valueRepresentation&&(u=_(u,t.valueRepresentation));(null===u||isNaN(u)||u===1/0||u===-1/0)&&(u=h),c.setData(r,a,u)})))}get epoch(){return this._epoch}sendUpdates(){const t=this._blocks.map((t=>null!=t?t.toMessage():null)),e=this._getInitArgs();has("esri-2d-log-updating")&&console.log("AttributeStore: _doSendUpdate.start"),this._client.update({initArgs:e,blockData:t,version:this.version,sendUpdateEpoch:this._epoch}),this._epoch+=1,has("esri-2d-log-updating")&&console.log("AttributeStore: _doSendUpdate.end")}_ensureSizeForTexel(t){for(;t>=this._size*this._size;)if(this._expand())return}async _bind(t,e,i){const s=await t.createComputedField(e),{valueRepresentation:r}=e,a=this._attributeComputeInfo;if("multi"===a.type){const t=a.map.get(i)??new Map;t.set(e.binding,{field:s,valueRepresentation:r}),a.map.set(i,t)}else a.map.set(e.binding,{field:s,valueRepresentation:r});return s}_getInitArgs(){return this._initialized?null:(this._initialized=!0,this._getBlock(n.Animation),this._getBlock(n.GPGPU),this._getBlock(n.LocalTimeOrigin),{blockSize:this._size,blockDescriptors:this._blocks.map((t=>null!=t?{textureOnly:t.textureOnly,buffer:t.buffer,pixelType:t.pixelType}:null))})}_getBlock(t){const e=this._blocks[t];if(null!=e)return e;m(`Initializing AttributeBlock at index ${t}`);const i=new b(this._size,this._blockDescriptors[t],this._client.isLocal);return this._blocks[t]=i,this._initialized=!1,i}_expand(){if(this._size<this._schema.capabilities.maxTextureSize){const t=this._size<<=1;m("Expanding block size to",t,this._blocks);for(const e of this._blocks)e?.expand(t);return this._initialized=!1,this._size=t,0}return y().error(new t("mapview-limitations","Maximum number of onscreen features exceeded.")),-1}_updateReferences(t){s(this._arcadeDependencies,t)}isVisible(t){return!!(this._getBlock(0).getData(t,0)&1<<a)}getFilterFlags(t,e){let i=0;for(let r=0;r<this._filters.length;r++){const s=!!(1<<r),a=this._filters[r];i|=(!s||null==a||a.check(t,e)?1:0)<<r}let s=0;if(this._idsToHighlight.size){const e=t.getObjectId();s=this.getHighlightFlags(e)}return i<<a|s}}export{x as AttributeStore,_ as getVisualVariableSizeValueRepresentationRatio};
5
+ import t from"../../../../../core/Error.js";import has from"../../../../../core/has.js";import e from"../../../../../core/Logger.js";import{diff as i}from"../../../../../core/accessorSupport/diffUtils.js";import{collectExpressionDependencies as s}from"../../../../../support/ArcadeExpression.js";import{attributeStoreInitialSize as r,maxHighlightReasons as a,AttributeDataType as n}from"../../../engine/webgl/definitions.js";import{getDisplayIdTexel as o}from"../../../engine/webgl/DisplayId.js";import{getPixelArrayCtor as l}from"../../../engine/webgl/Utils.js";import{nanMagicNumber as h}from"../../../engine/webgl/shaderGraph/techniques/shaders/constants.js";import{createDebugLogger as d,DEBUG_ATTR_UPDATES as c}from"../../../engine/webgl/util/debug.js";import{DisplayIdGenerator as u}from"./DisplayIdGenerator.js";import p from"./FeatureFilterEvaluator.js";import{PixelType as g}from"../../../../webgl/enums.js";function _(t,e){if(!t||!e)return t;switch(e){case"radius":case"distance":return 2*t;case"diameter":case"width":return t;case"area":return Math.sqrt(t)}return t}const y=()=>e.getLogger("esri.views.layers.2d.features.support.AttributeStore"),m=d(c,y()),f={sharedArrayBuffer:has("esri-shared-array-buffer"),atomics:has("esri-atomics")};class b{constructor(t,e,i){this.size=0,this.texelSize=4,this.dirtyStart=0,this.dirtyEnd=0;const{pixelType:s,layout:r,textureOnly:a}=e;this.textureOnly=a||!1,this.pixelType=s,this.layout=r,this._resetRange(),this.size=t,this.isLocal=i,a||(this.data=this._initData(s,t))}get buffer(){return this.data?.buffer}unsetComponentAllTexels(t,e){const i=this.data;for(let s=0;s<this.size*this.size;s++)i[s*this.texelSize+t]&=~e;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponentAllTexels(t,e){const i=this.data;for(let s=0;s<this.size*this.size;s++)i[s*this.texelSize+t]|=255&e;this.dirtyStart=0,this.dirtyEnd=this.size*this.size-1}setComponent(t,e,i){const s=this.data;for(const r of i)s[r*this.texelSize+t]|=e,this.dirtyStart=Math.min(this.dirtyStart,r),this.dirtyEnd=Math.max(this.dirtyEnd,r)}setComponentTexel(t,e,i){this.data[i*this.texelSize+t]|=e,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}unsetComponentTexel(t,e,i){this.data[i*this.texelSize+t]&=~e,this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,i)}getData(t,e){const i=o(t);return this.data[i*this.texelSize+e]}setData(t,e,i){const s=o(t),r=1<<e;0!==(this.layout&r)?null!=this.data&&(this.data[s*this.texelSize+e]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s)):y().error("mapview-attributes-store","Tried to set a value for a texel's readonly component")}expand(t){if(this.size=t,!this.textureOnly){const e=this._initData(this.pixelType,t),i=this.data;e.set(i),this.data=e}}toMessage(){const t=this.dirtyStart,e=this.dirtyEnd,i=this.texelSize;if(t>e)return null;this._resetRange();const s=!this.isLocal,r=this.pixelType,a=this.layout,n=this.data;return{start:t,end:e,data:s&&n.slice(t*i,(e+1)*i)||null,pixelType:r,layout:a}}_initData(t,e){const i=ArrayBuffer,s=l(t),r=new s(new i(e*e*4*s.BYTES_PER_ELEMENT));for(let a=0;a<r.length;a+=4)r[a+1]=255;return r}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}}class x{constructor(t){this._client=t,this._filters=[],this._blocks=new Array,this._attributeComputeInfo=null,this._abortController=new AbortController,this._size=r,this._idsToHighlight=new Map,this._arcadeDependencies=new Set,this._initialized=!1,this.version=0,this._idGenerator=new u,this._epoch=1}destroy(){this._abortController.abort()}_initialize(){if(null!=this._blockDescriptors)return;const t=g.FLOAT;m(`Creating AttributeStore ${f.sharedArrayBuffer?"with":"without"} shared memory`),this._blockDescriptors=[{pixelType:g.UNSIGNED_BYTE,layout:1},{pixelType:g.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:g.UNSIGNED_BYTE,layout:15,textureOnly:!0},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:t,layout:15},{pixelType:g.FLOAT,layout:15}],this._blocks=this._blockDescriptors.map((()=>null))}get hasHighlight(){return this._idsToHighlight.size>0}createDisplayIdForObjectId(t){return this._idGenerator.createIdForObjectId(t)}releaseDisplayIdForObjectId(t){return this._idGenerator.releaseIdForObjectId(t)}getDisplayIdForObjectId(t){return this._idGenerator.getDisplayIdForObjectId(t)}incrementDisplayIdGeneration(){this._idGenerator.incrementGeneration()}hasArcadeDependency(t){return this._arcadeDependencies.has(t)}releaseAllIds(){this._idGenerator.releaseAll()}async update(t,e,s,r=0){const a=i(this._schema,t);if(this.version=r,a&&(has("esri-2d-update-debug")&&console.debug(`Version[${r}] AttributeStore.update`,{changed:a}),this._schema=t,this._attributeComputeInfo=null,this._initialize(),null!=t))if(s&&(this._filters=await Promise.all(t.filters.map((t=>t?p.create({geometryType:s.geometryType,hasM:!1,hasZ:!1,timeInfo:s.timeInfo,fieldsIndex:s.fieldsIndex,spatialReference:s.outSpatialReference,filterJSON:t}):null)))),"multi"!==t.type)this._attributeComputeInfo={type:"feature",map:new Map},await Promise.all(t.bindings.map((async t=>{const i=await this._bind(e,t);this._updateReferences(i)})));else{this._attributeComputeInfo={type:"multi",keyField:t.keyField,map:new Map};for(const i in t.bindings){const s=t.bindings[i];await Promise.all(s.map((async t=>{const s=await this._bind(e,t,parseInt(i,10));this._updateReferences(s)})))}}}setHighlight(t,e){let i=null;0===t.length&&0===e.length&&(i=this._getBlock(0),i.unsetComponentAllTexels(0,(1<<a)-1));for(const{displayId:s,highlightFlags:r}of t){if(null==s||-1===s)continue;i||(i=this._getBlock(0),i.unsetComponentAllTexels(0,(1<<a)-1));const t=o(s);i.setComponent(0,r,[t])}this._idsToHighlight.clear();for(const{objectId:s,highlightFlags:r}of t)this._idsToHighlight.set(s,r);for(const{objectId:s,highlightFlags:r}of e)this._idsToHighlight.set(s,r)}setData(t,e,i,s){const r=o(t);this._ensureSizeForTexel(r),this._getBlock(e).setData(t,i,s)}getData(t,e,i){return this._getBlock(e).getData(t,i)}getHighlightFlags(t){return this._idsToHighlight.get(t)||0}unsetAttributeData(t){const e=o(t);this._getBlock(0).setData(e,0,0)}setAttributeData(t,e,i,s){const r=o(t);this._ensureSizeForTexel(r),this._getBlock(0).setData(r,0,this.getFilterFlags(e,s));const a=this._attributeComputeInfo,l=1,d=4;let c=null;a&&(c="multi"===a.type?a.map.get(e.readAttribute(a.keyField)):a.map,c?.size&&c.forEach(((t,s)=>{const a=s*l%d,o=Math.floor(s*l/d),c=this._getBlock(o+n.VV);let u=t.field?.read(e,i);t.valueRepresentation&&(u=_(u,t.valueRepresentation));(null===u||isNaN(u)||u===1/0||u===-1/0)&&(u=h),c.setData(r,a,u)})))}get epoch(){return this._epoch}sendUpdates(){const t=this._blocks.map((t=>null!=t?t.toMessage():null)),e=this._getInitArgs();has("esri-2d-log-updating")&&console.log("AttributeStore: _doSendUpdate.start"),this._client.update({initArgs:e,blockData:t,version:this.version,sendUpdateEpoch:this._epoch}),this._epoch+=1,has("esri-2d-log-updating")&&console.log("AttributeStore: _doSendUpdate.end")}_ensureSizeForTexel(t){for(;t>=this._size*this._size;)if(this._expand())return}async _bind(t,e,i){const s=await t.createComputedField(e),{valueRepresentation:r}=e,a=this._attributeComputeInfo;if("multi"===a.type){const t=a.map.get(i)??new Map;t.set(e.binding,{field:s,valueRepresentation:r}),a.map.set(i,t)}else a.map.set(e.binding,{field:s,valueRepresentation:r});return s}_getInitArgs(){return this._initialized?null:(this._initialized=!0,this._getBlock(n.Animation),this._getBlock(n.GPGPU),this._getBlock(n.LocalTimeOrigin),{blockSize:this._size,blockDescriptors:this._blocks.map((t=>null!=t?{textureOnly:t.textureOnly,buffer:t.buffer,pixelType:t.pixelType}:null))})}_getBlock(t){const e=this._blocks[t];if(null!=e)return e;m(`Initializing AttributeBlock at index ${t}`);const i=new b(this._size,this._blockDescriptors[t],this._client.isLocal);return this._blocks[t]=i,this._initialized=!1,i}_expand(){if(this._size<this._schema.capabilities.maxTextureSize){const t=this._size<<=1;m("Expanding block size to",t,this._blocks);for(const e of this._blocks)e?.expand(t);return this._initialized=!1,this._size=t,0}return y().error(new t("mapview-limitations","Maximum number of onscreen features exceeded.")),-1}_updateReferences(t){s(this._arcadeDependencies,t)}isVisible(t){return!!(this._getBlock(0).getData(t,0)&1<<a)}getFilterFlags(t,e){let i=0;for(let r=0;r<this._filters.length;r++){const s=!!(1<<r),a=this._filters[r];i|=(!s||null==a||a.check(t,e)?1:0)<<r}let s=0;if(this._idsToHighlight.size){const e=t.getObjectId();s=this.getHighlightFlags(e)}return i<<a|s}}export{x as AttributeStore,_ as getVisualVariableSizeValueRepresentationRatio};
@@ -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"../../../../../core/has.js";import{destroyMaybe as e}from"../../../../../core/maybe.js";import{memoize as i}from"../../../../../core/memoize.js";import{ignoreAbortErrors as a}from"../../../../../core/promiseUtils.js";import{syncAndInitial as n,when as s}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as p}from"../../../../../core/support/UpdatingHandles.js";import l from"../../../../../geometry/Point.js";import{clonePoint as h}from"../../../../../layers/graphics/hydratedFeatures.js";import{isPrimaryPointerAction as g}from"../../../analysis/support/measurementUtils.js";import{SnappingVisualizer3D as m}from"../../SnappingVisualizer3D.js";import{hideManipulatorWhileDragging as d,screenToMap3D as u}from"../../editingTools/dragEventPipeline3D.js";import c from"./AreaMeasurement3DView.js";import{PickRequest as y}from"../support/PickRequest.js";import{AnalysisToolBase as v}from"../../../../interactive/AnalysisToolBase.js";import{createCoordinateHelper as w}from"../../../../interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as _}from"../../../../interactive/dragEventPipeline.js";import{sketchKeys as f}from"../../../../interactive/keybindings.js";import{ManipulatorCollection as S}from"../../../../interactive/ManipulatorCollection.js";import{EditGeometry as P}from"../../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as V}from"../../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as D}from"../../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as j}from"../../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as M}from"../../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as x}from"../../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as k}from"../../../../interactive/snapping/snappingUtils.js";import{createScreenPointFromEvent as O}from"../../../../support/screenUtils.js";let b=class extends v{constructor(t){super(t),this._updatingHandles=new p,this.polygonState="initial",this.removeIncompleteOnCancel=!1,this.manipulators=new S,this._getSnappingContext=i((t=>new D({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new V(new P("point",w(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new m})))}initialize(){const{view:t,analysisViewData:e,manipulators:i,visible:o}=this;this.measurementView=new c({view:t,analysisViewData:e,toolState:this,manipulators:i,visible:o});const r=M(t);this._snappingManagerResult=r,this.addHandles(r),this._snappingOperation=new x({view:t}),this._updatingHandles.add((()=>this.stagedPoint),(t=>{this.analysisViewData.stagedPoint=null!=t?h(t,new l):null}),n),k(this,(()=>{const t=this.view.inputManager.latestPointerType??"mouse",e=this._getSnappingContext(t);this._updatingHandles.addPromise(a(this._snappingOperation.snapAgainNearPreviousMapPoint(this._snappingManager,e)))})),this._setupManipulators(),this.addHandles([s((()=>"measured"===this.state),(()=>this.finishToolCreation()),n),this.analysisViewData.path.on("change",(()=>{const t=this.analysisViewData.path;"initial"!==this.polygonState||t.isEmptyPolygon||(t.isValidPolygon?this.polygonState="measured":this.polygonState="drawing")}))])}destroy(){this.measurementView.destroy(),this._set("measurementView",null),this._updatingHandles=e(this._updatingHandles)}get _snappingManager(){return this._snappingManagerResult.snappingManager}get state(){return 0===this.analysisViewData.path.numVertices?"ready":this.analysisViewData.path.isValidPolygon&&"editing"!==this.polygonState?"measured":"measuring"}get cursor(){return this.active&&"measured"!==this.polygonState?"crosshair":null}get updating(){return this._updatingHandles.updating||this._snappingManager.updating}get stagedPoint(){return this._snappingOperation.stagedPoint}set stagedPoint(t){this._snappingOperation.stagedPoint=t}get snappingOptions(){return this._snappingManager.options}finishMeasurement(){const{path:t}=this.analysisViewData;t.numVertices<=2||(t.close(),this.polygonState="measured",this._resetSnappingState(),this.active&&(this.view.activeTool=null))}resetCreated(){super.resetCreated(),this._resetSnappingState(),this.polygonState="initial","measured"===this.state&&this.finishToolCreation()}onShow(){this.measurementView.show()}onHide(){this.measurementView.hide()}onDeactivate(){this._resetSnappingState()}onInputEvent(t){switch(t.type){case"immediate-double-click":this._handleImmediateDoubleClick(t);break;case"immediate-click":this._handleImmediateClick(t);break;case"pointer-move":this._handlePointerMove(t);break;case"drag":this._handleDrag(t);break;case"key-down":this._handleKeyDown(t)}}_setupManipulators(){const t=t=>t.events.on("grab-changed",(()=>{if(this.analysisViewData.path.isValidPolygon){const t=this.manipulators.some((t=>t.manipulator.grabbing));this.polygonState=t?"editing":"measured"}})),e=e=>{this.addHandles([_(e,((t,e,i,a)=>{const n=d(t),s=t.metadata,o=this._snappingManager,r=this._getSnappingContext(a),p=this._updatingHandles,{snappingStep:l,cancelSnapping:g}=j({snappingManager:o,snappingContext:r,updatingHandles:p});i=i.next(n).next((e=>(this.analysisViewData.lastDraggedVertex=null,this.analysisViewData.path.setVertexPosition(s,m),t.location=m,e))).next(g),e.next(n).next(u(this.view)).next(...l).next((e=>{t.location=e.mapEnd,this.analysisViewData.lastDraggedVertex="end"===e.action?null:s,this.analysisViewData.path.setVertexPosition(s,h(e.mapEnd))}));const m=h(this.analysisViewData.path.getVertexPositionAsPoint(s))})),t(e)],e)};this.manipulators.forEach((({manipulator:t})=>{e(t)})),this.addHandles([this.manipulators.on("after-add",(({item:{manipulator:t}})=>{e(t)})),this.manipulators.on("after-remove",(({item:{manipulator:t}})=>this.removeHandles(t)))])}_handleImmediateDoubleClick(t){g(t)&&("drawing"===this.polygonState&&this.finishMeasurement(),t.stopPropagation())}_handleDrag(t){"editing"===this.polygonState&&t.stopPropagation()}_handleImmediateClick(t){if(!g(t))return;const e=O(t),{pointerType:i}=t;if(this.active)switch(this.polygonState){case"initial":if(this._addVertexAt(e,i))return this.stagedPoint=null,this.polygonState="drawing",void t.stopPropagation();break;case"drawing":{const a=this.measurementView.vertexHandleAt(e,i);if(null==a){if(this._addVertexAt(e,i))return this.stagedPoint=null,void t.stopPropagation()}else 0===a.index&&(this.finishMeasurement(),t.stopPropagation());break}}"mouse"===t.pointerType&&this._hoverAt(e)}_handlePointerMove(t){if("mouse"===t.pointerType){const e=O(t);this._hoverAt(e)}}_handleKeyDown(t){const{path:e}=this.analysisViewData;t.key===f.complete&&"drawing"===this.polygonState&&e.numVertices>=3&&(this.stagedPoint=null,this.finishMeasurement(),t.stopPropagation())}_hoverAt(t){const{polygonState:e}=this;if(this.active&&("initial"===e||"drawing"===e)){const e=this._pick(t);if(null!=e?.mapPoint){const t=this._getSnappingContext("mouse");this._updatingHandles.addPromise(a(this._snappingOperation.snap({point:e.mapPoint},this._snappingManager,t)))}}else this.stagedPoint=null}_addVertexAt(t,e){const i=this._pick(t),a=i?.mapPoint;if(null==a)return!1;this.analysis.valid&&"initial"===this.polygonState&&(this.analysis.clear(),this._set("created",!1),this.polygonState="initial");const n=this._getSnappingContext(e),s=this._snappingOperation.update({point:a},this._snappingManager,n),o=h(s,new l);return this.analysisViewData.path.add(o),!0}_pick(t){const e=new y(t);return this.measurementView.pick(e)}_resetSnappingState(){this._snappingManager.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}get test(){}};t([o({readOnly:!0})],b.prototype,"state",null),t([o()],b.prototype,"polygonState",void 0),t([o({readOnly:!0})],b.prototype,"cursor",null),t([o()],b.prototype,"measurementView",void 0),t([o()],b.prototype,"removeIncompleteOnCancel",void 0),t([o({constructOnly:!0})],b.prototype,"view",void 0),t([o({constructOnly:!0})],b.prototype,"analysis",void 0),t([o({constructOnly:!0})],b.prototype,"analysisViewData",void 0),t([o({readOnly:!0})],b.prototype,"manipulators",void 0),t([o()],b.prototype,"updating",null),t([o()],b.prototype,"stagedPoint",null),t([o()],b.prototype,"snappingOptions",null),b=t([r("esri.views.3d.interactive.measurementTools.areaMeasurement3D.AreaMeasurement3DTool")],b);export{b as default};
5
+ import{_ as t}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import{destroyMaybe as e}from"../../../../../core/maybe.js";import{memoize as i}from"../../../../../core/memoize.js";import{ignoreAbortErrors as a}from"../../../../../core/promiseUtils.js";import{syncAndInitial as n,when as s}from"../../../../../core/reactiveUtils.js";import{property as o}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as p}from"../../../../../core/support/UpdatingHandles.js";import l from"../../../../../geometry/Point.js";import{clonePoint as h}from"../../../../../layers/graphics/hydratedFeatures.js";import{isPrimaryPointerAction as g}from"../../../analysis/support/measurementUtils.js";import{SnappingVisualizer3D as m}from"../../SnappingVisualizer3D.js";import{hideManipulatorWhileDragging as d,screenToMap3D as u}from"../../editingTools/dragEventPipeline3D.js";import c from"./AreaMeasurement3DView.js";import{PickRequest as y}from"../support/PickRequest.js";import{AnalysisToolBase as w}from"../../../../interactive/AnalysisToolBase.js";import{createCoordinateHelper as v}from"../../../../interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as _}from"../../../../interactive/dragEventPipeline.js";import{sketchKeys as f}from"../../../../interactive/keybindings.js";import{ManipulatorCollection as S}from"../../../../interactive/ManipulatorCollection.js";import{EditGeometry as P}from"../../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as V}from"../../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as D}from"../../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as j}from"../../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as M}from"../../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as x}from"../../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as k}from"../../../../interactive/snapping/snappingUtils.js";import{createScreenPointFromEvent as O}from"../../../../support/screenUtils.js";let b=class extends w{constructor(t){super(t),this._updatingHandles=new p,this.polygonState="initial",this.removeIncompleteOnCancel=!1,this.manipulators=new S,this._getSnappingContext=i((t=>new D({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new V(new P("point",v(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new m})))}initialize(){const{view:t,analysisViewData:e,manipulators:i,visible:o}=this;this.measurementView=new c({view:t,analysisViewData:e,toolState:this,manipulators:i,visible:o});const r=M(t);this._snappingManagerResult=r,this.addHandles(r),this._snappingOperation=new x({view:t}),this._updatingHandles.add((()=>this.stagedPoint),(t=>{this.analysisViewData.stagedPoint=null!=t?h(t,new l):null}),n),k(this,(()=>{const t=this.view.inputManager.latestPointerType??"mouse",e=this._getSnappingContext(t);this._updatingHandles.addPromise(a(this._snappingOperation.snapAgainNearPreviousMapPoint(this._snappingManager,e)))})),this._setupManipulators(),this.addHandles([s((()=>"measured"===this.state),(()=>this.finishToolCreation()),n),this.analysisViewData.path.on("change",(()=>{const t=this.analysisViewData.path;"initial"!==this.polygonState||t.isEmptyPolygon||(t.isValidPolygon?this.polygonState="measured":this.polygonState="drawing")}))])}destroy(){this.measurementView.destroy(),this._set("measurementView",null),this._updatingHandles=e(this._updatingHandles)}get _snappingManager(){return this._snappingManagerResult.snappingManager}get state(){return 0===this.analysisViewData.path.numVertices?"ready":this.analysisViewData.path.isValidPolygon&&"editing"!==this.polygonState?"measured":"measuring"}get cursor(){return this.active?"crosshair":null}get updating(){return this._updatingHandles.updating||this._snappingManager.updating}get stagedPoint(){return this._snappingOperation.stagedPoint}set stagedPoint(t){this._snappingOperation.stagedPoint=t}get snappingOptions(){return this._snappingManager.options}finishMeasurement(){const{path:t}=this.analysisViewData;t.numVertices<=2||(t.close(),this.polygonState="measured",this._resetSnappingState(),this.active&&(this.view.activeTool=null))}resetCreated(){super.resetCreated(),this._resetSnappingState(),this.polygonState="initial","measured"===this.state&&(this.polygonState="measured",this.finishToolCreation())}onShow(){this.measurementView.show()}onHide(){this.measurementView.hide()}onDeactivate(){this._resetSnappingState()}onInputEvent(t){switch(t.type){case"immediate-double-click":this._handleImmediateDoubleClick(t);break;case"immediate-click":this._handleImmediateClick(t);break;case"pointer-move":this._handlePointerMove(t);break;case"drag":this._handleDrag(t);break;case"key-down":this._handleKeyDown(t)}}_setupManipulators(){const t=t=>t.events.on("grab-changed",(()=>{if(this.analysisViewData.path.isValidPolygon){const t=this.manipulators.some((t=>t.manipulator.grabbing));this.polygonState=t?"editing":"measured"}})),e=e=>{this.addHandles([_(e,((t,e,i,a)=>{const n=d(t),s=t.metadata,o=this._snappingManager,r=this._getSnappingContext(a),p=this._updatingHandles,{snappingStep:l,cancelSnapping:g}=j({snappingManager:o,snappingContext:r,updatingHandles:p});i=i.next(n).next((e=>(this.analysisViewData.lastDraggedVertex=null,this.analysisViewData.path.setVertexPosition(s,m),t.location=m,e))).next(g),e.next(n).next(u(this.view)).next(...l).next((e=>{t.location=e.mapEnd,this.analysisViewData.lastDraggedVertex="end"===e.action?null:s,this.analysisViewData.path.setVertexPosition(s,h(e.mapEnd))}));const m=h(this.analysisViewData.path.getVertexPositionAsPoint(s))})),t(e)],e)};this.manipulators.forEach((({manipulator:t})=>{e(t)})),this.addHandles([this.manipulators.on("after-add",(({item:{manipulator:t}})=>{e(t)})),this.manipulators.on("after-remove",(({item:{manipulator:t}})=>this.removeHandles(t)))])}_handleImmediateDoubleClick(t){g(t)&&("drawing"===this.polygonState&&this.finishMeasurement(),t.stopPropagation())}_handleDrag(t){"editing"===this.polygonState&&t.stopPropagation()}_handleImmediateClick(t){if(!g(t))return;const e=O(t),{pointerType:i}=t;if(this.active)switch(this.polygonState){case"initial":case"measured":if(this._addVertexAt(e,i))return this.stagedPoint=null,this.polygonState="drawing",void t.stopPropagation();break;case"drawing":{const a=this.measurementView.vertexHandleAt(e,i);if(null==a){if(this._addVertexAt(e,i))return this.stagedPoint=null,void t.stopPropagation()}else 0===a.index&&(this.finishMeasurement(),t.stopPropagation());break}}"mouse"===t.pointerType&&this._hoverAt(e)}_handlePointerMove(t){if("mouse"===t.pointerType){const e=O(t);this._hoverAt(e)}}_handleKeyDown(t){const{path:e}=this.analysisViewData;t.key===f.complete&&"drawing"===this.polygonState&&e.numVertices>=3&&(this.stagedPoint=null,this.finishMeasurement(),t.stopPropagation())}_hoverAt(t){const{polygonState:e}=this;if(this.active&&C.has(e)){const e=this._pick(t);if(null!=e?.mapPoint){const t=this._getSnappingContext("mouse");this._updatingHandles.addPromise(a(this._snappingOperation.snap({point:e.mapPoint},this._snappingManager,t)))}}else this.stagedPoint=null}_addVertexAt(t,e){const i=this._pick(t),a=i?.mapPoint;if(null==a)return!1;this.analysis.valid&&"measured"===this.polygonState&&(this.analysis.clear(),this._set("created",!1),this.polygonState="initial");const n=this._getSnappingContext(e),s=this._snappingOperation.update({point:a},this._snappingManager,n),o=h(s,new l);return this.analysisViewData.path.add(o),!0}_pick(t){const e=new y(t);return this.measurementView.pick(e)}_resetSnappingState(){this._snappingManager.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}get test(){}};t([o({readOnly:!0})],b.prototype,"state",null),t([o()],b.prototype,"polygonState",void 0),t([o({readOnly:!0})],b.prototype,"cursor",null),t([o()],b.prototype,"measurementView",void 0),t([o()],b.prototype,"removeIncompleteOnCancel",void 0),t([o({constructOnly:!0})],b.prototype,"view",void 0),t([o({constructOnly:!0})],b.prototype,"analysis",void 0),t([o({constructOnly:!0})],b.prototype,"analysisViewData",void 0),t([o({readOnly:!0})],b.prototype,"manipulators",void 0),t([o()],b.prototype,"updating",null),t([o()],b.prototype,"stagedPoint",null),t([o()],b.prototype,"snappingOptions",null),b=t([r("esri.views.3d.interactive.measurementTools.areaMeasurement3D.AreaMeasurement3DTool")],b);const C=new Set(["initial","drawing","measured"]);export{b 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 t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import r from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import n from"../core/Promise.js";import{watch as a,initial as l,whenOnce as p,syncAndInitial as m}from"../core/reactiveUtils.js";import{property as h}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import u from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import{load as j,execute as w}from"../geometry/operators/projectOperator.js";import b from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as v}from"../layers/support/MediaElementView.js";import M from"../layers/support/TileInfo.js";import _ from"../layers/support/VideoElement.js";import{DOMContainer as S}from"./DOMContainer.js";import{Viewport2DBaseMixin as C}from"./Viewport2DBaseMixin.js";import{Viewport2DMixin as x}from"./Viewport2DMixin.js";import V from"./2d/AnimationManager.js";import E from"./2d/MapViewConstraints.js";import"../core/Error.js";import"../core/scheduling.js";import"../core/Logger.js";import"../core/colorUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../symbols/cim/enums.js";import"../core/floatRGBA.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"./2d/engine/webgl/definitions.js";import"./2d/engine/webgl/animations/instructions.js";import"../core/mathUtils.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/Axis.js";import"../geometry/support/spatialReferenceUtils.js";import"../geometry/support/TileClipper.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../symbols/cim/constants.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"./2d/engine/webgl/alignmentUtils.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import{Container as P}from"./2d/engine/Container.js";import"./2d/engine/webgl/enums.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./webgl/enums.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/checkWebGLError.js";import"./2d/engine/webgl/DefaultVertexAttributeLayouts.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./webgl/FBOAttachmentType.js";import"./2d/engine/vectorTiles/style/StyleDefinition.js";import"./2d/engine/vectorTiles/enums.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueType.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/animated/attributes.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/constants.js";import"./2d/engine/webgl/mesh/templates/templateUtils.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../arcade/ArcadeDate.js";import"../intl/locale.js";import"luxon";import"../core/sql/UnknownTimeZone.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import{ManagedCanvas as G}from"./2d/engine/ManagedCanvas.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/meshing/definitions.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"../chunks/earcut.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtilsCommon.js";import"../geometry/support/Ellipsoid.js";import"../kernel.js";import"./2d/layers/support/util.js";import D from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/unitUtils.js";import"../geometry/ellipsoidUtils.js";import"../chunks/pe.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import{ViewStateManager as R}from"./2d/ViewStateManager.js";import q from"./2d/engine/webgl/Overlay.js";import T from"./2d/engine/webgl/OverlayContainer.js";import O from"./navigation/Navigation.js";import z from"./ui/DefaultUI.js";import W from"./ui/video/DefaultUIVideo.js";const A=new t("#000");let U;async function k(){const[,{ParentStage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);U=e}const F=.01,H=["feature","geojson","csv","stream","ogc-feature","catalog","wfs","parquet","graphics"];let L=class extends s{};L=e([c("esri.views.VideoView.Base")],L);let B=class extends(x(C(S(r.EventedMixin(n.EsriPromiseMixin(L)))))){constructor(e){super(e),this._isValid=!1,this._prevZoomEnabled=!1,this._prevRotationEnabled=!1,this.stage=null,this.childStage=null,this._operationalDataView=null,this.operationalDataVisible=!1,this.layer=null,this.map=null,this.navigation=new O,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new R({constraints:new E({view:this,minScale:1,maxScale:F})}),this.type="2d",this.ui=new W,this.view2dType="video",this.addHandles([a((()=>this.preconditionsReady),(e=>e?this._startup():this._teardown())),a((()=>this.layer),(()=>this.addResolvingPromise(p((()=>this.ready)))),l),a((()=>this.videoSize),(([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)})),a((()=>[this.layer?.frameEffect,this._effectsContainer]),(()=>{this._effectsContainer&&(this._effectsContainer.effect=this.layer?.frameEffect??null)}),m),a((()=>this.operationalDataVisible),(()=>{this.childStage&&(this.childStage.videoScreenRenderer.visible=this.operationalDataVisible),this.operationalDataVisible&&(this.scale=1,this.rotation=0),this.navigation&&(this._prevZoomEnabled&&(this.navigation.actionMap.mouseWheel=this.operationalDataVisible?"none":"zoom",this.navigation.actionMap.dragPrimary=this.operationalDataVisible?"none":"pan",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter((e=>"zoom"!==e)):[...new Set([...this.ui.components,"zoom"])])),this._prevRotationEnabled&&(this.navigation.actionMap.dragSecondary=this.operationalDataVisible?"none":"rotate",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter((e=>"compass"!==e)):[...new Set([...this.ui.components,"compass"])])))}),m)])}initialize(){this._prevZoomEnabled="zoom"===this.navigation.actionMap.mouseWheel&&this.ui.components.includes("zoom"),this._prevRotationEnabled="rotate"===this.navigation.actionMap.dragSecondary&&this.ui.components.includes("compass"),this.addResolvingPromise(k().then((()=>(this._isValid=!0,p((()=>this.ready))))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}async hitTest(e,t){return this._operationalDataView&&this._operationalDataView.ready?this._operationalDataView.hitTest(e,t):{screenPoint:e,results:[]}}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference);const t={renderingOptions:this.renderingOptions,backgroundColor:A,groundControlPoints:()=>this.layer?.groundControlPoints},i=new U(this.surface,t,new G(this.surface));this.stage=i,this._prepareStage(this.stage),this.childStage=i.childStage,this._prepareChildStage(this.childStage);const s=new V({view:this});this._set("animationManager",s);const r=new D({view:this,animationManager:s});this._set("mapViewNavigation",r),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new u({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([a((()=>this.stationary),(t=>e.stationary=t),m),a((()=>this.state.id),(()=>e.state=this.state),m),a((()=>this.renderingOptions),(t=>e.renderingOptions=t),m)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new v({element:new _({video:this.layer?.videoElement,georeference:new b({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new q(this._videoElementView);this._overlayContainer=new T,this._overlayContainer.addChild(t),this._effectsContainer=new P,this._effectsContainer.addChild(this._overlayContainer),this.stage.addChild(this._effectsContainer);const i=document.createElement("div");i.classList.add("esri-video-poster"),this.container?.classList.add("esri-video-view"),this.container?.appendChild(i)}_prepareChildStage(e){this.addHandles([a((()=>this.map),(async t=>{if(this.ready&&t!==this.map)return;const{default:i}=await import("./video/VideoOperationalDataView.js");this._operationalDataView=new i({stage:e,layerViewFilter:e=>new Set(H).has(e.type),videoWidth:this.videoSize[0],videoHeight:this.videoSize[1],map:t}),p((()=>this._operationalDataView?.ready)).then((()=>{e.videoScreenRenderer.visible=this.operationalDataVisible}))}),m),a((()=>this.layer?.groundControlPoints),(async()=>{if(!this.layer?.groundControlPoints)return;const t=this.layer.groundControlPoints,i=t?.length;if(!i)return;await j();const s=new Array(i),r=e.state.spatialReference;for(let e=0;e<i;e++){const{lat:i,lon:o}=t[e];s[e]=w(new u(o,i),r)}let o=1/0,n=1/0,a=-1/0,l=-1/0;for(const e of s)o=Math.min(o,e.x),n=Math.min(n,e.y),a=Math.max(a,e.x),l=Math.max(l,e.y);const p=f.fromJSON({xmin:o,ymin:n,xmax:a,ymax:l,spatialReference:r});await(this._operationalDataView?.goTo(p,{animate:!1}).catch((()=>{})))}),m)])}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>F;r/=2)i.push(r);i.push(F);const{lods:s}=M.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([h()],B.prototype,"_overlayContainer",void 0),e([h()],B.prototype,"_isValid",void 0),e([h()],B.prototype,"_effectsContainer",void 0),e([h()],B.prototype,"constraintsInfo",null),e([h()],B.prototype,"operationalDataVisible",void 0),e([h()],B.prototype,"layer",void 0),e([h()],B.prototype,"map",void 0),e([h({type:O,nonNullable:!0})],B.prototype,"navigation",void 0),e([h({readOnly:!0})],B.prototype,"preconditionsReady",null),e([h({readOnly:!0})],B.prototype,"ready",void 0),e([h({readOnly:!0})],B.prototype,"rendering",null),e([h()],B.prototype,"scale",null),e([h()],B.prototype,"spatialReference",void 0),e([h()],B.prototype,"stateManager",void 0),e([h()],B.prototype,"type",void 0),e([h(),d((e=>e instanceof z?e:g(W,e)))],B.prototype,"ui",void 0),e([h({readOnly:!0})],B.prototype,"videoSize",null),e([h({readOnly:!0})],B.prototype,"view2dType",void 0),B=e([c("esri.views.VideoView")],B);const I=B;export{I as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import r from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import a from"../core/Promise.js";import{watch as n,initial as l,whenOnce as p,syncAndInitial as m}from"../core/reactiveUtils.js";import{property as h}from"../core/accessorSupport/decorators/property.js";import{cast as d}from"../core/accessorSupport/decorators/cast.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import u from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import{load as j,execute as w}from"../geometry/operators/projectOperator.js";import b from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as v}from"../layers/support/MediaElementView.js";import M from"../layers/support/TileInfo.js";import _ from"../layers/support/VideoElement.js";import{DOMContainer as S}from"./DOMContainer.js";import{Viewport2DBaseMixin as C}from"./Viewport2DBaseMixin.js";import{Viewport2DMixin as V}from"./Viewport2DMixin.js";import x from"./2d/AnimationManager.js";import E from"./2d/MapViewConstraints.js";import"../core/Error.js";import"../core/scheduling.js";import"../core/Logger.js";import"../core/colorUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../symbols/cim/enums.js";import"../core/floatRGBA.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"./2d/engine/webgl/definitions.js";import"./2d/engine/webgl/animations/instructions.js";import"../core/mathUtils.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/Axis.js";import"../geometry/support/spatialReferenceUtils.js";import"../geometry/support/TileClipper.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../symbols/cim/constants.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"./2d/engine/webgl/alignmentUtils.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import{Container as P}from"./2d/engine/Container.js";import"./2d/engine/webgl/enums.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./webgl/enums.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/checkWebGLError.js";import"./2d/engine/webgl/DefaultVertexAttributeLayouts.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./webgl/FBOAttachmentType.js";import"./2d/engine/vectorTiles/style/StyleDefinition.js";import"./2d/engine/vectorTiles/enums.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueType.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/animated/attributes.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/constants.js";import"./2d/engine/webgl/mesh/templates/templateUtils.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../arcade/ArcadeDate.js";import"../intl/locale.js";import"luxon";import"../core/sql/UnknownTimeZone.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import{ManagedCanvas as G}from"./2d/engine/ManagedCanvas.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/meshing/definitions.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"../chunks/earcut.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtilsCommon.js";import"../geometry/support/Ellipsoid.js";import"../kernel.js";import"./2d/layers/support/util.js";import D from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/unitUtils.js";import"../geometry/ellipsoidUtils.js";import"../chunks/pe.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import{ViewStateManager as R}from"./2d/ViewStateManager.js";import q from"./2d/engine/webgl/Overlay.js";import z from"./2d/engine/webgl/OverlayContainer.js";import T from"./navigation/Navigation.js";import O from"./ui/DefaultUI.js";import W from"./ui/video/DefaultUIVideo.js";const A=new t("#000");let U;async function k(){const[,{ParentStage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);U=e}const F=.01,H=["feature","geojson","csv","stream","ogc-feature","catalog","wfs","parquet","graphics","group"];let L=class extends s{};L=e([c("esri.views.VideoView.Base")],L);let B=class extends(V(C(S(r.EventedMixin(a.EsriPromiseMixin(L)))))){constructor(e){super(e),this._isValid=!1,this._prevZoomEnabled=!1,this._prevRotationEnabled=!1,this.stage=null,this.childStage=null,this._operationalDataView=null,this.operationalDataVisible=!1,this.layer=null,this.map=null,this.navigation=new T,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new R({constraints:new E({view:this,minScale:1,maxScale:F})}),this.type="2d",this.ui=new W,this.view2dType="video",this.addHandles([n((()=>this.preconditionsReady),(e=>e?this._startup():this._teardown())),n((()=>this.layer),(()=>this.addResolvingPromise(p((()=>this.ready)))),l),n((()=>this.videoSize),(([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)})),n((()=>this.size),(e=>{this._operationalDataView&&this._operationalDataView.stateManager.resize(e[0],e[1])})),n((()=>[this.layer?.frameEffect,this._effectsContainer]),(()=>{this._effectsContainer&&(this._effectsContainer.effect=this.layer?.frameEffect??null)}),m)])}initialize(){this._prevZoomEnabled="zoom"===this.navigation.actionMap.mouseWheel&&this.ui.components.includes("zoom"),this._prevRotationEnabled="rotate"===this.navigation.actionMap.dragSecondary&&this.ui.components.includes("compass"),this.addHandles([n((()=>[this.operationalDataVisible,this.childStage]),(()=>{this.childStage&&(this.childStage.videoScreenRenderer.visible=this.operationalDataVisible),this.operationalDataVisible&&(this.scale=1,this.rotation=0),this.navigation&&(this._prevZoomEnabled&&(this.navigation.actionMap.mouseWheel=this.operationalDataVisible?"none":"zoom",this.navigation.actionMap.dragPrimary=this.operationalDataVisible?"none":"pan",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter((e=>"zoom"!==e)):[...new Set([...this.ui.components,"zoom"])])),this._prevRotationEnabled&&(this.navigation.actionMap.dragSecondary=this.operationalDataVisible?"none":"rotate",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter((e=>"compass"!==e)):[...new Set([...this.ui.components,"compass"])])))}),m)]),this.addResolvingPromise(k().then((()=>(this._isValid=!0,p((()=>this.ready))))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}async hitTest(e,t){return this._operationalDataView&&this._operationalDataView.ready?this._operationalDataView.hitTest(e,t):{screenPoint:e,results:[]}}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference);const t={renderingOptions:this.renderingOptions,backgroundColor:A,groundControlPoints:()=>this.layer?.groundControlPoints,getSize:()=>this.videoSize},i=new U(this.surface,t,new G(this.surface));this.stage=i,this._prepareStage(this.stage),this.childStage=i.childStage,this._prepareChildStage(this.childStage);const s=new x({view:this});this._set("animationManager",s);const r=new D({view:this,animationManager:s});this._set("mapViewNavigation",r),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new u({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([n((()=>this.stationary),(t=>e.stationary=t),m),n((()=>this.state.id),(()=>e.state=this.state),m),n((()=>this.renderingOptions),(t=>e.renderingOptions=t),m)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new v({element:new _({video:this.layer?.videoElement,georeference:new b({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new q(this._videoElementView);this._overlayContainer=new z,this._overlayContainer.addChild(t),this._effectsContainer=new P,this._effectsContainer.addChild(this._overlayContainer),this.stage.addChild(this._effectsContainer);const i=document.createElement("div");i.classList.add("esri-video-poster"),this.container?.classList.add("esri-video-view"),this.container?.appendChild(i)}_prepareChildStage(e){this.addHandles([n((()=>this.map),(async t=>{if(!t)return;const{default:i}=await import("./video/VideoOperationalDataView.js");this._operationalDataView=new i({stage:e,layerViewFilter:e=>new Set(H).has(e.type),width:this.size[0],height:this.size[1],map:t}),p((()=>this._operationalDataView?.ready)).then((()=>{e.videoScreenRenderer.visible=this.operationalDataVisible}))}),m),n((()=>this.layer?.groundControlPoints),(async()=>{if(!this.layer?.groundControlPoints||!e.state)return;const t=this.layer.groundControlPoints,i=t?.length;if(!i)return;await j();const s=new Array(i),r=e.state.spatialReference;for(let e=0;e<i;e++){const{lat:i,lon:o}=t[e];s[e]=w(new u(o,i),r)}let o=1/0,a=1/0,n=-1/0,l=-1/0;for(const e of s)o=Math.min(o,e.x),a=Math.min(a,e.y),n=Math.max(n,e.x),l=Math.max(l,e.y);const p=f.fromJSON({xmin:o,ymin:a,xmax:n,ymax:l,spatialReference:r});await(this._operationalDataView?.goTo(p,{animate:!1}).catch((()=>{})))}),m)])}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>F;r/=2)i.push(r);i.push(F);const{lods:s}=M.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([h()],B.prototype,"_overlayContainer",void 0),e([h()],B.prototype,"_isValid",void 0),e([h()],B.prototype,"_effectsContainer",void 0),e([h()],B.prototype,"constraintsInfo",null),e([h()],B.prototype,"operationalDataVisible",void 0),e([h()],B.prototype,"layer",void 0),e([h()],B.prototype,"map",void 0),e([h({type:T,nonNullable:!0})],B.prototype,"navigation",void 0),e([h({readOnly:!0})],B.prototype,"preconditionsReady",null),e([h({readOnly:!0})],B.prototype,"ready",void 0),e([h({readOnly:!0})],B.prototype,"rendering",null),e([h()],B.prototype,"scale",null),e([h()],B.prototype,"spatialReference",void 0),e([h()],B.prototype,"stateManager",void 0),e([h()],B.prototype,"type",void 0),e([h(),d((e=>e instanceof O?e:g(W,e)))],B.prototype,"ui",void 0),e([h({readOnly:!0})],B.prototype,"videoSize",null),e([h({readOnly:!0})],B.prototype,"view2dType",void 0),B=e([c("esri.views.VideoView")],B);const I=B;export{I as default};