cy-element-ui 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/alert.js +420 -0
- package/lib/aside.js +277 -0
- package/lib/autocomplete.js +952 -0
- package/lib/avatar.js +363 -0
- package/lib/backtop.js +404 -0
- package/lib/badge.js +334 -0
- package/lib/breadcrumb-item.js +322 -0
- package/lib/breadcrumb.js +293 -0
- package/lib/button-group.js +262 -0
- package/lib/button.js +357 -0
- package/lib/calendar.js +933 -0
- package/lib/card.js +297 -0
- package/lib/carousel-item.js +434 -0
- package/lib/carousel.js +707 -0
- package/lib/cascader-panel.js +1558 -0
- package/lib/cascader.js +1439 -0
- package/lib/checkbox-button.js +583 -0
- package/lib/checkbox-group.js +313 -0
- package/lib/checkbox.js +627 -0
- package/lib/col.js +177 -0
- package/lib/collapse-item.js +497 -0
- package/lib/collapse.js +329 -0
- package/lib/color-picker.js +1943 -0
- package/lib/container.js +288 -0
- package/lib/date-picker.js +6336 -0
- package/lib/descriptions-item.js +140 -0
- package/lib/descriptions.js +457 -0
- package/lib/dialog.js +598 -0
- package/lib/directives/mousewheel.js +26 -0
- package/lib/directives/repeat-click.js +33 -0
- package/lib/divider.js +313 -0
- package/lib/drawer.js +592 -0
- package/lib/dropdown-item.js +316 -0
- package/lib/dropdown-menu.js +351 -0
- package/lib/dropdown.js +643 -0
- package/lib/element-ui.common.js +44659 -0
- package/lib/empty.js +730 -0
- package/lib/footer.js +277 -0
- package/lib/form-item.js +826 -0
- package/lib/form.js +466 -0
- package/lib/header.js +277 -0
- package/lib/icon.js +265 -0
- package/lib/image.js +1138 -0
- package/lib/index.js +1 -1
- package/lib/infinite-scroll.js +301 -0
- package/lib/input-number.js +757 -0
- package/lib/input.js +998 -0
- package/lib/link.js +332 -0
- package/lib/loading.js +631 -0
- package/lib/locale/format.js +56 -0
- package/lib/locale/index.js +63 -0
- package/lib/locale/lang/en.js +126 -0
- package/lib/locale/lang/zh-CN.js +126 -0
- package/lib/locale/lang/zh-TW.js +126 -0
- package/lib/main.js +264 -0
- package/lib/menu-item-group.js +308 -0
- package/lib/menu-item.js +491 -0
- package/lib/menu.js +865 -0
- package/lib/message-box.js +1192 -0
- package/lib/message.js +548 -0
- package/lib/mixins/emitter.js +36 -0
- package/lib/mixins/focus.js +15 -0
- package/lib/mixins/locale.js +17 -0
- package/lib/mixins/migrating.js +69 -0
- package/lib/notification.js +615 -0
- package/lib/option-group.js +344 -0
- package/lib/option.js +474 -0
- package/lib/page-header.js +319 -0
- package/lib/pagination.js +950 -0
- package/lib/popconfirm.js +457 -0
- package/lib/popover.js +617 -0
- package/lib/progress.js +595 -0
- package/lib/radio-button.js +463 -0
- package/lib/radio-group.js +391 -0
- package/lib/radio.js +497 -0
- package/lib/rate.js +670 -0
- package/lib/result.js +578 -0
- package/lib/row.js +149 -0
- package/lib/scrollbar.js +423 -0
- package/lib/select.js +2167 -0
- package/lib/skeleton-item.js +342 -0
- package/lib/skeleton.js +372 -0
- package/lib/slider.js +1199 -0
- package/lib/spinner.js +301 -0
- package/lib/statistic.js +533 -0
- package/lib/step.js +522 -0
- package/lib/steps.js +342 -0
- package/lib/submenu.js +701 -0
- package/lib/switch.js +554 -0
- package/lib/tab-pane.js +332 -0
- package/lib/tabDialog.js +1184 -0
- package/lib/table-column.js +952 -0
- package/lib/table.js +5011 -0
- package/lib/tabs.js +920 -0
- package/lib/tag.js +304 -0
- package/lib/theme-chalk/alert.css +1 -0
- package/lib/theme-chalk/aside.css +1 -0
- package/lib/theme-chalk/autocomplete.css +1 -0
- package/lib/theme-chalk/avatar.css +1 -0
- package/lib/theme-chalk/backtop.css +1 -0
- package/lib/theme-chalk/badge.css +1 -0
- package/lib/theme-chalk/base.css +1 -0
- package/lib/theme-chalk/breadcrumb-item.css +0 -0
- package/lib/theme-chalk/breadcrumb.css +1 -0
- package/lib/theme-chalk/button-group.css +0 -0
- package/lib/theme-chalk/button.css +1 -0
- package/lib/theme-chalk/calendar.css +1 -0
- package/lib/theme-chalk/card.css +1 -0
- package/lib/theme-chalk/carousel-item.css +1 -0
- package/lib/theme-chalk/carousel.css +1 -0
- package/lib/theme-chalk/cascader-panel.css +1 -0
- package/lib/theme-chalk/cascader.css +1 -0
- package/lib/theme-chalk/checkbox-button.css +0 -0
- package/lib/theme-chalk/checkbox-group.css +0 -0
- package/lib/theme-chalk/checkbox.css +1 -0
- package/lib/theme-chalk/col.css +1 -0
- package/lib/theme-chalk/collapse-item.css +0 -0
- package/lib/theme-chalk/collapse.css +1 -0
- package/lib/theme-chalk/color-picker.css +1 -0
- package/lib/theme-chalk/container.css +1 -0
- package/lib/theme-chalk/date-picker.css +1 -0
- package/lib/theme-chalk/descriptions-item.css +1 -0
- package/lib/theme-chalk/descriptions.css +1 -0
- package/lib/theme-chalk/dialog.css +1 -0
- package/lib/theme-chalk/display.css +1 -0
- package/lib/theme-chalk/divider.css +1 -0
- package/lib/theme-chalk/drawer.css +1 -0
- package/lib/theme-chalk/dropdown-item.css +0 -0
- package/lib/theme-chalk/dropdown-menu.css +0 -0
- package/lib/theme-chalk/dropdown.css +1 -0
- package/lib/theme-chalk/empty.css +1 -0
- package/lib/theme-chalk/fonts/element-icons.ttf +0 -0
- package/lib/theme-chalk/fonts/element-icons.woff +0 -0
- package/lib/theme-chalk/footer.css +1 -0
- package/lib/theme-chalk/form-item.css +0 -0
- package/lib/theme-chalk/form.css +1 -0
- package/lib/theme-chalk/header.css +1 -0
- package/lib/theme-chalk/icon.css +1 -0
- package/lib/theme-chalk/image.css +1 -0
- package/lib/theme-chalk/index.css +1 -0
- package/lib/theme-chalk/infinite-scroll.css +0 -0
- package/lib/theme-chalk/infiniteScroll.css +0 -0
- package/lib/theme-chalk/input-number.css +1 -0
- package/lib/theme-chalk/input.css +1 -0
- package/lib/theme-chalk/link.css +1 -0
- package/lib/theme-chalk/loading.css +1 -0
- package/lib/theme-chalk/main.css +1 -0
- package/lib/theme-chalk/menu-item-group.css +0 -0
- package/lib/theme-chalk/menu-item.css +0 -0
- package/lib/theme-chalk/menu.css +1 -0
- package/lib/theme-chalk/message-box.css +1 -0
- package/lib/theme-chalk/message.css +1 -0
- package/lib/theme-chalk/notification.css +1 -0
- package/lib/theme-chalk/option-group.css +1 -0
- package/lib/theme-chalk/option.css +1 -0
- package/lib/theme-chalk/page-header.css +1 -0
- package/lib/theme-chalk/pagination.css +1 -0
- package/lib/theme-chalk/popconfirm.css +1 -0
- package/lib/theme-chalk/popover.css +1 -0
- package/lib/theme-chalk/popper.css +1 -0
- package/lib/theme-chalk/progress.css +1 -0
- package/lib/theme-chalk/radio-button.css +1 -0
- package/lib/theme-chalk/radio-group.css +1 -0
- package/lib/theme-chalk/radio.css +1 -0
- package/lib/theme-chalk/rate.css +1 -0
- package/lib/theme-chalk/reset.css +1 -0
- package/lib/theme-chalk/result.css +1 -0
- package/lib/theme-chalk/row.css +1 -0
- package/lib/theme-chalk/scrollbar.css +1 -0
- package/lib/theme-chalk/select-dropdown.css +1 -0
- package/lib/theme-chalk/select.css +1 -0
- package/lib/theme-chalk/skeleton-item.css +1 -0
- package/lib/theme-chalk/skeleton.css +1 -0
- package/lib/theme-chalk/slider.css +1 -0
- package/lib/theme-chalk/spinner.css +1 -0
- package/lib/theme-chalk/statistic.css +1 -0
- package/lib/theme-chalk/step.css +1 -0
- package/lib/theme-chalk/steps.css +1 -0
- package/lib/theme-chalk/submenu.css +0 -0
- package/lib/theme-chalk/switch.css +1 -0
- package/lib/theme-chalk/tab-pane.css +0 -0
- package/lib/theme-chalk/tabDialog.css +1 -0
- package/lib/theme-chalk/table-column.css +1 -0
- package/lib/theme-chalk/table.css +1 -0
- package/lib/theme-chalk/tabs.css +1 -0
- package/lib/theme-chalk/tag.css +1 -0
- package/lib/theme-chalk/time-picker.css +1 -0
- package/lib/theme-chalk/time-select.css +1 -0
- package/lib/theme-chalk/timeline-item.css +1 -0
- package/lib/theme-chalk/timeline.css +1 -0
- package/lib/theme-chalk/tooltip.css +1 -0
- package/lib/theme-chalk/transfer.css +1 -0
- package/lib/theme-chalk/tree.css +1 -0
- package/lib/theme-chalk/treeSelect.css +1 -0
- package/lib/theme-chalk/upload.css +1 -0
- package/lib/time-picker.js +2967 -0
- package/lib/time-select.js +1765 -0
- package/lib/timeline-item.js +371 -0
- package/lib/timeline.js +275 -0
- package/lib/tooltip.js +425 -0
- package/lib/transfer.js +1102 -0
- package/lib/transitions/collapse-transition.js +91 -0
- package/lib/tree.js +2263 -0
- package/lib/treeSelect.js +746 -0
- package/lib/umd/locale/en.js +142 -0
- package/lib/umd/locale/zh-CN.js +142 -0
- package/lib/umd/locale/zh-TW.js +142 -0
- package/lib/upload.js +1390 -0
- package/lib/utils/after-leave.js +35 -0
- package/lib/utils/aria-dialog.js +104 -0
- package/lib/utils/aria-utils.js +126 -0
- package/lib/utils/clickoutside.js +79 -0
- package/lib/utils/date-util.js +310 -0
- package/lib/utils/date.js +369 -0
- package/lib/utils/dom.js +234 -0
- package/lib/utils/lodash.js +9421 -0
- package/lib/utils/menu/aria-menubar.js +24 -0
- package/lib/utils/menu/aria-menuitem.js +62 -0
- package/lib/utils/menu/aria-submenu.js +69 -0
- package/lib/utils/merge.js +21 -0
- package/lib/utils/popper.js +1261 -0
- package/lib/utils/popup/index.js +233 -0
- package/lib/utils/popup/popup-manager.js +205 -0
- package/lib/utils/resize-event.js +59 -0
- package/lib/utils/scroll-into-view.js +38 -0
- package/lib/utils/scrollbar-width.js +39 -0
- package/lib/utils/shared.js +12 -0
- package/lib/utils/types.js +52 -0
- package/lib/utils/util.js +272 -0
- package/lib/utils/vdom.js +13 -0
- package/lib/utils/vue-popper.js +202 -0
- package/package.json +1 -1
- package/packages/tabDialog/index.js +23 -0
- package/packages/tabDialog/src/dialog/drag.js +63 -0
- package/packages/tabDialog/src/dialog/dragHeight.js +34 -0
- package/packages/tabDialog/src/dialog/dragWidth.js +30 -0
- package/packages/tabDialog/src/main.vue +277 -0
- package/packages/theme-chalk/src/index.scss +1 -0
- package/packages/theme-chalk/src/tabDialog.scss +43 -0
- package/src/index.js +7 -4
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.isMac = exports.isEmpty = exports.isEqual = exports.arrayEquals = exports.looseEqual = exports.capitalize = exports.kebabCase = exports.autoprefixer = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.escapeRegexpString = exports.valueEquals = exports.generateId = exports.getValueByPath = undefined;
|
|
5
|
+
|
|
6
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
7
|
+
|
|
8
|
+
exports.noop = noop;
|
|
9
|
+
exports.hasOwn = hasOwn;
|
|
10
|
+
exports.toObject = toObject;
|
|
11
|
+
exports.getPropByPath = getPropByPath;
|
|
12
|
+
exports.rafThrottle = rafThrottle;
|
|
13
|
+
exports.objToArray = objToArray;
|
|
14
|
+
|
|
15
|
+
var _vue = require('vue');
|
|
16
|
+
|
|
17
|
+
var _vue2 = _interopRequireDefault(_vue);
|
|
18
|
+
|
|
19
|
+
var _types = require('element-ui/lib/utils/types');
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
24
|
+
|
|
25
|
+
function noop() {};
|
|
26
|
+
|
|
27
|
+
function hasOwn(obj, key) {
|
|
28
|
+
return hasOwnProperty.call(obj, key);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
function extend(to, _from) {
|
|
32
|
+
for (var key in _from) {
|
|
33
|
+
to[key] = _from[key];
|
|
34
|
+
}
|
|
35
|
+
return to;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
function toObject(arr) {
|
|
39
|
+
var res = {};
|
|
40
|
+
for (var i = 0; i < arr.length; i++) {
|
|
41
|
+
if (arr[i]) {
|
|
42
|
+
extend(res, arr[i]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return res;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) {
|
|
49
|
+
prop = prop || '';
|
|
50
|
+
var paths = prop.split('.');
|
|
51
|
+
var current = object;
|
|
52
|
+
var result = null;
|
|
53
|
+
for (var i = 0, j = paths.length; i < j; i++) {
|
|
54
|
+
var path = paths[i];
|
|
55
|
+
if (!current) break;
|
|
56
|
+
|
|
57
|
+
if (i === j - 1) {
|
|
58
|
+
result = current[path];
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
current = current[path];
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
function getPropByPath(obj, path, strict) {
|
|
67
|
+
var tempObj = obj;
|
|
68
|
+
path = path.replace(/\[(\w+)\]/g, '.$1');
|
|
69
|
+
path = path.replace(/^\./, '');
|
|
70
|
+
|
|
71
|
+
var keyArr = path.split('.');
|
|
72
|
+
var i = 0;
|
|
73
|
+
for (var len = keyArr.length; i < len - 1; ++i) {
|
|
74
|
+
if (!tempObj && !strict) break;
|
|
75
|
+
var key = keyArr[i];
|
|
76
|
+
if (key in tempObj) {
|
|
77
|
+
tempObj = tempObj[key];
|
|
78
|
+
} else {
|
|
79
|
+
if (strict) {
|
|
80
|
+
throw new Error('please transfer a valid prop path to form item!');
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
o: tempObj,
|
|
87
|
+
k: keyArr[i],
|
|
88
|
+
v: tempObj ? tempObj[keyArr[i]] : null
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var generateId = exports.generateId = function generateId() {
|
|
93
|
+
return Math.floor(Math.random() * 10000);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var valueEquals = exports.valueEquals = function valueEquals(a, b) {
|
|
97
|
+
// see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript
|
|
98
|
+
if (a === b) return true;
|
|
99
|
+
if (!(a instanceof Array)) return false;
|
|
100
|
+
if (!(b instanceof Array)) return false;
|
|
101
|
+
if (a.length !== b.length) return false;
|
|
102
|
+
for (var i = 0; i !== a.length; ++i) {
|
|
103
|
+
if (a[i] !== b[i]) return false;
|
|
104
|
+
}
|
|
105
|
+
return true;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() {
|
|
109
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
110
|
+
return String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// TODO: use native Array.find, Array.findIndex when IE support is dropped
|
|
114
|
+
var arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) {
|
|
115
|
+
for (var i = 0; i !== arr.length; ++i) {
|
|
116
|
+
if (pred(arr[i])) {
|
|
117
|
+
return i;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return -1;
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var arrayFind = exports.arrayFind = function arrayFind(arr, pred) {
|
|
124
|
+
var idx = arrayFindIndex(arr, pred);
|
|
125
|
+
return idx !== -1 ? arr[idx] : undefined;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// coerce truthy value to array
|
|
129
|
+
var coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {
|
|
130
|
+
if (Array.isArray(val)) {
|
|
131
|
+
return val;
|
|
132
|
+
} else if (val) {
|
|
133
|
+
return [val];
|
|
134
|
+
} else {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var isIE = exports.isIE = function isIE() {
|
|
140
|
+
return !_vue2.default.prototype.$isServer && !isNaN(Number(document.documentMode));
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
var isEdge = exports.isEdge = function isEdge() {
|
|
144
|
+
return !_vue2.default.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
var isFirefox = exports.isFirefox = function isFirefox() {
|
|
148
|
+
return !_vue2.default.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var autoprefixer = exports.autoprefixer = function autoprefixer(style) {
|
|
152
|
+
if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') return style;
|
|
153
|
+
var rules = ['transform', 'transition', 'animation'];
|
|
154
|
+
var prefixes = ['ms-', 'webkit-'];
|
|
155
|
+
rules.forEach(function (rule) {
|
|
156
|
+
var value = style[rule];
|
|
157
|
+
if (rule && value) {
|
|
158
|
+
prefixes.forEach(function (prefix) {
|
|
159
|
+
style[prefix + rule] = value;
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return style;
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
var kebabCase = exports.kebabCase = function kebabCase(str) {
|
|
167
|
+
var hyphenateRE = /([^-])([A-Z])/g;
|
|
168
|
+
return str.replace(hyphenateRE, '$1-$2').replace(hyphenateRE, '$1-$2').toLowerCase();
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
var capitalize = exports.capitalize = function capitalize(str) {
|
|
172
|
+
if (!(0, _types.isString)(str)) return str;
|
|
173
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
var looseEqual = exports.looseEqual = function looseEqual(a, b) {
|
|
177
|
+
var isObjectA = (0, _types.isObject)(a);
|
|
178
|
+
var isObjectB = (0, _types.isObject)(b);
|
|
179
|
+
if (isObjectA && isObjectB) {
|
|
180
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
181
|
+
} else if (!isObjectA && !isObjectB) {
|
|
182
|
+
return String(a) === String(b);
|
|
183
|
+
} else {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
var arrayEquals = exports.arrayEquals = function arrayEquals(arrayA, arrayB) {
|
|
189
|
+
arrayA = arrayA || [];
|
|
190
|
+
arrayB = arrayB || [];
|
|
191
|
+
|
|
192
|
+
if (arrayA.length !== arrayB.length) {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
for (var i = 0; i < arrayA.length; i++) {
|
|
197
|
+
if (!looseEqual(arrayA[i], arrayB[i])) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return true;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var isEqual = exports.isEqual = function isEqual(value1, value2) {
|
|
206
|
+
if (Array.isArray(value1) && Array.isArray(value2)) {
|
|
207
|
+
return arrayEquals(value1, value2);
|
|
208
|
+
}
|
|
209
|
+
return looseEqual(value1, value2);
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
var isEmpty = exports.isEmpty = function isEmpty(val) {
|
|
213
|
+
// null or undefined
|
|
214
|
+
if (val == null) return true;
|
|
215
|
+
|
|
216
|
+
if (typeof val === 'boolean') return false;
|
|
217
|
+
|
|
218
|
+
if (typeof val === 'number') return !val;
|
|
219
|
+
|
|
220
|
+
if (val instanceof Error) return val.message === '';
|
|
221
|
+
|
|
222
|
+
switch (Object.prototype.toString.call(val)) {
|
|
223
|
+
// String or Array
|
|
224
|
+
case '[object String]':
|
|
225
|
+
case '[object Array]':
|
|
226
|
+
return !val.length;
|
|
227
|
+
|
|
228
|
+
// Map or Set or File
|
|
229
|
+
case '[object File]':
|
|
230
|
+
case '[object Map]':
|
|
231
|
+
case '[object Set]':
|
|
232
|
+
{
|
|
233
|
+
return !val.size;
|
|
234
|
+
}
|
|
235
|
+
// Plain Object
|
|
236
|
+
case '[object Object]':
|
|
237
|
+
{
|
|
238
|
+
return !Object.keys(val).length;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return false;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
function rafThrottle(fn) {
|
|
246
|
+
var locked = false;
|
|
247
|
+
return function () {
|
|
248
|
+
var _this = this;
|
|
249
|
+
|
|
250
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
251
|
+
args[_key] = arguments[_key];
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (locked) return;
|
|
255
|
+
locked = true;
|
|
256
|
+
window.requestAnimationFrame(function (_) {
|
|
257
|
+
fn.apply(_this, args);
|
|
258
|
+
locked = false;
|
|
259
|
+
});
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
function objToArray(obj) {
|
|
264
|
+
if (Array.isArray(obj)) {
|
|
265
|
+
return obj;
|
|
266
|
+
}
|
|
267
|
+
return isEmpty(obj) ? [] : [obj];
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
var isMac = exports.isMac = function isMac() {
|
|
271
|
+
return !_vue2.default.prototype.$isServer && /macintosh|mac os x/i.test(navigator.userAgent);
|
|
272
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
6
|
+
|
|
7
|
+
exports.isVNode = isVNode;
|
|
8
|
+
|
|
9
|
+
var _util = require('element-ui/lib/utils/util');
|
|
10
|
+
|
|
11
|
+
function isVNode(node) {
|
|
12
|
+
return node !== null && (typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object' && (0, _util.hasOwn)(node, 'componentOptions');
|
|
13
|
+
};
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _vue = require('vue');
|
|
6
|
+
|
|
7
|
+
var _vue2 = _interopRequireDefault(_vue);
|
|
8
|
+
|
|
9
|
+
var _popup = require('element-ui/lib/utils/popup');
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
var PopperJS = _vue2.default.prototype.$isServer ? function () {} : require('./popper');
|
|
14
|
+
var stop = function stop(e) {
|
|
15
|
+
return e.stopPropagation();
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.
|
|
20
|
+
* @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.
|
|
21
|
+
* @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)
|
|
22
|
+
* @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).
|
|
23
|
+
* @param {Boolean} [visible=false] Visibility of the popup element.
|
|
24
|
+
* @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.
|
|
25
|
+
*/
|
|
26
|
+
exports.default = {
|
|
27
|
+
props: {
|
|
28
|
+
transformOrigin: {
|
|
29
|
+
type: [Boolean, String],
|
|
30
|
+
default: true
|
|
31
|
+
},
|
|
32
|
+
placement: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: 'bottom'
|
|
35
|
+
},
|
|
36
|
+
boundariesPadding: {
|
|
37
|
+
type: Number,
|
|
38
|
+
default: 5
|
|
39
|
+
},
|
|
40
|
+
reference: {},
|
|
41
|
+
popper: {},
|
|
42
|
+
offset: {
|
|
43
|
+
default: 0
|
|
44
|
+
},
|
|
45
|
+
value: Boolean,
|
|
46
|
+
visibleArrow: Boolean,
|
|
47
|
+
arrowOffset: {
|
|
48
|
+
type: Number,
|
|
49
|
+
default: 35
|
|
50
|
+
},
|
|
51
|
+
appendToBody: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: true
|
|
54
|
+
},
|
|
55
|
+
popperOptions: {
|
|
56
|
+
type: Object,
|
|
57
|
+
default: function _default() {
|
|
58
|
+
return {
|
|
59
|
+
gpuAcceleration: false
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
data: function data() {
|
|
66
|
+
return {
|
|
67
|
+
showPopper: false,
|
|
68
|
+
currentPlacement: ''
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
watch: {
|
|
74
|
+
value: {
|
|
75
|
+
immediate: true,
|
|
76
|
+
handler: function handler(val) {
|
|
77
|
+
this.showPopper = val;
|
|
78
|
+
this.$emit('input', val);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
showPopper: function showPopper(val) {
|
|
83
|
+
if (this.disabled) return;
|
|
84
|
+
val ? this.updatePopper() : this.destroyPopper();
|
|
85
|
+
this.$emit('input', val);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
methods: {
|
|
90
|
+
createPopper: function createPopper() {
|
|
91
|
+
var _this = this;
|
|
92
|
+
|
|
93
|
+
if (this.$isServer) return;
|
|
94
|
+
this.currentPlacement = this.currentPlacement || this.placement;
|
|
95
|
+
if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
var options = this.popperOptions;
|
|
100
|
+
var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;
|
|
101
|
+
var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;
|
|
102
|
+
|
|
103
|
+
if (!reference && this.$slots.reference && this.$slots.reference[0]) {
|
|
104
|
+
reference = this.referenceElm = this.$slots.reference[0].elm;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (!popper || !reference) return;
|
|
108
|
+
if (this.visibleArrow) this.appendArrow(popper);
|
|
109
|
+
if (this.appendToBody) document.body.appendChild(this.popperElm);
|
|
110
|
+
if (this.popperJS && this.popperJS.destroy) {
|
|
111
|
+
this.popperJS.destroy();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
options.placement = this.currentPlacement;
|
|
115
|
+
options.offset = this.offset;
|
|
116
|
+
options.arrowOffset = this.arrowOffset;
|
|
117
|
+
this.popperJS = new PopperJS(reference, popper, options);
|
|
118
|
+
this.popperJS.onCreate(function (_) {
|
|
119
|
+
_this.$emit('created', _this);
|
|
120
|
+
_this.resetTransformOrigin();
|
|
121
|
+
_this.$nextTick(_this.updatePopper);
|
|
122
|
+
});
|
|
123
|
+
if (typeof options.onUpdate === 'function') {
|
|
124
|
+
this.popperJS.onUpdate(options.onUpdate);
|
|
125
|
+
}
|
|
126
|
+
this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();
|
|
127
|
+
this.popperElm.addEventListener('click', stop);
|
|
128
|
+
},
|
|
129
|
+
updatePopper: function updatePopper() {
|
|
130
|
+
var popperJS = this.popperJS;
|
|
131
|
+
if (popperJS) {
|
|
132
|
+
popperJS.update();
|
|
133
|
+
if (popperJS._popper) {
|
|
134
|
+
popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
this.createPopper();
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
doDestroy: function doDestroy(forceDestroy) {
|
|
141
|
+
/* istanbul ignore if */
|
|
142
|
+
if (!this.popperJS || this.showPopper && !forceDestroy) return;
|
|
143
|
+
this.popperJS.destroy();
|
|
144
|
+
this.popperJS = null;
|
|
145
|
+
},
|
|
146
|
+
destroyPopper: function destroyPopper() {
|
|
147
|
+
if (this.popperJS) {
|
|
148
|
+
this.resetTransformOrigin();
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
resetTransformOrigin: function resetTransformOrigin() {
|
|
152
|
+
if (!this.transformOrigin) return;
|
|
153
|
+
var placementMap = {
|
|
154
|
+
top: 'bottom',
|
|
155
|
+
bottom: 'top',
|
|
156
|
+
left: 'right',
|
|
157
|
+
right: 'left'
|
|
158
|
+
};
|
|
159
|
+
var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];
|
|
160
|
+
var origin = placementMap[placement];
|
|
161
|
+
this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center';
|
|
162
|
+
},
|
|
163
|
+
appendArrow: function appendArrow(element) {
|
|
164
|
+
var hash = void 0;
|
|
165
|
+
if (this.appended) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
this.appended = true;
|
|
170
|
+
|
|
171
|
+
for (var item in element.attributes) {
|
|
172
|
+
if (/^_v-/.test(element.attributes[item].name)) {
|
|
173
|
+
hash = element.attributes[item].name;
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
var arrow = document.createElement('div');
|
|
179
|
+
|
|
180
|
+
if (hash) {
|
|
181
|
+
arrow.setAttribute(hash, '');
|
|
182
|
+
}
|
|
183
|
+
arrow.setAttribute('x-arrow', '');
|
|
184
|
+
arrow.className = 'popper__arrow';
|
|
185
|
+
element.appendChild(arrow);
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
beforeDestroy: function beforeDestroy() {
|
|
190
|
+
this.doDestroy(true);
|
|
191
|
+
if (this.popperElm && this.popperElm.parentNode === document.body) {
|
|
192
|
+
this.popperElm.removeEventListener('click', stop);
|
|
193
|
+
document.body.removeChild(this.popperElm);
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
// call destroy in keep-alive mode
|
|
199
|
+
deactivated: function deactivated() {
|
|
200
|
+
this.$options.beforeDestroy[0].call(this);
|
|
201
|
+
}
|
|
202
|
+
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import TabDialog from './src/main';
|
|
2
|
+
import dialogDrag from './src/dialog/drag';
|
|
3
|
+
import dialogDragWidth from './src/dialog/dragWidth';
|
|
4
|
+
import dialogDragHeight from './src/dialog/dragHeight';
|
|
5
|
+
|
|
6
|
+
export const TabDialogDirective = (Vue) => {
|
|
7
|
+
// 注册指令
|
|
8
|
+
Vue.directive('dialogDrag', dialogDrag);
|
|
9
|
+
Vue.directive('dialogDragWidth', dialogDragWidth);
|
|
10
|
+
Vue.directive('dialogDragHeight', dialogDragHeight);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/* istanbul ignore next */
|
|
14
|
+
TabDialog.install = function(Vue) {
|
|
15
|
+
// 注册组件
|
|
16
|
+
Vue.component(TabDialog.name, TabDialog);
|
|
17
|
+
// 注册指令
|
|
18
|
+
Vue.directive('dialogDrag', dialogDrag);
|
|
19
|
+
Vue.directive('dialogDragWidth', dialogDragWidth);
|
|
20
|
+
Vue.directive('dialogDragHeight', dialogDragHeight);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default TabDialog;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v-dialogDrag 弹窗拖拽
|
|
3
|
+
* Copyright (c) 2019 ruoyi
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
bind(el, binding, vnode, oldVnode) {
|
|
8
|
+
const value = binding.value;
|
|
9
|
+
if (value === false) return;
|
|
10
|
+
// 获取拖拽内容头部
|
|
11
|
+
const dialogHeaderEl = el.querySelector('.el-dialog__header');
|
|
12
|
+
const dragDom = el.querySelector('.el-dialog');
|
|
13
|
+
dialogHeaderEl.style.cursor = 'move';
|
|
14
|
+
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
|
|
15
|
+
const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null);
|
|
16
|
+
dragDom.style.position = 'absolute';
|
|
17
|
+
dragDom.style.marginTop = 0;
|
|
18
|
+
let width = dragDom.style.width;
|
|
19
|
+
if (width.includes('%')) {
|
|
20
|
+
width = +document.body.clientWidth * (+width.replace(/\%/g, '') / 100);
|
|
21
|
+
} else {
|
|
22
|
+
width = +width.replace(/\px/g, '');
|
|
23
|
+
}
|
|
24
|
+
dragDom.style.left = `${ (document.body.clientWidth - width) / 2 }px`;
|
|
25
|
+
// 鼠标按下事件
|
|
26
|
+
dialogHeaderEl.onmousedown = (e) => {
|
|
27
|
+
// 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
|
|
28
|
+
const disX = e.clientX - dialogHeaderEl.offsetLeft;
|
|
29
|
+
const disY = e.clientY - dialogHeaderEl.offsetTop;
|
|
30
|
+
|
|
31
|
+
// 获取到的值带px 正则匹配替换
|
|
32
|
+
let styL, styT;
|
|
33
|
+
|
|
34
|
+
// 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
|
|
35
|
+
if (sty.left.includes('%')) {
|
|
36
|
+
styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100);
|
|
37
|
+
styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100);
|
|
38
|
+
} else {
|
|
39
|
+
styL = +sty.left.replace(/\px/g, '');
|
|
40
|
+
styT = +sty.top.replace(/\px/g, '');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// 鼠标拖拽事件
|
|
44
|
+
document.onmousemove = function(e) {
|
|
45
|
+
// 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
|
|
46
|
+
const l = e.clientX - disX;
|
|
47
|
+
const t = e.clientY - disY;
|
|
48
|
+
|
|
49
|
+
let finallyL = l + styL;
|
|
50
|
+
let finallyT = t + styT;
|
|
51
|
+
|
|
52
|
+
// 移动当前元素
|
|
53
|
+
dragDom.style.left = `${ finallyL }px`;
|
|
54
|
+
dragDom.style.top = `${ finallyT }px`;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
document.onmouseup = function(e) {
|
|
58
|
+
document.onmousemove = null;
|
|
59
|
+
document.onmouseup = null;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v-dialogDragWidth 可拖动弹窗高度(右下角)
|
|
3
|
+
* Copyright (c) 2019 ruoyi
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
bind(el) {
|
|
8
|
+
const dragDom = el.querySelector('.el-dialog');
|
|
9
|
+
const lineEl = document.createElement('div');
|
|
10
|
+
lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
|
|
11
|
+
lineEl.addEventListener('mousedown',
|
|
12
|
+
function(e) {
|
|
13
|
+
// 鼠标按下,计算当前元素距离可视区的距离
|
|
14
|
+
const disX = e.clientX - el.offsetLeft;
|
|
15
|
+
const disY = e.clientY - el.offsetTop;
|
|
16
|
+
// 当前宽度 高度
|
|
17
|
+
const curWidth = dragDom.offsetWidth;
|
|
18
|
+
const curHeight = dragDom.offsetHeight;
|
|
19
|
+
document.onmousemove = function(e) {
|
|
20
|
+
e.preventDefault(); // 移动时禁用默认事件
|
|
21
|
+
// 通过事件委托,计算移动的距离
|
|
22
|
+
const xl = e.clientX - disX;
|
|
23
|
+
const yl = e.clientY - disY;
|
|
24
|
+
dragDom.style.width = `${ curWidth + xl }px`;
|
|
25
|
+
dragDom.style.height = `${ curHeight + yl }px`;
|
|
26
|
+
};
|
|
27
|
+
document.onmouseup = function(e) {
|
|
28
|
+
document.onmousemove = null;
|
|
29
|
+
document.onmouseup = null;
|
|
30
|
+
};
|
|
31
|
+
}, false);
|
|
32
|
+
dragDom.appendChild(lineEl);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v-dialogDragWidth 可拖动弹窗宽度(右侧边)
|
|
3
|
+
* Copyright (c) 2019 ruoyi
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
bind(el) {
|
|
8
|
+
const dragDom = el.querySelector('.el-dialog');
|
|
9
|
+
const lineEl = document.createElement('div');
|
|
10
|
+
lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
|
|
11
|
+
lineEl.addEventListener('mousedown',
|
|
12
|
+
function(e) {
|
|
13
|
+
// 鼠标按下,计算当前元素距离可视区的距离
|
|
14
|
+
const disX = e.clientX - el.offsetLeft;
|
|
15
|
+
// 当前宽度
|
|
16
|
+
const curWidth = dragDom.offsetWidth;
|
|
17
|
+
document.onmousemove = function(e) {
|
|
18
|
+
e.preventDefault(); // 移动时禁用默认事件
|
|
19
|
+
// 通过事件委托,计算移动的距离
|
|
20
|
+
const l = e.clientX - disX;
|
|
21
|
+
dragDom.style.width = `${ curWidth + l }px`;
|
|
22
|
+
};
|
|
23
|
+
document.onmouseup = function(e) {
|
|
24
|
+
document.onmousemove = null;
|
|
25
|
+
document.onmouseup = null;
|
|
26
|
+
};
|
|
27
|
+
}, false);
|
|
28
|
+
dragDom.appendChild(lineEl);
|
|
29
|
+
}
|
|
30
|
+
};
|