@arcgis/core 4.23.0-next.20220124 → 4.23.0-next.20220126
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.
- package/Graphic.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/00c5bb5eecb0e89266df.js +1 -0
- package/assets/esri/core/workers/chunks/021a37e2b191298e80b7.js +1 -0
- package/assets/esri/core/workers/chunks/1370c92c40fd6271553c.js +1 -0
- package/assets/esri/core/workers/chunks/1fbcc8424452d0256bd6.js +1 -0
- package/assets/esri/core/workers/chunks/{fe864d01e72aa24574b6.js → 23b15e7c2f96d260e16c.js} +1 -1
- package/assets/esri/core/workers/chunks/{b2ae5fc4f787ea568b88.js → 2460f3b6ada6ae900dec.js} +1 -1
- package/assets/esri/core/workers/chunks/2792ca40f1e92849247c.js +1 -0
- package/assets/esri/core/workers/chunks/2a96f1bba9ce6883e5e0.js +1 -0
- package/assets/esri/core/workers/chunks/2e899ef5881b4ec6fa55.js +1 -0
- package/assets/esri/core/workers/chunks/3231ee3e090bb4cac3fc.js +1 -0
- package/assets/esri/core/workers/chunks/{0c3e3a5baf54bd5e210c.js → 36e250278b5622ccf068.js} +1 -1
- package/assets/esri/core/workers/chunks/395ba088d4864588ff66.js +1 -0
- package/assets/esri/core/workers/chunks/3cc77692b2eee27b9c9e.js +1 -0
- package/assets/esri/core/workers/chunks/3f343f792fd9f44d6f25.js +1 -0
- package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +1 -0
- package/assets/esri/core/workers/chunks/{625d2663daa8e0cf64b0.js → 434b16731c6a81f868ef.js} +1 -1
- package/assets/esri/core/workers/chunks/4385a268c2a64281d1c1.js +1 -0
- package/assets/esri/core/workers/chunks/{44b01d42d4ec72913229.js → 438f0b5ae5c53ae4f06a.js} +1 -1
- package/assets/esri/core/workers/chunks/{4d539878bfbd7c549e60.js → 46b4bb66a54bbd8e2e57.js} +1 -1
- package/assets/esri/core/workers/chunks/4c76146014dc15143ba3.js +1 -0
- package/assets/esri/core/workers/chunks/5d991b74d958005c26c4.js +1 -0
- package/assets/esri/core/workers/chunks/5dfe1f8d520025e2118b.js +1 -0
- package/assets/esri/core/workers/chunks/601e697dc7414bda128a.js +1 -0
- package/assets/esri/core/workers/chunks/{9cdaba126ac7fa5f33f0.js → 6cd5e4380d29b9a3c344.js} +1 -1
- package/assets/esri/core/workers/chunks/{a7b1b75643ed31489495.js → 6f50a9647f026a8d4729.js} +1 -1
- package/assets/esri/core/workers/chunks/7d661129a0d8c466eeec.js +1 -0
- package/assets/esri/core/workers/chunks/{64276aacaafa4c8a15bd.js → 7dcf52d3db3903c8eb9f.js} +1 -1
- package/assets/esri/core/workers/chunks/8070972c0efb78523b68.js +1 -0
- package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +1 -0
- package/assets/esri/core/workers/chunks/97a28641b3b2fd31bea2.js +1 -0
- package/assets/esri/core/workers/chunks/{d1454155ee1b8a421cbb.js → 97ec9eef0048760fa260.js} +1 -1
- package/assets/esri/core/workers/chunks/98986e6601b0366376b4.js +1 -0
- package/assets/esri/core/workers/chunks/9cdcf9309d6feda70185.js +1 -0
- package/assets/esri/core/workers/chunks/aa04b90b82bf70caaae4.js +1 -0
- package/assets/esri/core/workers/chunks/aace7e1fef256bb961c9.js +1 -0
- package/assets/esri/core/workers/chunks/{c080114a69fa95b88d22.js → af5694b4d278cf1db2d9.js} +1 -1
- package/assets/esri/core/workers/chunks/afbb4f802ca5774f0326.js +1 -0
- package/assets/esri/core/workers/chunks/b2c5f92e3d7606297ca9.js +1 -0
- package/assets/esri/core/workers/chunks/b2d2de935487257c568b.js +1 -0
- package/assets/esri/core/workers/chunks/b2ebe4f6d100e15b512d.js +1 -0
- package/assets/esri/core/workers/chunks/b8316c6469a543029bc6.js +1 -0
- package/assets/esri/core/workers/chunks/{4c9084a04948b6924749.js → ba5eb394f098968c22d2.js} +1 -1
- package/assets/esri/core/workers/chunks/bf0a65b4be31959f921d.js +1 -0
- package/assets/esri/core/workers/chunks/c890c7fca27170e3341f.js +1 -0
- package/assets/esri/core/workers/chunks/c976785f2391c77d8a30.js +1 -0
- package/assets/esri/core/workers/chunks/{d39b7983b68d6e5b404d.js → cdbc005eebec1503b99d.js} +1 -1
- package/assets/esri/core/workers/chunks/e4b84ca8ddfd48dd79b1.js +1 -0
- package/assets/esri/core/workers/chunks/e4e2036373166c1d5cf5.js +1 -0
- package/assets/esri/core/workers/chunks/e4f93c55eaefab4192b5.js +1 -0
- package/assets/esri/core/workers/chunks/e6165e17fbb07bfc40a1.js +1 -0
- package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +1 -0
- package/assets/esri/core/workers/chunks/{f678293de9a6d8f5b5db.js → ec89466f76d0ba22525e.js} +1 -1
- package/assets/esri/core/workers/chunks/ee45618c45806ab654cb.js +1 -0
- package/assets/esri/core/workers/chunks/f4baa5ea2e42b1317941.js +1 -0
- package/assets/esri/core/workers/chunks/f760a3e030b0f358a92a.js +1 -0
- package/assets/esri/core/workers/chunks/face43cf5abcd2f5bd9d.js +1 -0
- package/assets/esri/themes/base/_mixins.scss +4 -1
- package/assets/esri/themes/base/icons/style.scss +11 -2
- package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +13 -10
- package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +4 -2
- package/assets/esri/themes/base/widgets/_Directions.scss +5 -3
- package/assets/esri/themes/base/widgets/_Editor.scss +5 -2
- package/assets/esri/themes/base/widgets/_ElevationProfile.scss +6 -4
- package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
- package/assets/esri/themes/base/widgets/_LayerList.scss +13 -9
- package/assets/esri/themes/base/widgets/_Popup.scss +4 -2
- package/assets/esri/themes/base/widgets/_Print.scss +24 -11
- package/assets/esri/themes/base/widgets/_Search.scss +4 -2
- package/assets/esri/themes/base/widgets/_TableList.scss +9 -7
- package/assets/esri/themes/base/widgets/_Weather.scss +12 -0
- package/assets/esri/themes/base/widgets/_Widget.scss +18 -9
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather.json +1 -1
- package/assets/esri/widgets/Weather/t9n/Weather_en.json +1 -1
- package/chunks/ComponentShader.glsl.js +19 -19
- package/chunks/Terrain.glsl.js +11 -11
- package/chunks/WaterSurface.glsl.js +21 -21
- package/chunks/pe.js +1 -1
- package/chunks/vec3.js +1 -1
- package/core/accessorSupport/read.js +1 -1
- package/core/accessorSupport/write.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/geometry/pe.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/interfaces.d.ts +36 -2
- package/layers/support/rasterDatasets/BaseRaster.js +1 -1
- package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
- package/package.json +2 -2
- package/popup/content/AttachmentsContent.js +1 -1
- package/popup/content/support/mediaInfoTypes.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/LabelSymbol3D.js +1 -1
- package/symbols/PointSymbol3D.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/CIMSymbolRasterizer.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/support/Symbol3DVerticalOffset.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/previewWebStyleSymbol.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/symbols.js +1 -1
- package/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/weather.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
- package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +21 -13
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
- package/views/interactive/dragEventPipeline.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/webgl/Program.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/Popup/PopupViewModel.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/Slice/SliceViewModel.js +1 -1
- package/widgets/Slider/SliderViewModel.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather/css.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/InteractiveToolViewModel.js +1 -1
- package/assets/components/assets/calcite-icon/checkSquareF16.json +0 -1
- package/assets/components/assets/calcite-icon/checkSquareF24.json +0 -1
- package/assets/components/assets/calcite-icon/checkSquareF32.json +0 -1
- package/assets/components/assets/calcite-icon/lineSolid4.json +0 -1
- package/assets/components/assets/calcite-icon/squareF16.json +0 -1
- package/assets/components/assets/calcite-icon/squareF24.json +0 -1
- package/assets/components/assets/calcite-icon/squareF32.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon16.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon24.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagon32.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF16.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF24.json +0 -1
- package/assets/components/assets/calcite-icon/xHexagonF32.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF16.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF24.json +0 -1
- package/assets/components/assets/calcite-icon/xOctagonF32.json +0 -1
- package/assets/esri/core/workers/chunks/09da224052976e290828.js +0 -1
- package/assets/esri/core/workers/chunks/0bf079e752ab79468478.js +0 -1
- package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +0 -1
- package/assets/esri/core/workers/chunks/23745a5ab47c840dc452.js +0 -1
- package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +0 -1
- package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +0 -1
- package/assets/esri/core/workers/chunks/32f8c4af7e70ebdcb19e.js +0 -1
- package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +0 -1
- package/assets/esri/core/workers/chunks/3a9740dccda6a733313c.js +0 -1
- package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +0 -1
- package/assets/esri/core/workers/chunks/5538639a49c7cc2eca63.js +0 -1
- package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +0 -1
- package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +0 -1
- package/assets/esri/core/workers/chunks/739e579150bf466d43ae.js +0 -1
- package/assets/esri/core/workers/chunks/74df1f3e1e2e524a89d2.js +0 -1
- package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +0 -1
- package/assets/esri/core/workers/chunks/7baf6b1f3f050aa67ae4.js +0 -1
- package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +0 -1
- package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +0 -1
- package/assets/esri/core/workers/chunks/9cb2ae42a8e328b1d98d.js +0 -1
- package/assets/esri/core/workers/chunks/9d3c58a0ef634d95b7bd.js +0 -1
- package/assets/esri/core/workers/chunks/a6ff3db3493543df81bc.js +0 -1
- package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +0 -1
- package/assets/esri/core/workers/chunks/a96afc176041f698c7a1.js +0 -1
- package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +0 -1
- package/assets/esri/core/workers/chunks/afa6912454f2a5ffadce.js +0 -1
- package/assets/esri/core/workers/chunks/b2beb6e1fd2ee6503830.js +0 -1
- package/assets/esri/core/workers/chunks/bab1cfd0a901181622af.js +0 -1
- package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +0 -1
- package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +0 -1
- package/assets/esri/core/workers/chunks/c6bd943fe8fd13bb4806.js +0 -1
- package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +0 -1
- package/assets/esri/core/workers/chunks/cd7d83d127e085d52584.js +0 -1
- package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +0 -1
- package/assets/esri/core/workers/chunks/da1c2873bdbc0956dca0.js +0 -1
- package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +0 -1
- package/assets/esri/core/workers/chunks/e079cb1d53aca15b7df2.js +0 -1
- package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +0 -1
- package/assets/esri/core/workers/chunks/e97e986120aaadad7d4c.js +0 -1
- package/assets/esri/core/workers/chunks/f8e7755240a94b499e1f.js +0 -1
- package/assets/esri/core/workers/chunks/fd3e5d823dc7917f4b8f.js +0 -1
- package/views/3d/layers/graphics/IGraphics3DFeatureProcessor.js +0 -4
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import{clone as t}from"../../core/lang.js";import i from"../../core/Logger.js";import{isSome as o}from"../../core/maybe.js";import{pt2px as r}from"../../core/screenUtils.js";import{numericHash as n}from"../../core/string.js";import{createRendererExpression as l,ArcadeExpression as a}from"../../support/arcadeOnDemand.js";import{CIMSymbolHelper as s,OverrideHelper as c}from"./CIMSymbolHelper.js";import{CapType as f,JoinType as m,Alignment as p}from"./enums.js";import{getExtent as u,getSDFMetrics as y}from"./SDFHelper.js";import{fromCIMColor as h,getValue as g,_adjustTextCase as d,evaluateValueOrFunction as S,isGeometryEngineRequired as v,importGeometryEngine as N}from"./utils.js";import{CIMEffectHelper as b}from"./effects/CIMEffectHelper.js";import C from"../../views/2d/arcade/callExpressionWithFeature.js";import{getFontFamily as k}from"../../views/2d/engine/webgl/fontUtils.js";const O=i.getLogger("esri.symbols.cim.cimAnalyzer");function P(e){switch(e){case"Butt":return f.BUTT;case"Square":return f.SQUARE;default:return f.ROUND}}function M(e){switch(e){case"Bevel":return m.BEVEL;case"Miter":return m.MITER;default:return m.ROUND}}function I(e){switch(e){case"Left":default:return"left";case"Right":return"right";case"Center":return"center";case"Justify":return"justify"}}function L(e){switch(e){case"Top":default:return"top";case"Center":return"middle";case"Baseline":return"baseline";case"Bottom":return"bottom"}}function w(e){let t="",i="";if(e){const o=e.toLowerCase();-1!==o.indexOf("italic")?t="italic":-1!==o.indexOf("oblique")&&(t="oblique"),-1!==o.indexOf("bold")?i="bold":-1!==o.indexOf("light")&&(i="lighter")}return{style:t,weight:i}}function X(e){return e.underline?"underline":e.strikethrough?"line-through":"none"}function x(e,t,i,o){let r;e[t]?r=e[t]:(r={},e[t]=r),r[i]=o}function z(e){const t=e.markerPlacement;return t&&t.angleToLine?p.MAP:p.SCREEN}async function J(e,t,i,o,r){const n=null!=o?o:[];if(!e)return n;let a,s;const c={};if("CIMSymbolReference"!==e.type)return O.error("Expect cim type to be 'CIMSymbolReference'"),n;if(a=e.symbol,s=e.primitiveOverrides,s){const e=[];for(const i of s){const o=i.valueExpressionInfo;if(o&&t){const r=o.expression,n=l(r,t.spatialReference,t.fields).then((e=>{e&&x(c,i.primitiveName,i.propertyName,e)}));e.push(n)}else null!=i.value&&x(c,i.primitiveName,i.propertyName,i.value)}e.length>0&&await Promise.all(e)}const f=[];switch(re(a,i,f),f.length>0&&await Promise.all(f),a.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":H(a,s,c,t,n,i,r)}return n}function H(e,t,i,o,r,n,l){if(!e)return;const a=e.symbolLayers;if(!a)return;const f=e.effects;let m;const u=s.getSize(e);"CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(m=p.MAP);let y=a.length;for(;y--;){const s=a[y];if(!s||!1===s.enable)continue;let p;f&&f.length&&(p=[...f]);const h=s.effects;h&&h.length&&(f?p.push(...h):p=[...h]);const g=[];let d;c.findEffectOverrides(p,t,g),d=g.length>0?Z(p,g,i,o):p;const S=[];switch(c.findApplicableOverrides(s,t,S),s.type){case"CIMSolidFill":R(s,d,i,S,o,r);break;case"CIMPictureFill":Y(s,d,i,S,o,n,r);break;case"CIMHatchFill":A(s,d,i,S,o,r);break;case"CIMGradientFill":E(s,d,i,S,o,r);break;case"CIMSolidStroke":$(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMPictureStroke":j(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMGradientStroke":F(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMCharacterMarker":if(T(s,d,i,S,o,r))break;break;case"CIMPictureMarker":if(T(s,d,i,S,o,r))break;"CIMLineSymbol"===e.type&&(m=z(s)),W(s,d,i,S,o,n,r,m,u);break;case"CIMVectorMarker":if(T(s,d,i,S,o,r))break;"CIMLineSymbol"===e.type&&(m=z(s)),D(s,d,i,S,o,r,n,m,u,l);break;default:O.error("Cannot analyze CIM layer",s.type)}}}function R(e,t,i,o,r,l){const a=e.primitiveName,s=h(e.color),[c,f]=oe(o,a,t,null),m=n(JSON.stringify(e)+f).toString();l.push({type:"fill",templateHash:m,materialHash:c?()=>m:m,cim:e,materialOverrides:null,colorLocked:e.colorLocked,color:_(a,i,"Color",r,s,Q),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t})}function Y(e,t,i,r,l,a,s){const c=e.primitiveName,f=e.tintColor?h(e.tintColor):{r:255,g:255,b:255,a:1},[m,p]=oe(r,c,t,null),u=n(JSON.stringify(e)+p).toString(),y=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString();let d=g(e.scaleX);if("width"in e){const t=e.width;let i=1;const r=a.getResource(e.url);o(r)&&(i=r.width/r.height),d/=i*(e.height/t)}s.push({type:"fill",templateHash:u,materialHash:m?()=>y:y,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,color:_(c,i,"TintColor",l,f,Q),height:_(c,i,"Height",l,e.height),scaleX:_(c,i,"ScaleX",l,d),angle:_(c,i,"Rotation",l,g(e.rotation)),offsetX:_(c,i,"OffsetX",l,g(e.offsetX)),offsetY:_(c,i,"OffsetY",l,g(e.offsetY)),url:e.url})}function A(e,t,i,o,r,l){const a=["Rotation","OffsetX","OffsetY"],s=o.filter((t=>t.primitiveName!==e.primitiveName&&-1===a.indexOf(t.propertyName))),c=e.primitiveName,[f,m]=oe(o,c,t,null),p=n(JSON.stringify(e)+m).toString(),u=n(`${e.separation}${JSON.stringify(e.lineSymbol)}`).toString();l.push({type:"fill",templateHash:p,materialHash:f?te(u,i,s,r):u,cim:e,materialOverrides:s,colorLocked:e.colorLocked,effects:t,color:{r:255,g:255,b:255,a:1},height:_(c,i,"Separation",r,e.separation),scaleX:1,angle:_(c,i,"Rotation",r,g(e.rotation)),offsetX:_(c,i,"OffsetX",r,g(e.offsetX)),offsetY:_(c,i,"OffsetY",r,g(e.offsetY))})}function E(e,t,i,o,r,l){const a=e.primitiveName,[s,c]=oe(o,a,t,null),f=n(JSON.stringify(e)+c).toString();l.push({type:"fill",templateHash:f,materialHash:s?te(f,i,o,r):f,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,color:{r:128,g:128,b:128,a:1},height:0,angle:0,offsetX:0,offsetY:0,scaleX:1})}function $(e,t,i,o,r,l,a,s){const c=e.primitiveName,f=h(e.color),m=void 0!==e.width?e.width:4,p=P(e.capStyle),u=M(e.joinStyle),y=e.miterLimit,[g,d]=oe(o,c,t,null),S=n(JSON.stringify(e)+d).toString();let v,N;if(t&&t instanceof Array&&t.length>0){const e=t[t.length-1];if("CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding){const e=(t=[...t]).pop();v=e.dashTemplate,N=e.scaleDash}}l.push({type:"line",templateHash:S,materialHash:g?()=>S:S,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:_(c,i,"Color",r,f,Q),width:_(c,i,"Width",r,m),cap:_(c,i,"CapStyle",r,p),join:_(c,i,"JoinStyle",r,u),miterLimit:_(c,i,"MiterLimit",r,y),referenceWidth:s,zOrder:K(e.name),dashTemplate:v,scaleDash:N})}function j(e,t,i,o,r,l,a,s){const c=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString(),f=e.primitiveName,m=h(e.tintColor),p=void 0!==e.width?e.width:4,u=P(e.capStyle),y=M(e.joinStyle),g=e.miterLimit,[d,S]=oe(o,f,t,null),v=n(JSON.stringify(e)+S).toString();l.push({type:"line",templateHash:v,materialHash:d?()=>c:c,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:_(f,i,"TintColor",r,m,Q),width:_(f,i,"Width",r,p),cap:_(f,i,"CapStyle",r,u),join:_(f,i,"JoinStyle",r,y),miterLimit:_(f,i,"MiterLimit",r,g),referenceWidth:s,zOrder:K(e.name),dashTemplate:null,scaleDash:!1,url:e.url})}function F(e,t,i,o,r,l,a,s){const c=e.primitiveName,f=void 0!==e.width?e.width:4,m=P(e.capStyle),p=M(e.joinStyle),u=e.miterLimit,[y,h]=oe(o,c,t,null),g=n(JSON.stringify(e)+h).toString();l.push({type:"line",templateHash:g,materialHash:y?te(g,i,o,r):g,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:{r:128,g:128,b:128,a:1},width:_(c,i,"Width",r,f),cap:_(c,i,"CapStyle",r,m),join:_(c,i,"JoinStyle",r,p),miterLimit:_(c,i,"MiterLimit",r,u),referenceWidth:s,zOrder:K(e.name),dashTemplate:null,scaleDash:!1})}function T(e,t,i,o,r,l){const a=e.markerPlacement;if(!a||"CIMMarkerPlacementInsidePolygon"!==a.type)return!1;const s=a,c=["Rotation","OffsetX","OffsetY"],f=o.filter((t=>t.primitiveName!==e.primitiveName&&-1===c.indexOf(t.propertyName))),m="url"in e?e.url:null,[p,u]=oe(o,s.primitiveName,t,null),y=n(JSON.stringify(e)+u).toString();let h=s.stepY,d=null,S=1;return a.shiftOddRows&&(h*=2,d=function(e){return e?2*e:0},S=.5),l.push({type:"fill",templateHash:y,materialHash:p?te(y,i,f,r):y,cim:e,materialOverrides:f,colorLocked:e.colorLocked,effects:t,color:{r:255,g:255,b:255,a:1},height:_(s.primitiveName,i,"StepY",r,h,d),scaleX:S,angle:_(s.primitiveName,i,"GridAngle",r,s.gridAngle),offsetX:_(s.primitiveName,i,"OffsetX",r,g(s.offsetX)),offsetY:_(s.primitiveName,i,"OffsetY",r,g(s.offsetY)),url:m}),!0}function W(e,t,i,r,l,a,s,c,f){var m;const p=e.primitiveName,u=g(e.size);let y=g(e.scaleX);const d=g(e.rotation),S=g(e.offsetX),v=g(e.offsetY),N=e.tintColor?h(e.tintColor):{r:255,g:255,b:255,a:1},b=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString(),C=ee(e.markerPlacement,r,i,l),[k,O]=oe(r,p,t,C),P=n(JSON.stringify(e)+O).toString(),M=null!=(m=e.anchorPoint)?m:{x:0,y:0};if("width"in e){const t=e.width;let i=1;const r=a.getResource(e.url);o(r)&&(i=r.width/r.height),y/=i*(u/t)}s.push({type:"marker",templateHash:P,materialHash:k?()=>b:b,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:!1,alignment:c,size:_(p,i,"Size",l,u),scaleX:_(p,i,"ScaleX",l,y),rotation:_(p,i,"Rotation",l,d),offsetX:_(p,i,"OffsetX",l,S),offsetY:_(p,i,"OffsetY",l,v),color:_(p,i,"TintColor",l,N,Q),anchorPoint:{x:M.x,y:-M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:{r:0,g:0,b:0,a:0},outlineWidth:0,frameHeight:0,rotateClockwise:e.rotateClockwise,referenceSize:f,sizeRatio:1,markerPlacement:e.markerPlacement,url:e.url})}function D(e,t,i,o,r,n,l,a,s,c){const f=e.markerGraphics;if(!f)return;let m=0;if(e.scaleSymbolsProportionally){const t=e.frame;t&&(m=t.ymax-t.ymin)}const p=ee(e.markerPlacement,o,i,r);for(const u of f)if(u){const f=u.symbol;if(!f)continue;switch(f.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":G(e,t,p,u,o,i,r,n,l,a,s,m,c);break;case"CIMTextSymbol":U(e,t,p,u,i,o,r,n,a,s,m)}}}function U(e,t,i,o,r,l,a,f,m,p,u){const y=[];c.findApplicableOverrides(o,l,y);const v=o.geometry;if(!("x"in v)||!("y"in v))return;const N=o.symbol,b=X(N),C=w(N.fontStyleName),O=k(N.fontFamilyName);N.font={family:O,decoration:b,...C};const P=e.frame,M=v.x-.5*(P.xmin+P.xmax),x=v.y-.5*(P.ymin+P.ymax),z=e.size/u,J=e.primitiveName,H=g(N.height)*z,R=g(N.angle),Y=(g(N.offsetX)+M)*z,A=(g(N.offsetY)+x)*z,E=h(s.getFillColor(N));let $=h(s.getStrokeColor(N)),j=s.getStrokeWidth(N);j||($=h(s.getFillColor(N.haloSymbol)),j=N.haloSize*z);const[F,T]=oe(l,J,t,i),W=JSON.stringify(e.effects)+Number(e.colorLocked)+JSON.stringify(e.anchorPoint)+e.anchorPointUnits+JSON.stringify(e.markerPlacement),D=n(JSON.stringify(o)+W+T).toString(),U=_(o.primitiveName,r,"TextString",a,o.textString,d,N.textCase);if(null==U)return;const{fontStyleName:G}=N,B=O+(G?"-"+G.toLowerCase():"-regular"),q=B;f.push({type:"text",templateHash:D,materialHash:F||"function"==typeof U||U.match(/\[(.*?)\]/)?(e,t,i)=>q+"-"+S(U,e,t,i):q+"-"+n(U),cim:N,materialOverrides:null,colorLocked:e.colorLocked,effects:t,alignment:m,anchorPoint:{x:e.anchorPoint?e.anchorPoint.x:0,y:e.anchorPoint?e.anchorPoint.y:0},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,fontName:B,decoration:b,weight:_(J,r,"Weight",a,C.weight),style:_(J,r,"Size",a,C.style),size:_(J,r,"Size",a,H),angle:_(J,r,"Rotation",a,R),offsetX:_(J,r,"OffsetX",a,Y),offsetY:_(J,r,"OffsetY",a,A),horizontalAlignment:I(N.horizontalAlignment),verticalAlignment:L(N.verticalAlignment),text:U,color:E,outlineColor:$,outlineSize:j,referenceSize:p,sizeRatio:1,markerPlacement:i})}function G(e,t,i,r,l,a,c,f,m,p,d,S,v){const N=r.symbol,C=N.symbolLayers;if(!C)return;if(v)return void q(e,t,i,r,a,l,c,f,m,p,d,S);let k=C.length;if(ne(C))return void B(e,t,i,r,C,l,a,c,f,p,d,S);const O=b.applyEffects(N.effects,r.geometry,m.geometryEngine);if(O)for(;k--;){const v=C[k];if(v&&!1!==v.enable)switch(v.type){case"CIMSolidFill":case"CIMSolidStroke":{var P;const N=b.applyEffects(v.effects,O,m.geometryEngine),C=u(N);if(!C)continue;const[k,M,I]=y(C,e.frame,e.size,e.anchorPoint,"Relative"!==e.anchorPointUnits),L="CIMSolidFill"===v.type,w={type:"sdf",geom:N,asFill:L},X=e.primitiveName,x=null!=(P=g(e.size))?P:10,z=g(e.rotation),J=g(e.offsetX),H=g(e.offsetY),R=v.path,Y=v.primitiveName,A=h(L?s.getFillColor(v):s.getStrokeColor(v)),E=L?{r:0,g:0,b:0,a:0}:h(s.getStrokeColor(v)),$=s.getStrokeWidth(v);if(!L&&!$)break;let j=!1,F="";for(const e of l)e.primitiveName!==Y&&e.primitiveName!==X||(void 0!==e.value?F+=`-${e.primitiveName}-${e.propertyName}-${JSON.stringify(e.value)}`:e.valueExpressionInfo&&(j=!0));o(t)&&"function"==typeof t&&(j=!0);const T=JSON.stringify({...e,markerGraphics:null}),W=n(JSON.stringify(w)+R).toString(),D={type:"marker",templateHash:n(JSON.stringify(r)+JSON.stringify(v)+T+F).toString(),materialHash:j?()=>W:W,cim:w,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:p,anchorPoint:{x:M,y:I},isAbsoluteAnchorPoint:!1,size:_(e.primitiveName,a,"Size",c,x),rotation:_(e.primitiveName,a,"Rotation",c,z),offsetX:_(e.primitiveName,a,"OffsetX",c,J),offsetY:_(e.primitiveName,a,"OffsetY",c,H),scaleX:1,frameHeight:S,rotateClockwise:e.rotateClockwise,referenceSize:d,sizeRatio:k,color:_(Y,a,"Color",c,A,Q),outlineColor:_(Y,a,"Color",c,E,Q),outlineWidth:_(Y,a,"Width",c,$),markerPlacement:i,path:R};f.push(D);break}default:q(e,t,i,r,a,l,c,f,m,p,d,S)}}}function B(e,t,i,o,r,l,a,c,f,m,p,d){const S=o.geometry,v=r[0],N=r[1],b=u(S);if(!b)return;const[C,k,O]=y(b,e.frame,e.size,e.anchorPoint,"Relative"!==e.anchorPointUnits),P={type:"sdf",geom:S,asFill:!0},M=e.primitiveName,I=g(e.size),L=g(e.rotation),w=g(e.offsetX),X=g(e.offsetY),x=N.path,z=N.primitiveName,J=v.primitiveName,H=h(s.getFillColor(N)),R=h(s.getStrokeColor(v)),Y=s.getStrokeWidth(v);let A=!1,E="";for(const n of l)n.primitiveName!==z&&n.primitiveName!==J&&n.primitiveName!==M||(void 0!==n.value?E+=`-${n.primitiveName}-${n.propertyName}-${JSON.stringify(n.value)}`:n.valueExpressionInfo&&(A=!0));const $=JSON.stringify({...e,markerGraphics:null}),j=n(JSON.stringify(P)+x).toString(),F={type:"marker",templateHash:n(JSON.stringify(o)+JSON.stringify(N)+JSON.stringify(v)+$+E).toString(),materialHash:A?()=>j:j,cim:P,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:m,anchorPoint:{x:k,y:O},isAbsoluteAnchorPoint:!1,size:_(e.primitiveName,a,"Size",c,I),rotation:_(e.primitiveName,a,"Rotation",c,L),offsetX:_(e.primitiveName,a,"OffsetX",c,w),offsetY:_(e.primitiveName,a,"OffsetY",c,X),scaleX:1,frameHeight:d,rotateClockwise:e.rotateClockwise,referenceSize:p,sizeRatio:C,color:_(z,a,"Color",c,H,Q),outlineColor:_(J,a,"Color",c,R,Q),outlineWidth:_(J,a,"Width",c,Y),markerPlacement:i,path:x};f.push(F)}function q(e,t,i,l,a,c,f,m,p,u,y,h){const d=V(e,l);let S=[];const v=["Rotation","OffsetX","OffsetY"];S=c.filter((t=>t.primitiveName!==e.primitiveName||-1===v.indexOf(t.propertyName)));let N="";for(const o of c)void 0!==o.value&&(N+=`-${o.primitiveName}-${o.propertyName}-${JSON.stringify(o.value)}`);const[b,C,k]=s.getTextureAnchor(d,p),O=e.primitiveName,P=g(e.rotation),M=g(e.offsetX),I=g(e.offsetY),L=n(JSON.stringify(d)+N).toString(),w={type:"marker",templateHash:L,materialHash:S.length>0||o(t)&&"function"==typeof t?te(L,a,S,f):L,cim:d,materialOverrides:S,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:u,anchorPoint:{x:b,y:C},isAbsoluteAnchorPoint:!1,size:e.size,rotation:_(O,a,"Rotation",f,P),offsetX:_(O,a,"OffsetX",f,M),offsetY:_(O,a,"OffsetY",f,I),color:{r:255,g:255,b:255,a:1},outlineColor:{r:0,g:0,b:0,a:0},outlineWidth:0,scaleX:1,frameHeight:h,rotateClockwise:e.rotateClockwise,referenceSize:y,sizeRatio:k/r(e.size),markerPlacement:i};m.push(w)}function V(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function K(e){if(e&&0===e.indexOf("Level_")){const t=parseInt(e.substr(6),10);if(!isNaN(t))return t}return 0}function Q(t){if(!t||0===t.length)return null;const i=new e(t).toRgba();return{r:i[0],g:i[1],b:i[2],a:i[3]}}function _(e,t,i,o,r,n,l){const s=t[e];if(s){const e=s[i];if("string"==typeof e||"number"==typeof e||e instanceof Array)return n?n.call(null,e,l):e;if(null!=e&&e instanceof a)return(t,i,a)=>{let s=C(e,t,{$view:a},o.geometryType,i);return null!==s&&n&&(s=n.call(null,s,l)),null!==s?s:r}}return r}function Z(e,i,o,r){for(const t of i){if(t.valueExpressionInfo){const e=o[t.primitiveName]&&o[t.primitiveName][t.propertyName];e instanceof a&&(t.fn=(t,i,o)=>C(e,t,{$view:o},r.geometryType,i))}}const n=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;return(o,r,l)=>{for(const e of i)e.fn&&(e.value=e.fn(o,r,l));const a=[];for(let c of e){var s;const e=null==(s=c)?void 0:s.primitiveName;if(e){let o=!1;for(const r of i)if(r.primitiveName===e){const e=n(r.propertyName);null!=r.value&&r.value!==c[e]&&(o||(c=t(c),o=!0),c[e]=r.value)}}a.push(c)}return a}}function ee(e,i,o,r){const n=[];if(c.findApplicableOverrides(e,i,n),0===n.length)return e;for(const t of n){if(t.valueExpressionInfo){const e=o[t.primitiveName]&&o[t.primitiveName][t.propertyName];e instanceof a&&(t.fn=(t,i,o)=>C(e,t,{$view:o},r.geometryType,i))}}const l=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;return(i,o,r)=>{for(const e of n)e.fn&&(e.value=e.fn(i,o,r));const a=t(e),s=e.primitiveName;for(const e of n)if(e.primitiveName===s){const t=l(e.propertyName);null!=e.value&&e.value!==a[t]&&(a[t]=e.value)}return a}}function te(e,t,i,o){for(const r of i){if(r.valueExpressionInfo){const e=t[r.primitiveName]&&t[r.primitiveName][r.propertyName];e instanceof a&&(r.fn=(t,i,r)=>C(e,t,{$view:r},o.geometryType,i))}}return(t,o,r)=>{for(const e of i)e.fn&&(e.value=e.fn(t,o,r));return n(e+c.buildOverrideKey(i)).toString()}}function ie(e,t){if(!t||0===t.length)return e;const i=JSON.parse(JSON.stringify(e));return c.applyOverrides(i,t),i}function oe(e,t,i,r){let n=!1,l="";for(const o of e)o.primitiveName===t&&(void 0!==o.value?l+=`-${o.primitiveName}-${o.propertyName}-${JSON.stringify(o.value)}`:o.valueExpressionInfo&&(n=!0));return o(i)&&"function"==typeof i&&(n=!0),o(r)&&"function"==typeof r&&(n=!0),[n,l]}function re(e,t,i){if(e&&t)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const o=e.symbolLayers;if(!o)return;for(const e of o)switch(ae(e,t,i),e.type){case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMCharacterMarker":case"CIMPictureMarker":"url"in e&&e.url&&i.push(t.fetchResource(e.url,null));break;case"CIMVectorMarker":{const o=e.markerGraphics;if(!o)continue;for(const e of o)if(e){const o=e.symbol;o&&re(o,t,i)}}}}}}const ne=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&!e[0].effects&&!e[1].effects;let le;function ae(e,t,i){if(!e.effects||o(t.geometryEngine))return;if(le)return void i.push(le);v(e.effects)&&(le=N(),i.push(le),le.then((e=>t.geometryEngine=e)))}export{ie as analyzeCIMResource,J as analyzeCIMSymbol};
|
|
5
|
+
import e from"../../Color.js";import{clone as t}from"../../core/lang.js";import i from"../../core/Logger.js";import{isSome as o}from"../../core/maybe.js";import{pt2px as r}from"../../core/screenUtils.js";import{numericHash as n}from"../../core/string.js";import{createRendererExpression as l,ArcadeExpression as a}from"../../support/arcadeOnDemand.js";import{CIMSymbolHelper as s,OverrideHelper as c}from"./CIMSymbolHelper.js";import{CapType as f,JoinType as m,Alignment as p}from"./enums.js";import{getExtent as u,getSDFMetrics as y}from"./SDFHelper.js";import{fromCIMColor as h,getValue as g,_adjustTextCase as d,evaluateValueOrFunction as S,isGeometryEngineRequired as v,importGeometryEngine as N}from"./utils.js";import{CIMEffectHelper as b}from"./effects/CIMEffectHelper.js";import C from"../../views/2d/arcade/callExpressionWithFeature.js";import{getFontFamily as k}from"../../views/2d/engine/webgl/fontUtils.js";const O=i.getLogger("esri.symbols.cim.cimAnalyzer");function P(e){switch(e){case"Butt":return f.BUTT;case"Square":return f.SQUARE;default:return f.ROUND}}function M(e){switch(e){case"Bevel":return m.BEVEL;case"Miter":return m.MITER;default:return m.ROUND}}function L(e){switch(e){case"Left":default:return"left";case"Right":return"right";case"Center":return"center";case"Justify":return"justify"}}function I(e){switch(e){case"Top":default:return"top";case"Center":return"middle";case"Baseline":return"baseline";case"Bottom":return"bottom"}}function w(e){let t="",i="";if(e){const o=e.toLowerCase();-1!==o.indexOf("italic")?t="italic":-1!==o.indexOf("oblique")&&(t="oblique"),-1!==o.indexOf("bold")?i="bold":-1!==o.indexOf("light")&&(i="lighter")}return{style:t,weight:i}}function X(e){return e.underline?"underline":e.strikethrough?"line-through":"none"}function x(e,t,i,o){let r;e[t]?r=e[t]:(r={},e[t]=r),r[i]=o}function z(e){const t=e.markerPlacement;return t&&t.angleToLine?p.MAP:p.SCREEN}async function J(e,t,i,o,r){const n=null!=o?o:[];if(!e)return n;let a,s;const c={};if("CIMSymbolReference"!==e.type)return O.error("Expect cim type to be 'CIMSymbolReference'"),n;if(a=e.symbol,s=e.primitiveOverrides,s){const e=[];for(const i of s){const o=i.valueExpressionInfo;if(o&&t){const r=o.expression,n=l(r,t.spatialReference,t.fields).then((e=>{e&&x(c,i.primitiveName,i.propertyName,e)}));e.push(n)}else null!=i.value&&x(c,i.primitiveName,i.propertyName,i.value)}e.length>0&&await Promise.all(e)}const f=[];switch(re(a,i,f),f.length>0&&await Promise.all(f),a.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":H(a,s,c,t,n,i,r)}return n}function H(e,t,i,o,r,n,l){if(!e)return;const a=e.symbolLayers;if(!a)return;const f=e.effects;let m;const u=s.getSize(e);"CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(m=p.MAP);let y=a.length;for(;y--;){const s=a[y];if(!s||!1===s.enable)continue;let p;f&&f.length&&(p=[...f]);const h=s.effects;h&&h.length&&(f?p.push(...h):p=[...h]);const g=[];let d;c.findEffectOverrides(p,t,g),d=g.length>0?Z(p,g,i,o):p;const S=[];switch(c.findApplicableOverrides(s,t,S),s.type){case"CIMSolidFill":R(s,d,i,S,o,r);break;case"CIMPictureFill":Y(s,d,i,S,o,n,r);break;case"CIMHatchFill":A(s,d,i,S,o,r);break;case"CIMGradientFill":E(s,d,i,S,o,r);break;case"CIMSolidStroke":$(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMPictureStroke":j(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMGradientStroke":F(s,d,i,S,o,r,"CIMPolygonSymbol"===e.type,u);break;case"CIMCharacterMarker":if(T(s,d,i,S,o,r))break;break;case"CIMPictureMarker":if(T(s,d,i,S,o,r))break;"CIMLineSymbol"===e.type&&(m=z(s)),W(s,d,i,S,o,n,r,m,u);break;case"CIMVectorMarker":if(T(s,d,i,S,o,r))break;"CIMLineSymbol"===e.type&&(m=z(s)),D(s,d,i,S,o,r,n,m,u,l);break;default:O.error("Cannot analyze CIM layer",s.type)}}}function R(e,t,i,o,r,l){const a=e.primitiveName,s=h(e.color),[c,f]=oe(o,a,t,null),m=n(JSON.stringify(e)+f).toString();l.push({type:"fill",templateHash:m,materialHash:c?()=>m:m,cim:e,materialOverrides:null,colorLocked:e.colorLocked,color:_(a,i,"Color",r,s,Q),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t})}function Y(e,t,i,r,l,a,s){const c=e.primitiveName,f=e.tintColor?h(e.tintColor):{r:255,g:255,b:255,a:1},[m,p]=oe(r,c,t,null),u=n(JSON.stringify(e)+p).toString(),y=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString();let d=g(e.scaleX);if("width"in e){const t=e.width;let i=1;const r=a.getResource(e.url);o(r)&&(i=r.width/r.height),d/=i*(e.height/t)}s.push({type:"fill",templateHash:u,materialHash:m?()=>y:y,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,color:_(c,i,"TintColor",l,f,Q),height:_(c,i,"Height",l,e.height),scaleX:_(c,i,"ScaleX",l,d),angle:_(c,i,"Rotation",l,g(e.rotation)),offsetX:_(c,i,"OffsetX",l,g(e.offsetX)),offsetY:_(c,i,"OffsetY",l,g(e.offsetY)),url:e.url})}function A(e,t,i,o,r,l){const a=["Rotation","OffsetX","OffsetY"],s=o.filter((t=>t.primitiveName!==e.primitiveName&&-1===a.indexOf(t.propertyName))),c=e.primitiveName,[f,m]=oe(o,c,t,null),p=n(JSON.stringify(e)+m).toString(),u=n(`${e.separation}${JSON.stringify(e.lineSymbol)}`).toString();l.push({type:"fill",templateHash:p,materialHash:f?te(u,i,s,r):u,cim:e,materialOverrides:s,colorLocked:e.colorLocked,effects:t,color:{r:255,g:255,b:255,a:1},height:_(c,i,"Separation",r,e.separation),scaleX:1,angle:_(c,i,"Rotation",r,g(e.rotation)),offsetX:_(c,i,"OffsetX",r,g(e.offsetX)),offsetY:_(c,i,"OffsetY",r,g(e.offsetY))})}function E(e,t,i,o,r,l){const a=e.primitiveName,[s,c]=oe(o,a,t,null),f=n(JSON.stringify(e)+c).toString();l.push({type:"fill",templateHash:f,materialHash:s?te(f,i,o,r):f,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,color:{r:128,g:128,b:128,a:1},height:0,angle:0,offsetX:0,offsetY:0,scaleX:1})}function $(e,t,i,o,r,l,a,s){const c=e.primitiveName,f=h(e.color),m=void 0!==e.width?e.width:4,p=P(e.capStyle),u=M(e.joinStyle),y=e.miterLimit,[g,d]=oe(o,c,t,null),S=n(JSON.stringify(e)+d).toString();let v,N;if(t&&t instanceof Array&&t.length>0){const e=t[t.length-1];if("CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&null===e.offsetAlongLine){const e=(t=[...t]).pop();v=e.dashTemplate,N=e.scaleDash}}l.push({type:"line",templateHash:S,materialHash:g?()=>S:S,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:_(c,i,"Color",r,f,Q),width:_(c,i,"Width",r,m),cap:_(c,i,"CapStyle",r,p),join:_(c,i,"JoinStyle",r,u),miterLimit:_(c,i,"MiterLimit",r,y),referenceWidth:s,zOrder:K(e.name),dashTemplate:v,scaleDash:N})}function j(e,t,i,o,r,l,a,s){const c=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString(),f=e.primitiveName,m=h(e.tintColor),p=void 0!==e.width?e.width:4,u=P(e.capStyle),y=M(e.joinStyle),g=e.miterLimit,[d,S]=oe(o,f,t,null),v=n(JSON.stringify(e)+S).toString();l.push({type:"line",templateHash:v,materialHash:d?()=>c:c,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:_(f,i,"TintColor",r,m,Q),width:_(f,i,"Width",r,p),cap:_(f,i,"CapStyle",r,u),join:_(f,i,"JoinStyle",r,y),miterLimit:_(f,i,"MiterLimit",r,g),referenceWidth:s,zOrder:K(e.name),dashTemplate:null,scaleDash:!1,url:e.url})}function F(e,t,i,o,r,l,a,s){const c=e.primitiveName,f=void 0!==e.width?e.width:4,m=P(e.capStyle),p=M(e.joinStyle),u=e.miterLimit,[y,h]=oe(o,c,t,null),g=n(JSON.stringify(e)+h).toString();l.push({type:"line",templateHash:g,materialHash:y?te(g,i,o,r):g,cim:e,materialOverrides:null,isOutline:a,colorLocked:e.colorLocked,effects:t,color:{r:128,g:128,b:128,a:1},width:_(c,i,"Width",r,f),cap:_(c,i,"CapStyle",r,m),join:_(c,i,"JoinStyle",r,p),miterLimit:_(c,i,"MiterLimit",r,u),referenceWidth:s,zOrder:K(e.name),dashTemplate:null,scaleDash:!1})}function T(e,t,i,o,r,l){const a=e.markerPlacement;if(!a||"CIMMarkerPlacementInsidePolygon"!==a.type)return!1;const s=a,c=["Rotation","OffsetX","OffsetY"],f=o.filter((t=>t.primitiveName!==e.primitiveName&&-1===c.indexOf(t.propertyName))),m="url"in e?e.url:null,[p,u]=oe(o,s.primitiveName,t,null),y=n(JSON.stringify(e)+u).toString();let h=s.stepY,d=null,S=1;return a.shiftOddRows&&(h*=2,d=function(e){return e?2*e:0},S=.5),l.push({type:"fill",templateHash:y,materialHash:p?te(y,i,f,r):y,cim:e,materialOverrides:f,colorLocked:e.colorLocked,effects:t,color:{r:255,g:255,b:255,a:1},height:_(s.primitiveName,i,"StepY",r,h,d),scaleX:S,angle:_(s.primitiveName,i,"GridAngle",r,s.gridAngle),offsetX:_(s.primitiveName,i,"OffsetX",r,g(s.offsetX)),offsetY:_(s.primitiveName,i,"OffsetY",r,g(s.offsetY)),url:m}),!0}function W(e,t,i,r,l,a,s,c,f){var m;const p=e.primitiveName,u=g(e.size);let y=g(e.scaleX);const d=g(e.rotation),S=g(e.offsetX),v=g(e.offsetY),N=e.tintColor?h(e.tintColor):{r:255,g:255,b:255,a:1},b=n(`${e.url}${JSON.stringify(e.colorSubstitutions)}`).toString(),C=ee(e.markerPlacement,r,i,l),[k,O]=oe(r,p,t,C),P=n(JSON.stringify(e)+O).toString(),M=null!=(m=e.anchorPoint)?m:{x:0,y:0};if("width"in e){const t=e.width;let i=1;const r=a.getResource(e.url);o(r)&&(i=r.width/r.height),y/=i*(u/t)}s.push({type:"marker",templateHash:P,materialHash:k?()=>b:b,cim:e,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:!1,alignment:c,size:_(p,i,"Size",l,u),scaleX:_(p,i,"ScaleX",l,y),rotation:_(p,i,"Rotation",l,d),offsetX:_(p,i,"OffsetX",l,S),offsetY:_(p,i,"OffsetY",l,v),color:_(p,i,"TintColor",l,N,Q),anchorPoint:{x:M.x,y:-M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:{r:0,g:0,b:0,a:0},outlineWidth:0,frameHeight:0,rotateClockwise:e.rotateClockwise,referenceSize:f,sizeRatio:1,markerPlacement:e.markerPlacement,url:e.url})}function D(e,t,i,o,r,n,l,a,s,c){const f=e.markerGraphics;if(!f)return;let m=0;if(e.scaleSymbolsProportionally){const t=e.frame;t&&(m=t.ymax-t.ymin)}const p=ee(e.markerPlacement,o,i,r);for(const u of f)if(u){const f=u.symbol;if(!f)continue;switch(f.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":G(e,t,p,u,o,i,r,n,l,a,s,m,c);break;case"CIMTextSymbol":U(e,t,p,u,i,o,r,n,a,s,m)}}}function U(e,t,i,o,r,l,a,f,m,p,u){const y=[];c.findApplicableOverrides(o,l,y);const v=o.geometry;if(!("x"in v)||!("y"in v))return;const N=o.symbol,b=X(N),C=w(N.fontStyleName),O=k(N.fontFamilyName);N.font={family:O,decoration:b,...C};const P=e.frame,M=v.x-.5*(P.xmin+P.xmax),x=v.y-.5*(P.ymin+P.ymax),z=e.size/u,J=e.primitiveName,H=g(N.height)*z,R=g(N.angle),Y=g(e.offsetX)+(g(N.offsetX)+M)*z,A=g(e.offsetY)+(g(N.offsetY)+x)*z,E=h(s.getFillColor(N));let $=h(s.getStrokeColor(N)),j=s.getStrokeWidth(N);j||($=h(s.getFillColor(N.haloSymbol)),j=N.haloSize*z);const[F,T]=oe(l,J,t,i),W=JSON.stringify(e.effects)+Number(e.colorLocked)+JSON.stringify(e.anchorPoint)+e.anchorPointUnits+JSON.stringify(e.markerPlacement),D=n(JSON.stringify(o)+W+T).toString(),U=_(o.primitiveName,r,"TextString",a,o.textString,d,N.textCase);if(null==U)return;const{fontStyleName:G}=N,B=O+(G?"-"+G.toLowerCase():"-regular"),q=B;f.push({type:"text",templateHash:D,materialHash:F||"function"==typeof U||U.match(/\[(.*?)\]/)?(e,t,i)=>q+"-"+S(U,e,t,i):q+"-"+n(U),cim:N,materialOverrides:null,colorLocked:e.colorLocked,effects:t,alignment:m,anchorPoint:{x:e.anchorPoint?e.anchorPoint.x:0,y:e.anchorPoint?e.anchorPoint.y:0},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,fontName:B,decoration:b,weight:_(J,r,"Weight",a,C.weight),style:_(J,r,"Size",a,C.style),size:_(J,r,"Size",a,H),angle:_(J,r,"Rotation",a,R),offsetX:_(J,r,"OffsetX",a,Y),offsetY:_(J,r,"OffsetY",a,A),horizontalAlignment:L(N.horizontalAlignment),verticalAlignment:I(N.verticalAlignment),text:U,color:E,outlineColor:$,outlineSize:j,referenceSize:p,sizeRatio:1,markerPlacement:i})}function G(e,t,i,r,l,a,c,f,m,p,d,S,v){const N=r.symbol,C=N.symbolLayers;if(!C)return;if(v)return void q(e,t,i,r,a,l,c,f,m,p,d,S);let k=C.length;if(ne(C))return void B(e,t,i,r,C,l,a,c,f,p,d,S);const O=b.applyEffects(N.effects,r.geometry,m.geometryEngine);if(O)for(;k--;){const v=C[k];if(v&&!1!==v.enable)switch(v.type){case"CIMSolidFill":case"CIMSolidStroke":{var P;const N=b.applyEffects(v.effects,O,m.geometryEngine),C=u(N);if(!C)continue;const[k,M,L]=y(C,e.frame,e.size,e.anchorPoint,"Relative"!==e.anchorPointUnits),I="CIMSolidFill"===v.type,w={type:"sdf",geom:N,asFill:I},X=e.primitiveName,x=null!=(P=g(e.size))?P:10,z=g(e.rotation),J=g(e.offsetX),H=g(e.offsetY),R=v.path,Y=v.primitiveName,A=h(I?s.getFillColor(v):s.getStrokeColor(v)),E=I?{r:0,g:0,b:0,a:0}:h(s.getStrokeColor(v)),$=s.getStrokeWidth(v);if(!I&&!$)break;let j=!1,F="";for(const e of l)e.primitiveName!==Y&&e.primitiveName!==X||(void 0!==e.value?F+=`-${e.primitiveName}-${e.propertyName}-${JSON.stringify(e.value)}`:e.valueExpressionInfo&&(j=!0));o(t)&&"function"==typeof t&&(j=!0);const T=JSON.stringify({...e,markerGraphics:null}),W=n(JSON.stringify(w)+R).toString(),D={type:"marker",templateHash:n(JSON.stringify(r)+JSON.stringify(v)+T+F).toString(),materialHash:j?()=>W:W,cim:w,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:p,anchorPoint:{x:M,y:L},isAbsoluteAnchorPoint:!1,size:_(e.primitiveName,a,"Size",c,x),rotation:_(e.primitiveName,a,"Rotation",c,z),offsetX:_(e.primitiveName,a,"OffsetX",c,J),offsetY:_(e.primitiveName,a,"OffsetY",c,H),scaleX:1,frameHeight:S,rotateClockwise:e.rotateClockwise,referenceSize:d,sizeRatio:k,color:_(Y,a,"Color",c,A,Q),outlineColor:_(Y,a,"Color",c,E,Q),outlineWidth:_(Y,a,"Width",c,$),markerPlacement:i,path:R};f.push(D);break}default:q(e,t,i,r,a,l,c,f,m,p,d,S)}}}function B(e,t,i,o,r,l,a,c,f,m,p,d){const S=o.geometry,v=r[0],N=r[1],b=u(S);if(!b)return;const[C,k,O]=y(b,e.frame,e.size,e.anchorPoint,"Relative"!==e.anchorPointUnits),P={type:"sdf",geom:S,asFill:!0},M=e.primitiveName,L=g(e.size),I=g(e.rotation),w=g(e.offsetX),X=g(e.offsetY),x=N.path,z=N.primitiveName,J=v.primitiveName,H=h(s.getFillColor(N)),R=h(s.getStrokeColor(v)),Y=s.getStrokeWidth(v);let A=!1,E="";for(const n of l)n.primitiveName!==z&&n.primitiveName!==J&&n.primitiveName!==M||(void 0!==n.value?E+=`-${n.primitiveName}-${n.propertyName}-${JSON.stringify(n.value)}`:n.valueExpressionInfo&&(A=!0));const $=JSON.stringify({...e,markerGraphics:null}),j=n(JSON.stringify(P)+x).toString(),F={type:"marker",templateHash:n(JSON.stringify(o)+JSON.stringify(N)+JSON.stringify(v)+$+E).toString(),materialHash:A?()=>j:j,cim:P,materialOverrides:null,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:m,anchorPoint:{x:k,y:O},isAbsoluteAnchorPoint:!1,size:_(e.primitiveName,a,"Size",c,L),rotation:_(e.primitiveName,a,"Rotation",c,I),offsetX:_(e.primitiveName,a,"OffsetX",c,w),offsetY:_(e.primitiveName,a,"OffsetY",c,X),scaleX:1,frameHeight:d,rotateClockwise:e.rotateClockwise,referenceSize:p,sizeRatio:C,color:_(z,a,"Color",c,H,Q),outlineColor:_(J,a,"Color",c,R,Q),outlineWidth:_(J,a,"Width",c,Y),markerPlacement:i,path:x};f.push(F)}function q(e,t,i,l,a,c,f,m,p,u,y,h){const d=V(e,l);let S=[];const v=["Rotation","OffsetX","OffsetY"];S=c.filter((t=>t.primitiveName!==e.primitiveName||-1===v.indexOf(t.propertyName)));let N="";for(const o of c)void 0!==o.value&&(N+=`-${o.primitiveName}-${o.propertyName}-${JSON.stringify(o.value)}`);const[b,C,k]=s.getTextureAnchor(d,p),O=e.primitiveName,P=g(e.rotation),M=g(e.offsetX),L=g(e.offsetY),I=n(JSON.stringify(d)+N).toString(),w={type:"marker",templateHash:I,materialHash:S.length>0||o(t)&&"function"==typeof t?te(I,a,S,f):I,cim:d,materialOverrides:S,colorLocked:e.colorLocked,effects:t,scaleSymbolsProportionally:e.scaleSymbolsProportionally,alignment:u,anchorPoint:{x:b,y:C},isAbsoluteAnchorPoint:!1,size:e.size,rotation:_(O,a,"Rotation",f,P),offsetX:_(O,a,"OffsetX",f,M),offsetY:_(O,a,"OffsetY",f,L),color:{r:255,g:255,b:255,a:1},outlineColor:{r:0,g:0,b:0,a:0},outlineWidth:0,scaleX:1,frameHeight:h,rotateClockwise:e.rotateClockwise,referenceSize:y,sizeRatio:k/r(e.size),markerPlacement:i};m.push(w)}function V(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function K(e){if(e&&0===e.indexOf("Level_")){const t=parseInt(e.substr(6),10);if(!isNaN(t))return t}return 0}function Q(t){if(!t||0===t.length)return null;const i=new e(t).toRgba();return{r:i[0],g:i[1],b:i[2],a:i[3]}}function _(e,t,i,o,r,n,l){const s=t[e];if(s){const e=s[i];if("string"==typeof e||"number"==typeof e||e instanceof Array)return n?n.call(null,e,l):e;if(null!=e&&e instanceof a)return(t,i,a)=>{let s=C(e,t,{$view:a},o.geometryType,i);return null!==s&&n&&(s=n.call(null,s,l)),null!==s?s:r}}return r}function Z(e,i,o,r){for(const t of i){if(t.valueExpressionInfo){const e=o[t.primitiveName]&&o[t.primitiveName][t.propertyName];e instanceof a&&(t.fn=(t,i,o)=>C(e,t,{$view:o},r.geometryType,i))}}const n=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;return(o,r,l)=>{for(const e of i)e.fn&&(e.value=e.fn(o,r,l));const a=[];for(let c of e){var s;const e=null==(s=c)?void 0:s.primitiveName;if(e){let o=!1;for(const r of i)if(r.primitiveName===e){const e=n(r.propertyName);null!=r.value&&r.value!==c[e]&&(o||(c=t(c),o=!0),c[e]=r.value)}}a.push(c)}return a}}function ee(e,i,o,r){const n=[];if(c.findApplicableOverrides(e,i,n),0===n.length)return e;for(const t of n){if(t.valueExpressionInfo){const e=o[t.primitiveName]&&o[t.primitiveName][t.propertyName];e instanceof a&&(t.fn=(t,i,o)=>C(e,t,{$view:o},r.geometryType,i))}}const l=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;return(i,o,r)=>{for(const e of n)e.fn&&(e.value=e.fn(i,o,r));const a=t(e),s=e.primitiveName;for(const e of n)if(e.primitiveName===s){const t=l(e.propertyName);null!=e.value&&e.value!==a[t]&&(a[t]=e.value)}return a}}function te(e,t,i,o){for(const r of i){if(r.valueExpressionInfo){const e=t[r.primitiveName]&&t[r.primitiveName][r.propertyName];e instanceof a&&(r.fn=(t,i,r)=>C(e,t,{$view:r},o.geometryType,i))}}return(t,o,r)=>{for(const e of i)e.fn&&(e.value=e.fn(t,o,r));return n(e+c.buildOverrideKey(i)).toString()}}function ie(e,t){if(!t||0===t.length)return e;const i=JSON.parse(JSON.stringify(e));return c.applyOverrides(i,t),i}function oe(e,t,i,r){let n=!1,l="";for(const o of e)o.primitiveName===t&&(void 0!==o.value?l+=`-${o.primitiveName}-${o.propertyName}-${JSON.stringify(o.value)}`:o.valueExpressionInfo&&(n=!0));return o(i)&&"function"==typeof i&&(n=!0),o(r)&&"function"==typeof r&&(n=!0),[n,l]}function re(e,t,i){if(e&&t)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const o=e.symbolLayers;if(!o)return;for(const e of o)switch(ae(e,t,i),e.type){case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMCharacterMarker":case"CIMPictureMarker":"url"in e&&e.url&&i.push(t.fetchResource(e.url,null));break;case"CIMVectorMarker":{const o=e.markerGraphics;if(!o)continue;for(const e of o)if(e){const o=e.symbol;o&&re(o,t,i)}}}}}}const ne=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&!e[0].effects&&!e[1].effects;let le;function ae(e,t,i){if(!e.effects||o(t.geometryEngine))return;if(le)return void i.push(le);v(e.effects)&&(le=N(),i.push(le),le.then((e=>t.geometryEngine=e)))}export{ie as analyzeCIMResource,J as analyzeCIMSymbol};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as r}from"../../chunks/tslib.es6.js";import{JSONSupport as e}from"../../core/JSONSupport.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as t}from"../../core/accessorSupport/decorators/subclass.js";import{screenSizeProperty as s}from"./materialUtils.js";var p;let
|
|
5
|
+
import{_ as r}from"../../chunks/tslib.es6.js";import{JSONSupport as e}from"../../core/JSONSupport.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as t}from"../../core/accessorSupport/decorators/subclass.js";import{screenSizeProperty as s}from"./materialUtils.js";var p;let i=p=class extends e{constructor(){super(...arguments),this.screenLength=0,this.minWorldLength=0}clone(){return new p({screenLength:this.screenLength,minWorldLength:this.minWorldLength,maxWorldLength:this.maxWorldLength})}};r([o(s)],i.prototype,"screenLength",void 0),r([o({type:Number,json:{write:!0,default:0}})],i.prototype,"minWorldLength",void 0),r([o({type:Number,json:{write:!0}})],i.prototype,"maxWorldLength",void 0),i=p=r([t("esri.symbols.support.Symbol3DVerticalOffset")],i);export{i as Symbol3DVerticalOffset};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{px2pt as e}from"../../core/screenUtils.js";import{CIMSymbolRasterizer as t}from"../cim/CIMSymbolRasterizer.js";import{getCIMSymbolSize as
|
|
5
|
+
import{px2pt as e}from"../../core/screenUtils.js";import{CIMSymbolRasterizer as t}from"../cim/CIMSymbolRasterizer.js";import{getCIMSymbolSize as l,scaleCIMSymbolTo as i}from"./cimSymbolUtils.js";import{SymbolSizeDefaults as a}from"./previewUtils.js";import{renderSymbol as o}from"./renderUtils.js";const n=new t(null,!0),s=a.maxSize;async function r(t,a={}){const{size:r,maxSize:c,node:m,opacity:f}=a,p=a.cimOptions||a,{feature:u,fieldMap:y,geometryType:h,style:d}=p,g=l(t),w="number"==typeof r?r:null,b=Math.min(null!=w?w:g,null!=c?c:e(s));b!==g&&(t=t.clone(),i(t,b,{preserveOutlineWidth:!0}));let M=3;t&&t.data&&t.data.symbol&&"CIMPointSymbol"!==t.data.symbol.type&&(M=1);const S=await n.rasterizeCIMSymbolAsync(t,u,y,h,{scaleFactor:M,style:d}),j=document.createElement("canvas");j.width=S.imageData.width,j.height=S.imageData.height;j.getContext("2d").putImageData(S.imageData,0,0);let v=j.width/M,x=j.height/M;if(null!=r&&(null==(null==a?void 0:a.scale)||(null==a?void 0:a.scale))){const e=v/x;v=e<=1?Math.ceil(b*e):b,x=e<=1?b:Math.ceil(b/e)}const z=new Image(v,x);z.src=j.toDataURL(),null!=f&&(z.style.opacity=`${f}`);let C=z;if(null!=a.effectView){const e={shape:{type:"image",x:0,y:0,width:v,height:x,src:z.src},fill:null,stroke:null,offset:[0,0]};C=o([[e]],[v,x],{effectView:a.effectView})}return m&&m.appendChild(C),C}export{r as previewCIMSymbol};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import t from"../../core/Error.js";import{pt2px as
|
|
5
|
+
import e from"../../Color.js";import t from"../../core/Error.js";import{pt2px as l,px2pt as a}from"../../core/screenUtils.js";import{getFill as n,getStroke as o,getPatternUrlWithColor as i}from"./gfxUtils.js";import{SymbolSizeDefaults as s,shapes as c,adjustColorBrightness as m}from"./previewUtils.js";import{renderSymbol as u}from"./renderUtils.js";const r="picture-fill",h="picture-marker",p="simple-fill",d="simple-line",f="simple-marker",v="text",y="Aa",w=s.size,g=s.maxSize,M=s.maxOutlineSize,b=s.lineWidth,x=document.createElement("canvas");function L(e,t){const l=x.getContext("2d"),a=[];return t&&(t.weight&&a.push(t.weight),t.size&&a.push(t.size+"px"),t.family&&a.push(t.family)),l.font=a.join(" "),l.measureText(e).width}const k=7.2/2.54,z=72/2.54;function j(e){if(0===e.length)return 0;if(e.length>2){const t=a(1),l=parseFloat(e);switch(e.slice(-2)){case"px":return l;case"pt":return l*t;case"in":return 72*l*t;case"pc":return 12*l*t;case"mm":return l*k*t;case"cm":return l*z*t}}return parseFloat(e)}function C(e){const t=null==e?void 0:e.size;return{width:null!=t&&"object"==typeof t&&"width"in t?l(t.width):null,height:null!=t&&"object"==typeof t&&"height"in t?l(t.height):null}}function S(a,s){var x,k;const z="number"==typeof(null==s?void 0:s.size)?null==s?void 0:s.size:null,S=null!=z?l(z):null,F=null!=(null==s?void 0:s.maxSize)?l(s.maxSize):null,E=null!=(null==s?void 0:s.opacity)?s.opacity:null,P=null!=(null==s?void 0:s.rotation)?s.rotation:"angle"in a?a.angle:null,U=n(a);let Z=o(a);if(U&&!Z){const t="type"in U?null:new e(U);"#ffffff"===(t?t.toHex():null)&&(Z={color:"#bdc3c7",width:.75})}const q={shape:null,fill:null,stroke:Z,offset:[0,0]};null!=(x=Z)&&x.width&&(Z.width=Math.min(Z.width,M));const H=(null==(k=Z)?void 0:k.width)||0;let T=null!=(null==s?void 0:s.size)&&(null==(null==s?void 0:s.scale)||(null==s?void 0:s.scale)),V=0,A=0,D=!1;switch(a.type){case f:{const e=a.style,t=Math.min(null!=S?S:l(a.size),F||g);switch(V=t,A=t,e){case"circle":q.shape={type:"circle",cx:0,cy:0,r:.5*t},T||(V+=H,A+=H);break;case"cross":q.shape={type:"path",path:[{command:"M",values:[0,.5*A]},{command:"L",values:[V,.5*A]},{command:"M",values:[.5*V,0]},{command:"L",values:[.5*V,A]}]};break;case"diamond":q.shape={type:"path",path:[{command:"M",values:[0,.5*A]},{command:"L",values:[.5*V,0]},{command:"L",values:[V,.5*A]},{command:"L",values:[.5*V,A]},{command:"Z",values:[]}]},T||(V+=H,A+=H);break;case"square":q.shape={type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[V,0]},{command:"L",values:[V,A]},{command:"L",values:[0,A]},{command:"Z",values:[]}]},T||(V+=H,A+=H),P&&(D=!0);break;case"triangle":q.shape={type:"path",path:[{command:"M",values:[.5*V,0]},{command:"L",values:[V,A]},{command:"L",values:[0,A]},{command:"Z",values:[]}]},T||(V+=H,A+=H),P&&(D=!0);break;case"x":q.shape={type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[V,A]},{command:"M",values:[V,0]},{command:"L",values:[0,A]}]},P&&(D=!0);break;case"path":q.shape={type:"path",path:a.path||""},T||(V+=H,A+=H),P&&(D=!0),T=!0}break}case d:{const{width:e,height:t}=C(s),l=null!=t?t:Math.min(null!=S?S:H,F||M),n=null!=e?e:l>w?2*l:b;Z.width=l,V=n,A=l;const o="round"===a.cap;q.shape={type:"path",path:[{command:"M",values:[o?l/2:0,A]},{command:"L",values:[o?V-l/2:V,A]}]};break}case r:case p:{const e="object"==typeof(null==s?void 0:s.symbolConfig)&&(null==s?void 0:s.symbolConfig.isSquareFill),{width:t,height:l}=C(s);V=e&&null!=t?Math.min(t,F||g):Math.min(null!=S?S:w,F||g),A=e&&null!=l?Math.min(l,F||g):V,T||(V+=H,A+=H),T=!0,q.shape=e?{type:"path",path:[{command:"M",values:[0,0]},{command:"L",values:[V,0]},{command:"L",values:[V,A]},{command:"L",values:[0,A]},{command:"L",values:[0,0]},{command:"Z",values:[]}]}:c.fill[0];break}case h:{let e=l(a.width),t=l(a.height);const n=null!=S?S:Math.max(e,t),o=e/t;e=o<=1?Math.ceil(n*o):n,t=o<=1?n:Math.ceil(n/o),V=Math.min(e,F||g),A=Math.min(t,F||g),q.shape={type:"image",x:-Math.round(V/2),y:-Math.round(A/2),width:V,height:A,src:a.url||""},P&&(D=!0);break}case v:{const e=a,t=e.text||y,n=e.font,o=Math.min(null!=S?S:l(n.size),F||g),i=L(t,{weight:n.weight,size:o,family:n.family}),s=/[\uE600-\uE6FF]/.test(t);V=s?o:i,A=o;let c=.25*j((n?o:0).toString());s&&(c+=5),q.shape={type:"text",text:t,x:0,y:c,align:"middle",decoration:n&&n.decoration,rotated:e.rotated,kerning:e.kerning},q.font=n&&{size:o,style:n.style,decoration:n.decoration,weight:n.weight,family:n.family};break}}if(!q.shape)return Promise.reject(new t("symbolPreview: renderPreviewHTML2D","symbol not supported."));const O=U,R=a.color;let W=null;return O&&"pattern"===O.type&&R&&a.type!==r?W=i(O.src,R.toCss(!0)).then((e=>(O.src=e,q.fill=O,q))):(q.fill=U,W=Promise.resolve(q)),W.then((e=>{const t=[[e]];if("object"==typeof(null==s?void 0:s.symbolConfig)&&null!=s&&s.symbolConfig.applyColorModulation){const l=.6*V;t.unshift([{...e,offset:[-l,0],fill:m(U,-.3)}]),t.push([{...e,offset:[l,0],fill:m(U,.3)}]),V+=2*l,T=!1}return u(t,[V,A],{node:s&&s.node,scale:T,opacity:E,rotation:P,useRotationSize:D,effectView:null==s?void 0:s.effectView})}))}export{S as previewSymbol2D};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as s}from"../../core/colorUtils.js";import"../../core/has.js";import r from"../../core/Error.js";import
|
|
5
|
+
import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as s}from"../../core/colorUtils.js";import"../../core/has.js";import r from"../../core/Error.js";import o from"../../core/Logger.js";import{isNone as n,isSome as a}from"../../core/maybe.js";import{eachAlways as l}from"../../core/promiseUtils.js";import{pt2px as i}from"../../core/screenUtils.js";import{defaultThematicColor as c,getPatternUrlWithColor as p,dekebabifyLineStyle as u}from"./gfxUtils.js";import{defaultPrimitive as h}from"./IconSymbol3DLayerResource.js";import{defaultPrimitive as m}from"./ObjectSymbol3DLayerResource.js";import{SymbolSizeDefaults as f,adjustColorComponentBrightness as y,getPathSymbolShapes as d,shapes as b,getExtrudeSymbolShapes as v,getTetrahedronShapes as g,getDiamondShapes as k,getCylinderShapes as w,getCubeShapes as x,getInvertedConeShapes as M,getConeShapes as j,getWaterSymbolShapes as L}from"./previewUtils.js";import{renderSymbol as z,tintImageWithColor as S}from"./renderUtils.js";import{isVolumetricSymbol as P,getIconHref as U}from"./utils.js";import{resolveWebStyleSymbol as D}from"./webStyleSymbolUtils.js";const O=f.size,C=f.maxSize,I=f.maxOutlineSize,R=f.lineWidth,E=f.tallSymbolWidth,Z=o.getLogger("esri.symbols.support.previewSymbol3D");function q(e){const t=e.outline,s=a(e.material)?e.material.color:null,r=a(s)?s.toHex():null;if(n(t)||"pattern"in t&&a(t.pattern)&&"style"===t.pattern.type&&"none"===t.pattern.style)return"fill"===e.type&&"#ffffff"===r?{color:"#bdc3c7",width:.75}:null;const o=i(t.size)||0;return{color:"rgba("+(a(t.color)?t.color.toRgba():"255,255,255,1")+")",width:Math.min(o,I),style:"pattern"in t&&a(t.pattern)&&"style"===t.pattern.type?u(t.pattern.style):null,join:"butt",cap:"patternCap"in t?t.patternCap:"butt"}}function A(t,s){const r=s&&s.resource,o=r&&r.href;if(t.thumbnail&&t.thumbnail.url)return Promise.resolve(t.thumbnail.url);if(o&&"object"!==s.type)return Promise.resolve(U(t,s));const n=e("esri/images/Legend/legend3dsymboldefault.png");return t.styleOrigin&&(t.styleOrigin.styleName||t.styleOrigin.styleUrl)?D(t.styleOrigin,{portal:t.styleOrigin.portal},"webRef").catch((e=>e)).then((e=>{var t;return(null==e||null==(t=e.thumbnail)?void 0:t.url)||n})):Promise.resolve(n)}function H(e,r=1){const o=e.a,n=t(e),a=n.h,l=n.s/r,i=100-(100-n.v)/r,{r:c,g:p,b:u}=s({h:a,s:l,v:i});return[c,p,u,o]}function N(e){return"water"===e.type?n(e.color)?null:e.color:n(e.material)||n(e.material.color)?null:e.material.color}function T(e,t=0){const s=N(e);if(!s){if("fill"===e.type)return null;const s=c.r,r=y(s,t);return[r,r,r,100]}const r=s.toRgba();for(let o=0;o<3;o++)r[o]=y(r[o],t);return r}async function W(t,s){const r=t.style;if("none"===r)return null;return{type:"pattern",x:0,y:0,src:await p(e(`esri/symbols/patterns/${r}.png`),s.toCss(!0)),width:5,height:5}}function $(e){return e.outline?q(e):{color:"rgba(0, 0, 0, 1)",width:1.5}}function B(e,t){const s=N(e);if(!s)return null;let r="rgba(";return r+=y(s.r,t)+",",r+=y(s.g,t)+",",r+=y(s.b,t)+",",r+s.a+");"}function F(e,t){const s=B(e,t);if(!s)return{};if("pattern"in e&&a(e.pattern)&&"style"===e.pattern.type&&"none"===e.pattern.style)return null;return{color:s,width:Math.min(e.size?i(e.size):.75,I),style:"pattern"in e&&a(e.pattern)&&"style"===e.pattern.type?u(e.pattern.style):null,cap:"cap"in e?e.cap:null,join:"join"in e?"miter"===e.join?i(2):e.join:null}}function G(e,t,s){const r=.75*s;return{type:"linear",x1:r?.25*r:0,y1:r?.5*r:0,x2:r||4,y2:r?.5*r:4,colors:[{color:e,offset:0},{color:t,offset:1}]}}function J(e){const t=e.depth,s=e.height,r=e.width;return r&&t&&s&&r===t&&r<s}function K(e,t,s){const r=[];if(!e)return r;switch(e.type){case"icon":{const s=0,o=0,n=t,a=t;switch(e.resource&&e.resource.primitive||h){case"circle":r.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:T(e,0),stroke:q(e)});break;case"square":r.push({shape:{type:"path",path:[{command:"M",values:[s,a]},{command:"L",values:[s,o]},{command:"L",values:[n,o]},{command:"L",values:[n,a]},{command:"Z",values:[]}]},fill:T(e,0),stroke:q(e)});break;case"triangle":r.push({shape:{type:"path",path:[{command:"M",values:[s,a]},{command:"L",values:[.5*n,o]},{command:"L",values:[n,a]},{command:"Z",values:[]}]},fill:T(e,0),stroke:q(e)});break;case"cross":r.push({shape:{type:"path",path:[{command:"M",values:[.5*n,o]},{command:"L",values:[.5*n,a]},{command:"M",values:[s,.5*a]},{command:"L",values:[n,.5*a]}]},stroke:$(e)});break;case"x":r.push({shape:{type:"path",path:[{command:"M",values:[s,o]},{command:"L",values:[n,a]},{command:"M",values:[n,o]},{command:"L",values:[s,a]}]},stroke:$(e)});break;case"kite":r.push({shape:{type:"path",path:[{command:"M",values:[s,.5*a]},{command:"L",values:[.5*n,o]},{command:"L",values:[n,.5*a]},{command:"L",values:[.5*n,a]},{command:"Z",values:[]}]},fill:T(e,0),stroke:q(e)})}break}case"object":switch(e.resource&&e.resource.primitive||m){case"cone":{const o=G(T(e,0),T(e,-.6),s?E:t),n=j(t,s);r.push({shape:n[0],fill:o}),r.push({shape:n[1],fill:o});break}case"inverted-cone":{const s=T(e,0),o=G(s,T(e,-.6),t),n=M(t);r.push({shape:n[0],fill:o}),r.push({shape:n[1],fill:s});break}case"cube":{const o=x(t,s);r.push({shape:o[0],fill:T(e,0)}),r.push({shape:o[1],fill:T(e,-.3)}),r.push({shape:o[2],fill:T(e,-.5)});break}case"cylinder":{const o=G(T(e,0),T(e,-.6),s?E:t),n=w(t,s);r.push({shape:n[0],fill:o}),r.push({shape:n[1],fill:o}),r.push({shape:n[2],fill:T(e,0)});break}case"diamond":{const s=k(t);r.push({shape:s[0],fill:T(e,-.3)}),r.push({shape:s[1],fill:T(e,0)}),r.push({shape:s[2],fill:T(e,-.3)}),r.push({shape:s[3],fill:T(e,-.7)});break}case"sphere":{const s=G(T(e,0),T(e,-.6));s.x1=0,s.y1=0,s.x2=.25*t,s.y2=.25*t,r.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:s});break}case"tetrahedron":{const s=g(t);r.push({shape:s[0],fill:T(e,-.3)}),r.push({shape:s[1],fill:T(e,0)}),r.push({shape:s[2],fill:T(e,-.6)});break}}break}return r}function Q(e){const t="number"==typeof(null==e?void 0:e.size)?null==e?void 0:e.size:null;return t?i(t):null}function V(e){return"icon"===e.type?"multiply":"tint"}function X(e,t){const s=Q(t),r=t&&t.maxSize?i(t.maxSize):null,o=t&&t.disableUpsampling,n=e.symbolLayers,a=[];let c=0,p=0;const u=n.getItemAt(n.length-1);let h;return u&&"icon"===u.type&&(h=u.size&&i(u.size)),n.forEach((n=>{if("icon"!==n.type&&"object"!==n.type)return;const l="icon"===n.type?n.size&&i(n.size):0,u=s||l?Math.ceil(Math.min(s||l,r||C)):O;if(n&&n.resource&&n.resource.href){const t=A(e,n).then((function(e){const t=n.get("material.color"),s=V(n);return S(e,u,t,s,o)})).then((function(e){const t=e.width,s=e.height;return c=Math.max(c,t),p=Math.max(p,s),[{shape:{type:"image",x:0,y:0,width:t,height:s,src:e.url},fill:null,stroke:null}]}));a.push(t)}else{var m;let e=u;"icon"===n.type&&h&&s&&(e=u*(l/h));const r="tall"===(null==t?void 0:t.symbolConfig)||(null==t||null==(m=t.symbolConfig)?void 0:m.isTall)||"object"===n.type&&J(n);c=Math.max(c,r?E:e),p=Math.max(p,e),a.push(Promise.resolve(K(n,e,r)))}})),l(a).then((function(e){const s=[];return e.forEach((function(e){e.value?s.push(e.value):e.error&&Z.warn("error while building swatchInfo!",e.error)})),z(s,[c,p],{node:t&&t.node,scale:!1,opacity:t&&t.opacity})}))}function Y(e,t){const s=e.symbolLayers,r=[],o=P(e),a=Q(t),l=(t&&t.maxSize?i(t.maxSize):null)||I;let c,p=0,u=0;return s.forEach(((e,t)=>{if(!e)return;if("line"!==e.type&&"path"!==e.type)return;const s=[];switch(e.type){case"line":{const r=F(e,0);if(n(r))break;const o=r&&r.width||0;0===t&&(c=o);const i=Math.min(a||o,l),h=0===t?i:a?i*(o/c):i,m=h>R/2?2*h:R;u=Math.max(u,h),p=Math.max(p,m),r.width=h,s.push({shape:{type:"path",path:[{command:"M",values:[0,.5*u]},{command:"L",values:[p,.5*u]}]},stroke:r});break}case"path":{const t=Math.min(a||O,l),r=T(e,0),o=T(e,-.2),n=B(e,-.4),i=n?{color:n,width:1}:{};if("quad"===e.profile){const t=e.width,n=e.height,a=d(t&&n?t/n:1,0===n,0===t),l={...i,join:"bevel"};s.push({shape:a[0],fill:o,stroke:l}),s.push({shape:a[1],fill:o,stroke:l}),s.push({shape:a[2],fill:r,stroke:l})}else s.push({shape:b.pathSymbol3DLayer[0],fill:o,stroke:i}),s.push({shape:b.pathSymbol3DLayer[1],fill:r,stroke:i});u=Math.max(u,t),p=u}}r.push(s)})),Promise.resolve(z(r,[p,u],{node:t&&t.node,scale:o,opacity:t&&t.opacity}))}async function _(e,t){const s="mesh-3d"===e.type,r=e.symbolLayers,o=Q(t),l=t&&t.maxSize?i(t.maxSize):null,c=o||O,p=[];let u=0,h=0,m=!1;for(let i=0;i<r.length;i++){const e=r.getItemAt(i),t=[];if(s&&"fill"!==e.type)continue;const o=b.fill[0];switch(e.type){case"fill":{const r=q(e),n=Math.min(c,l||C);u=Math.max(u,n),h=Math.max(h,n),m=!0;let i=T(e,0);const p="pattern"in e&&e.pattern,f=N(e);!s&&a(p)&&"style"===p.type&&"solid"!==p.style&&f&&(i=await W(p,f)),t.push({shape:o,fill:i,stroke:r});break}case"line":{const s=F(e,0);if(n(s))break;const r={stroke:s,shape:o};u=Math.max(u,O),h=Math.max(h,O),t.push(r);break}case"extrude":{const s={join:"round",width:1,...F(e,-.4)},r=T(e,0),o=T(e,-.2),n=Math.min(c,l||C),a=v(n);s.width=1,t.push({shape:a[0],fill:o,stroke:s}),t.push({shape:a[1],fill:o,stroke:s}),t.push({shape:a[2],fill:r,stroke:s});const i=O,p=.7*O+.5*n;u=Math.max(u,i),h=Math.max(h,p);break}case"water":{const s=N(e),r=H(s),o=H(s,2),n=H(s,3),a=L();m=!0,t.push({shape:a[0],fill:r}),t.push({shape:a[1],fill:o}),t.push({shape:a[2],fill:n});const i=Math.min(c,l||C);u=Math.max(u,i),h=Math.max(h,i);break}}p.push(t)}return Promise.resolve(z(p,[u,h],{node:t&&t.node,scale:m,opacity:t&&t.opacity}))}function ee(e,t){if(0===e.symbolLayers.length)return Promise.reject(new r("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return X(e,t);case"line-3d":return Y(e,t);case"polygon-3d":case"mesh-3d":return _(e,t)}return Promise.reject(new r("symbolPreview: swatchInfo3D","symbol not supported."))}export{W as getPatternDescriptor,Q as getSizeFromOptions,T as getSymbolLayerFill,ee as previewSymbol3D};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../request.js";import{pt2px as e}from"../../core/screenUtils.js";import{SymbolSizeDefaults as i}from"./previewUtils.js";function n(e,i,n){const
|
|
5
|
+
import t from"../../request.js";import{pt2px as e}from"../../core/screenUtils.js";import{SymbolSizeDefaults as i}from"./previewUtils.js";function n(e,i,n){const o=e.thumbnail&&e.thumbnail.url;return o?t(o,{responseType:"image"}).then((t=>{const e=h(t.data,n);return n&&n.node?(n.node.appendChild(e),n.node):e})):e.fetchSymbol().then((t=>i(t,n)))}function h(t,n){const h=!/\\.svg$/i.test(t.src)&&n&&n.disableUpsampling,o=Math.max(t.width,t.height);let r=n&&null!=n.maxSize?e(n.maxSize):i.maxSize;h&&(r=Math.min(o,r));const s="number"==typeof(null==n?void 0:n.size)?null==n?void 0:n.size:null,l=Math.min(r,null!=s?e(s):o);if(l!==o){const e=0!==t.width&&0!==t.height?t.width/t.height:1;e>=1?(t.width=l,t.height=l/e):(t.width=l*e,t.height=l)}return t}export{n as previewWebStyleSymbol};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../Color.js";import e from"../../core/has.js";import{c as i}from"../../chunks/mat2df32.js";import{m as r,t as o,c as n,s,r as l}from"../../chunks/mat2d.js";import"../../widgets/support/widgetUtils.js";import"../../core/Logger.js";import{tsx as a}from"../../widgets/support/jsxFactory.js";const h="http://www.w3.org/2000/svg";let c=0,f=0;const d=e("android"),u=e("chrome")||d&&d>=4?"auto":"optimizeLegibility",y={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},p=/([A-DF-Za-df-z])|([-+]?\d*[.]?\d+(?:[eE][-+]?\d+)?)/g;let g={},x={};const m={solid:"none",shortdash:[4,1],shortdot:[1,1],shortdashdot:[4,1,1,1],shortdashdotdot:[4,1,1,1,1,1],dot:[1,3],dash:[4,3],longdash:[8,3],dashdot:[4,3,1,3],longdashdot:[8,3,1,3],longdashdotdot:[8,3,1,3,1,3]},w=Math.PI;let k=1;function b(t,e){const i=t*(w/180);return Math.abs(e*Math.sin(i))+Math.abs(e*Math.cos(i))}function v(t){return t.map((t=>`${t.command} ${t.values.join(" ")}`)).join(" ").trim()}function j(t,e,i,r){if(t){if("circle"===t.type)return a("circle",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",cx:t.cx,cy:t.cy,r:t.r});if("ellipse"===t.type)return a("ellipse",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",cx:t.cx,cy:t.cy,rx:t.rx,ry:t.ry});if("rect"===t.type)return a("rect",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",x:t.x,y:t.y,width:t.width,height:t.height});if("image"===t.type)return a("image",{href:t.src,x:t.x,y:t.y,width:t.width,height:t.height,preserveAspectRatio:"none"});if("path"===t.type){const r="string"!=typeof t.path?v(t.path):t.path;return a("path",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",d:r})}if("text"===t.type)return a("text",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4","text-anchor":r.align,"text-decoration":r.decoration,kerning:r.kerning,rotate:r.rotate,"text-rendering":u,"font-style":r.font.style,"font-variant":r.font.variant,"font-weight":r.font.weight,"font-size":r.font.size,"font-family":r.font.family,x:t.x,y:t.y},t.text)}return null}function M(e){const i={fill:"none",pattern:null,linearGradient:null};if(e)if("type"in e&&"pattern"===e.type){const t="patternId-"+ ++c;i.fill=`url(#${t})`,i.pattern={id:t,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}}}else if("type"in e&&"linear"===e.type){const r="linearGradientId-"+ ++f;i.fill=`url(#${r})`,i.linearGradient={id:r,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map((e=>({offset:e.offset,color:e.color&&new t(e.color).toString()})))}}else if(e){const r=new t(e);i.fill=r.toString()}return i}function A(e){const i={color:"none",width:1,cap:"butt",join:"4",dashArray:"none"};if(e&&(null!=e.width&&(i.width=e.width),e.cap&&(i.cap=e.cap),e.join&&(i.join=e.join.toString()),e.color&&(i.color=new t(e.color).toString()),e.style)){let t=null;if(e.style in m&&(t=m[e.style]),Array.isArray(t)){t=t.slice(0);for(let i=0;i<t.length;++i)t[i]*=e.width;if("butt"!==e.cap){for(let i=0;i<t.length;i+=2)t[i]-=e.width,t[i]<1&&(t[i]=1);for(let i=1;i<t.length;i+=2)t[i]+=e.width}t=t.join(",")}i.dashArray=t}return i}function N(t,e){const i={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};return t&&(i.align=t.align,i.decoration=t.decoration,i.kerning=t.kerning?"auto":"0",i.rotate=t.rotated?"90":"0",i.font.style=e.style||"normal",i.font.variant=e.variant||"normal",i.font.weight=e.weight||"normal",i.font.size=e.size&&e.size.toString()||"10pt",i.font.family=e.family||"serif"),i}function G(t){const{pattern:e,linearGradient:i}=t;if(e)return a("pattern",{id:e.id,patternUnits:"userSpaceOnUse",x:e.x,y:e.y,width:e.width,height:e.height},a("image",{x:e.image.x,y:e.image.y,width:e.image.width,height:e.image.height,href:e.image.href}));if(i){const t=i.stops.map(((t,e)=>a("stop",{key:`${e}-stop`,offset:t.offset,"stop-color":t.color})));return a("linearGradient",{id:i.id,gradientUnits:"userSpaceOnUse",x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},t)}return null}function S(t,e,i){return o(t,n(t),[e,i])}function $(t,e,i,r,o){return s(t,n(t),[e,i]),t[4]=t[4]*e-r*e+r,t[5]=t[5]*i-o*i+o,t}function I(t,e,i,r){const o=e%360*Math.PI/180;l(t,n(t),o);const s=Math.cos(o),a=Math.sin(o),h=t[4],c=t[5];return t[4]=h*s-c*a+r*a-i*s+i,t[5]=c*s+h*a-i*a-r*s+r,t}function z(t,e){g&&"left"in g?(g.left>t&&(g.left=t),g.right<t&&(g.right=t),g.top>e&&(g.top=e),g.bottom<e&&(g.bottom=e)):g={left:t,bottom:e,right:t,top:e}}function B(t){const e=t.args,i=e.length;let r;switch(t.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(r=0;r<i;r+=2)z(e[r],e[r+1]);x.x=e[i-2],x.y=e[i-1];break;case"H":for(r=0;r<i;++r)z(e[r],x.y);x.x=e[i-1];break;case"V":for(r=0;r<i;++r)z(x.x,e[r]);x.y=e[i-1];break;case"m":{let t=0;"x"in x||(z(x.x=e[0],x.y=e[1]),t=2);for(r=t;r<i;r+=2)z(x.x+=e[r],x.y+=e[r+1]);break}case"l":case"t":for(r=0;r<i;r+=2)z(x.x+=e[r],x.y+=e[r+1]);break;case"h":for(r=0;r<i;++r)z(x.x+=e[r],x.y);break;case"v":for(r=0;r<i;++r)z(x.x,x.y+=e[r]);break;case"c":for(r=0;r<i;r+=6)z(x.x+e[r],x.y+e[r+1]),z(x.x+e[r+2],x.y+e[r+3]),z(x.x+=e[r+4],x.y+=e[r+5]);break;case"s":case"q":for(r=0;r<i;r+=4)z(x.x+e[r],x.y+e[r+1]),z(x.x+=e[r+2],x.y+=e[r+3]);break;case"A":for(r=0;r<i;r+=7)z(e[r+5],e[r+6]);x.x=e[i-2],x.y=e[i-1];break;case"a":for(r=0;r<i;r+=7)z(x.x+=e[r+5],x.y+=e[r+6])}}function F(t,e,i){const r=y[t.toLowerCase()];let o;"number"==typeof r&&(r?e.length>=r&&(o={action:t,args:e.slice(0,e.length-e.length%r)},i.push(o),B(o)):(o={action:t,args:[]},i.push(o),B(o)))}function U(t){const e=("string"!=typeof t.path?v(t.path):t.path).match(p),i=[];if(g={},x={},!e)return null;let r="",o=[];const n=e.length;for(let l=0;l<n;++l){const t=e[l],n=parseFloat(t);isNaN(n)?(r&&F(r,o,i),o=[],r=t):o.push(n)}F(r,o,i);const s={x:0,y:0,width:0,height:0};return g&&"left"in g&&(s.x=g.left,s.y=g.top,s.width=g.right-g.left,s.height=g.bottom-g.top),s}function T(t){const e={x:0,y:0,width:0,height:0};if("circle"===t.type)e.x=t.cx-t.r,e.y=t.cy-t.r,e.width=2*t.r,e.height=2*t.r;else if("ellipse"===t.type)e.x=t.cx-t.rx,e.y=t.cy-t.ry,e.width=2*t.rx,e.height=2*t.ry;else if("image"===t.type||"rect"===t.type)e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height;else if("path"===t.type){const i=U(t);e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height}return e}function E(t){const e={x:0,y:0,width:0,height:0};let i=null,r=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY;for(const n of t)i?(i.x=Math.min(i.x,n.x),i.y=Math.min(i.y,n.y),r=Math.max(r,n.x+n.width),o=Math.max(o,n.y+n.height)):(i=e,i.x=n.x,i.y=n.y,r=n.x+n.width,o=n.y+n.height);return i&&(i.width=r-i.x,i.height=o-i.y),i}function V(t,e,o,n,s,l,a,h,c){let f=(a&&l?b(l,e):e)/2,d=(a&&l?b(l,o):o)/2;if(c){const t=c[0],e=c[1];f=(a&&l?b(l,t):t)/2,d=(a&&l?b(l,e):e)/2}const u=t.width+n,y=t.height+n,p=i(),g=i();let x=!1;if(s&&0!==u&&0!==y){const t=u/y,i=e>o?e:o;let n=1,s=1;isNaN(i)||(t>1?(n=i/u,s=i/t/y):(s=i/y,n=i*t/u)),r(g,g,$(p,n,s,f,d)),x=!0}const m=t.x+(u-n)/2,w=t.y+(y-n)/2;if(r(g,g,S(p,f-m,d-w)),!x&&(u>e||y>o)){const t=u/e>y/o,i=(t?e:o)/(t?u:y);r(g,g,$(p,i,i,m,w))}return l&&r(g,g,I(p,l,m,w)),h&&r(g,g,S(p,h[0],h[1])),`matrix(${g[0]},${g[1]},${g[2]},${g[3]},${g[4]},${g[5]})`}function C(t,e,i){const r=null==t?void 0:t.effects.find((t=>"bloom"===t.type));if(!r)return null;const{strength:o,radius:n}=r,s=o>0?n:0,l=(o+s)*e,h=4*o+1;return a("filter",{id:`bloom${i}`,x:"-100%",y:"-100%",width:"300%",height:"300%",filterUnits:"userSpaceOnUse"},a("feMorphology",{operator:"dilate",radius:(o+.5*s)*(5**(e/100)*(.4+e/100)),in:"SourceGraphic",result:"dilate"}),a("feGaussianBlur",{in:"dilate",stdDeviation:l/25,result:"blur"}),a("feGaussianBlur",{in:"blur",stdDeviation:l/50,result:"intensityBlur"}),a("feComponentTransfer",{in:"SourceGraphic",result:"intensityBrightness"},a("feFuncR",{type:"linear",slope:h}),a("feFuncG",{type:"linear",slope:h}),a("feFuncB",{type:"linear",slope:h})),a("feMerge",null,a("feMergeNode",{in:"intensityBlur"}),a("feMergeNode",{in:"intensityBrightness"}),a("feGaussianBlur",{stdDeviation:o/10})))}function D(t,e,i,r){const o=[],n=[],s=++k,l=C(null==r?void 0:r.effectView,e,s);let c=null;if(l){var f;const t=null==r||null==(f=r.effectView)?void 0:f.effects.find((t=>"bloom"===t.type)),o=(t.strength?t.strength+t.radius/2:0)/3,n=e+e*o,s=i+i*o;c=[Math.max(n,10),Math.max(s,10)]}for(const h of t){const t=[],s=[];let l=0,f=0,d=0;for(const e of h){const{shape:i,fill:r,stroke:n,font:a,offset:h}=e;l+=n&&n.width||0;const c=M(r),u=A(n),y="text"===i.type?N(i,a):null;o.push(G(c)),t.push(j(i,c.fill,u,y)),s.push(T(i)),h&&(f+=h[0],d+=h[1])}const u=V(E(s),e,i,l,null==r?void 0:r.scale,null==r?void 0:r.rotation,null==r?void 0:r.useRotationSize,[f,d],c);n.push(a("g",{transform:u},t))}return null!=r&&r.useRotationSize&&null!=r&&r.rotation&&(e=b(null==r?void 0:r.rotation,e),i=b(null==r?void 0:r.rotation,i)),l&&(e=c[0],i=c[1]),a("svg",{xmlns:h,width:e,height:i},l,a("defs",null,o),l?a("g",{filter:`url(#bloom${s})`},n):n)}export{E as computeBBox,M as generateFillAttributes,A as generateStrokeAttributes,N as generateTextAttributes,T as getBoundingBox,V as getTransformMatrix,G as renderDef,D as renderSVG,j as renderShape};
|
|
5
|
+
import t from"../../Color.js";import e from"../../core/has.js";import{c as i}from"../../chunks/mat2df32.js";import{m as r,t as o,c as n,s,r as l}from"../../chunks/mat2d.js";import"../../widgets/support/widgetUtils.js";import"../../core/Logger.js";import{tsx as a}from"../../widgets/support/jsxFactory.js";const h="http://www.w3.org/2000/svg";let c=0,f=0;const d=e("android"),u=e("chrome")||d&&d>=4?"auto":"optimizeLegibility",y={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},p=/([A-DF-Za-df-z])|([-+]?\d*[.]?\d+(?:[eE][-+]?\d+)?)/g;let g={},x={};const m={solid:"none",shortdash:[4,1],shortdot:[1,1],shortdashdot:[4,1,1,1],shortdashdotdot:[4,1,1,1,1,1],dot:[1,3],dash:[4,3],longdash:[8,3],dashdot:[4,3,1,3],longdashdot:[8,3,1,3],longdashdotdot:[8,3,1,3,1,3]},w=Math.PI;let k=1;function b(t,e){const i=t*(w/180);return Math.abs(e*Math.sin(i))+Math.abs(e*Math.cos(i))}function v(t){return t.map((t=>`${t.command} ${t.values.join(" ")}`)).join(" ").trim()}function j(t,e,i,r){if(t){if("circle"===t.type)return a("circle",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",cx:t.cx,cy:t.cy,r:t.r});if("ellipse"===t.type)return a("ellipse",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",cx:t.cx,cy:t.cy,rx:t.rx,ry:t.ry});if("rect"===t.type)return a("rect",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",x:t.x,y:t.y,width:t.width,height:t.height});if("image"===t.type)return a("image",{href:t.src,x:t.x,y:t.y,width:t.width,height:t.height,preserveAspectRatio:"none"});if("path"===t.type){const r="string"!=typeof t.path?v(t.path):t.path;return a("path",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4",d:r})}if("text"===t.type)return a("text",{fill:e,"fill-rule":"evenodd",stroke:i.color,"stroke-width":i.width,"stroke-linecap":i.cap,"stroke-linejoin":i.join,"stroke-dasharray":i.dashArray,"stroke-miterlimit":"4","text-anchor":r.align,"text-decoration":r.decoration,kerning:r.kerning,rotate:r.rotate,"text-rendering":u,"font-style":r.font.style,"font-variant":r.font.variant,"font-weight":r.font.weight,"font-size":r.font.size,"font-family":r.font.family,x:t.x,y:t.y},t.text)}return null}function M(e){const i={fill:"none",pattern:null,linearGradient:null};if(e)if("type"in e&&"pattern"===e.type){const t="patternId-"+ ++c;i.fill=`url(#${t})`,i.pattern={id:t,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}}}else if("type"in e&&"linear"===e.type){const r="linearGradientId-"+ ++f;i.fill=`url(#${r})`,i.linearGradient={id:r,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map((e=>({offset:e.offset,color:e.color&&new t(e.color).toString()})))}}else if(e){const r=new t(e);i.fill=r.toString()}return i}function A(e){const i={color:"none",width:1,cap:"butt",join:"4",dashArray:"none"};if(e&&(null!=e.width&&(i.width=e.width),e.cap&&(i.cap=e.cap),e.join&&(i.join=e.join.toString()),e.color&&(i.color=new t(e.color).toString()),e.style)){let t=null;if(e.style in m&&(t=m[e.style]),Array.isArray(t)){t=t.slice(0);for(let i=0;i<t.length;++i)t[i]*=e.width;if("butt"!==e.cap){for(let i=0;i<t.length;i+=2)t[i]-=e.width,t[i]<1&&(t[i]=1);for(let i=1;i<t.length;i+=2)t[i]+=e.width}t=t.join(",")}i.dashArray=t}return i}function N(t,e){const i={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};return t&&(i.align=t.align,i.decoration=t.decoration,i.kerning=t.kerning?"auto":"0",i.rotate=t.rotated?"90":"0",i.font.style=e.style||"normal",i.font.variant=e.variant||"normal",i.font.weight=e.weight||"normal",i.font.size=e.size&&e.size.toString()||"10pt",i.font.family=e.family||"serif"),i}function G(t){const{pattern:e,linearGradient:i}=t;if(e)return a("pattern",{id:e.id,patternUnits:"userSpaceOnUse",x:e.x,y:e.y,width:e.width,height:e.height},a("image",{x:e.image.x,y:e.image.y,width:e.image.width,height:e.image.height,href:e.image.href}));if(i){const t=i.stops.map(((t,e)=>a("stop",{key:`${e}-stop`,offset:t.offset,"stop-color":t.color})));return a("linearGradient",{id:i.id,gradientUnits:"userSpaceOnUse",x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},t)}return null}function S(t,e,i){return o(t,n(t),[e,i])}function $(t,e,i,r,o){return s(t,n(t),[e,i]),t[4]=t[4]*e-r*e+r,t[5]=t[5]*i-o*i+o,t}function I(t,e,i,r){const o=e%360*Math.PI/180;l(t,n(t),o);const s=Math.cos(o),a=Math.sin(o),h=t[4],c=t[5];return t[4]=h*s-c*a+r*a-i*s+i,t[5]=c*s+h*a-i*a-r*s+r,t}function z(t,e){g&&"left"in g?(g.left>t&&(g.left=t),g.right<t&&(g.right=t),g.top>e&&(g.top=e),g.bottom<e&&(g.bottom=e)):g={left:t,bottom:e,right:t,top:e}}function B(t){const e=t.args,i=e.length;let r;switch(t.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(r=0;r<i;r+=2)z(e[r],e[r+1]);x.x=e[i-2],x.y=e[i-1];break;case"H":for(r=0;r<i;++r)z(e[r],x.y);x.x=e[i-1];break;case"V":for(r=0;r<i;++r)z(x.x,e[r]);x.y=e[i-1];break;case"m":{let t=0;"x"in x||(z(x.x=e[0],x.y=e[1]),t=2);for(r=t;r<i;r+=2)z(x.x+=e[r],x.y+=e[r+1]);break}case"l":case"t":for(r=0;r<i;r+=2)z(x.x+=e[r],x.y+=e[r+1]);break;case"h":for(r=0;r<i;++r)z(x.x+=e[r],x.y);break;case"v":for(r=0;r<i;++r)z(x.x,x.y+=e[r]);break;case"c":for(r=0;r<i;r+=6)z(x.x+e[r],x.y+e[r+1]),z(x.x+e[r+2],x.y+e[r+3]),z(x.x+=e[r+4],x.y+=e[r+5]);break;case"s":case"q":for(r=0;r<i;r+=4)z(x.x+e[r],x.y+e[r+1]),z(x.x+=e[r+2],x.y+=e[r+3]);break;case"A":for(r=0;r<i;r+=7)z(e[r+5],e[r+6]);x.x=e[i-2],x.y=e[i-1];break;case"a":for(r=0;r<i;r+=7)z(x.x+=e[r+5],x.y+=e[r+6])}}function F(t,e,i){const r=y[t.toLowerCase()];let o;"number"==typeof r&&(r?e.length>=r&&(o={action:t,args:e.slice(0,e.length-e.length%r)},i.push(o),B(o)):(o={action:t,args:[]},i.push(o),B(o)))}function U(t){const e=("string"!=typeof t.path?v(t.path):t.path).match(p),i=[];if(g={},x={},!e)return null;let r="",o=[];const n=e.length;for(let l=0;l<n;++l){const t=e[l],n=parseFloat(t);isNaN(n)?(r&&F(r,o,i),o=[],r=t):o.push(n)}F(r,o,i);const s={x:0,y:0,width:0,height:0};return g&&"left"in g&&(s.x=g.left,s.y=g.top,s.width=g.right-g.left,s.height=g.bottom-g.top),s}function T(t){const e={x:0,y:0,width:0,height:0};if("circle"===t.type)e.x=t.cx-t.r,e.y=t.cy-t.r,e.width=2*t.r,e.height=2*t.r;else if("ellipse"===t.type)e.x=t.cx-t.rx,e.y=t.cy-t.ry,e.width=2*t.rx,e.height=2*t.ry;else if("image"===t.type||"rect"===t.type)e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height;else if("path"===t.type){const i=U(t);e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height}return e}function E(t){const e={x:0,y:0,width:0,height:0};let i=null,r=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY;for(const n of t)i?(i.x=Math.min(i.x,n.x),i.y=Math.min(i.y,n.y),r=Math.max(r,n.x+n.width),o=Math.max(o,n.y+n.height)):(i=e,i.x=n.x,i.y=n.y,r=n.x+n.width,o=n.y+n.height);return i&&(i.width=r-i.x,i.height=o-i.y),i}function V(t,e,o,n,s,l,a,h,c){let f=(a&&l?b(l,e):e)/2,d=(a&&l?b(l,o):o)/2;if(c){const t=c[0],e=c[1];f=(a&&l?b(l,t):t)/2,d=(a&&l?b(l,e):e)/2}const u=t.width+n,y=t.height+n,p=i(),g=i();let x=!1;if(s&&0!==u&&0!==y){const t=e!==o?e/o:u/y,i=e>o?e:o;let n=1,s=1;isNaN(i)||(t>1?(n=i/u,s=i/t/y):(s=i/y,n=i*t/u)),r(g,g,$(p,n,s,f,d)),x=!0}const m=t.x+(u-n)/2,w=t.y+(y-n)/2;if(r(g,g,S(p,f-m,d-w)),!x&&(u>e||y>o)){const t=u/e>y/o,i=(t?e:o)/(t?u:y);r(g,g,$(p,i,i,m,w))}return l&&r(g,g,I(p,l,m,w)),h&&r(g,g,S(p,h[0],h[1])),`matrix(${g[0]},${g[1]},${g[2]},${g[3]},${g[4]},${g[5]})`}function C(t,e,i){const r=null==t?void 0:t.effects.find((t=>"bloom"===t.type));if(!r)return null;const{strength:o,radius:n}=r,s=o>0?n:0,l=(o+s)*e,h=4*o+1;return a("filter",{id:`bloom${i}`,x:"-100%",y:"-100%",width:"300%",height:"300%",filterUnits:"userSpaceOnUse"},a("feMorphology",{operator:"dilate",radius:(o+.5*s)*(5**(e/100)*(.4+e/100)),in:"SourceGraphic",result:"dilate"}),a("feGaussianBlur",{in:"dilate",stdDeviation:l/25,result:"blur"}),a("feGaussianBlur",{in:"blur",stdDeviation:l/50,result:"intensityBlur"}),a("feComponentTransfer",{in:"SourceGraphic",result:"intensityBrightness"},a("feFuncR",{type:"linear",slope:h}),a("feFuncG",{type:"linear",slope:h}),a("feFuncB",{type:"linear",slope:h})),a("feMerge",null,a("feMergeNode",{in:"intensityBlur"}),a("feMergeNode",{in:"intensityBrightness"}),a("feGaussianBlur",{stdDeviation:o/10})))}function D(t,e,i,r){const o=[],n=[],s=++k,l=C(null==r?void 0:r.effectView,e,s);let c=null;if(l){var f;const t=null==r||null==(f=r.effectView)?void 0:f.effects.find((t=>"bloom"===t.type)),o=(t.strength?t.strength+t.radius/2:0)/3,n=e+e*o,s=i+i*o;c=[Math.max(n,10),Math.max(s,10)]}for(const h of t){const t=[],s=[];let l=0,f=0,d=0;for(const e of h){const{shape:i,fill:r,stroke:n,font:a,offset:h}=e;l+=n&&n.width||0;const c=M(r),u=A(n),y="text"===i.type?N(i,a):null;o.push(G(c)),t.push(j(i,c.fill,u,y)),s.push(T(i)),h&&(f+=h[0],d+=h[1])}const u=V(E(s),e,i,l,null==r?void 0:r.scale,null==r?void 0:r.rotation,null==r?void 0:r.useRotationSize,[f,d],c);n.push(a("g",{transform:u},t))}return null!=r&&r.useRotationSize&&null!=r&&r.rotation&&(e=b(null==r?void 0:r.rotation,e),i=b(null==r?void 0:r.rotation,i)),l&&(e=c[0],i=c[1]),a("svg",{xmlns:h,width:e,height:i},l,a("defs",null,o),l?a("g",{filter:`url(#bloom${s})`},n):n)}export{E as computeBBox,M as generateFillAttributes,A as generateStrokeAttributes,N as generateTextAttributes,T as getBoundingBox,V as getTransformMatrix,G as renderDef,D as renderSVG,j as renderShape};
|
package/symbols.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ensureOneOfType as e}from"./core/accessorSupport/ensureType.js";import{createTypeReader as o}from"./core/accessorSupport/extensions/serializableProperty/reader.js";import l from"./symbols/CIMSymbol.js";export{default as CIMSymbol}from"./symbols/CIMSymbol.js";export{default as ExtrudeSymbol3DLayer}from"./symbols/ExtrudeSymbol3DLayer.js";export{default as BaseFillSymbol}from"./symbols/FillSymbol.js";export{default as FillSymbol3DLayer}from"./symbols/FillSymbol3DLayer.js";export{default as Font}from"./symbols/Font.js";export{default as IconSymbol3DLayer}from"./symbols/IconSymbol3DLayer.js";import s from"./symbols/LabelSymbol3D.js";export{default as LabelSymbol3D}from"./symbols/LabelSymbol3D.js";import m from"./symbols/LineSymbol3D.js";export{default as LineSymbol3D}from"./symbols/LineSymbol3D.js";export{default as LineSymbol3DLayer}from"./symbols/LineSymbol3DLayer.js";export{default as BaseMarkerSymbol}from"./symbols/MarkerSymbol.js";import r from"./symbols/MeshSymbol3D.js";export{default as MeshSymbol3D}from"./symbols/MeshSymbol3D.js";export{default as ObjectSymbol3DLayer}from"./symbols/ObjectSymbol3DLayer.js";export{default as PathSymbol3DLayer}from"./symbols/PathSymbol3DLayer.js";import t from"./symbols/PictureFillSymbol.js";export{default as PictureFillSymbol}from"./symbols/PictureFillSymbol.js";import y from"./symbols/PictureMarkerSymbol.js";export{default as PictureMarkerSymbol}from"./symbols/PictureMarkerSymbol.js";import a from"./symbols/PointSymbol3D.js";export{default as PointSymbol3D}from"./symbols/PointSymbol3D.js";import b from"./symbols/PolygonSymbol3D.js";export{default as PolygonSymbol3D}from"./symbols/PolygonSymbol3D.js";import p from"./symbols/SimpleFillSymbol.js";export{default as SimpleFillSymbol}from"./symbols/SimpleFillSymbol.js";import i from"./symbols/SimpleLineSymbol.js";export{default as SimpleLineSymbol}from"./symbols/SimpleLineSymbol.js";import f from"./symbols/SimpleMarkerSymbol.js";export{default as SimpleMarkerSymbol}from"./symbols/SimpleMarkerSymbol.js";import S from"./symbols/Symbol.js";export{default as BaseSymbol}from"./symbols/Symbol.js";export{default as BaseSymbol3D}from"./symbols/Symbol3D.js";export{default as BaseSymbol3DLayer}from"./symbols/Symbol3DLayer.js";import n from"./symbols/TextSymbol.js";export{default as TextSymbol}from"./symbols/TextSymbol.js";export{default as TextSymbol3DLayer}from"./symbols/TextSymbol3DLayer.js";export{default as WaterSymbol3DLayer}from"./symbols/WaterSymbol3DLayer.js";import u from"./symbols/WebStyleSymbol.js";export{default as WebStyleSymbol}from"./symbols/WebStyleSymbol.js";export{default as LineCallout3D}from"./symbols/callouts/LineCallout3D.js";export{L as LineCallout3DBorder}from"./chunks/LineCallout3DBorder.js";
|
|
5
|
+
import{ensureOneOfType as e}from"./core/accessorSupport/ensureType.js";import{createTypeReader as o}from"./core/accessorSupport/extensions/serializableProperty/reader.js";import l from"./symbols/CIMSymbol.js";export{default as CIMSymbol}from"./symbols/CIMSymbol.js";export{default as ExtrudeSymbol3DLayer}from"./symbols/ExtrudeSymbol3DLayer.js";export{default as BaseFillSymbol}from"./symbols/FillSymbol.js";export{default as FillSymbol3DLayer}from"./symbols/FillSymbol3DLayer.js";export{default as Font}from"./symbols/Font.js";export{default as IconSymbol3DLayer}from"./symbols/IconSymbol3DLayer.js";import s from"./symbols/LabelSymbol3D.js";export{default as LabelSymbol3D}from"./symbols/LabelSymbol3D.js";import m from"./symbols/LineSymbol3D.js";export{default as LineSymbol3D}from"./symbols/LineSymbol3D.js";export{default as LineSymbol3DLayer}from"./symbols/LineSymbol3DLayer.js";export{default as BaseMarkerSymbol}from"./symbols/MarkerSymbol.js";import r from"./symbols/MeshSymbol3D.js";export{default as MeshSymbol3D}from"./symbols/MeshSymbol3D.js";export{default as ObjectSymbol3DLayer}from"./symbols/ObjectSymbol3DLayer.js";export{default as PathSymbol3DLayer}from"./symbols/PathSymbol3DLayer.js";import t from"./symbols/PictureFillSymbol.js";export{default as PictureFillSymbol}from"./symbols/PictureFillSymbol.js";import y from"./symbols/PictureMarkerSymbol.js";export{default as PictureMarkerSymbol}from"./symbols/PictureMarkerSymbol.js";import a from"./symbols/PointSymbol3D.js";export{default as PointSymbol3D}from"./symbols/PointSymbol3D.js";import b from"./symbols/PolygonSymbol3D.js";export{default as PolygonSymbol3D}from"./symbols/PolygonSymbol3D.js";import p from"./symbols/SimpleFillSymbol.js";export{default as SimpleFillSymbol}from"./symbols/SimpleFillSymbol.js";import i from"./symbols/SimpleLineSymbol.js";export{default as SimpleLineSymbol}from"./symbols/SimpleLineSymbol.js";import f from"./symbols/SimpleMarkerSymbol.js";export{default as SimpleMarkerSymbol}from"./symbols/SimpleMarkerSymbol.js";import S from"./symbols/Symbol.js";export{default as BaseSymbol}from"./symbols/Symbol.js";export{default as BaseSymbol3D}from"./symbols/Symbol3D.js";export{default as BaseSymbol3DLayer}from"./symbols/Symbol3DLayer.js";import n from"./symbols/TextSymbol.js";export{default as TextSymbol}from"./symbols/TextSymbol.js";export{default as TextSymbol3DLayer}from"./symbols/TextSymbol3DLayer.js";export{default as WaterSymbol3DLayer}from"./symbols/WaterSymbol3DLayer.js";import u from"./symbols/WebStyleSymbol.js";export{default as WebStyleSymbol}from"./symbols/WebStyleSymbol.js";export{default as LineCallout3D}from"./symbols/callouts/LineCallout3D.js";export{L as LineCallout3DBorder}from"./chunks/LineCallout3DBorder.js";function d(e){return e instanceof S}function x(e){if(!e)return!1;switch(e.type){case"picture-fill":case"picture-marker":case"simple-fill":case"simple-line":case"simple-marker":case"text":case"cim":return!0;default:return!1}}function c(e){if(!e)return!1;switch(e.type){case"label-3d":case"line-3d":case"mesh-3d":case"point-3d":case"polygon-3d":return!0;default:return!1}}const j={base:S,key:"type",typeMap:{"simple-fill":p,"picture-fill":t,"picture-marker":y,"simple-line":i,"simple-marker":f,text:n,"label-3d":s,"line-3d":m,"mesh-3d":r,"point-3d":a,"polygon-3d":b,"web-style":u,cim:l},errorContext:"symbol"},D={base:S,key:"type",typeMap:{"picture-marker":y,"simple-marker":f,text:n,"web-style":u,cim:l},errorContext:"symbol"},k=o({types:j}),M={base:S,key:"type",typeMap:{"simple-fill":p,"picture-fill":t,"picture-marker":y,"simple-line":i,"simple-marker":f,text:n,"line-3d":m,"mesh-3d":r,"point-3d":a,"polygon-3d":b,"web-style":u,cim:l},errorContext:"symbol"},P={base:S,key:"type",typeMap:{text:n,"label-3d":s},errorContext:"symbol"},C={base:S,key:"type",typeMap:{"label-3d":s,"line-3d":m,"mesh-3d":r,"point-3d":a,"polygon-3d":b,"web-style":u},errorContext:"symbol"},h={base:S,key:"type",typeMap:{"line-3d":m,"mesh-3d":r,"point-3d":a,"polygon-3d":b,"web-style":u,cim:l},errorContext:"symbol"},F={base:S,key:"type",typeMap:{"label-3d":s},errorContext:"symbol"},g=e(j);export{g as ensureType,d as isSymbol,x as isSymbol2D,c as isSymbol3D,k as readSymbol,j as symbolTypes,C as symbolTypes3D,D as symbolTypesCluster,P as symbolTypesLabel,F as symbolTypesLabel3D,M as symbolTypesRenderer,h as symbolTypesRenderer3D};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{hasSource as t}from"../../../RasterBitmap.js";import e from"../../VertexStream.js";import r from"../WGLBrush.js";import{BlendFactor as s,CompareFunction as a}from"../../../../../webgl/enums.js";import{setTextures as i,getCommonUniforms as o,setUniforms as n,getColormapUniforms as h,getStretchUniforms as l,getShadedReliefUniforms as c,getUniformLocationInfos as
|
|
5
|
+
import{hasSource as t}from"../../../RasterBitmap.js";import e from"../../VertexStream.js";import r from"../WGLBrush.js";import{BlendFactor as s,CompareFunction as a}from"../../../../../webgl/enums.js";import{setTextures as i,getCommonUniforms as o,setUniforms as n,getColormapUniforms as h,getStretchUniforms as l,getShadedReliefUniforms as c,getUniformLocationInfos as p,getBasicGridUniforms as d}from"../../../../../webgl/rasterUtils.js";class u extends r{constructor(){super(...arguments),this._desc={lut:{vsPath:"raster/lut",fsPath:"raster/lut",attributes:new Map([["a_position",0],["a_texcoord",1]])},stretch:{vsPath:"raster/stretch",fsPath:"raster/stretch",attributes:new Map([["a_position",0],["a_texcoord",1]])},hillshade:{vsPath:"raster/hillshade",fsPath:"raster/hillshade",attributes:new Map([["a_position",0],["a_texcoord",1]])}},this._rendererUniformInfos=new Map}dispose(){this._quad&&this._quad.dispose()}prepareState({context:t},e){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(s.ONE,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!0),t.setStencilFunction(a.EQUAL,e.stencilRef,255)}draw(e,r){var s;if(!t(r)||r.suspended)return;e.timeline.begin(this.name);const a=!(null!=(s=e.context.capabilities.textureFloat)&&s.textureFloatLinear);r.updateTexture(e);const i=this._getShaderVariations(r,a),o=e.painter.materialManager.getProgram(e,this._desc[r.symbolizerParameters.type],i);this._drawWithProgram(e.context,o,r),e.timeline.end(this.name)}_drawWithProgram(t,r,s,a=1,p=[0,0],u=!1){this._quad||(this._quad=new e(t,[0,0,1,0,0,1,1,1]));const{symbolizerParameters:m,transformGrid:f,width:_,height:g,opacity:b}=s,P=m.type;t.useProgram(r);const S=this._getShaderVariations(s),x=this._getUniformInfos(P,t,r,S),{names:w,textures:y}=s.getTextures();i(t,r,w,y);const M=d(a,p),U=o(f,[_,g],[s.source.width,s.source.height],b,u);if(n(r,x,{u_coordScale:s.coordScale,u_dvsMat3:s.transforms.dvs,...M,...U}),m.colormap){const{colormap:t,colormapOffset:e}=m,s=h(t,e);n(r,x,s)}if("stretch"===m.type){const t=l(m);n(r,x,t)}else if("hillshade"===m.type){const t=c(m);n(r,x,t)}this._quad.draw()}_getUniformInfos(t,e,r,s){const a=s.length>0?t+"-"+s.join("-"):t;if(this._rendererUniformInfos.has(a))return this._rendererUniformInfos.get(a);const i=p(e,r);return this._rendererUniformInfos.set(a,i),i}_getShaderVariations(t,e=!1){const r=[],{interpolation:s}=t,{type:a,colormap:i}=t.symbolizerParameters;return"cubic"===s?r.push("bicubic"):"bilinear"===s&&"stretch"===a&&null!=i?(r.push("bilinear"),r.push("nnedge")):e&&"bilinear"===s&&r.push("bilinear"),t.isRendereredSource?r.push("noop"):i&&r.push("applyColormap"),t.transformGrid&&(r.push("applyProjection"),1===t.transformGrid.spacing[0]&&r.push("lookupProjection")),r}}export{u 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.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{pt2px as t}from"../../../../../../core/screenUtils.js";import{premultiplyAlphaRGBAArray as e,premultiplyAlphaRGBA as o}from"../../color.js";import{MIN_MAX_ZOOM_PRECISION_FACTOR as r,
|
|
5
|
+
import{pt2px as t}from"../../../../../../core/screenUtils.js";import{premultiplyAlphaRGBAArray as e,premultiplyAlphaRGBA as o}from"../../color.js";import{MIN_MAX_ZOOM_PRECISION_FACTOR as r,BITSET_GENERIC_LOCK_COLOR as l,SPRITE_PADDING as i,PICTURE_FILL_COLOR as s}from"../../definitions.js";import{degToByte as n}from"../../GeometryUtils.js";import{i8888to32 as a,i1616to32 as m}from"../../number.js";import{FillMaterialKey as c}from"../../materialKey/MaterialKey.js";import{getMinMaxZoom as f,DEFAULT_MIN_ZOOM as h,DEFAULT_MAX_ZOOM as u}from"./util.js";import d from"./WGLBaseFillTemplate.js";import p from"./WGLMeshTemplate.js";const y=128;class x extends(d(p)){constructor(t,e,o,l,i,s,n,f,h,u,d,p,y,x,M,j){super(),this._effects=x;const w=c.load(t);e&&(w.sdf=e.sdf,w.pattern=!0,w.textureBinding=e.textureBinding),this.fillColor=o,this.tl=l,this.br=i,this.aux2=a(s,n,f,h),this.aux3=a(u,d,p,0),this._bitset=y,this._minMaxZoom=m(Math.round(M*r),Math.round(j*r)),this._materialKey=w.data}static fromCIMFill(e,r,s){const a=e.color,c=a&&o(a)||0,h=e.materialKey,[u,d]=f(e.scaleInfo,s);if(!r)return new x(h,null,c,0,0,0,0,0,0,0,0,0,e.colorLocked?l:0,e.effects,u,d);const{rect:p,width:M,height:j}=r,w=e.scaleX||1,g=p.x+i,K=p.y+i,L=g+M,_=K+j,b=e.height,F=w*b;let T=Math.round(b);T>255?T=255:T<=0&&(T=_-K);let B=Math.round(F);B>255?B=255:B<=0&&(B=L-g);let G=t(e.offsetX||0)+y;G>255&&(G=255);let S=t(-e.offsetY||0)+y;S>255&&(S=255);const k=m(g,K),A=m(L,_);return new x(h,r,c,k,A,B,T,G,S,y,y,n(e.angle),e.colorLocked?l:0,e.effects,u,d)}static fromSimpleFill(t,o,r=!1){const{color:s}=t,n=s&&"esriSFSNull"!==t.style&&e(s)||0,a=r?l:0,c=t.materialKey;let f;if(o){const{rect:t,width:e,height:r}=o,l=t.x+i,s=t.y+i,d=l+e,p=s+r,M=m(l,s),j=m(d,p);f=new x(c,o,n,M,j,e,r,0,0,y,y,0,a,null,h,u)}else f=new x(c,null,n,0,0,0,0,0,0,0,0,0,a,null,h,u);return f._maybeAddLineTemplate(t),f}static fromPictureFill(e,o,r=!1){const n=s,{rect:a,width:c,height:f}=o,d=a.x+i,p=a.y+i,M=d+c,j=p+f,w=m(d,p),g=m(M,j);let K=Math.round(t(e.width));K>255&&(K=255);let L=Math.round(t(e.height));L>255&&(L=255);let _=t(e.xoffset)+y;_>255&&(_=255);let b=t(-e.yoffset)+y;b>255&&(b=255);const F=e.materialKey,T=r?l:0,B=new x(F,o,n,w,g,K,L,_,b,y*e.xscale,y*e.yscale,0,T,null,h,u);return B._maybeAddLineTemplate(e),B}}export{x as default};
|