/*
* XmlDigitalTeaching v0.0.1
* Copyright ©Wed Jun 12 2024 12:02:25 GMT+0800 (中国标准时间) smile
* Released under the ISC License.
*/
//
//
//
//
//
//
//
//
//
//
//

var script = {
  name: 'XmlGroupRender',
  props: {
    //模式：preview 预览 (默认)，editor 编辑
    mode: {
      type: String,
      default: function () {
        return 'editor';
      }
    },
    ruleIndex: Number,
    //页面类型，取值h5、pc、pad
    pageType: {
      type: String,
      default: 'h5'
    },
    field: String,
    typeText: {
      type: String,
      default: ''
    },
    showLine: {
      type: Boolean,
      default: true
    },
    pBlockData: {
      type: Object,
      default: function () {
        return {};
      }
    },
    BookName: {
      type: String,
      default: ''
    },
    //块儿数据名
    blockDataName: String
  },
  data() {
    return {
      isShowUp: false,
      isShowDown: false,
      //当前所处组的规则
      currentRule: {},
      mouseHover: false,
      showBtn: false
    };
  },
  created() {
    const _this = this;
    this.$EventBus.$on('blockClick', function ({
      blockId,
      ruleIndex
    }) {
      if (_this.ruleIndex === ruleIndex) {
        _this.showBtn = true;
      } else {
        _this.showBtn = false;
      }
    });
  },
  mounted() {
    this.blockData = this.pBlockData;
  },
  methods: {
    hover() {
      this.mouseHover = true;
    },
    leave() {
      this.mouseHover = false;
    }
  }
};

function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
  if (typeof shadowMode !== 'boolean') {
    createInjectorSSR = createInjector;
    createInjector = shadowMode;
    shadowMode = false;
  }
  // Vue.extend constructor export interop.
  const options = typeof script === 'function' ? script.options : script;
  // render functions
  if (template && template.render) {
    options.render = template.render;
    options.staticRenderFns = template.staticRenderFns;
    options._compiled = true;
    // functional template
    if (isFunctionalTemplate) {
      options.functional = true;
    }
  }
  // scopedId
  if (scopeId) {
    options._scopeId = scopeId;
  }
  let hook;
  if (moduleIdentifier) {
    // server build
    hook = function (context) {
      // 2.3 injection
      context = context ||
      // cached call
      this.$vnode && this.$vnode.ssrContext ||
      // stateful
      this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
      // 2.2 with runInNewContext: true
      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
        context = __VUE_SSR_CONTEXT__;
      }
      // inject component styles
      if (style) {
        style.call(this, createInjectorSSR(context));
      }
      // register component module identifier for async chunk inference
      if (context && context._registeredComponents) {
        context._registeredComponents.add(moduleIdentifier);
      }
    };
    // used by ssr in case component is cached and beforeCreate
    // never gets called
    options._ssrRegister = hook;
  } else if (style) {
    hook = shadowMode ? function (context) {
      style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
    } : function (context) {
      style.call(this, createInjector(context));
    };
  }
  if (hook) {
    if (options.functional) {
      // register for functional component in vue file
      const originalRender = options.render;
      options.render = function renderWithStyleInjection(h, context) {
        hook.call(context);
        return originalRender(h, context);
      };
    } else {
      // inject component registration as beforeCreate hook
      const existing = options.beforeCreate;
      options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
    }
  }
  return script;
}

/* script */
const __vue_script__ = script;
/* template */
var __vue_render__ = function () {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      class: _vm.showLine ? "xml-group-box" : "",
      on: { mousemove: _vm.hover, mouseleave: _vm.leave },
    },
    [
      _vm.mode === "editor"
        ? _c("span", { staticClass: "xml-group-type-text" }, [
            _vm._v(_vm._s(_vm.typeText)),
          ])
        : _vm._e(),
      _vm._v(" "),
      _vm.showBtn && _vm.mode === "editor"
        ? _vm._t("action-buttons")
        : _vm._e(),
      _vm._v(" "),
      _c(
        "div",
        {
          class: [
            "xml-group-" + _vm.pageType,
            _vm.mode === "editor" ? "xml-group--editor" : "",
            _vm.mouseHover && _vm.mode === "editor" ? "hovered" : "",
          ],
        },
        [_vm._t("default")],
        2
      ),
    ],
    2
  )
};
var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;

  /* style */
  const __vue_inject_styles__ = undefined;
  /* scoped */
  const __vue_scope_id__ = "data-v-35e9204b";
  /* module identifier */
  const __vue_module_identifier__ = undefined;
  /* functional template */
  const __vue_is_functional_template__ = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  const __vue_component__ = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
    __vue_inject_styles__,
    __vue_script__,
    __vue_scope_id__,
    __vue_is_functional_template__,
    __vue_module_identifier__,
    false,
    undefined,
    undefined,
    undefined
  );

let componentNamespace = 'xml';
// 组件前缀命名只能更新一次，防止重复执行修改组件注册出错
let isUpdated = false;
function createNamespace(name, {
  prefix,
  isUnPrefix
}) {
  let useNamespace;
  if (!isUpdated) {
    isUpdated = true;
    useNamespace = prefix || componentNamespace; // 更改前缀
  }
  if (prefix) {
    if (name.indexOf(componentNamespace) === 0) {
      return name.replace(componentNamespace, prefix);
    }
    return useNamespace.charAt(0).toUpperCase() + useNamespace.substr(1) + name;
  }
  if (name.indexOf(componentNamespace) === 0 || name.indexOf(componentNamespace.charAt(0).toUpperCase()) === 0) {
    return name.charAt(0).toUpperCase() + name.substr(1);
  }
  return isUnPrefix ? name.charAt(0).toLowerCase() + name.substr(1) : componentNamespace + name.charAt(0).toUpperCase() + name.substr(1);
}

__vue_component__.install = (Vue, options = {}) => {
  Vue.component(createNamespace('group-render', {
    prefix: options.prefix
  }), __vue_component__);
};

export { __vue_component__ as default };
