UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 4 kB
import{generateFillAttributes as e,generateStrokeAttributes as l,renderDef as a,renderShape as r,getBoundingBox as t,computeBBox as s,getTransformMatrix as o}from"../../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as i}from"../../../../symbols/support/utils.js";import{isRTL as n,classes as d}from"../../../support/widgetUtils.js";import{tsx as m}from"../../../support/jsxFactory.js";const b="esri-relationship-ramp",u=`${b}--diamond`,c=`${b}--square`,f="http://www.w3.org/2000/svg",p={diamondContainer:`${u}__container`,diamondLeftCol:`${u}__left-column`,diamondRightCol:`${u}__right-column`,diamondMidCol:`${u}__middle-column`,diamondMidColLabel:`${u}__middle-column--label`,diamondMidColRamp:`${u}__middle-column--ramp`,squareTable:`${c}__table`,squareTableRow:`${c}__table-row`,squareTableCell:`${c}__table-cell`,squareTableLabel:`${c}__table-label`,squareTableLabelLeftBottom:`${c}__table-label--left-bottom`,squareTableLabelRightBottom:`${c}__table-label--right-bottom`,squareTableLabelLeftTop:`${c}__table-label--left-top`,squareTableLabelRightTop:`${c}__table-label--right-top`};function h(e,l,a,r){const{focus:t,labels:s}=e,o=!!t,i=T(e,l,a,r),b={justifyContent:"center"},u=n();return o?m("div",{class:p.diamondContainer,styles:b},m("div",{class:p.diamondLeftCol},u?s.right:s.left),m("div",{class:p.diamondMidCol},m("div",{class:p.diamondMidColLabel},s.top),i,m("div",{class:p.diamondMidColLabel},s.bottom)),m("div",{class:p.diamondRightCol},u?s.left:s.right)):m("div",{class:p.squareTable},m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightBottom)},u?s.top:s.left),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftBottom)},u?s.left:s.top)),m("div",{class:p.squareTableRow},m("div",{class:p.squareTableCell}),i,m("div",{class:p.squareTableCell})),m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightTop)},u?s.right:s.bottom),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftTop)},u?s.bottom:s.right)))}function k(e,l,a){const r=`${a}_arrowStart`,t=`${a}_arrowEnd`,s="left"===e,o={markerStart:null,markerEnd:null};switch(l){case"HL":s?o.markerStart=`url(#${t})`:o.markerEnd=`url(#${r})`;break;case"LL":o.markerStart=`url(#${t})`;break;case"LH":s?o.markerEnd=`url(#${r})`:o.markerStart=`url(#${t})`;break;default:o.markerEnd=`url(#${r})`}return o}function T(n,d,b,u,c=60){const{focus:h,numClasses:T,colors:_,rotation:q}=n,$=!!h,g=Math.sqrt(c**2+c**2)+($?0:5),L=[],C=[],v=[],w=(c||75)/T;for(let s=0;s<T;s++){const o=s*w;for(let i=0;i<T;i++){const n=i*w,d=e(_[s][i]),m=l(null),b={type:"rect",x:n,y:o,width:w,height:w},u=a(d);u&&L.push(u);const c=r(b,d.fill,m,null);c&&C.push(c),v.push(t(b))}}const y=10,x=15,R=15,E=10;let M=null;$||(M="margin: -15px -15px -18px -15px");const S=k("left",h,d),j=k("right",h,d),B=s(v),H=o(B,g,g,0,!1,q,!1),U=o(B,g,g,0,!1,$?-45:null,!1),W={filter:i(u),opacity:null==b?"":`${b}`};return m("div",{styles:W,class:$?p.diamondMidColRamp:p.squareTableCell},m("svg",{xmlns:f,width:g,height:g,style:M},m("defs",null,m("marker",{id:`${d}_arrowStart`,markerWidth:"10",markerHeight:"10",refX:"5",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"0,0 5,5 0,10",fill:"none",stroke:"#555555","stroke-width":"1"})),m("marker",{id:`${d}_arrowEnd`,markerWidth:"10",markerHeight:"10",refX:"0",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"5,0 0,5 5,10",fill:"none",stroke:"#555555","stroke-width":"1"})),L),m("g",{transform:H},C),m("g",{transform:U},m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":S.markerStart,"marker-end":S.markerEnd,x1:-y,y1:c-x,x2:-y,y2:x}),m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":j.markerStart,"marker-end":j.markerEnd,x1:R,y1:c+E,x2:c-R,y2:c+E}))))}export{h as renderRelationshipRamp};