import { Objects } from "@supersoniks/concorde/utils"; import { PublisherManager } from "../../utils/PublisherProxy"; import { ConnectedComponent, setSubscribable } from "./common"; export function autoFill(values: string[]) { return function (target: unknown) { setSubscribable(target); for (const value of values) { const split = value.split("."); if (split.length === 0) { continue; } const dataProvider: string = split.shift() || ""; let publisher = PublisherManager.get(dataProvider); publisher = Objects.traverse(publisher, split); (target as ConnectedComponent).__onConnected__((component: unknown) => { publisher.startTemplateFilling(component); }); (target as ConnectedComponent).__onDisconnected__(() => { (component: unknown) => { publisher.stopTemplateFilling(component); }; }); } }; }