import { useDesigner } from '../hooks';
import { WorkspaceSymbol } from '../context';
import { defineComponent, provide, ref, unref, computed } from 'vue-demi';
export var Workspace = defineComponent({
    name: 'Workspace',
    props: {
        id: String,
        title: String,
        description: String,
    },
    setup: function (props, _a) {
        var slots = _a.slots;
        var oldId = ref();
        var designerRef = useDesigner();
        // memo [id, designer]
        var workspace = computed(function () {
            var designer = unref(designerRef);
            if (!designer)
                return;
            if (oldId.value && oldId.value !== props.id) {
                var old = designer.workbench.findWorkspaceById(oldId.value);
                if (old)
                    old.viewport.detachEvents();
            }
            var workspace = {
                id: props.id || 'index',
                title: props.title,
                description: props.description,
            };
            designer.workbench.ensureWorkspace(workspace);
            oldId.value = workspace.id;
            return workspace;
        });
        provide(WorkspaceSymbol, workspace);
        return function () {
            var _a;
            return (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
        };
    },
});
//# sourceMappingURL=Workspace.jsx.map