import { defineElement, DiffuseElement } from "~/common/element.js"; /** * @import {ProxiedActions} from "~/common/worker.d.ts" * @import {MetadataElement} from "@specs/components/metadata/types.d.ts" * @import {Actions} from "@specs/components/configurator/metadata/types.d.ts" */ //////////////////////////////////////////// // ELEMENT //////////////////////////////////////////// /** * @implements {ProxiedActions} */ class MetadataConfigurator extends DiffuseElement { static NAME = "diffuse/configurator/metadata"; static WORKER_URL = "components/configurator/metadata/worker.js"; constructor() { super(); /** @type {ProxiedActions} */ const proxy = this.workerProxy(); this.patch = proxy.patch; } // WORKERS /** * @override */ dependencies() { return Object.fromEntries( Array.from(this.children).map((element) => { const metadata = /** @type {MetadataElement} */ (element); return [metadata.localName, metadata]; }), ); } } export default MetadataConfigurator; //////////////////////////////////////////// // REGISTER //////////////////////////////////////////// export const CLASS = MetadataConfigurator; export const NAME = "dc-metadata"; defineElement(NAME, MetadataConfigurator);