"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsyncC = exports.AsyncCRef = exports.AsyncCWatch = exports.AsyncCCall = void 0;
const _component_1 = require("../../../component/$component");
const fromId_1 = require("../../../spec/fromId");
const AsyncCCall = (c) => {
    return {
        $appendChild({ specs, classes, specId, }, callback) {
            const Class = (0, fromId_1.bundleFromId)(specId, specs, classes);
            (0, _component_1.$appendChild)(c, Class, callback);
        },
        $removeChild(data, callback) {
            return (0, _component_1.$removeChild)(c, data, callback);
        },
        $hasChild(data, callback) {
            return (0, _component_1.$hasChild)(c, data, callback);
        },
        $child(data, callback) {
            return (0, _component_1.$child)(c, data, callback);
        },
        $children(data, callback) {
            return (0, _component_1.$children)(c, data, callback);
        },
        $getAnimations(data, callback) {
            return (0, _component_1.$getAnimations)(c, data, callback);
        },
        $getSetup(data, callback) {
            return (0, _component_1.$getSetup)(c, data, callback);
        },
    };
};
exports.AsyncCCall = AsyncCCall;
const AsyncCWatch = (c) => {
    return {};
};
exports.AsyncCWatch = AsyncCWatch;
const AsyncCRef = (c) => {
    return {
        $refChild(data) {
            return (0, _component_1.$refChild)(c, data);
        },
    };
};
exports.AsyncCRef = AsyncCRef;
const AsyncC = (c) => {
    return Object.assign(Object.assign(Object.assign({}, (0, exports.AsyncCCall)(c)), (0, exports.AsyncCWatch)(c)), (0, exports.AsyncCRef)(c));
};
exports.AsyncC = AsyncC;
//# sourceMappingURL=AsyncC.js.map