/* COPYRIGHT Esri - https://js.arcgis.com/5.0.18/LICENSE.txt */
import{__decorate as t,__param as o}from"tslib";import{location as e,uniform as r,input as i}from"../../GraphShaderModule.js";import{greaterThan as s,Float as l,ifElse as p,Vec4 as a,Vec2 as n}from"../../graph/glsl.js";import{BaseHittestVertexInput as m,FeatureVertexInput as u}from"./AFeatureShader.js";import{getComplexFillVertexData as f,getComplexFillFragmentColor as h}from"./ComplexFillShader.js";import{signedToUnsignedByte as d,packPrecision as c}from"./constants.js";import{hittestFill as x,failHittest as y}from"./hittestUtils.js";import{getLineFragmentColor as j}from"./LineShader.js";import{LocalTileOffset as v}from"./LocalTileOffset.js";import{MosaicInfo as g}from"./MosaicInfo.js";import{AOutlineFillShader as O,getOutlineFillVertexData as S}from"./OutlineFillShader.js";import{PatternOutlineFillFragmentInput as b}from"./PatternOutlineFillShader.js";const F=1/c;class w extends u{}t([e(3,a)],w.prototype,"color",void 0),t([e(4,a)],w.prototype,"tlbr",void 0),t([e(5,l)],w.prototype,"angle",void 0),t([e(6,l)],w.prototype,"aux1",void 0),t([e(7,l)],w.prototype,"aux2",void 0),t([e(8,n)],w.prototype,"aux3",void 0),t([e(9,n)],w.prototype,"aux4",void 0),t([e(10,n)],w.prototype,"zoomRange",void 0);class C extends b{}class R extends O{constructor(){super(...arguments),this.type="ComplexOutlineFillShader"}vertex(t,o){const{aux1:e,aux2:r,aux3:i,aux4:p}=t,a={...t,width:e,height:r,offset:i,scale:p.multiply(F)},n={...t,halfWidth:e,referenceHalfWidth:r,offset:i,normal:p.subtract(d).multiply(F)},m=S(this,n),u=f(this,a),h=s(m.isOutline,new l(.5));return{...m,...u,...Object.assign({},this.maybeRunHittest(t,o,h))}}fragment(t){const{isOutline:o}=t,e=s(o,new l(.5)),r=j(t,this.antialiasingControls.blur),i=h(this,t),a=p(e,r,i),n=p(e,new l(1/255),new l(0));return this.getFragmentOutput(a,t,n)}hittest(t,o,e){return p(e,y(this.hittestRequest),x(this,t,o))}}t([r(g)],R.prototype,"mosaicInfo",void 0),t([r(v)],R.prototype,"localTileOffset",void 0),t([o(0,i(w)),o(1,i(m))],R.prototype,"vertex",null),t([o(0,i(C))],R.prototype,"fragment",null);export{R as ComplexOutlineFillShader,w as ComplexOutlineFillVertexInput};
