UNPKG

element-ui

Version:

A Component Library for Vue.js.

393 lines (310 loc) 9.58 kB
module.exports = /******/ (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] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = 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; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/dist/"; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(121); /***/ }, /***/ 14: /***/ function(module, exports) { module.exports = require("element-ui/lib/mixins/emitter"); /***/ }, /***/ 121: /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _formItem = __webpack_require__(122); var _formItem2 = _interopRequireDefault(_formItem); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* istanbul ignore next */ _formItem2.default.install = function (Vue) { Vue.component(_formItem2.default.name, _formItem2.default); }; exports.default = _formItem2.default; /***/ }, /***/ 122: /***/ function(module, exports, __webpack_require__) { var __vue_exports__, __vue_options__ var __vue_styles__ = {} /* script */ __vue_exports__ = __webpack_require__(123) /* template */ var __vue_template__ = __webpack_require__(125) __vue_options__ = __vue_exports__ = __vue_exports__ || {} if ( typeof __vue_exports__.default === "object" || typeof __vue_exports__.default === "function" ) { __vue_options__ = __vue_exports__ = __vue_exports__.default } if (typeof __vue_options__ === "function") { __vue_options__ = __vue_options__.options } __vue_options__.render = __vue_template__.render __vue_options__.staticRenderFns = __vue_template__.staticRenderFns module.exports = __vue_exports__ /***/ }, /***/ 123: /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; var _asyncValidator = __webpack_require__(124); var _asyncValidator2 = _interopRequireDefault(_asyncValidator); var _emitter = __webpack_require__(14); var _emitter2 = _interopRequireDefault(_emitter); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // // // // // // // // // // // // // // // // // function noop() {} function getPropByPath(obj, path) { var tempObj = obj; path = path.replace(/\[(\w+)\]/g, '.$1'); path = path.replace(/^\./, ''); var keyArr = path.split('.'); var i = 0; for (var len = keyArr.length; i < len - 1; ++i) { var key = keyArr[i]; if (key in tempObj) { tempObj = tempObj[key]; } else { throw new Error('please transfer a valid prop path to form item!'); } } return { o: tempObj, k: keyArr[i], v: tempObj[keyArr[i]] }; } exports.default = { name: 'ElFormItem', componentName: 'ElFormItem', mixins: [_emitter2.default], props: { label: String, labelWidth: String, prop: String, required: Boolean, rules: [Object, Array], error: String, validateStatus: String }, watch: { error: function error(value) { this.validateMessage = value; this.validateState = 'error'; }, validateStatus: function validateStatus(value) { this.validateState = value; } }, computed: { labelStyle: function labelStyle() { var ret = {}; var labelWidth = this.labelWidth || this.form.labelWidth; if (labelWidth) { ret.width = labelWidth; } return ret; }, contentStyle: function contentStyle() { var ret = {}; var labelWidth = this.labelWidth || this.form.labelWidth; if (labelWidth) { ret.marginLeft = labelWidth; } return ret; }, form: function form() { var parent = this.$parent; while (parent.$options.componentName !== 'ElForm') { parent = parent.$parent; } return parent; }, fieldValue: { cache: false, get: function get() { var model = this.form.model; if (!model || !this.prop) { return; } var path = this.prop; if (path.indexOf(':') !== -1) { path = path.replace(/:/, '.'); } return getPropByPath(model, path).v; } } }, data: function data() { return { validateState: '', validateMessage: '', validateDisabled: false, validator: {}, isRequired: false }; }, methods: { validate: function validate(trigger) { var _this = this; var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop; var rules = this.getFilteredRule(trigger); if (!rules || rules.length === 0) { callback(); return true; } this.validateState = 'validating'; var descriptor = {}; descriptor[this.prop] = rules; var validator = new _asyncValidator2.default(descriptor); var model = {}; model[this.prop] = this.fieldValue; validator.validate(model, { firstFields: true }, function (errors, fields) { _this.validateState = !errors ? 'success' : 'error'; _this.validateMessage = errors ? errors[0].message : ''; callback(_this.validateMessage); }); }, resetField: function resetField() { this.validateState = ''; this.validateMessage = ''; var model = this.form.model; var value = this.fieldValue; var path = this.prop; if (path.indexOf(':') !== -1) { path = path.replace(/:/, '.'); } var prop = getPropByPath(model, path); if (Array.isArray(value) && value.length > 0) { this.validateDisabled = true; prop.o[prop.k] = []; } else if (value) { this.validateDisabled = true; prop.o[prop.k] = this.initialValue; } }, getRules: function getRules() { var formRules = this.form.rules; var selfRuels = this.rules; formRules = formRules ? formRules[this.prop] : []; return [].concat(selfRuels || formRules || []); }, getFilteredRule: function getFilteredRule(trigger) { var rules = this.getRules(); return rules.filter(function (rule) { return !rule.trigger || rule.trigger.indexOf(trigger) !== -1; }); }, onFieldBlur: function onFieldBlur() { this.validate('blur'); }, onFieldChange: function onFieldChange() { if (this.validateDisabled) { this.validateDisabled = false; return; } this.validate('change'); } }, mounted: function mounted() { var _this2 = this; if (this.prop) { this.dispatch('ElForm', 'el.form.addField', [this]); Object.defineProperty(this, 'initialValue', { value: this.fieldValue }); var rules = this.getRules(); if (rules.length) { rules.every(function (rule) { if (rule.required) { _this2.isRequired = true; return false; } }); this.$on('el.form.blur', this.onFieldBlur); this.$on('el.form.change', this.onFieldChange); } } }, beforeDestroy: function beforeDestroy() { this.dispatch('ElForm', 'el.form.removeField', [this]); } }; /***/ }, /***/ 124: /***/ function(module, exports) { module.exports = require("async-validator"); /***/ }, /***/ 125: /***/ function(module, exports) { module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; return _c('div', { staticClass: "el-form-item", class: { 'is-error': _vm.validateState === 'error', 'is-validating': _vm.validateState === 'validating', 'is-required': _vm.isRequired || _vm.required } }, [(_vm.label) ? _c('label', { staticClass: "el-form-item__label", style: (_vm.labelStyle) }, [_vm._v("\n " + _vm._s(_vm.label + _vm.form.labelSuffix) + "\n ")]) : _vm._e(), _c('div', { staticClass: "el-form-item__content", style: (_vm.contentStyle) }, [_vm._t("default"), _c('transition', { attrs: { "name": "el-zoom-in-top" } }, [(_vm.validateState === 'error') ? _c('div', { staticClass: "el-form-item__error" }, [_vm._v(_vm._s(_vm.validateMessage))]) : _vm._e()])], 2)]) },staticRenderFns: []} /***/ } /******/ });