| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619 |
- import * as L from 'leaflet';
- // redeclare module, maintains compatibility with @types/leaflet
- declare module 'leaflet' {
- /**
- * Extends built in leaflet Layer Options.
- */
- interface LayerOptions {
- pmIgnore?: boolean;
- snapIgnore?: boolean;
- }
- /**
- * Extends built in leaflet Map Options.
- */
- interface MapOptions {
- pmIgnore?: boolean;
- }
- /**
- * Extends built in leaflet Map.
- */
- interface Map {
- pm: PM.PMMap;
- }
- /**
- * Extends built in leaflet Path.
- */
- interface Path {
- pm: PM.PMLayer;
- }
- /**
- * Extends built in leaflet ImageOverlay.
- */
- interface ImageOverlay {
- pm: PM.PMLayer;
- }
- /**
- * Extends built in leaflet LayerGroup.
- */
- interface LayerGroup {
- pm: PM.PMLayerGroup;
- }
- /**
- * Extends built in leaflet MarkerOptions with options for Text-Layer
- */
- interface MarkerOptions {
- textMarker?: boolean;
- text?: string;
- }
- /**
- * Extends built in leaflet Marker.
- */
- interface Marker {
- pm: PM.PMLayer;
- }
- /**
- * Extends @types/leaflet events...
- *
- * Todo: This is kind of a mess, and it makes all these event handlers show
- * up on Layers and Map. Leaflet itself is based around Evented, and @types/leaflet
- * makes this very hard to work around.
- *
- */
- interface Evented {
- /******************************************
- *
- * AVAILABLE ON MAP + LAYER, THESE ARE OK ON EVENTED.
- *
- ********************************************/
- /** Fired when a layer is removed via Removal Mode. */
- on(type: 'pm:remove', fn: PM.RemoveEventHandler): this;
- once(type: 'pm:remove', fn: PM.RemoveEventHandler): this;
- off(type: 'pm:remove', fn?: PM.RemoveEventHandler): this;
- /** Fired when the layer being cut. Draw+Edit Mode*/
- on(type: 'pm:cut', fn: PM.CutEventHandler): this;
- once(type: 'pm:cut', fn: PM.CutEventHandler): this;
- off(type: 'pm:cut', fn?: PM.CutEventHandler): this;
- /** Fired when rotation is enabled for a layer. */
- on(type: 'pm:rotateenable', fn: PM.RotateEnableEventHandler): this;
- once(type: 'pm:rotateenable', fn: PM.RotateEnableEventHandler): this;
- off(type: 'pm:rotateenable', fn?: PM.RotateEnableEventHandler): this;
- /** Fired when rotation is disabled for a layer. */
- on(type: 'pm:rotatedisable', fn: PM.RotateDisableEventHandler): this;
- once(type: 'pm:rotatedisable', fn: PM.RotateDisableEventHandler): this;
- off(type: 'pm:rotatedisable', fn?: PM.RotateDisableEventHandler): this;
- /** Fired when rotation starts on a layer. */
- on(type: 'pm:rotatestart', fn: PM.RotateStartEventHandler): this;
- once(type: 'pm:rotatestart', fn: PM.RotateStartEventHandler): this;
- off(type: 'pm:rotatestart', fn?: PM.RotateStartEventHandler): this;
- /** Fired when a layer is rotated. */
- on(type: 'pm:rotate', fn: PM.RotateEventHandler): this;
- once(type: 'pm:rotate', fn: PM.RotateEventHandler): this;
- off(type: 'pm:rotate', fn?: PM.RotateEventHandler): this;
- /** Fired when rotation ends on a layer. */
- on(type: 'pm:rotateend', fn: PM.RotateEndEventHandler): this;
- once(type: 'pm:rotateend', fn: PM.RotateEndEventHandler): this;
- off(type: 'pm:rotateend', fn?: PM.RotateEndEventHandler): this;
- /******************************************
- *
- * TODO: DRAW/EDIT MODE EVENTS LAYER ONLY
- *
- ********************************************/
- /** Fired during a marker move/drag. */
- on(type: 'pm:snapdrag', fn: PM.SnapEventHandler): this;
- once(type: 'pm:snapdrag', fn: PM.SnapEventHandler): this;
- off(type: 'pm:snapdrag', fn?: PM.SnapEventHandler): this;
- /** Fired when a vertex is snapped. */
- on(type: 'pm:snap', fn: PM.SnapEventHandler): this;
- once(type: 'pm:snap', fn: PM.SnapEventHandler): this;
- off(type: 'pm:snap', fn?: PM.SnapEventHandler): this;
- /** Fired when a vertex is unsnapped. */
- on(type: 'pm:unsnap', fn: PM.SnapEventHandler): this;
- once(type: 'pm:unsnap', fn: PM.SnapEventHandler): this;
- off(type: 'pm:unsnap', fn?: PM.SnapEventHandler): this;
- /** Called when the center of a circle is placed/moved. */
- on(type: 'pm:centerplaced', fn: PM.CenterPlacedEventHandler): this;
- once(type: 'pm:centerplaced', fn: PM.CenterPlacedEventHandler): this;
- off(type: 'pm:centerplaced', fn?: PM.CenterPlacedEventHandler): this;
- /******************************************
- *
- * TODO: CUT/EDIT MODE EVENTS LAYER ONLY
- *
- ********************************************/
- /** Fired when a layer is edited. */
- on(type: 'pm:edit', fn: PM.EditEventHandler): this;
- once(type: 'pm:edit', fn: PM.EditEventHandler): this;
- off(type: 'pm:edit', fn?: PM.EditEventHandler): this;
- /******************************************
- *
- * TODO: DRAW MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when Drawing Mode is toggled. */
- on(
- type: 'pm:globaldrawmodetoggled',
- fn: PM.GlobalDrawModeToggledEventHandler,
- context?: any
- ): L.Evented;
- once(
- type: 'pm:globaldrawmodetoggled',
- fn: PM.GlobalDrawModeToggledEventHandler,
- context?: any
- ): L.Evented;
- off(
- type: 'pm:globaldrawmodetoggled',
- fn?: PM.GlobalDrawModeToggledEventHandler,
- context?: any
- ): L.Evented;
- /** Called when drawing mode is enabled. Payload includes the shape type and working layer. */
- on(
- type: 'pm:drawstart',
- fn: PM.DrawStartEventHandler,
- context?: any
- ): L.Evented;
- once(
- type: 'pm:drawstart',
- fn: PM.DrawStartEventHandler,
- context?: any
- ): L.Evented;
- off(
- type: 'pm:drawstart',
- fn?: PM.DrawStartEventHandler,
- context?: any
- ): L.Evented;
- /** Called when drawing mode is disabled. Payload includes the shape type. */
- on(
- type: 'pm:drawend',
- fn: PM.DrawEndEventHandler,
- context?: any
- ): L.Evented;
- once(
- type: 'pm:drawend',
- fn: PM.DrawEndEventHandler,
- context?: any
- ): L.Evented;
- off(
- type: 'pm:drawend',
- fn?: PM.DrawEndEventHandler,
- context?: any
- ): L.Evented;
- /** Called when drawing mode is disabled. Payload includes the shape type. */
- on(type: 'pm:create', fn: PM.CreateEventHandler, context?: any): L.Evented;
- once(
- type: 'pm:create',
- fn: PM.CreateEventHandler,
- context?: any
- ): L.Evented;
- off(
- type: 'pm:create',
- fn?: PM.CreateEventHandler,
- context?: any
- ): L.Evented;
- /******************************************
- *
- * TODO: DRAW MODE EVENTS ON LAYER ONLY
- *
- ********************************************/
- /** Called when a new vertex is added. */
- on(type: 'pm:vertexadded', fn: PM.VertexAddedEventHandler): this;
- once(type: 'pm:vertexadded', fn: PM.VertexAddedEventHandler): this;
- off(type: 'pm:vertexadded', fn?: PM.VertexAddedEventHandler): this;
- /******************************************
- *
- * TODO: EDIT MODE EVENTS ON LAYER ONLY
- *
- ********************************************/
- /** Fired when edit mode is disabled and a layer is edited and its coordinates have changed. */
- on(type: 'pm:update', fn: PM.UpdateEventHandler): this;
- once(type: 'pm:update', fn: PM.UpdateEventHandler): this;
- off(type: 'pm:update', fn?: PM.UpdateEventHandler): this;
- /** Fired when edit mode on a layer is enabled. */
- on(type: 'pm:enable', fn: PM.EnableEventHandler): this;
- once(type: 'pm:enable', fn: PM.EnableEventHandler): this;
- off(type: 'pm:enable', fn?: PM.EnableEventHandler): this;
- /** Fired when edit mode on a layer is disabled. */
- on(type: 'pm:disable', fn: PM.DisableEventHandler): this;
- once(type: 'pm:disable', fn: PM.DisableEventHandler): this;
- off(type: 'pm:disable', fn?: PM.DisableEventHandler): this;
- /** Fired when a vertex is added. */
- on(type: 'pm:vertexadded', fn: PM.VertexAddedEventHandler2): this;
- once(type: 'pm:vertexadded', fn: PM.VertexAddedEventHandler2): this;
- off(type: 'pm:vertexadded', fn?: PM.VertexAddedEventHandler2): this;
- /** Fired when a vertex is removed. */
- on(type: 'pm:vertexremoved', fn: PM.VertexRemovedEventHandler): this;
- once(type: 'pm:vertexremoved', fn: PM.VertexRemovedEventHandler): this;
- off(type: 'pm:vertexremoved', fn?: PM.VertexRemovedEventHandler): this;
- /** Fired when a vertex is clicked. */
- on(type: 'pm:vertexclick', fn: PM.VertexClickEventHandler): this;
- once(type: 'pm:vertexclick', fn: PM.VertexClickEventHandler): this;
- off(type: 'pm:vertexclick', fn?: PM.VertexClickEventHandler): this;
- /** Fired when dragging of a marker which corresponds to a vertex starts. */
- on(type: 'pm:markerdragstart', fn: PM.MarkerDragStartEventHandler): this;
- once(type: 'pm:markerdragstart', fn: PM.MarkerDragStartEventHandler): this;
- off(type: 'pm:markerdragstart', fn?: PM.MarkerDragStartEventHandler): this;
- /** Fired when dragging a vertex-marker. */
- on(type: 'pm:markerdrag', fn: PM.MarkerDragEventHandler): this;
- once(type: 'pm:markerdrag', fn: PM.MarkerDragEventHandler): this;
- off(type: 'pm:markerdrag', fn?: PM.MarkerDragEventHandler): this;
- /** Fired when dragging of a vertex-marker ends. */
- on(type: 'pm:markerdragend', fn: PM.MarkerDragEndEventHandler): this;
- once(type: 'pm:markerdragend', fn: PM.MarkerDragEndEventHandler): this;
- off(type: 'pm:markerdragend', fn?: PM.MarkerDragEndEventHandler): this;
- /** Fired when coords of a layer are reset. E.g. by self-intersection.. */
- on(type: 'pm:layerreset', fn: PM.LayerResetEventHandler): this;
- once(type: 'pm:layerreset', fn: PM.LayerResetEventHandler): this;
- off(type: 'pm:layerreset', fn?: PM.LayerResetEventHandler): this;
- /** When allowSelfIntersection: false, this event is fired as soon as a self-intersection is detected. */
- on(type: 'pm:intersect', fn: PM.IntersectEventHandler): this;
- once(type: 'pm:intersect', fn: PM.IntersectEventHandler): this;
- off(type: 'pm:intersect', fn?: PM.IntersectEventHandler): this;
- /** Fired coordinates of the layer changed. */
- on(type: 'pm:change', fn: PM.ChangeEventHandler): this;
- once(type: 'pm:change', fn: PM.ChangeEventHandler): this;
- off(type: 'pm:change', fn?: PM.ChangeEventHandler): this;
- /** Fired when the text of a layer is changed. */
- on(type: 'pm:textchange', fn: PM.TextChangeEventHandler): this;
- once(type: 'pm:textchange', fn: PM.TextChangeEventHandler): this;
- off(type: 'pm:textchange', fn?: PM.TextChangeEventHandler): this;
- /** Fired when the text layer is focused. */
- on(type: 'pm:textfocus', fn: PM.TextFocusEventHandler): this;
- once(type: 'pm:textfocus', fn: PM.TextFocusEventHandler): this;
- off(type: 'pm:textfocus', fn?: PM.TextFocusEventHandler): this;
- /** Fired when the text layer is blurred. */
- on(type: 'pm:textblur', fn: PM.TextBlurEventHandler): this;
- once(type: 'pm:textblur', fn: PM.TextBlurEventHandler): this;
- off(type: 'pm:textblur', fn?: PM.TextBlurEventHandler): this;
- /******************************************
- *
- * TODO: EDIT MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when Edit Mode is toggled. */
- on(
- type: 'pm:globaleditmodetoggled',
- fn: PM.GlobalEditModeToggledEventHandler
- ): this;
- once(
- type: 'pm:globaleditmodetoggled',
- fn: PM.GlobalEditModeToggledEventHandler
- ): this;
- off(
- type: 'pm:globaleditmodetoggled',
- fn?: PM.GlobalEditModeToggledEventHandler
- ): this;
- /******************************************
- *
- * TODO: DRAG MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when Drag Mode is toggled. */
- on(
- type: 'pm:globaldragmodetoggled',
- fn: PM.GlobalDragModeToggledEventHandler
- ): this;
- once(
- type: 'pm:globaldragmodetoggled',
- fn: PM.GlobalDragModeToggledEventHandler
- ): this;
- off(
- type: 'pm:globaldragmodetoggled',
- fn?: PM.GlobalDragModeToggledEventHandler
- ): this;
- /******************************************
- *
- * TODO: DRAG MODE EVENTS ON LAYER ONLY
- *
- ********************************************/
- /** Fired when a layer starts being dragged. */
- on(type: 'pm:dragstart', fn: PM.DragStartEventHandler): this;
- once(type: 'pm:dragstart', fn: PM.DragStartEventHandler): this;
- off(type: 'pm:dragstart', fn?: PM.DragStartEventHandler): this;
- /** Fired when a layer is dragged. */
- on(type: 'pm:drag', fn: PM.DragEventHandler): this;
- once(type: 'pm:drag', fn: PM.DragEventHandler): this;
- off(type: 'pm:drag', fn?: PM.DragEventHandler): this;
- /** Fired when a layer stops being dragged. */
- on(type: 'pm:dragend', fn: PM.DragEndEventHandler): this;
- once(type: 'pm:dragend', fn: PM.DragEndEventHandler): this;
- off(type: 'pm:dragend', fn?: PM.DragEndEventHandler): this;
- /** Fired when drag mode on a layer is enabled. */
- on(type: 'pm:dragenable', fn: PM.DragEnableEventHandler): this;
- once(type: 'pm:dragenable', fn: PM.DragEnableEventHandler): this;
- off(type: 'pm:dragenable', fn?: PM.DragEnableEventHandler): this;
- /** Fired when drag mode on a layer is disabled. */
- on(type: 'pm:dragdisable', fn: PM.DragDisableEventHandler): this;
- once(type: 'pm:dragdisable', fn: PM.DragDisableEventHandler): this;
- off(type: 'pm:dragdisable', fn?: PM.DragDisableEventHandler): this;
- /******************************************
- *
- * TODO: REMOVE MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when Removal Mode is toggled. */
- on(
- type: 'pm:globalremovalmodetoggled',
- fn: PM.GlobalRemovalModeToggledEventHandler
- ): this;
- once(
- type: 'pm:globalremovalmodetoggled',
- fn: PM.GlobalRemovalModeToggledEventHandler
- ): this;
- off(
- type: 'pm:globalremovalmodetoggled',
- fn?: PM.GlobalRemovalModeToggledEventHandler
- ): this;
- /******************************************
- *
- * TODO: CUT MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when a layer is removed via Removal Mode. */
- on(
- type: 'pm:globalcutmodetoggled',
- fn: PM.GlobalCutModeToggledEventHandler
- ): this;
- once(
- type: 'pm:globalcutmodetoggled',
- fn: PM.GlobalCutModeToggledEventHandler
- ): this;
- off(
- type: 'pm:globalcutmodetoggled',
- fn?: PM.GlobalCutModeToggledEventHandler
- ): this;
- /******************************************
- *
- * TODO: ROTATE MODE EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when Rotate Mode is toggled. */
- on(
- type: 'pm:globalrotatemodetoggled',
- fn: PM.GlobalRotateModeToggledEventHandler
- ): this;
- once(
- type: 'pm:globalrotatemodetoggled',
- fn: PM.GlobalRotateModeToggledEventHandler
- ): this;
- off(
- type: 'pm:globalrotatemodetoggled',
- fn?: PM.GlobalRotateModeToggledEventHandler
- ): this;
- /******************************************
- *
- * TODO: TRANSLATION EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Standard Leaflet event. Fired when any layer is removed. */
- on(type: 'pm:langchange', fn: PM.LangChangeEventHandler): this;
- once(type: 'pm:langchange', fn: PM.LangChangeEventHandler): this;
- off(type: 'pm:langchange', fn?: PM.LangChangeEventHandler): this;
- /******************************************
- *
- * TODO: CONTROL EVENTS ON MAP ONLY
- *
- ********************************************/
- /** Fired when a Toolbar button is clicked. */
- on(type: 'pm:buttonclick', fn: PM.ButtonClickEventHandler): this;
- once(type: 'pm:buttonclick', fn: PM.ButtonClickEventHandler): this;
- off(type: 'pm:buttonclick', fn?: PM.ButtonClickEventHandler): this;
- /** Fired when a Toolbar action is clicked. */
- on(type: 'pm:actionclick', fn: PM.ActionClickEventHandler): this;
- once(type: 'pm:actionclick', fn: PM.ActionClickEventHandler): this;
- off(type: 'pm:actionclick', fn?: PM.ActionClickEventHandler): this;
- /******************************************
- *
- * TODO: Keyboard EVENT ON MAP ONLY
- *
- ********************************************/
- /** Fired when `keydown` or `keyup` on the document is fired. */
- on(type: 'pm:keyevent', fn: PM.KeyboardKeyEventHandler): this;
- once(type: 'pm:keyevent', fn: PM.KeyboardKeyEventHandler): this;
- off(type: 'pm:keyevent', fn?: PM.KeyboardKeyEventHandler): this;
- }
- namespace PM {
- export const version: string;
- /** Supported shape names. 'ImageOverlay' is in Edit Mode only. Also accepts custom shape name. */
- type SUPPORTED_SHAPES =
- | 'Marker'
- | 'Circle'
- | 'Line'
- | 'Rectangle'
- | 'Polygon'
- | 'Cut'
- | 'CircleMarker'
- | 'ImageOverlay'
- | 'Text'
- | string;
- type SupportLocales =
- | 'cz'
- | 'da'
- | 'de'
- | 'el'
- | 'en'
- | 'es'
- | 'fa'
- | 'fi'
- | 'fr'
- | 'hu'
- | 'id'
- | 'it'
- | 'ja'
- | 'ko'
- | 'nl'
- | 'no'
- | 'pl'
- | 'pt_br'
- | 'ro'
- | 'ru'
- | 'sv'
- | 'tr'
- | 'ua'
- | 'zh'
- | 'zh_tw';
- /**
- * Changes default registration of leaflet-geoman on leaflet layers.
- *
- * @param optIn - if true, a layers pmIgnore property has to be set to false to get initiated.
- */
- function setOptIn(optIn: boolean): void;
- /**
- * Enable leaflet-geoman on an ignored layer.
- *
- * @param layer - re-reads layer.options.pmIgnore to initialize leaflet-geoman.
- */
- function reInitLayer(layer: L.Layer): void;
- /**
- * PM map interface.
- */
- interface PMMap
- extends PMDrawMap,
- PMEditMap,
- PMDragMap,
- PMRemoveMap,
- PMCutMap,
- PMRotateMap {
- Toolbar: PMMapToolbar;
- Keyboard: PMMapKeyboard;
- /** Adds the Toolbar to the map. */
- addControls(options?: ToolbarOptions): void;
- /** Toggle the visiblity of the Toolbar. */
- removeControls(): void;
- /** Returns true if the Toolbar is visible on the map. */
- controlsVisible(): boolean;
- /** Toggle the visiblity of the Toolbar. */
- toggleControls(): void;
- setLang(
- lang: SupportLocales,
- customTranslations?: Translations,
- fallbackLanguage?: string
- ): void;
- /** Set globalOptions and apply them. */
- setGlobalOptions(options: GlobalOptions): void;
- /** Apply the current globalOptions to all existing layers. */
- applyGlobalOptions(): void;
- /** Returns the globalOptions. */
- getGlobalOptions(): GlobalOptions;
- }
- class Translations {
- tooltips?: {
- placeMarker?: string;
- firstVertex?: string;
- continueLine?: string;
- finishLine?: string;
- finishPoly?: string;
- finishRect?: string;
- startCircle?: string;
- finishCircle?: string;
- placeCircleMarker?: string;
- placeText?: string;
- };
- actions?: {
- finish?: string;
- cancel?: string;
- removeLastVertex?: string;
- };
- buttonTitles?: {
- drawMarkerButton?: string;
- drawPolyButton?: string;
- drawLineButton?: string;
- drawCircleButton?: string;
- drawRectButton?: string;
- editButton?: string;
- dragButton?: string;
- cutButton?: string;
- deleteButton?: string;
- drawCircleMarkerButton?: string;
- snappingButton?: string;
- pinningButton?: string;
- rotateButton?: string;
- drawTextButton?: string;
- scaleButton?: string;
- autoTracingButton?: string;
- };
- measurements?: {
- totalLength?: string;
- segmentLength?: string;
- area?: string;
- radius?: string;
- perimeter?: string;
- height?: string;
- width?: string;
- coordinates?: string;
- coordinatesMarker?: string;
- }
- }
- type ACTION_NAMES = 'cancel' | 'removeLastVertex' | 'finish' | 'finishMode';
- class Action {
- text: string;
- onClick?: (e: any) => void;
- }
- type TOOLBAR_CONTROL_ORDER =
- | 'drawMarker'
- | 'drawCircleMarker'
- | 'drawPolyline'
- | 'drawRectangle'
- | 'drawPolygon'
- | 'drawCircle'
- | 'editMode'
- | 'dragMode'
- | 'cutPolygon'
- | 'removalMode'
- | 'rotateMode'
- | 'drawText'
- | string;
- interface PMMapToolbar {
- /** Pass an array of button names to reorder the buttons in the Toolbar. */
- changeControlOrder(order?: TOOLBAR_CONTROL_ORDER[]): void;
- /** Receive the current order with. */
- getControlOrder(): TOOLBAR_CONTROL_ORDER[];
- /** The position of a block (draw, edit, custom, options⭐) in the Toolbar can be changed. If not set, the value from position of the Toolbar is taken. */
- setBlockPosition(
- block: 'draw' | 'edit' | 'custom' | 'options',
- position: L.ControlPosition
- ): void;
- /** Returns a Object with the positions for all blocks */
- getBlockPositions(): BlockPositions;
- /** To add a custom Control to the Toolbar */
- createCustomControl(options: CustomControlOptions): void;
- /** Creates a copy of a draw Control. Returns the drawInstance and the control. */
- copyDrawControl(
- copyInstance: string,
- options?: CustomControlOptions
- ): void;
- /** Change the actions of an existing button. */
- changeActionsOfControl(
- name: string,
- actions: (ACTION_NAMES | Action)[]
- ): void;
- /** Disable button by control name */
- setButtonDisabled(name: TOOLBAR_CONTROL_ORDER, state: boolean): void;
- }
- type KEYBOARD_EVENT_TYPE = 'current' | 'keydown' | 'keyup';
- interface PMMapKeyboard {
- /** Pass an array of button names to reorder the buttons in the Toolbar. */
- getLastKeyEvent(type: KEYBOARD_EVENT_TYPE[]): KeyboardKeyEventHandler;
- /** Returns the current pressed key. [KeyboardEvent.key](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). */
- getPressedKey(): string;
- /** Returns true if the `Shift` key is currently pressed. */
- isShiftKeyPressed(): boolean;
- /** Returns true if the `Alt` key is currently pressed. */
- isAltKeyPressed(): boolean;
- /** Returns true if the `Ctrl` key is currently pressed. */
- isCtrlKeyPressed(): boolean;
- /** Returns true if the `Meta` key is currently pressed. */
- isMetaKeyPressed(): boolean;
- }
- interface Button {
- /** Actions */
- actions: (ACTION_NAMES | Action)[];
- /** Function fired after clicking the control. */
- afterClick: () => void;
- /** CSS class with the Icon. */
- className: string;
- /** If true, other buttons will be disabled on click (default: true) */
- disableOtherButtons: boolean;
- /** Control can be toggled. */
- doToggle: boolean;
- /** Extending Class f. ex. Line, Polygon, ... L.PM.Draw.EXTENDINGCLASS */
- jsClass: string;
- /** Function fired when clicking the control. */
- onClick: () => void;
- position: L.ControlPosition;
- /** Text showing when you hover the control. */
- title: string;
- /** Toggle state true -> enabled, false -> disabled (default: false) */
- toggleStatus: boolean;
- /** Block of the control. 'options' is ⭐ only. */
- tool?: 'draw' | 'edit' | 'custom' | 'options';
- }
- interface CustomControlOptions {
- /** Name of the control */
- name: string;
- /** Block of the control. 'options' is ⭐ only. */
- block?: 'draw' | 'edit' | 'custom' | 'options';
- /** Text showing when you hover the control. */
- title?: string;
- /** CSS class with the Icon. */
- className?: string;
- /** Function fired when clicking the control. */
- onClick?: () => void;
- /** Function fired after clicking the control. */
- afterClick?: () => void;
- /** Actions */
- actions?: (ACTION_NAMES | Action)[];
- /** Control can be toggled. */
- toggle?: boolean;
- /** Control is disabled. */
- disabled?: boolean;
- }
- type PANE =
- | 'mapPane'
- | 'tilePane'
- | 'overlayPane'
- | 'shadowPane'
- | 'markerPane'
- | 'tooltipPane'
- | 'popupPane'
- | string;
- interface GlobalOptions extends DrawModeOptions, EditModeOptions {
- /** Add the created layers to a layergroup instead to the map. */
- layerGroup?: L.Map | L.LayerGroup;
- /** Prioritize the order of snapping. Default: ['Marker','CircleMarker','Circle','Line','Polygon','Rectangle']. */
- snappingOrder?: SUPPORTED_SHAPES[];
- /** Defines in which panes the layers and helper vertices are created. Default: { vertexPane: 'markerPane', layerPane: 'overlayPane', markerPane: 'markerPane' } */
- panes?: { vertexPane?: PANE; layerPane?: PANE; markerPane?: PANE };
- }
- interface PMDrawMap {
- /** Enable Draw Mode with the passed shape. */
- enableDraw(shape: SUPPORTED_SHAPES, options?: DrawModeOptions): void;
- /** Disable all drawing */
- disableDraw(shape?: SUPPORTED_SHAPES): void;
- /** Draw */
- Draw: Draw;
- /** Returns true if global Draw Mode is enabled. false when disabled. */
- globalDrawModeEnabled(): boolean;
- /** Customize the style of the drawn layer. Only for L.Path layers. Shapes can be excluded with a ignoreShapes array or merged with the current style with merge: true in optionsModifier. */
- setPathOptions(
- options: L.PathOptions,
- optionsModifier?: { ignoreShapes?: SUPPORTED_SHAPES[]; merge?: boolean }
- ): void;
- /** Returns all Geoman layers on the map as array. Pass true to get a L.FeatureGroup. */
- getGeomanLayers(asFeatureGroup: true): L.FeatureGroup;
- getGeomanLayers(asFeatureGroup?: false): L.Layer[];
- /** Returns all Geoman draw layers on the map as array. Pass true to get a L.FeatureGroup. */
- getGeomanDrawLayers(asFeatureGroup: true): L.FeatureGroup;
- getGeomanDrawLayers(asFeatureGroup?: false): L.Layer[];
- }
- interface PMEditMap {
- /** Enables edit mode. The passed options are preserved, even when the mode is enabled via the Toolbar */
- enableGlobalEditMode(options?: EditModeOptions): void;
- /** Disables global edit mode. */
- disableGlobalEditMode(): void;
- /** Toggles global edit mode. */
- toggleGlobalEditMode(options?: EditModeOptions): void;
- /** Returns true if global edit mode is enabled. false when disabled. */
- globalEditModeEnabled(): boolean;
- }
- interface PMDragMap {
- /** Enables global drag mode. */
- enableGlobalDragMode(): void;
- /** Disables global drag mode. */
- disableGlobalDragMode(): void;
- /** Toggles global drag mode. */
- toggleGlobalDragMode(): void;
- /** Returns true if global drag mode is enabled. false when disabled. */
- globalDragModeEnabled(): boolean;
- }
- interface PMRemoveMap {
- /** Enables global removal mode. */
- enableGlobalRemovalMode(): void;
- /** Disables global removal mode. */
- disableGlobalRemovalMode(): void;
- /** Toggles global removal mode. */
- toggleGlobalRemovalMode(): void;
- /** Returns true if global removal mode is enabled. false when disabled. */
- globalRemovalModeEnabled(): boolean;
- }
- interface PMCutMap {
- /** Enables global cut mode. */
- enableGlobalCutMode(options?: CutModeOptions): void;
- /** Disables global cut mode. */
- disableGlobalCutMode(): void;
- /** Toggles global cut mode. */
- toggleGlobalCutMode(options?: CutModeOptions): void;
- /** Returns true if global cut mode is enabled. false when disabled. */
- globalCutModeEnabled(): boolean;
- }
- interface PMRotateMap {
- /** Enables global rotate mode. */
- enableGlobalRotateMode(): void;
- /** Disables global rotate mode. */
- disableGlobalRotateMode(): void;
- /** Toggles global rotate mode. */
- toggleGlobalRotateMode(): void;
- /** Returns true if global rotate mode is enabled. false when disabled. */
- globalRotateModeEnabled(): boolean;
- }
- interface PMRotateLayer {
- /** Enables rotate mode on the layer. */
- enableRotate(): void;
- /** Disables rotate mode on the layer. */
- disableRotate(): void;
- /** Returns if rotate mode is enabled for the layer. */
- rotateEnabled(): boolean;
- /** Rotates the layer by x degrees. */
- rotateLayer(degrees: number): void;
- /** Rotates the layer to x degrees. */
- rotateLayerToAngle(degrees: number): void;
- /** Returns the angle of the layer in degrees. */
- getAngle(): number;
- /** Set the initial angle of the layer in degrees. */
- setInitAngle(degrees: number): void;
- }
- interface Draw {
- /** Array of available shapes. */
- getShapes(): SUPPORTED_SHAPES[];
- /** Returns the active shape. */
- getActiveShape(): SUPPORTED_SHAPES;
- /** Set path options */
- setPathOptions(options: L.PathOptions): void;
- /** Set options */
- setOptions(options: DrawModeOptions): void;
- /** Get options */
- getOptions(): DrawModeOptions;
- }
- interface CutModeOptions {
- allowSelfIntersection?: boolean;
- }
- type VertexValidationHandler = (e: {
- layer: L.Layer;
- marker: L.Marker;
- event: any;
- }) => boolean;
- interface EditModeOptions {
- /** Enable snapping to other layers vertices for precision drawing. Can be disabled by holding the ALT key (default:true). */
- snappable?: boolean;
- /** The distance to another vertex when a snap should happen (default:20). */
- snapDistance?: number;
- /** Allow self intersections (default:true). */
- allowSelfIntersection?: boolean;
- /** Allow self intersections (default:true). */
- allowSelfIntersectionEdit?: boolean;
- /** Disable the removal of markers via right click / vertices via removeVertexOn. (default:false). */
- preventMarkerRemoval?: boolean;
- /** If true, vertex removal that cause a layer to fall below their minimum required vertices will remove the entire layer. If false, these vertices can't be removed. Minimum vertices are 2 for Lines and 3 for Polygons (default:true). */
- removeLayerBelowMinVertexCount?: boolean;
- /** Defines which layers should dragged with this layer together. true syncs all layers in the same LayerGroup(s) or you pass an `Array` of layers to sync. (default:false). */
- syncLayersOnDrag?: L.Layer[] | boolean;
- /** Edit-Mode for the layer can disabled (`pm.enable()`). (default:true). */
- allowEditing?: boolean;
- /** Removing can be disabled for the layer. (default:true). */
- allowRemoval?: boolean;
- /** Layer can be prevented from cutting. (default:true). */
- allowCutting?: boolean;
- /** Layer can be prevented from rotation. (default:true). */
- allowRotation?: boolean;
- /** Dragging can be disabled for the layer. (default:true). */
- draggable?: boolean;
- /** Leaflet layer event to add a vertex to a Line or Polygon, like dblclick. (default:click). */
- addVertexOn?:
- | 'click'
- | 'dblclick'
- | 'mousedown'
- | 'mouseover'
- | 'mouseout'
- | 'contextmenu';
- /** A function for validation if a vertex (of a Line / Polygon) is allowed to add. It passes a object with `[layer, marker, event}`. For example to check if the layer has a certain property or if the `Ctrl` key is pressed. (default:undefined). */
- addVertexValidation?: undefined | VertexValidationHandler;
- /** Leaflet layer event to remove a vertex from a Line or Polygon, like dblclick. (default:contextmenu). */
- removeVertexOn?:
- | 'click'
- | 'dblclick'
- | 'mousedown'
- | 'mouseover'
- | 'mouseout'
- | 'contextmenu';
- /** A function for validation if a vertex (of a Line / Polygon) is allowed to remove. It passes a object with `[layer, marker, event}`. For example to check if the layer has a certain property or if the `Ctrl` key is pressed. */
- removeVertexValidation?: undefined | VertexValidationHandler;
- /** A function for validation if a vertex / helper-marker is allowed to move / drag. It passes a object with `[layer, marker, event}`. For example to check if the layer has a certain property or if the `Ctrl` key is pressed. */
- moveVertexValidation?: undefined | VertexValidationHandler;
- /** Shows only n markers closest to the cursor. Use -1 for no limit (default:-1). */
- limitMarkersToCount?: number;
- /** Shows markers when under the given zoom level ⭐ */
- limitMarkersToZoom?: number;
- /** Shows only markers in the viewport ⭐ */
- limitMarkersToViewport?: boolean;
- /** Shows markers only after the layer was clicked ⭐ */
- limitMarkersToClick?: boolean;
- /** Pin shared vertices/markers together during edit ⭐ */
- pinning?: boolean;
- /** Hide the middle Markers in edit mode from Polyline and Polygon. */
- hideMiddleMarkers?: boolean;
- }
- interface TextOptions {
- /** Predefined text for Text-Layer. */
- text?: string;
- /** Directly after placing the Text-Layer text editing is activated. */
- focusAfterDraw?: boolean;
- /** The text layer is removed if no text is written. */
- removeIfEmpty?: boolean;
- /** Custom CSS Classes for Text-Layer. Separated by a space. */
- className?: string;
- }
- interface DrawModeOptions {
- /** Enable snapping to other layers vertices for precision drawing. Can be disabled by holding the ALT key (default:true). */
- snappable?: boolean;
- /** The distance to another vertex when a snap should happen (default:20). */
- snapDistance?: number;
- /** Allow snapping in the middle of two vertices (middleMarker)(default:false). */
- snapMiddle?: boolean;
- /** Allow snapping between two vertices. (default: true)*/
- snapSegment?: boolean;
- /** Require the last point of a shape to be snapped. (default: false). */
- requireSnapToFinish?: boolean;
- /** Show helpful tooltips for your user (default:true). */
- tooltips?: boolean;
- /** Allow self intersections (default:true). */
- allowSelfIntersection?: boolean;
- /** Leaflet path options for the lines between drawn vertices/markers. (default:{color:'red'}). */
- templineStyle?: L.CircleMarkerOptions;
- /** Leaflet path options for the helper line between last drawn vertex and the cursor. (default:{color:'red',dashArray:[5,5]}). */
- hintlineStyle?: L.PathOptions;
- /** Leaflet path options for the drawn layer (Only for L.Path layers). (default:null). */
- pathOptions?: L.PathOptions;
- /** Leaflet marker options (only for drawing markers). (default:{draggable:true}). */
- markerStyle?: L.MarkerOptions;
- /** Show a marker at the cursor (default:true). */
- cursorMarker?: boolean;
- /** Leaflet layer event to finish the drawn shape (default:null). */
- finishOn?:
- | null
- | 'click'
- | 'dblclick'
- | 'mousedown'
- | 'mouseover'
- | 'mouseout'
- | 'contextmenu'
- | 'snap';
- /** Hide the middle Markers in edit mode from Polyline and Polygon. (default:false). */
- hideMiddleMarkers?: boolean;
- /** Set the min radius of a Circle. (default:null). */
- minRadiusCircle?: number;
- /** Set the max radius of a Circle. (default:null). */
- maxRadiusCircle?: number;
- /** Set the min radius of a CircleMarker when editable is active. (default:null). */
- minRadiusCircleMarker?: number;
- /** Set the max radius of a CircleMarker when editable is active. (default:null). */
- maxRadiusCircleMarker?: number;
- /** Makes a CircleMarker editable like a Circle (default:false). */
- editable?: boolean;
- /** Markers and CircleMarkers are editable during the draw-session (you can drag them around immediately after drawing them) (default:true). */
- markerEditable?: boolean;
- /** Draw-Mode stays enabled after finishing a layer to immediately draw the next layer. Defaults to true for Markers and CircleMarkers and false for all other layers. */
- continueDrawing?: boolean;
- /** Angel of rectangle. */
- rectangleAngle?: number;
- /** Cut-Mode: Only the passed layers can be cut. Cutted layers are removed from the Array until no layers are left anymore and cutting is working on all layers again. (Default: []) */
- layersToCut?: L.Layer[];
- textOptions?: TextOptions;
- }
- /**
- * PM toolbar options.
- */
- interface ToolbarOptions {
- /** Toolbar position. */
- position?: L.ControlPosition;
- /** The position of each block can be customized. If not set, the value from position is taken. */
- positions?: BlockPositions;
- /** Adds button to draw Markers (default:true) */
- drawMarker?: boolean;
- /** Adds button to draw CircleMarkers (default:true) */
- drawCircleMarker?: boolean;
- /** Adds button to draw Line (default:true) */
- drawPolyline?: boolean;
- /** Adds button to draw Rectangle (default:true) */
- drawRectangle?: boolean;
- /** Adds button to draw Polygon (default:true) */
- drawPolygon?: boolean;
- /** Adds button to draw Text (default:true) */
- drawText?: boolean;
- /** Adds button to draw Circle (default:true) */
- drawCircle?: boolean;
- /** Adds button to toggle edit mode for all layers (default:true) */
- editMode?: boolean;
- /** Adds button to toggle drag mode for all layers (default:true) */
- dragMode?: boolean;
- /** Adds button to cut a hole in a polygon or line (default:true) */
- cutPolygon?: boolean;
- /** Adds a button to remove layers (default:true) */
- removalMode?: boolean;
- /** Adds a button to rotate layers (default:true) */
- rotateMode?: boolean;
- /** All buttons will be displayed as one block Customize Controls (default:false) */
- oneBlock?: boolean;
- /** Shows all draw buttons / buttons in the draw block (default:true) */
- drawControls?: boolean;
- /** Shows all edit buttons / buttons in the edit block (default:true) */
- editControls?: boolean;
- /** Shows all buttons in the custom block (default:true) */
- customControls?: boolean;
- /** Shows all options buttons / buttons in the option block ⭐ */
- optionsControls?: boolean;
- /** Adds a button to toggle the Pinning Option ⭐ */
- pinningOption?: boolean;
- /** Adds a button to toggle the Snapping Option ⭐ */
- snappingOption?: boolean;
- /** Adds custom button (default:true) */
- // The type of custom buttons are always boolean but TS needs the other types defined too.
- [key: string]: L.ControlPosition | BlockPositions | boolean | undefined;
- }
- /** the position of each block. */
- interface BlockPositions {
- /** Draw control position (default:''). '' also refers to this position. */
- draw?: L.ControlPosition;
- /** Edit control position (default:''). */
- edit?: L.ControlPosition;
- /** Custom control position (default:''). */
- custom?: L.ControlPosition;
- /** Options control position (default:'') ⭐ */
- options?: L.ControlPosition;
- }
- interface PMEditLayer extends PMEditTextLayer {
- /** Enables edit mode. The passed options are preserved, even when the mode is enabled via the Toolbar */
- enable(options?: EditModeOptions): void;
- /** Sets layer options */
- setOptions(options?: EditModeOptions): void;
- /** Gets layer options */
- getOptions(): EditModeOptions;
- /** Disables edit mode. */
- disable(): void;
- /** Toggles edit mode. Passed options are preserved. */
- toggleEdit(options?: EditModeOptions): void;
- /** Returns true if edit mode is enabled. false when disabled. */
- enabled(): boolean;
- /** Returns true if Line or Polygon has a self intersection. */
- hasSelfIntersection(): boolean;
- /** Removes the layer with the same checks as GlobalRemovalMode. */
- remove(): void;
- }
- interface PMEditTextLayer {
- /** Activate text editing of Text-Layer. */
- focus(): void;
- /** Deactivate text editing of Text-Layer. */
- blur(): void;
- /** Is text editing active on Text-Layer. */
- hasFocus(): boolean;
- /** Returns the `<textarea>` DOM element of Text-Layer. */
- getElement(): HTMLElement;
- /** Set text on Text-Layer. */
- setText(text: string): void;
- /** Returns the text of Text-Layer. */
- getText(): string;
- }
- interface PMDragLayer {
- /** Enables dragging for the layer. */
- enableLayerDrag(): void;
- /** Disables dragging for the layer. */
- disableLayerDrag(): void;
- /** Returns if the layer is currently dragging. */
- dragging(): boolean;
- /** Returns if drag mode is enabled for the layer. */
- layerDragEnabled(): boolean;
- }
- interface PMLayer extends PMRotateLayer, PMEditLayer, PMDragLayer {
- /** Get shape of the layer. */
- getShape(): SUPPORTED_SHAPES;
- }
- interface PMLayerGroup {
- /** Enables edit mode for all child layers. The passed options are preserved, even when the mode is enabled via the Toolbar */
- enable(options?: EditModeOptions): void;
- /** Disable edit mode for all child layers.*/
- disable(): void;
- /** Returns if minimum one layer is enabled. */
- enabled(): boolean;
- /** Toggle enable / disable on all layers. */
- toggleEdit(options?: EditModeOptions): void;
- /** Returns the layers of the LayerGroup. `deep=true` return also the children of LayerGroup children. `filterGeoman=true` filter out layers that don't have Leaflet-Geoman or temporary stuff. `filterGroupsOut=true` does not return the LayerGroup layers self. (Default: `deep=false`,`filterGeoman=true`, `filterGroupsOut=true` ) */
- getLayers(
- deep?: boolean,
- filterGeoman?: boolean,
- filterGroupsOut?: boolean
- ): L.Layer[];
- /** Apply Leaflet-Geoman options to all children. The passed options are preserved, even when the mode is enabled via the Toolbar */
- setOptions(options?: EditModeOptions): void;
- /** Returns the options of the LayerGroup. */
- getOptions(): EditModeOptions;
- /** Returns if currently a layer in the LayerGroup is dragging. */
- dragging(): boolean;
- }
- namespace Utils {
- /** Returns the translation of the passed path. path = json-string f.ex. tooltips.placeMarker */
- function getTranslation(path: string): string;
- /** Returns the middle LatLng between two LatLngs */
- function calcMiddleLatLng(
- map: L.Map,
- latlng1: L.LatLng,
- latlng2: L.LatLng
- ): L.LatLng;
- /** Returns all layers that are available for Geoman */
- function findLayers(map: L.Map): L.Layer[];
- /** Converts a circle into a polygon with default 60 sides. For CRS.Simple maps `withBearing` needs to be false */
- function circleToPolygon(
- circle: L.Circle,
- sides?: number,
- withBearing?: boolean
- ): L.Polygon;
- /** Converts a px-radius (CircleMarker) to meter-radius (Circle). The center LatLng is needed because the earth has different projections on different places. **/
- function pxRadiusToMeterRadius(
- radiusInPx: number,
- map: L.Map,
- center: L.LatLng
- ): number;
- }
- /**
- * DRAW MODE MAP EVENT HANDLERS
- */
- export type GlobalDrawModeToggledEventHandler = (event: {
- enabled: boolean;
- shape: PM.SUPPORTED_SHAPES;
- map: L.Map;
- }) => void;
- export type DrawStartEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- workingLayer: L.Layer;
- }) => void;
- export type DrawEndEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type CreateEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- /**
- * DRAW MODE LAYER EVENT HANDLERS
- */
- export type VertexAddedEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- workingLayer: L.Layer;
- marker: L.Marker;
- latlng: L.LatLng;
- }) => void;
- export type SnapEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- distance: number;
- layer: L.Layer;
- workingLayer: L.Layer;
- marker: L.Marker;
- layerInteractedWith: L.Layer;
- segement: any;
- snapLatLng: L.LatLng;
- }) => void;
- export type CenterPlacedEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- workingLayer: L.Layer;
- latlng: L.LatLng;
- }) => void;
- /**
- * EDIT MODE LAYER EVENT HANDLERS
- */
- export type EditEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- export type UpdateEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- export type EnableEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- export type DisableEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- export type VertexAddedEventHandler2 = (e: {
- layer: L.Layer;
- indexPath: number;
- latlng: L.LatLng;
- marker: L.Marker;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type VertexRemovedEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- marker: L.Marker;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type VertexClickEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- markerEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type MarkerDragStartEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- markerEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type MarkerDragEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- markerEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type MarkerDragEndEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- markerEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- intersectionRest: boolean;
- }) => void;
- export type LayerResetEventHandler = (e: {
- layer: L.Layer;
- indexPath: number;
- markerEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type IntersectEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- intersection: L.LatLng;
- }) => void;
- export type ChangeEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- latlngs: L.LatLng | L.LatLng[];
- }) => void;
- export type TextChangeEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- text: string;
- }) => void;
- export type TextFocusEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- export type TextBlurEventHandler = (e: {
- shape: PM.SUPPORTED_SHAPES;
- layer: L.Layer;
- }) => void;
- /**
- * EDIT MODE MAP EVENT HANDLERS
- */
- export type GlobalEditModeToggledEventHandler = (event: {
- enabled: boolean;
- map: L.Map;
- }) => void;
- /**
- * DRAG MODE MAP EVENT HANDLERS
- */
- export type GlobalDragModeToggledEventHandler = (event: {
- enabled: boolean;
- map: L.Map;
- }) => void;
- /**
- * DRAG MODE LAYER EVENT HANDLERS
- */
- export type DragStartEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type DragEventHandler = (e: {
- layer: L.Layer;
- containerPoint: any;
- latlng: L.LatLng;
- layerPoint: L.Point;
- originalEvent: any;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type DragEndEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type DragEnableEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type DragDisableEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- /**
- * REMOVE MODE LAYER EVENT HANDLERS
- */
- export type RemoveEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- /**
- * REMOVE MODE MAP EVENT HANDLERS
- */
- export type GlobalRemovalModeToggledEventHandler = (e: {
- enabled: boolean;
- map: L.Map;
- }) => void;
- /**
- * CUT MODE MAP EVENT HANDLERS
- */
- export type GlobalCutModeToggledEventHandler = (e: {
- enabled: boolean;
- map: L.Map;
- }) => void;
- export type CutEventHandler = (e: {
- layer: L.Layer;
- originalLayer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- /**
- * ROTATE MODE LAYER EVENT HANDLERS
- */
- export type RotateEnableEventHandler = (e: {
- layer: L.Layer;
- helpLayer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type RotateDisableEventHandler = (e: {
- layer: L.Layer;
- shape: PM.SUPPORTED_SHAPES;
- }) => void;
- export type RotateStartEventHandler = (e: {
- layer: L.Layer;
- helpLayer: L.Layer;
- startAngle: number;
- originLatLngs: L.LatLng[];
- }) => void;
- export type RotateEventHandler = (e: {
- layer: L.Layer;
- helpLayer: L.Layer;
- startAngle: number;
- angle: number;
- angleDiff: number;
- oldLatLngs: L.LatLng[];
- newLatLngs: L.LatLng[];
- }) => void;
- export type RotateEndEventHandler = (e: {
- layer: L.Layer;
- helpLayer: L.Layer;
- startAngle: number;
- angle: number;
- originLatLngs: L.LatLng[];
- newLatLngs: L.LatLng[];
- }) => void;
- /**
- * ROTATE MODE MAP EVENT HANDLERS
- */
- export type GlobalRotateModeToggledEventHandler = (e: {
- enabled: boolean;
- map: L.Map;
- }) => void;
- /**
- * TRANSLATION EVENT HANDLERS
- */
- export type LangChangeEventHandler = (e: {
- activeLang: string;
- oldLang: string;
- fallback: string;
- translations: PM.Translations;
- }) => void;
- /**
- * CONTROL MAP EVENT HANDLERS
- */
- export type ButtonClickEventHandler = (e: {
- btnName: string;
- button: PM.Button;
- }) => void;
- export type ActionClickEventHandler = (e: {
- text: string;
- action: string;
- btnName: string;
- button: PM.Button;
- }) => void;
- /**
- * KEYBOARD EVENT HANDLERS
- */
- export type KeyboardKeyEventHandler = (e: {
- focusOn: 'document' | 'map';
- eventType: 'keydown' | 'keyup';
- event: any;
- }) => void;
- }
- }
|