"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const StartNode = require("./StartNode.vue2.js");
const EndNode = require("./EndNode.vue2.js");
const ApprovalNode = require("./ApprovalNode.vue.js");
const CcNode = require("./CcNode.vue.js");
const TimerNode = require("./TimerNode.vue.js");
const NotifyNode = require("./NotifyNode.vue.js");
const ServiceNode = require("./ServiceNode.vue.js");
const ExclusiveNode = require("./ExclusiveNode.vue.js");
const ConditionNode = require("./ConditionNode.vue2.js");
const _sfc_main = {
  __name: "TreeNode",
  props: {
    node: Object
  },
  setup(__props) {
    const nodes = {
      start: StartNode.default,
      approval: ApprovalNode.default,
      cc: CcNode.default,
      timer: TimerNode.default,
      notify: NotifyNode.default,
      service: ServiceNode.default,
      exclusive: ExclusiveNode.default,
      condition: ConditionNode.default,
      end: EndNode.default
    };
    return (_ctx, _cache) => {
      return Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, [
        Vue.renderSlot(_ctx.$slots, "default"),
        (Vue.openBlock(), Vue.createBlock(Vue.resolveDynamicComponent(nodes[__props.node.type]), Vue.mergeProps({ node: __props.node }, _ctx.$attrs), Vue.createSlots({ _: 2 }, [
          Vue.renderList(_ctx.$slots, (value, name) => {
            return {
              name,
              fn: Vue.withCtx((scope) => [
                Vue.renderSlot(_ctx.$slots, name, Vue.normalizeProps(Vue.guardReactiveProps(scope || {})))
              ])
            };
          })
        ]), 1040, ["node"])),
        __props.node.next ? (Vue.openBlock(), Vue.createBlock(_sfc_main, Vue.mergeProps({
          key: 0,
          node: __props.node.next
        }, _ctx.$attrs), null, 16, ["node"])) : Vue.createCommentVNode("", true)
      ], 64);
    };
  }
};
exports.default = _sfc_main;
