import { registerMethods } from "../../utils/methods.js";
import { filter, map } from "../../utils/utils.js";
//#region node_modules/@svgdotjs/svg.js/src/modules/optional/data.js
function data(a, v, r) {
	if (a == null) return this.data(map(filter(this.node.attributes, (el) => el.nodeName.indexOf("data-") === 0), (el) => el.nodeName.slice(5)));
	else if (a instanceof Array) {
		const data = {};
		for (const key of a) data[key] = this.data(key);
		return data;
	} else if (typeof a === "object") for (v in a) this.data(v, a[v]);
	else if (arguments.length < 2) try {
		return JSON.parse(this.attr("data-" + a));
	} catch (e) {
		return this.attr("data-" + a);
	}
	else this.attr("data-" + a, v === null ? null : r === true || typeof v === "string" || typeof v === "number" ? v : JSON.stringify(v));
	return this;
}
registerMethods("Dom", { data });
//#endregion
