@arcgis/map-components
Version:
ArcGIS Map Components
2 lines • 8.37 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import a from"./KYU6MBFA.js";import{Q as O,R as e,b as U,c as s}from"./WUJCCZQC.js";export default $arcgis.t(([{getBoundingBox:J,computeBBox:K,getTransformMatrix:Q},M,{e:N,f:F}])=>{var V=0;function X(){return V++}var Y=0;function Z(){return Y++}var _=0;function tt(){return _++}var R=new Map([["dash",[4,3]],["dashdot",[4,3,1,3]],["dot",[1,3]],["longdash",[8,3]],["longdashdot",[8,3,1,3]],["longdashdotdot",[8,3,1,3,1,3]],["shortdash",[4,1]],["shortdashdot",[4,1,1,1]],["shortdashdotdot",[4,1,1,1,1,1]],["shortdot",[1,1]],["solid",[]]]),et="http://www.w3.org/2000/svg",it=Math.PI;function ot(t){let{pattern:o,linearGradient:i}=t;if(o)return s`<pattern height=${o.height??e} id=${o.id??e} patternUnits=userSpaceOnUse width=${o.width??e} x=${o.x??0??e} y=${o.y??0??e}><image height=${o.image.height??e} href=${o.image.href??e} width=${o.image.width??e} x=${o.image.x??e} y=${o.image.y??e} /></pattern>`;if(i){let n=i.stops.map(r=>s`<stop offset=${r.offset??e} stop-color=${r.color??e} />`);return s`<linearGradient gradientUnits=userSpaceOnUse id=${i.id??e} x1=${i.x1??e} x2=${i.x2??e} y1=${i.y1??e} y2=${i.y2??e}>${n}</linearGradient>`}return null}function E(t){if(!t)return{fill:"none",pattern:null,linearGradient:null};if(!("type"in t))return{fill:new M(t).toString(),pattern:null,linearGradient:null};if(t.type==="pattern"){let i=`patternId-${X()}`;return{fill:`url(#${i})`,pattern:{id:i,x:t.x,y:t.y,width:t.width,height:t.height,image:{x:0,y:0,width:t.width,height:t.height,href:t.src}},linearGradient:null}}let o=`linearGradientId-${Z()}`;return{fill:`url(#${o})`,pattern:null,linearGradient:{id:o,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stops:t.colors.map(i=>({offset:i.offset,color:i.color&&new M(i.color).toString()}))}}}function D(t){let o={color:"none",width:1,cap:"butt",join:"4",dashArray:"none",dashOffset:"0"};return t&&(t.width!=null&&(o.width=t.width),t.cap&&(o.cap=t.cap),t.join&&(o.join=t.join.toString()),t.color&&(o.color=new M(t.color).toString()),t.dashArray&&(o.dashArray=t.dashArray),t.dashoffset&&(o.dashOffset=t.dashoffset),t.style&&!t.dashArray&&(o.dashArray=nt(t).join(",")||"none")),o}function nt(t){if(!t?.style)return[];let{dashArray:o,style:i,width:n}=t;if(typeof o=="string"&&o!=="none")return o.split(",").map(l=>Number(l));let r=n??0,d=R.has(i)?R.get(i).map(l=>l*r):[];if(t.cap!=="butt")for(let[l,h]of d.entries())d[l]=l%2===1?h+r:Math.max(h-r,1);return d}function rt(t){return t.map(o=>`${o.command} ${o.values.join(" ")}`).join(" ").trim()}function j(t,o){if(t==null)throw new Error("value is None")}function I(t,o,i,n,r){if(t){if(t.type==="circle")return s`<circle cx=${t.cx??e} cy=${t.cy??e} fill=${o??e} fill-rule=evenodd r=${t.r??e} stroke=${i.color??e} stroke-dasharray=${i.dashArray??void 0??e} stroke-dashoffset=${i.dashOffset??void 0??e} stroke-linecap=${i.cap??e} stroke-linejoin=${i.join??e} stroke-miterlimit=4 stroke-width=${i.width??e} />`;if(t.type==="ellipse")return s`<ellipse cx=${t.cx??e} cy=${t.cy??e} fill=${o??e} fill-rule=evenodd rx=${t.rx??e} ry=${t.ry??e} stroke=${i.color??e} stroke-dasharray=${i.dashArray??void 0??e} stroke-linecap=${i.cap??e} stroke-linejoin=${i.join??e} stroke-miterlimit=4 stroke-width=${i.width??e} />`;if(t.type==="rect")return s`<rect fill=${o??e} fill-rule=evenodd height=${t.height??e} stroke=${i.color??e} stroke-dasharray=${i.dashArray??void 0??e} stroke-linecap=${i.cap??e} stroke-linejoin=${i.join??e} stroke-miterlimit=4 stroke-width=${i.width??e} width=${t.width??e} x=${t.x??e} y=${t.y??e} />`;if(t.type==="image")return s`<image aria-label=${r??""??e} height=${t.height??e} href=${t.src??e} preserveAspectRatio=none width=${t.width??e} x=${t.x??e} y=${t.y??e} />`;if(t.type==="path"){let d=typeof t.path!="string"?rt(t.path):t.path;return s`<path d=${d??e} fill=${o??e} fill-rule=evenodd stroke=${i.color??e} stroke-dasharray=${i.dashArray??void 0??e} stroke-linecap=${i.cap??e} stroke-linejoin=${i.join??e} stroke-miterlimit=4 stroke-width=${i.width??e} />`}if(t.type==="text")return j(n),s`<text dominant-baseline=${(n.dominantBaseline==="inherit"||n.dominantBaseline==="alphabetic"||n.dominantBaseline==="auto"||n.dominantBaseline==="central"||n.dominantBaseline==="hanging"||n.dominantBaseline==="ideographic"||n.dominantBaseline==="mathematical"||n.dominantBaseline==="middle"||n.dominantBaseline==="text-bottom"||n.dominantBaseline==="text-top"?n.dominantBaseline:void 0)??e} fill=${o??e} fill-rule=evenodd font-family=${n.font.family??e} font-size=${n.font.size??e} font-style=${n.font.style??e} font-variant=${n.font.variant??e} font-weight=${n.font.weight??e} kerning=${n.kerning??e} rotate=${n.rotate??e} stroke=${i.color??e} stroke-dasharray=${i.dashArray??void 0??e} stroke-linecap=${i.cap??e} stroke-linejoin=${i.join??e} stroke-miterlimit=4 stroke-width=${i.width??e} text-anchor=${(n.align==="inherit"||n.align==="middle"||n.align==="end"||n.align==="start"?n.align:void 0)??e} text-decoration=${(n.decoration==="inherit"||n.decoration==="none"||n.decoration==="blink"||n.decoration==="line-through"||n.decoration==="overline"||n.decoration==="underline"?n.decoration:void 0)??e} text-rendering=auto x=${t.x??e} y=${t.y??e}>${t.text}</text>`}return null}function at(t,o,i){let n=C(t);if(!n)return null;let{strength:r,radius:d}=n,l=r>0?d:0,h=5**(o/100)*(.4+o/100),u=(r+l*.5)*h,c=(r+l)*o,f=r*4+1;return s`<filter filterUnits=userSpaceOnUse height=300% .id=${`bloom${i}`} width=300% x=-100% y=-100%><feMorphology in=SourceGraphic operator=dilate radius=${u??e} result=dilate /><feGaussianBlur in=dilate result=blur stdDeviation=${c/25} /><feGaussianBlur in=blur result=intensityBlur stdDeviation=${c/50} /><feComponentTransfer in=SourceGraphic result=intensityBrightness><feFuncR slope=${f??e} type=linear /><feFuncG slope=${f??e} type=linear /><feFuncB slope=${f??e} type=linear /></feComponentTransfer><feMerge><feMergeNode in=intensityBlur /><feMergeNode in=intensityBrightness /><feGaussianBlur stdDeviation=${r/10} /></feMerge></filter>`}function x(t,o){let i=t*(it/180);return Math.abs(o*Math.sin(i))+Math.abs(o*Math.cos(i))}function T(t,o){let i={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};if(t){let n=t.alignBaseline,r=n==="baseline"?"auto":n==="top"?"text-top":n==="bottom"?"hanging":n;i.align=t.align,i.dominantBaseline=r,i.decoration=t.decoration,i.kerning=t.kerning?"auto":"0",i.rotate=t.rotated?"90":"0",j(o),i.font.style=o.style||"normal",i.font.variant=o.variant||"normal",i.font.weight=o.weight||"normal",i.font.size=o.size?.toString()||"10pt",i.font.family=o.family||"serif"}return i}function st(t,o){if(!t||t.length===0)return null;let i=[];for(let n of t){let{shape:r,fill:d,stroke:l,font:h}=n,u=E(d),c=D(l),f=r.type==="text"?T(r,h):null,a=I(r,u.fill,c,f);a&&i.push(a)}return s`<mask id=${o??e} maskUnits=userSpaceOnUse><g>${i}</g></mask>`}function C(t){let o=t?.match(/bloom\(\s*([^\s]+)\s+([^\s]+)\s+([^\s]+)\s*\)/iu);if(!o)return null;let[,i,n,r]=o;return{strength:Number(i),radius:N(F(n)),threshold:Number(r)}}function ut(t,o,i,n={}){let r=[],d=[],l=tt(),h=at(n.cssEffectFilter,o,l),u=null;if(h){let a=C(n.cssEffectFilter),$=n.clipBloomEffect||!a?.strength?0:(a.strength+a.radius/2)/3,p=o+o*$,m=i+i*$;u=[Math.max(p,10),Math.max(m,10)]}let c=o,f=i;if(n.useRotationSize)for(let a=0;a<t.length;a++){let $=n.rotations?.[a]??0;c=Math.max(x($,o),c),f=Math.max(x($,i),f)}for(let a=0;a<t.length;a++){let $=t[a],p=[],m=[],S=0,k=0,w=0;for(let y of $){let{shape:g,fill:P,stroke:A,font:W,offset:b}=y;!n.ignoreStrokeWidth&&g.type!=="text"&&(S+=A?.width||0);let z=E(P),q=D(A),H=g.type==="text"?T(g,W):null;r.push(ot(z)),p.push(I(g,z.fill,q,H,n.ariaLabel)),m.push(J(g)),b&&(k+=b[0],w+=b[1])}let v=n.rotations?.[a]??0;n.useRotationSize&&(k+=(c-x(v,o))/2,w+=(f-x(v,i))/2);let L=K(m),G=Q(L,o,i,S,n.scale??!1,v,n.useRotationSize??!1,[k,w],u),B=null;if(n.masking){let y=`mask-${a}`,g=n.masking[a];r.push(st(g,y)),B=`url(#${y})`}d.push(B?s`<g mask=${B??e}><g transform=${G??e}>${p}</g></g>`:s`<g transform=${G??e}>${p}</g>`)}return h&&(j(u),c=u[0],f=u[1]),U`<svg aria-label=${n.ariaLabel??e} height=${f??e} role=img style=${O("display: block;")} width=${c??e} xmlns=${et}>${s`${h}<defs>${r}</defs>${h?s`<g filter=${`url(#bloom${l})`}>${d}</g>`:d}`}</svg>`}return{a:ot,b:E,c:D,d:I,e:ut}},"applications/Components/svgUtils","Color",a)