/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 - present ĠRobert ĠJar os Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġio . k vision . maps . external s . leaflet . control Ċ Ċ import Ġio . k vision . maps . external s . leaflet . Positions Union Ċ import Ġio . k vision . maps . external s . leaflet . control . Control . Control Options Ċ import Ġio . k vision . maps . external s . leaflet . control . Control . Layers Object Ċ import Ġio . k vision . maps . external s . leaflet . core . Class Ċ import Ġio . k vision . maps . external s . leaflet . layer . Layer Ċ import Ġio . k vision . maps . external s . leaflet . map . Leaf let Map Ċ import Ġorg . w 3 c . dom . HTMLElement Ċ Ċ /** Ċ Ġ* Ġ` Control ` Ġis Ġa Ġbase Ġclass Ġfor Ġimplementing Ġmap Ġcontrols . ĠHandles Ġposition ing . ĠAll Ġother Ġcontrols Ċ Ġ* Ġextend Ġfrom Ġthis Ġclass . Ċ Ġ* Ċ Ġ* ĠSee Ġ[` https :// leaflet js . com / reference . html # control `]( https :// leaflet js . com / reference . html # control ) Ċ Ġ*/ Ċ @ Js Module (" leaflet ") Ċ @ Js Non Module Ċ abstract Ġexternal Ġclass ĠControl < T Ġ: ĠControl Options >( ĊĠĠĠ Ġoptions : ĠT Ġ= Ġdefined Ex tern ally Ċ ) Ġ: ĠClass Ġ{ ĊĊĠĠĠ Ġopen Ġvar Ġoptions : ĠT Ġ// ĠControl Options ĊĊĠĠĠ Ġopen Ġfun Ġget Position (): ĠPosition s Union ĊĠĠĠ Ġopen Ġfun Ġset Position ( position : ĠPosition s Union ): ĠControl < T > Ġ/* Ġthis Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Container (): ĠHTMLElement ? ĊĠĠĠ Ġopen Ġfun ĠaddTo ( map : ĠLeaf let Map ): ĠControl < T > Ġ/* Ġthis Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġremove (): ĠControl < T > Ġ/* Ġthis Ġ*/ ĊĠĠĠ Ġopen Ġval Ġon Add : Ġ(( map : ĠLeaf let Map ) Ġ-> ĠHTMLElement )? ĊĠĠĠ Ġopen Ġval Ġon Remove : Ġ(( map : ĠLeaf let Map ) Ġ-> ĠUnit )? ĊĊĠĠĠ Ġinterface ĠControl Options Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġposition Ġof Ġthe Ġcontrol Ġ( one Ġof Ġthe Ġmap Ġcorners ). ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠPossible Ġvalues Ġare Ġ` top left `, Ġ` top right `, Ġ` bottom left ` Ġor Ġ` bottom right ` ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġposition : ĠPosition s Union ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠObject Ġliteral Ġwith Ġlayer Ġnames Ġas Ġkeys Ġand Ġ[ Layer ] Ġobjects Ġas Ġvalues . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ Layers Object . set ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ Layers Object . get ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠLay ers Object Ċ Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġ< T Ġ: ĠAny ?> Ġextend ( props : ĠT ): ĠAny Ġ/* ĠAny Ġ& ĠAny Ġ*/ Ċ // ĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠNative Ġgetter Ġfor Ġ[ Layers Object ] Ġ*/ Ċ inline Ġoperator Ġfun ĠLay ers Object . get ( name : ĠString ): ĠLayer < *> ? Ġ= ĊĠĠĠ Ġas Dynamic ()[ name ] Ġas ĠLayer < *> ? Ċ Ċ /** ĠNative Ġsetter Ġfor Ġ[ Layers Object ] Ġ*/ Ċ inline Ġoperator Ġfun ĠLay ers Object . set ( name : ĠString , Ġvalue : ĠLayer <* >) Ġ{ ĊĠĠĠ Ġas Dynamic ()[ name ] Ġ= Ġvalue Ċ } Ċ