UNPKG

@bic-fe/mds-ui

Version:

A set of enterprise-class Vue UI components.

981 lines (888 loc) 26.3 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("./icon"), require("./button"), require("./input"), require("./_util/util"), require("./checkbox")); else if(typeof define === 'function' && define.amd) define(["./icon", "./button", "./input", "./_util/util", "./checkbox"], factory); else { var a = typeof exports === 'object' ? factory(require("./icon"), require("./button"), require("./input"), require("./_util/util"), require("./checkbox")) : factory(root["./icon"], root["./button"], root["./input"], root["./_util/util"], root["./checkbox"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(window, function(__WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__16__, __WEBPACK_EXTERNAL_MODULE__20__, __WEBPACK_EXTERNAL_MODULE__36__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/dist/"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 114); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var 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 (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence 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 (injectStyles) { hook = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 114: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./components/transfer/style/index.less var style = __webpack_require__(242); // EXTERNAL MODULE: ./components/transfer/style/panel.less var panel = __webpack_require__(244); // CONCATENATED MODULE: ./components/transfer/style/index.js // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/transfer/transfer.vue?vue&type=template&id=45345264&lang=html& var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "div", { class: _vm.prefixCls }, [ _c( "mds-TransferPanel", _vm._b( { ref: "leftPanel", attrs: { "default-checked": _vm.leftDefaultChecked, data: _vm.sourceData, title: _vm.titles[0], prefixCls: "mds-transfer-", }, on: { "checked-change": _vm.leftCheckedChange }, }, "mds-TransferPanel", _vm.$props, false ) ), _c("div", { class: _vm.prefixCls + "-buttons" }, [ _c( "div", { class: _vm.prefixCls + "-button-item" }, [ _c( "mds-button", { attrs: { type: "primary", disabled: _vm.lChecked.length === 0 }, on: { click: _vm.addToRight }, }, [ _c("mds-icon", { attrs: { type: "line-arrow-right" } }), _vm.buttonTexts[0] !== undefined ? _c("span", [_vm._v(_vm._s(_vm.buttonTexts[0]))]) : _vm._e(), ], 1 ), ], 1 ), _c( "div", { class: _vm.prefixCls + "-button-item" }, [ _c( "mds-button", { attrs: { type: "primary", disabled: _vm.rChecked.length === 0 }, on: { click: _vm.addToLeft }, }, [ _c("mds-icon", { attrs: { type: "line-arrow-left" } }), _vm.buttonTexts[1] !== undefined ? _c("span", [_vm._v(_vm._s(_vm.buttonTexts[1]))]) : _vm._e(), ], 1 ), ], 1 ), ]), _c( "mds-TransferPanel", _vm._b( { ref: "rightPanel", attrs: { title: _vm.titles[1], data: _vm.targetData, prefixCls: "mds-transfer-", }, on: { "checked-change": _vm.rightChecedChange }, }, "mds-TransferPanel", _vm.$props, false ) ), ], 1 ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./components/transfer/transfer.vue?vue&type=template&id=45345264&lang=html& // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/transfer/transferPanel.vue?vue&type=template&id=32ae9a30&lang=html& var transferPanelvue_type_template_id_32ae9a30_lang_html_render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c("div", { class: _vm.prefixCls + "panel" }, [ _c( "div", { class: _vm.prefixCls + "panel-header" }, [ _c( "mds-checkbox", { attrs: { checked: _vm.checkAll, indeterminate: _vm.isIndeterminate, }, on: { change: _vm.toggleCheckedAll }, }, [_vm._v(_vm._s(_vm.title))] ), _c("span", [_vm._v(_vm._s(_vm.checkedSummary))]), ], 1 ), _c( "div", { class: _vm.prefixCls + "panel-body" }, [ _vm.filterable ? _c( "div", { class: _vm.prefixCls + "panel__filter__box" }, [ _c( "mds-input", { class: _vm.prefixCls + "panel__filter", attrs: { size: "small", placeholder: _vm.filterPlaceholder, prefix: "", }, model: { value: _vm.query, callback: function ($$v) { _vm.query = $$v }, expression: "query", }, }, [ _c("mds-icon", { attrs: { slot: "prefix", type: "line-calendar" }, slot: "prefix", }), ], 1 ), ], 1 ) : _vm._e(), _c( "mds-checkbox-group", { directives: [ { name: "show", rawName: "v-show", value: !_vm.hasNoMatch && _vm.data.length > 0, expression: "!hasNoMatch && data.length > 0", }, ], class: { "is-filterable": _vm.filterable }, attrs: { isTransfer: true }, model: { value: _vm.checked, callback: function ($$v) { _vm.checked = $$v }, expression: "checked", }, }, _vm._l(_vm.filteredData, function (item) { return _c( "mds-checkbox", { key: item.value, class: _vm.prefixCls + "panel__item", attrs: { value: item.value, disabled: item.disabled }, }, [_c("option-content", { attrs: { option: item } })], 1 ) }), 1 ), _c( "p", { directives: [ { name: "show", rawName: "v-show", value: _vm.hasNoMatch, expression: "hasNoMatch", }, ], class: _vm.prefixCls + "panel__empty", }, [_vm._v("无匹配数据")] ), _c( "p", { directives: [ { name: "show", rawName: "v-show", value: _vm.data.length === 0 && !_vm.hasNoMatch, expression: "data.length === 0 && !hasNoMatch", }, ], class: _vm.prefixCls + "panel__empty", }, [_vm._v("\n 无数据\n ")] ), ], 1 ), ]) } var transferPanelvue_type_template_id_32ae9a30_lang_html_staticRenderFns = [] transferPanelvue_type_template_id_32ae9a30_lang_html_render._withStripped = true // CONCATENATED MODULE: ./components/transfer/transferPanel.vue?vue&type=template&id=32ae9a30&lang=html& // EXTERNAL MODULE: external "./input" var external_input_ = __webpack_require__(16); var external_input_default = /*#__PURE__*/__webpack_require__.n(external_input_); // EXTERNAL MODULE: external "./icon" var external_icon_ = __webpack_require__(8); var external_icon_default = /*#__PURE__*/__webpack_require__.n(external_icon_); // EXTERNAL MODULE: external "./checkbox" var external_checkbox_ = __webpack_require__(36); // EXTERNAL MODULE: external "./_util/util" var util_ = __webpack_require__(20); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/transfer/transferPanel.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var transferPanelvue_type_script_lang_js_ = ({ name: 'MdsTransferPanel', components: { MdsInput: external_input_default.a, MdsIcon: external_icon_default.a, MdsCheckbox: external_checkbox_["MdsCheckbox"], MdsCheckboxGroup: external_checkbox_["MdsCheckboxGroup"], OptionContent: { props: { option: Object }, render: function render(h) { var getParent = function getParent(vm) { if (vm.$options.name === 'MdsTransferPanel') { return vm; } else if (vm.$parent) { return getParent(vm.$parent); } else { return vm; } }; var panel = getParent(this); var transfer = panel.$parent || panel; return transfer.$scopedSlots.default ? transfer.$scopedSlots.default({ option: this.option, style: 'overflow-x: auto' }) : h('span', [this.option.label || this.option.value]); } } }, props: { data: { type: Array, default: function _default() { return []; } }, defaultChecked: { type: Array, default: function _default() { return []; } }, format: Object, prefixCls: { type: String, default: 'mds-transfer-' }, title: { type: String, default: '标题名称' }, renderContent: { type: Function, default: util_["noop"] }, filterable: Boolean, filterPlaceholder: { type: String, default: '' }, filterMethod: Function }, data: function data() { return { query: '', checked: this.defaultChecked || [], allChecked: false, checkChangeByUser: true }; }, computed: { checkedSummary: function checkedSummary() { var checkedLength = this.checked.length; var dataLength = this.data.length; var _format = this.format, noChecked = _format.noChecked, hasChecked = _format.hasChecked; if (noChecked && hasChecked) { return checkedLength > 0 ? hasChecked.replace(/\${checked}/g, checkedLength).replace(/\${total}/g, dataLength) : noChecked.replace(/\${total}/g, dataLength); } else { return checkedLength + '/' + dataLength; } }, hasNoMatch: function hasNoMatch() { return this.query.length > 0 && this.filteredData.length === 0; }, filteredData: function filteredData() { var _this = this; return this.data.filter(function (item) { if (typeof _this.filterMethod === 'function') { return _this.filterMethod(_this.query, item); } else { var label = item.label || item.value.toString(); return label.toLowerCase().indexOf(_this.query.toLowerCase()) > -1; } }); }, checkableData: function checkableData() { return this.filteredData.filter(function (item) { return !item.disabled; }); }, isIndeterminate: function isIndeterminate() { var checkedLength = this.checked.length; return checkedLength > 0 && checkedLength < this.checkableData.length; } }, watch: { checked: function checked(val, oldVal) { this.updateAllChecked(); this.$emit('checked-change', val); }, checkableData: function checkableData() { this.updateAllChecked(); }, data: function data(val, oldVal) { var checked = []; var filteredDataKeys = this.filteredData.map(function (item) { return item.value; }); this.checked.forEach(function (item) { if (filteredDataKeys.indexOf(item) > -1) { checked.push(item); } }); this.checkChangeByUser = false; this.checked = checked; } }, // beforeCreate: {}, methods: { toggleCheckedAll: function toggleCheckedAll(checkAllVal) { this.checked = checkAllVal ? this.checkableData.filter(function (item) { return !item.disabled; }).map(function (item) { if (!item.disabled) { return item.value; } }) : []; }, updateAllChecked: function updateAllChecked() { var _this2 = this; var checkableDataKeys = this.checkableData.map(function (item) { return item.value; }); this.checkAll = checkableDataKeys.length > 0 && checkableDataKeys.every(function (item) { return _this2.checked.indexOf(item) > -1; }); } } // mounted: { // } }); // CONCATENATED MODULE: ./components/transfer/transferPanel.vue?vue&type=script&lang=js& /* harmony default export */ var transfer_transferPanelvue_type_script_lang_js_ = (transferPanelvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); // CONCATENATED MODULE: ./components/transfer/transferPanel.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( transfer_transferPanelvue_type_script_lang_js_, transferPanelvue_type_template_id_32ae9a30_lang_html_render, transferPanelvue_type_template_id_32ae9a30_lang_html_staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "components/transfer/transferPanel.vue" /* harmony default export */ var transferPanel = (component.exports); // EXTERNAL MODULE: external "./button" var external_button_ = __webpack_require__(13); var external_button_default = /*#__PURE__*/__webpack_require__.n(external_button_); // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/transfer/transfer.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // /* harmony default export */ var transfervue_type_script_lang_js_ = ({ name: 'MdsTransfer', props: { data: { type: Array, default: function _default() { return []; } }, value: { type: Array, default: function _default() { return []; } }, titles: { type: Array, default: function _default() { return ['列表 1', '列表 2']; } }, leftDefaultChecked: { type: Array, default: function _default() { return []; } }, rightDefaultChecked: { type: Array, default: function _default() { return []; } }, targetOrder: { type: String, default: 'original' }, prefixCls: { type: String, default: 'mds-transfer' }, filterable: Boolean, filterPlaceholder: { type: String, default: '请输入搜索内容' }, filterMethod: Function, format: { type: Object, default: function _default() { return {}; } }, buttonTexts: { type: Array, default: function _default() { return []; } } }, data: function data() { return { lChecked: this.leftDefaultChecked || [], rChecked: this.rightDefaultChecked || [] }; }, computed: { sourceData: function sourceData() { var _this = this; return this.data.filter(function (item) { return _this.value.indexOf(item['value']) === -1; }); }, targetData: function targetData() { var _this2 = this; return this.data.filter(function (item) { return _this2.value.indexOf(item['value']) !== -1; }); } }, components: { MdsButton: external_button_default.a, MdsTransferPanel: transferPanel, MdsIcon: external_icon_default.a }, watch: { value: function value(val, oldVal) {} }, methods: { addToRight: function addToRight() { var _this3 = this; var currentValue = this.value.slice(); var toMoveArr = []; this.data.forEach(function (item) { var itemKey = item['value']; if (_this3.lChecked.indexOf(itemKey) !== -1 && _this3.value.indexOf(itemKey) === -1) { toMoveArr.push(itemKey); } }); currentValue = currentValue.concat(toMoveArr); this.$emit('input', currentValue); this.$emit('change', currentValue, 'right', this.rChecked); }, addToLeft: function addToLeft() { var currentValue = this.value.slice(); this.rChecked.forEach(function (item) { var index = currentValue.indexOf(item); if (index > -1) { currentValue.splice(index, 1); } }); this.$emit('input', currentValue); this.$emit('change', currentValue, 'left', this.lChecked); }, leftCheckedChange: function leftCheckedChange(val) { this.lChecked = val; }, rightChecedChange: function rightChecedChange(val) { this.rChecked = val; } } // beforeCreate: {}, // mounted: {} }); // CONCATENATED MODULE: ./components/transfer/transfer.vue?vue&type=script&lang=js& /* harmony default export */ var transfer_transfervue_type_script_lang_js_ = (transfervue_type_script_lang_js_); // CONCATENATED MODULE: ./components/transfer/transfer.vue /* normalize component */ var transfer_component = Object(componentNormalizer["a" /* default */])( transfer_transfervue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var transfer_api; } transfer_component.options.__file = "components/transfer/transfer.vue" /* harmony default export */ var transfer = (transfer_component.exports); // CONCATENATED MODULE: ./components/transfer/index.js transfer.install = function (Vue) { Vue.component(transfer.name, transfer); }; /* harmony default export */ var components_transfer = __webpack_exports__["default"] = (transfer); /***/ }), /***/ 13: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__13__; /***/ }), /***/ 16: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__16__; /***/ }), /***/ 20: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__20__; /***/ }), /***/ 242: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 244: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 36: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__36__; /***/ }), /***/ 8: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__8__; /***/ }) /******/ }); });