"use strict";

var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");

exports.__esModule = true;
exports.default = void 0;

var _component = require("../_utils/component");

var _udesk = _interopRequireDefault(require("./udesk"));

var _vueNormalizeComponent = _interopRequireDefault(require("../_utils/vue-normalize-component.js"));

/* script */
//
//
//
//
//
//
//
//
//
//
var __vue_script__ = {
  name: (0, _component.createComponentName)('udesk'),
  mixins: [_component.componentMixin],
  udesk: _udesk.default,
  props: {
    // 默认配置 [参考](http://www.udesk.cn/doc/thirdparty/webim/#_11)
    config: {
      type: Object,
      default: function _default() {
        return {};
      }
    }
  },

  data() {
    return {
      udesk: _udesk.default
    };
  },

  computed: {
    label() {
      if (!this.udesk) return '';
      return this.udesk.label;
    },

    unread() {
      if (!this.udesk) return 0;
      return this.udesk.unread;
    }

  },
  watch: {
    label(v, o) {
      if (v !== o) this.$emit('label', v);
    },

    unread(v, o) {
      if (v !== o) this.$emit('unread', v);
    },

    config(c) {
      _udesk.default.setConfig(c);
    }

  },

  mounted() {
    _udesk.default.setConfig(this.config);
  },

  beforeDestroy() {
    this.udesk.destroy();
  },

  methods: {
    showPanel() {
      this.udesk.show();
    },

    hidePanel() {
      this.udesk.hide();
    }

  }
};
/* template */

var __vue_render__ = function __vue_render__() {
  var _vm = this;

  var _h = _vm.$createElement;

  var _c = _vm._self._c || _h;

  return _c("div", {
    class: _vm.bem(),
    on: {
      click: _vm.showPanel
    }
  }, [_vm._t("default", [_c("gd-button", {
    attrs: {
      rect: ""
    }
  }, [_vm._v(_vm._s(_vm.label))])], {
    showPanel: _vm.showPanel,
    label: _vm.label,
    unread: _vm.unread
  })], 2);
};

var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;
/* style */

var __vue_inject_styles__ = undefined;
/* scoped */

var __vue_scope_id__ = undefined;
/* module identifier */

var __vue_module_identifier__ = undefined;
/* functional template */

var __vue_is_functional_template__ = false;
/* component normalizer */

/* style inject */

/* style inject SSR */
var _default2 = (0, _vueNormalizeComponent.default)({
  render: __vue_render__,
  staticRenderFns: __vue_staticRenderFns__
}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, undefined, undefined);

exports.default = _default2;