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