/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["../chunks/_rollupPluginBabelHelpers","../chunks/tslib.es6","../core/maybe","../core/screenUtils","../core/accessorSupport/decorators/property","../core/arrayUtils","../core/has","../core/accessorSupport/ensureType","../core/accessorSupport/decorators/enumeration","../core/accessorSupport/decorators/subclass","./LineStyleMarker3D","./Symbol3DLayer","./patterns/LineStylePattern3D","./patterns/utils","./support/colors","./support/materialUtils","./support/Symbol3DMaterial","./support/symbolLayerUtils3D"],(function(e,t,r,o,l,a,n,i,s,p,c,y,u,m,d,b,h,_){"use strict";var S;let k=S=function(t){function l(e){var r;return(r=t.call(this,e)||this).material=null,r.type="line",r.join="miter",r.cap="butt",r.size=o.px2pt(1),r.pattern=null,r.marker=null,r}return e._inheritsLoose(l,t),l.prototype.clone=function(){const e={enabled:this.enabled,material:r.isSome(this.material)?this.material.clone():null,size:this.size,join:this.join,cap:this.cap,pattern:r.isSome(this.pattern)?this.pattern.clone():null,marker:r.isSome(this.marker)?this.marker.clone():null};return new S(e)},l.fromSimpleLineSymbol=function(e){var t,r,l;const a={enabled:!0,size:null!=(t=e.width)?t:o.px2pt(1),cap:e.cap||"butt",join:e.join||"miter",pattern:e.style&&"inside-frame"!==e.style?new u({style:e.style}):null,material:new h.Symbol3DMaterial({color:(e.color||d.white).clone()}),marker:e.marker?new c({placement:e.marker.placement,style:e.marker.style,color:null!=(r=null==(l=e.marker.color)?void 0:l.clone())?r:null}):null};return new S(a)},l}(y);t.__decorate([l.property({type:h.Symbol3DMaterial,json:{write:!0}})],k.prototype,"material",void 0),t.__decorate([s.enumeration({Line:"line"},{readOnly:!0})],k.prototype,"type",void 0),t.__decorate([l.property({type:_.lineJoins,json:{write:!0,default:"miter"}})],k.prototype,"join",void 0),t.__decorate([l.property({type:_.lineCaps,json:{write:!0,default:"butt"}})],k.prototype,"cap",void 0),t.__decorate([l.property(b.screenSizeProperty)],k.prototype,"size",void 0),t.__decorate([l.property(m.symbol3dLinePatternProperty)],k.prototype,"pattern",void 0),t.__decorate([l.property({types:{key:"type",base:c,typeMap:{style:c}},json:{write:!0}})],k.prototype,"marker",void 0),k=S=t.__decorate([p.subclass("esri.symbols.LineSymbol3DLayer")],k);return k}));
