leaflet-extra-markers
Version:
Custom map markers for Leaflet JS
92 lines (83 loc) • 1.85 kB
TypeScript
import type {
Element,
ElementAttributes,
ElementChildren,
ElementParams,
} from "./types.js";
/**
@example
const element = document.createElement("div");
// Set any attribute as key value pairs
setAttributes(element, {
"data-name": "menu",
"class": "w-full bg-red",
"style": "margin-right: 0px;"
});
// Or set style using object or classes from array
setAttributes(element, {
style: {
marginRight: 0,
},
class: [
isDisabled && "bg-gray",
"w-full",
],
});
*/
export function setAttributes(
element: Element,
attributes?: ElementAttributes,
): void;
/**
@example
const element = document.createElement("div");
const child = document.createElement("p");
appendChildren(element, [p]);
*/
export function appendChildren(
element: Element,
children: ElementChildren,
creator: (params: ElementParams) => HTMLElement | SVGElement,
): void;
/**
Creates SVG element recursively from a data structure.
Efficently uses document fragements and support style
objects and class arrays -- skipping falsy values.
@example
const svg = createSvgElement([
"svg",
{
width: "30px",
height: "30px",
style: {
filter: "drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.32))",
},
class: [
"extra-marker-icon",
],
},
["circle", { cx: "10", cy: "10", r: "5", fill: "currentColor" }],
]);
*/
export function createSvgElement(params: ElementParams): SVGElement;
/**
Creates HTML element recursively from a data structure.
Efficently uses document fragements and support style
objects and class arrays -- skipping falsy values.
@example
const svg = createElement([
"i",
{
"data-foo": "bar"
style: {
filter: "drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.32))",
},
class: [
"fa",
isCafe && "fa-coffee",
],
},
[// optionally pass in children]
]);
*/
export function createElement(params: ElementParams): HTMLElement;