| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _utils = require("../utils");var _popup = require("../mixins/popup");var _popup2 = _interopRequireDefault(require("../popup"));// Utils// Mixins// Componentsvar PRESET_ICONS = ['qq', 'link', 'weibo', 'wechat', 'poster', 'qrcode', 'weapp-qrcode', 'wechat-moments'];var _createNamespace = (0, _utils.createNamespace)('share-sheet'),    createComponent = _createNamespace[0],    bem = _createNamespace[1],    t = _createNamespace[2];var _default2 = createComponent({  props: (0, _extends2.default)({}, _popup.popupMixinProps, {    title: String,    duration: String,    cancelText: String,    description: String,    getContainer: [String, Function],    options: {      type: Array,      default: function _default() {        return [];      }    },    overlay: {      type: Boolean,      default: true    },    closeOnPopstate: {      type: Boolean,      default: true    },    safeAreaInsetBottom: {      type: Boolean,      default: true    },    closeOnClickOverlay: {      type: Boolean,      default: true    }  }),  methods: {    onCancel: function onCancel() {      this.toggle(false);      this.$emit('cancel');    },    onSelect: function onSelect(option, index) {      this.$emit('select', option, index);    },    toggle: function toggle(val) {      this.$emit('input', val);    },    getIconURL: function getIconURL(icon) {      if (PRESET_ICONS.indexOf(icon) !== -1) {        return "https://img01.yzcdn.cn/vant/share-sheet-" + icon + ".png";      }      return icon;    },    genHeader: function genHeader() {      var h = this.$createElement;      var title = this.slots('title') || this.title;      var description = this.slots('description') || this.description;      if (!title && !description) {        return;      }      return h("div", {        "class": bem('header')      }, [title && h("h2", {        "class": bem('title')      }, [title]), description && h("span", {        "class": bem('description')      }, [description])]);    },    genOptions: function genOptions(options, showBorder) {      var _this = this;      var h = this.$createElement;      return h("div", {        "class": bem('options', {          border: showBorder        })      }, [options.map(function (option, index) {        return h("div", {          "attrs": {            "role": "button",            "tabindex": "0"          },          "class": [bem('option'), option.className],          "on": {            "click": function click() {              _this.onSelect(option, index);            }          }        }, [h("img", {          "attrs": {            "src": _this.getIconURL(option.icon)          },          "class": bem('icon')        }), option.name && h("span", {          "class": bem('name')        }, [option.name]), option.description && h("span", {          "class": bem('option-description')        }, [option.description])]);      })]);    },    genRows: function genRows() {      var _this2 = this;      var options = this.options;      if (Array.isArray(options[0])) {        return options.map(function (item, index) {          return _this2.genOptions(item, index !== 0);        });      }      return this.genOptions(options);    },    genCancelText: function genCancelText() {      var _this$cancelText;      var h = this.$createElement;      var cancelText = (_this$cancelText = this.cancelText) != null ? _this$cancelText : t('cancel');      if (cancelText) {        return h("button", {          "attrs": {            "type": "button"          },          "class": bem('cancel'),          "on": {            "click": this.onCancel          }        }, [cancelText]);      }    },    onClickOverlay: function onClickOverlay() {      this.$emit('click-overlay');    }  },  render: function render() {    var h = arguments[0];    return h(_popup2.default, {      "attrs": {        "round": true,        "value": this.value,        "position": "bottom",        "overlay": this.overlay,        "duration": this.duration,        "lazyRender": this.lazyRender,        "lockScroll": this.lockScroll,        "getContainer": this.getContainer,        "closeOnPopstate": this.closeOnPopstate,        "closeOnClickOverlay": this.closeOnClickOverlay,        "safeAreaInsetBottom": this.safeAreaInsetBottom      },      "class": bem(),      "on": {        "input": this.toggle,        "click-overlay": this.onClickOverlay      }    }, [this.genHeader(), this.genRows(), this.genCancelText()]);  }});exports.default = _default2;
 |