@mdsfe/mds-ui 0.2.0
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/CHANGELOG.md +778 -0
- package/LICENSE +21 -0
- package/README.md +106 -0
- package/dist/_locale/index.js +18 -0
- package/dist/_locale/zh-CN.js +123 -0
- package/dist/_mixin/emitter.js +35 -0
- package/dist/_mixin/focus.js +13 -0
- package/dist/_mixin/locale.js +17 -0
- package/dist/_mixin/popper.js +192 -0
- package/dist/_mixin/tooltip.js +218 -0
- package/dist/_util/__test__/switchcase.test.js +43 -0
- package/dist/_util/autoprefixer.js +249 -0
- package/dist/_util/clickoutside.js +79 -0
- package/dist/_util/date.js +368 -0
- package/dist/_util/dateUtil.js +311 -0
- package/dist/_util/dom.js +240 -0
- package/dist/_util/getRequestAnimationFrame.js +50 -0
- package/dist/_util/getScroll.js +21 -0
- package/dist/_util/loaders/loaders.css.js +52 -0
- package/dist/_util/loaders/loading.js +53 -0
- package/dist/_util/merge.js +18 -0
- package/dist/_util/popper.js +1261 -0
- package/dist/_util/popup/index.js +232 -0
- package/dist/_util/popup/popup-manager.js +205 -0
- package/dist/_util/proptype.js +12 -0
- package/dist/_util/repeatClick.js +30 -0
- package/dist/_util/resize.js +61 -0
- package/dist/_util/resizeEvent.js +59 -0
- package/dist/_util/scrollIntoView.js +38 -0
- package/dist/_util/scrollbar-width.js +37 -0
- package/dist/_util/soda.js +54 -0
- package/dist/_util/switchcase.js +22 -0
- package/dist/_util/throttleByAnimationFrame.js +70 -0
- package/dist/_util/tree/node.js +412 -0
- package/dist/_util/tree/tree.js +410 -0
- package/dist/_util/util.js +166 -0
- package/dist/_util/vue-popper.js +213 -0
- package/dist/affix.js +509 -0
- package/dist/anchor.js +522 -0
- package/dist/avatar.js +437 -0
- package/dist/backtop.js +469 -0
- package/dist/badge.js +439 -0
- package/dist/bordershadow.js +310 -0
- package/dist/breadcrumb.js +434 -0
- package/dist/button.js +579 -0
- package/dist/card.js +514 -0
- package/dist/carousel.js +1326 -0
- package/dist/cascaderpanel.js +2320 -0
- package/dist/checkbox.js +681 -0
- package/dist/col.js +546 -0
- package/dist/collapse.js +671 -0
- package/dist/color.js +306 -0
- package/dist/datepicker.js +8089 -0
- package/dist/divider.js +346 -0
- package/dist/drawer.js +652 -0
- package/dist/dropdown.js +687 -0
- package/dist/empty.js +416 -0
- package/dist/font.js +306 -0
- package/dist/form.js +878 -0
- package/dist/icon.js +401 -0
- package/dist/index.js +1 -0
- package/dist/input.js +1251 -0
- package/dist/inputnumber.js +689 -0
- package/dist/layout.js +786 -0
- package/dist/list.js +789 -0
- package/dist/loading.js +430 -0
- package/dist/mds-ui.min.css +7 -0
- package/dist/mds-ui.min.js +64911 -0
- package/dist/menu.js +1131 -0
- package/dist/message.js +1016 -0
- package/dist/modal.js +895 -0
- package/dist/notification.js +818 -0
- package/dist/pagination.js +1213 -0
- package/dist/popconfirm.js +336 -0
- package/dist/popover.js +206 -0
- package/dist/progress.js +1023 -0
- package/dist/radio.js +760 -0
- package/dist/rate.js +765 -0
- package/dist/row.js +546 -0
- package/dist/select.js +4950 -0
- package/dist/slider.js +1411 -0
- package/dist/slottable.js +1414 -0
- package/dist/steps.js +546 -0
- package/dist/style/affix.css +5524 -0
- package/dist/style/anchor.css +5572 -0
- package/dist/style/avatar.css +5587 -0
- package/dist/style/backtop.css +34 -0
- package/dist/style/badge.css +5655 -0
- package/dist/style/bordershadow.css +5601 -0
- package/dist/style/breadcrumb.css +5551 -0
- package/dist/style/button.css +7679 -0
- package/dist/style/card.css +5670 -0
- package/dist/style/carousel.css +5731 -0
- package/dist/style/cascaderpanel.css +125 -0
- package/dist/style/checkbox.css +5700 -0
- package/dist/style/col.css +8121 -0
- package/dist/style/collapse.css +5593 -0
- package/dist/style/color.css +6136 -0
- package/dist/style/datepicker.css +5977 -0
- package/dist/style/divider.css +5558 -0
- package/dist/style/drawer.css +7979 -0
- package/dist/style/dropdown.css +7950 -0
- package/dist/style/empty.css +5563 -0
- package/dist/style/font.css +5559 -0
- package/dist/style/form.css +5662 -0
- package/dist/style/icon.css +5538 -0
- package/dist/style/input.css +6256 -0
- package/dist/style/inputnumber.css +5828 -0
- package/dist/style/layout.css +5572 -0
- package/dist/style/list.css +5655 -0
- package/dist/style/loading.css +5540 -0
- package/dist/style/menu.css +6183 -0
- package/dist/style/message.css +194 -0
- package/dist/style/modal.css +5637 -0
- package/dist/style/notification.css +5706 -0
- package/dist/style/pagination.css +6683 -0
- package/dist/style/popconfirm.css +7951 -0
- package/dist/style/popover.css +5727 -0
- package/dist/style/progress.css +5714 -0
- package/dist/style/radio.css +5769 -0
- package/dist/style/rate.css +5616 -0
- package/dist/style/row.css +8121 -0
- package/dist/style/select.css +5729 -0
- package/dist/style/slider.css +5594 -0
- package/dist/style/slottable.css +5831 -0
- package/dist/style/steps.css +6100 -0
- package/dist/style/switch.css +5624 -0
- package/dist/style/table.css +8392 -0
- package/dist/style/tabs.css +6047 -0
- package/dist/style/tag.css +5935 -0
- package/dist/style/text.css +5636 -0
- package/dist/style/timeline.css +5602 -0
- package/dist/style/timepicker.css +5904 -0
- package/dist/style/tooltip.css +5686 -0
- package/dist/style/transfer.css +101 -0
- package/dist/style/transition.css +1417 -0
- package/dist/style/tree.css +5598 -0
- package/dist/style/typography.css +5640 -0
- package/dist/style/upload.css +5834 -0
- package/dist/switch.js +448 -0
- package/dist/table.js +3809 -0
- package/dist/tabs.js +1273 -0
- package/dist/tag.js +478 -0
- package/dist/text.js +1100 -0
- package/dist/timeline.js +495 -0
- package/dist/timepicker.js +1567 -0
- package/dist/tooltip.js +179 -0
- package/dist/transfer.js +981 -0
- package/dist/transition.js +246 -0
- package/dist/tree.js +1866 -0
- package/dist/typography.js +469 -0
- package/dist/upload.js +1990 -0
- package/package.json +144 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
|
|
6
|
+
|
|
7
|
+
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
|
8
|
+
|
|
9
|
+
var _map = require('babel-runtime/core-js/map');
|
|
10
|
+
|
|
11
|
+
var _map2 = _interopRequireDefault(_map);
|
|
12
|
+
|
|
13
|
+
var _typeof2 = require('babel-runtime/helpers/typeof');
|
|
14
|
+
|
|
15
|
+
var _typeof3 = _interopRequireDefault(_typeof2);
|
|
16
|
+
|
|
17
|
+
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
|
18
|
+
|
|
19
|
+
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
|
20
|
+
|
|
21
|
+
var _node = require('./node');
|
|
22
|
+
|
|
23
|
+
var _node2 = _interopRequireDefault(_node);
|
|
24
|
+
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
|
|
27
|
+
var Tree = function () {
|
|
28
|
+
function Tree(options) {
|
|
29
|
+
var _this = this;
|
|
30
|
+
|
|
31
|
+
(0, _classCallCheck3.default)(this, Tree);
|
|
32
|
+
|
|
33
|
+
for (var name in options) {
|
|
34
|
+
if (options.hasOwnProperty(name)) {
|
|
35
|
+
this[name] = options[name];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (!this.prop || (0, _typeof3.default)(this.prop) !== 'object') {
|
|
39
|
+
this.prop = {
|
|
40
|
+
label: 'label',
|
|
41
|
+
key: 'key',
|
|
42
|
+
isLeaf: 'isLeaf',
|
|
43
|
+
disabled: 'disabled',
|
|
44
|
+
children: 'children'
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
this.nodesMap = new _map2.default();
|
|
49
|
+
this.root = new _node2.default({
|
|
50
|
+
data: this.data,
|
|
51
|
+
tree: this
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// 根据load函数渲染根节点
|
|
55
|
+
if (this.load) {
|
|
56
|
+
this.load(this.root, function (arr) {
|
|
57
|
+
if (!Array.isArray(arr)) {
|
|
58
|
+
throw new Error('传入子元素必须是数组');
|
|
59
|
+
}
|
|
60
|
+
arr.forEach(function (item) {
|
|
61
|
+
_this.root.appendChild(item);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
Tree.prototype.setData = function setData(newVal) {
|
|
68
|
+
var dataChange = newVal !== this.root.data;
|
|
69
|
+
if (dataChange) {
|
|
70
|
+
this.nodesMap = new _map2.default();
|
|
71
|
+
this.root = new _node2.default({
|
|
72
|
+
data: newVal,
|
|
73
|
+
tree: this
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
Tree.prototype.handleSelectedChange = function handleSelectedChange(key) {
|
|
79
|
+
var selectedNode = this.nodesMap.get(key);
|
|
80
|
+
if (!selectedNode.selected) {
|
|
81
|
+
this.nodesMap.forEach(function (node, nodeKey) {
|
|
82
|
+
node.selected = false;
|
|
83
|
+
if (nodeKey === key) {
|
|
84
|
+
node.selected = true;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
this.$tree.$emit('node-selected-change', selectedNode.data, selectedNode, selectedNode.getPath(), selectedNode.getPath(true));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
Tree.prototype.handleDefaultCheckedKeys = function handleDefaultCheckedKeys() {
|
|
92
|
+
var _this2 = this;
|
|
93
|
+
|
|
94
|
+
// 处理defaultCheckedKeys
|
|
95
|
+
if (this.defaultCheckedKeys) {
|
|
96
|
+
this.defaultCheckedKeys.forEach(function (item) {
|
|
97
|
+
_this2.nodesMap.get(item).check = true;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
Tree.prototype.search = function search(value) {
|
|
103
|
+
var _this3 = this;
|
|
104
|
+
|
|
105
|
+
var recursionChildren = function recursionChildren(node) {
|
|
106
|
+
var childNodes = node.root ? node.root.childNodes : node.childNodes;
|
|
107
|
+
childNodes.forEach(function (item) {
|
|
108
|
+
item.visible = _this3.searchNodeMethod.call(item, value, item.data, item);
|
|
109
|
+
recursionChildren(item);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// 子节点有匹配项的情况父节点需要显示
|
|
113
|
+
if (!node.visible && childNodes.length) {
|
|
114
|
+
var hiddenAllChildren = void 0;
|
|
115
|
+
hiddenAllChildren = !childNodes.some(function (child) {
|
|
116
|
+
return child.visible;
|
|
117
|
+
});
|
|
118
|
+
if (!node.root) {
|
|
119
|
+
node.visible = !hiddenAllChildren;
|
|
120
|
+
} else {
|
|
121
|
+
node.root.visible = false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// 节点显示的情况下展开所有子节点
|
|
126
|
+
if (node.visible && !node.isLeaf && !_this3.load) {
|
|
127
|
+
node.changeExpanded(true);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
recursionChildren(this);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
Tree.prototype.getCheckedNodes = function getCheckedNodes(leafOnly) {
|
|
134
|
+
var result = [];
|
|
135
|
+
if (leafOnly) {
|
|
136
|
+
this.nodesMap.forEach(function (item) {
|
|
137
|
+
if (item.checked && !item.data.children) {
|
|
138
|
+
result.push(item.data);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
} else {
|
|
142
|
+
this.nodesMap.forEach(function (item) {
|
|
143
|
+
if (item.checked) {
|
|
144
|
+
result.push(item.data);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
Tree.prototype.getCheckedKeys = function getCheckedKeys(leafOnly) {
|
|
152
|
+
var result = [];
|
|
153
|
+
if (leafOnly) {
|
|
154
|
+
this.nodesMap.forEach(function (item) {
|
|
155
|
+
if (item.checked && !item.data.children) {
|
|
156
|
+
result.push(item.key);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
} else {
|
|
160
|
+
this.nodesMap.forEach(function (item) {
|
|
161
|
+
if (item.checked) {
|
|
162
|
+
result.push(item.key);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return result;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
Tree.prototype.setCheckedKeys = function setCheckedKeys(checkArr) {
|
|
170
|
+
var _this4 = this;
|
|
171
|
+
|
|
172
|
+
if (!Array.isArray(checkArr)) {
|
|
173
|
+
throw new Error('需要输入一个key数组');
|
|
174
|
+
}
|
|
175
|
+
checkArr.forEach(function (item) {
|
|
176
|
+
_this4.nodesMap.get(item).check = true;
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
Tree.prototype.setChecked = function setChecked(key, checkState) {
|
|
181
|
+
var node = this.nodesMap.get(key);
|
|
182
|
+
if (!node) {
|
|
183
|
+
throw new Error('请输入正确的key');
|
|
184
|
+
}
|
|
185
|
+
node.check = checkState;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
Tree.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() {
|
|
189
|
+
var result = [];
|
|
190
|
+
this.nodesMap.forEach(function (item) {
|
|
191
|
+
if (item.indeterminate) {
|
|
192
|
+
result.push(item.data);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
return result;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
Tree.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() {
|
|
199
|
+
var result = [];
|
|
200
|
+
this.nodesMap.forEach(function (item) {
|
|
201
|
+
if (item.indeterminate) {
|
|
202
|
+
result.push(item.data.key);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
return result;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
Tree.prototype.getCurrentKey = function getCurrentKey() {
|
|
209
|
+
for (var _iterator = this.nodesMap.values(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
|
|
210
|
+
var _ref;
|
|
211
|
+
|
|
212
|
+
if (_isArray) {
|
|
213
|
+
if (_i >= _iterator.length) break;
|
|
214
|
+
_ref = _iterator[_i++];
|
|
215
|
+
} else {
|
|
216
|
+
_i = _iterator.next();
|
|
217
|
+
if (_i.done) break;
|
|
218
|
+
_ref = _i.value;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
var item = _ref;
|
|
222
|
+
|
|
223
|
+
if (item.selected) {
|
|
224
|
+
return item.data.key;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return null;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
Tree.prototype.getCurrentNode = function getCurrentNode() {
|
|
231
|
+
for (var _iterator2 = this.nodesMap.values(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
|
|
232
|
+
var _ref2;
|
|
233
|
+
|
|
234
|
+
if (_isArray2) {
|
|
235
|
+
if (_i2 >= _iterator2.length) break;
|
|
236
|
+
_ref2 = _iterator2[_i2++];
|
|
237
|
+
} else {
|
|
238
|
+
_i2 = _iterator2.next();
|
|
239
|
+
if (_i2.done) break;
|
|
240
|
+
_ref2 = _i2.value;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
var item = _ref2;
|
|
244
|
+
|
|
245
|
+
if (item.selected) {
|
|
246
|
+
return item.data;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return null;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
Tree.prototype.setCurrentKey = function setCurrentKey(key) {
|
|
253
|
+
if (key) {
|
|
254
|
+
this.handleSelectedChange(key);
|
|
255
|
+
} else {
|
|
256
|
+
this.nodesMap.forEach(function (node) {
|
|
257
|
+
node.selected = false;
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
Tree.prototype.getNode = function getNode(key) {
|
|
263
|
+
var node = this.nodesMap.get(key);
|
|
264
|
+
if (node) {
|
|
265
|
+
return node;
|
|
266
|
+
}
|
|
267
|
+
return null;
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
Tree.prototype.getCheckNode = function getCheckNode(nodeFlag) {
|
|
271
|
+
var arr = [];
|
|
272
|
+
this.nodesMap.forEach(function (item) {
|
|
273
|
+
if (item.checked) {
|
|
274
|
+
nodeFlag ? arr.push(item) : arr.push(item.data);
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
return arr;
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
Tree.prototype.getCheckNodeKey = function getCheckNodeKey() {
|
|
281
|
+
var arr = [];
|
|
282
|
+
this.getCheckNode(true).forEach(function (node) {
|
|
283
|
+
arr.push(node.key);
|
|
284
|
+
});
|
|
285
|
+
return arr;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
Tree.prototype.getIndeterminateNode = function getIndeterminateNode(nodeFlag) {
|
|
289
|
+
var arr = [];
|
|
290
|
+
this.nodesMap.forEach(function (item) {
|
|
291
|
+
if (item.indeterminate) {
|
|
292
|
+
nodeFlag ? arr.push(item) : arr.push(item.data);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
return arr;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
Tree.prototype.getIndeterminateNodeKey = function getIndeterminateNodeKey() {
|
|
299
|
+
var arr = [];
|
|
300
|
+
this.getIndeterminateNode(true).forEach(function (node) {
|
|
301
|
+
arr.push(node.key);
|
|
302
|
+
});
|
|
303
|
+
return arr;
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
Tree.prototype.setCheckNode = function setCheckNode(keys) {
|
|
307
|
+
var bor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
308
|
+
|
|
309
|
+
var nodesMap = this.nodesMap;
|
|
310
|
+
|
|
311
|
+
if (Array.isArray(keys)) {
|
|
312
|
+
keys.forEach(function (item) {
|
|
313
|
+
var node = nodesMap.get(item);
|
|
314
|
+
if (node) node.check = bor;
|
|
315
|
+
});
|
|
316
|
+
} else {
|
|
317
|
+
var node = nodesMap.get(keys);
|
|
318
|
+
if (node) nodesMap.get(keys).check = bor;
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
Tree.prototype.getCheckNodeTree = function getCheckNodeTree() {
|
|
323
|
+
var _this5 = this;
|
|
324
|
+
|
|
325
|
+
var root = this.root;
|
|
326
|
+
|
|
327
|
+
if (Array.isArray(root.data)) {
|
|
328
|
+
var newTree = [];
|
|
329
|
+
root.indeterminateChildNodes.forEach(function (item) {
|
|
330
|
+
newTree.push(copyNode(item, _this5));
|
|
331
|
+
});
|
|
332
|
+
return newTree;
|
|
333
|
+
} else {
|
|
334
|
+
return copyNode(root, this);
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
Tree.prototype.appendNodes = function appendNodes(key, nodes) {
|
|
339
|
+
var parent = this.nodesMap.get(key);
|
|
340
|
+
if (!parent) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
if (Array.isArray(nodes)) {
|
|
344
|
+
if ((typeof nodes === 'undefined' ? 'undefined' : (0, _typeof3.default)(nodes)) === 'object') {
|
|
345
|
+
nodes.forEach(function (item) {
|
|
346
|
+
parent.appendChild(item);
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
} else if ((typeof nodes === 'undefined' ? 'undefined' : (0, _typeof3.default)(nodes)) === 'object') {
|
|
350
|
+
parent.appendChild(nodes);
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
Tree.prototype.delectNodeByKey = function delectNodeByKey(keys) {
|
|
355
|
+
var _this6 = this;
|
|
356
|
+
|
|
357
|
+
if (Array.isArray(keys)) {
|
|
358
|
+
keys.forEach(function (item) {
|
|
359
|
+
var node = _this6.nodesMap.get(item);
|
|
360
|
+
if (node) node.remove();
|
|
361
|
+
});
|
|
362
|
+
} else {
|
|
363
|
+
var node = this.nodesMap.get(keys);
|
|
364
|
+
node.remove();
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
return Tree;
|
|
369
|
+
}();
|
|
370
|
+
|
|
371
|
+
exports.default = Tree;
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
var copyData = function copyData(data, tree) {
|
|
375
|
+
var newData = {};
|
|
376
|
+
for (var key in data) {
|
|
377
|
+
if (data.hasOwnProperty(key) && key !== tree.prop.children) {
|
|
378
|
+
newData[key] = data[key];
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return newData;
|
|
382
|
+
};
|
|
383
|
+
var copyNode = function copyNode(node, tree) {
|
|
384
|
+
var newData = copyData(node.data, tree);
|
|
385
|
+
if (node.isLeaf) {
|
|
386
|
+
return newData;
|
|
387
|
+
}
|
|
388
|
+
newData[tree.prop.children] = [];
|
|
389
|
+
node.indeterminateChildNodes.forEach(function (item) {
|
|
390
|
+
newData[tree.prop.children].push(copyNode(item, tree));
|
|
391
|
+
});
|
|
392
|
+
return newData;
|
|
393
|
+
};
|
|
394
|
+
// const deepCopy = function(o) {
|
|
395
|
+
// if (o instanceof Array) {
|
|
396
|
+
// let n = []
|
|
397
|
+
// for (let i = 0; i < o.length; ++i) {
|
|
398
|
+
// n[i] = deepCopy(o[i])
|
|
399
|
+
// }
|
|
400
|
+
// return n
|
|
401
|
+
// } else if (o instanceof Object) {
|
|
402
|
+
// let n = {}
|
|
403
|
+
// for (let i in o) {
|
|
404
|
+
// n[i] = deepCopy(o[i])
|
|
405
|
+
// }
|
|
406
|
+
// return n
|
|
407
|
+
// } else {
|
|
408
|
+
// return o
|
|
409
|
+
// }
|
|
410
|
+
// }
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.isFunction = exports.getOffsetWidth = exports.escapeRegexpString = exports.assert = exports.isFirefox = exports.isEdge = exports.isIE = exports.coerceTruthyValueToArray = exports.arrayFind = exports.arrayFindIndex = exports.valueEquals = exports.getOffsetLeft = exports.noop = undefined;
|
|
5
|
+
exports.getValueByPath = getValueByPath;
|
|
6
|
+
|
|
7
|
+
var _vue = require('vue');
|
|
8
|
+
|
|
9
|
+
var _vue2 = _interopRequireDefault(_vue);
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
var noop = exports.noop = function noop() {};
|
|
14
|
+
|
|
15
|
+
var getScroll = function getScroll(w, top) {
|
|
16
|
+
var ret = top ? w.pageYOffset : w.pageXOffset;
|
|
17
|
+
var method = top ? 'scrollTop' : 'scrollLeft';
|
|
18
|
+
if (typeof ret !== 'number') {
|
|
19
|
+
var d = w.document;
|
|
20
|
+
// ie6,7,8 standard mode
|
|
21
|
+
ret = d.documentElement[method];
|
|
22
|
+
if (typeof ret !== 'number') {
|
|
23
|
+
// quirks mode
|
|
24
|
+
ret = d.body[method];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return ret;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var getClientPosition = function getClientPosition(elem) {
|
|
31
|
+
var box = void 0;
|
|
32
|
+
var x = void 0;
|
|
33
|
+
var y = void 0;
|
|
34
|
+
var doc = elem.ownerDocument;
|
|
35
|
+
var body = doc.body;
|
|
36
|
+
var docElem = doc && doc.documentElement;
|
|
37
|
+
box = elem.getBoundingClientRect();
|
|
38
|
+
x = box.left;
|
|
39
|
+
y = box.top;
|
|
40
|
+
x -= docElem.clientLeft || body.clientLeft || 0;
|
|
41
|
+
y -= docElem.clientTop || body.clientTop || 0;
|
|
42
|
+
return {
|
|
43
|
+
left: x,
|
|
44
|
+
top: y
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var getOffsetLeft = exports.getOffsetLeft = function getOffsetLeft(el) {
|
|
49
|
+
var pos = getClientPosition(el);
|
|
50
|
+
var doc = el.ownerDocument;
|
|
51
|
+
var w = doc.defaultView || doc.parentWindow;
|
|
52
|
+
pos.left += getScroll(w);
|
|
53
|
+
return pos.left;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* 获取对象深层级的对象,避免循环
|
|
57
|
+
* @export
|
|
58
|
+
* @param {*} sourceObj 源对象 {a:{b:{d:1}}}
|
|
59
|
+
* @param {*} pathName path组成的数组 例如:'a.b.c'
|
|
60
|
+
* @param {*} defaultValue 如果没有值默认的值 []
|
|
61
|
+
*/
|
|
62
|
+
function getValueByPath(sourceObj, pathName, defaultValue) {
|
|
63
|
+
var getValue = function getValue(sourceObj, pathNameArray) {
|
|
64
|
+
var key = pathNameArray.shift();
|
|
65
|
+
var value = sourceObj[key];
|
|
66
|
+
if (value === undefined || value === null) {
|
|
67
|
+
return defaultValue;
|
|
68
|
+
} else if (pathNameArray.length === 0) {
|
|
69
|
+
return value;
|
|
70
|
+
} else if (pathNameArray.length > 0) {
|
|
71
|
+
return getValue(value, pathNameArray);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
var pathNameArray = pathName.split('.');
|
|
75
|
+
return getValue(sourceObj, pathNameArray);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
* 判断两个数是否相等
|
|
80
|
+
* @param {*} a
|
|
81
|
+
* @param {*} b
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
var valueEquals = exports.valueEquals = function valueEquals(a, b) {
|
|
85
|
+
// see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript
|
|
86
|
+
if (a === b) return true;
|
|
87
|
+
if (!(a instanceof Array)) return false;
|
|
88
|
+
if (!(b instanceof Array)) return false;
|
|
89
|
+
if (a.length !== b.length) return false;
|
|
90
|
+
for (var i = 0; i !== a.length; ++i) {
|
|
91
|
+
if (a[i] !== b[i]) return false;
|
|
92
|
+
}
|
|
93
|
+
return true;
|
|
94
|
+
};
|
|
95
|
+
// TODO: use native Array.find, Array.findIndex when IE support is dropped
|
|
96
|
+
var arrayFindIndex = exports.arrayFindIndex = function arrayFindIndex(arr, pred) {
|
|
97
|
+
for (var i = 0; i !== arr.length; ++i) {
|
|
98
|
+
if (pred(arr[i])) {
|
|
99
|
+
return i;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return -1;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var arrayFind = exports.arrayFind = function arrayFind(arr, pred) {
|
|
106
|
+
var idx = arrayFindIndex(arr, pred);
|
|
107
|
+
return idx !== -1 ? arr[idx] : undefined;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// coerce truthy value to array
|
|
111
|
+
var coerceTruthyValueToArray = exports.coerceTruthyValueToArray = function coerceTruthyValueToArray(val) {
|
|
112
|
+
if (Array.isArray(val)) {
|
|
113
|
+
return val;
|
|
114
|
+
} else if (val) {
|
|
115
|
+
return [val];
|
|
116
|
+
} else {
|
|
117
|
+
return [];
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
var isIE = exports.isIE = function isIE() {
|
|
122
|
+
return !_vue2.default.prototype.$isServer && !isNaN(Number(document.documentMode));
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
var isEdge = exports.isEdge = function isEdge() {
|
|
126
|
+
return !_vue2.default.prototype.$isServer && navigator.userAgent.indexOf('Edge') > -1;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
var isFirefox = exports.isFirefox = function isFirefox() {
|
|
130
|
+
return !_vue2.default.prototype.$isServer && !!window.navigator.userAgent.match(/firefox/i);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
var assert = exports.assert = function assert(condition, msg) {
|
|
134
|
+
if (!condition) throw new Error('[mds-ui] ' + msg);
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* 特殊字符转译
|
|
139
|
+
* @param {string} [value='']
|
|
140
|
+
*/
|
|
141
|
+
var escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() {
|
|
142
|
+
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
143
|
+
return String(value).replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Get element offset width
|
|
147
|
+
* @param {*} node HTMLDOMElemment
|
|
148
|
+
* @return {Number} width
|
|
149
|
+
*/
|
|
150
|
+
/**
|
|
151
|
+
* Get element offset width
|
|
152
|
+
* @param {*} node HTMLDOMElemment
|
|
153
|
+
* @return {Number} width
|
|
154
|
+
*/
|
|
155
|
+
var getOffsetWidth = exports.getOffsetWidth = function getOffsetWidth(node) {
|
|
156
|
+
return node ? node.offsetWidth : 0;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/** 判断是否为函数
|
|
160
|
+
* @param {*} functionToCheck
|
|
161
|
+
* @returns
|
|
162
|
+
*/
|
|
163
|
+
var isFunction = exports.isFunction = function isFunction(functionToCheck) {
|
|
164
|
+
var getType = {};
|
|
165
|
+
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
|
|
166
|
+
};
|