"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HotComponent = void 0;
const HotStaq_1 = require("./HotStaq");
/**
 * A component to preprocess.
 */
class HotComponent {
    constructor(copy, api = null) {
        if ((copy instanceof HotStaq_1.HotStaq) || (copy == null)) {
            // @ts-ignore
            this.processor = copy;
            this.htmlElements = [];
            this.name = "";
            this.tag = "";
            this.api = null;
            this.elementOptions = undefined;
            this.observedAttributes = [];
            this.type = "";
            this.value = null;
            this.inner = null;
            this.events = {};
        }
        else {
            this.processor = copy.processor;
            this.htmlElements = copy.htmlElements || [];
            this.name = copy.name || "";
            this.tag = copy.tag || this.name;
            this.api = copy.api || null;
            this.elementOptions = copy.elementOptions || undefined;
            this.observedAttributes = copy.observedAttributes || [];
            this.type = copy.type || "";
            this.value = copy.value || null;
            this.inner = copy.inner || null;
            this.events = {};
        }
        if (api != null)
            this.api = api;
    }
    /**
     * Event that's called when this component's DOM element has been created.
     *
     * @returns The modified DOM element.
     */
    onCreated(element) {
        return (element);
    }
}
exports.HotComponent = HotComponent;
//# sourceMappingURL=HotComponent.js.map