imatrix-ui 0.2.6-up → 0.2.7-up
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/README.md +7 -7
- package/index.html +13 -13
- package/lib/super-ui.css +1 -1
- package/lib/super-ui.js +2724 -1932
- package/lib/super-ui.umd.cjs +24 -24
- package/package.json +1 -1
- package/packages/IntervalSelection/index.js +6 -6
- package/packages/IntervalSelection/src/quarterScope.vue +405 -405
- package/packages/IntervalSelection/src/sectionDate.vue +475 -475
- package/packages/breadcrumb/index.js +6 -6
- package/packages/breadcrumb/src/breadcrumb.vue +81 -81
- package/packages/department-tree/index.js +6 -6
- package/packages/department-tree/src/department-tree.vue +113 -113
- package/packages/department-tree-inline/index.js +6 -6
- package/packages/department-tree-inline/src/department-multi-tree-inline.vue +472 -472
- package/packages/department-tree-inline/src/department-single-tree-inline.vue +340 -340
- package/packages/department-tree-inline/src/department-tree-inline.vue +86 -86
- package/packages/department-tree-inline/src/department-tree-service.js +344 -344
- package/packages/department-tree-inline/src/search-result.vue +235 -235
- package/packages/department-user-tree/index.js +6 -6
- package/packages/department-user-tree/src/department-user-multiple-tree.vue +129 -129
- package/packages/department-user-tree/src/department-user-single-tree.vue +94 -94
- package/packages/department-user-tree/src/department-user-tree.vue +114 -114
- package/packages/department-user-tree-inline/index.js +9 -9
- package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +731 -731
- package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +334 -334
- package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -87
- package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -309
- package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +179 -179
- package/packages/department-user-tree-inline/src/search-result.vue +273 -273
- package/packages/directives/prevent-reclick.js +22 -22
- package/packages/dynamic-source-select/index.js +6 -6
- package/packages/dynamic-source-select/src/dynamic-source-select-service.js +106 -106
- package/packages/dynamic-source-select/src/dynamic-source-select.vue +675 -675
- package/packages/dynamic-source-select/src/events.js +78 -78
- package/packages/fs-preview/index.js +6 -6
- package/packages/fs-preview/src/fs-preview.vue +287 -287
- package/packages/fs-upload/index.js +6 -6
- package/packages/fs-upload/src/fs-upload-multi.vue +443 -443
- package/packages/fs-upload/src/fs-upload-single.vue +353 -353
- package/packages/fs-upload/src/fs-upload.vue +191 -191
- package/packages/fs-upload/src/see-big-picture.vue +67 -67
- package/packages/fs-upload-list/index.js +6 -6
- package/packages/fs-upload-list/src/fs-upload-list.vue +372 -372
- package/packages/hamburger/index.js +6 -6
- package/packages/hamburger/src/hamburger.vue +40 -40
- package/packages/index.js +123 -123
- package/packages/multipart-upload/index.js +6 -6
- package/packages/multipart-upload/src/index.vue +66 -66
- package/packages/multipart-upload/src/multipart-upload-form.vue +377 -377
- package/packages/multipart-upload/src/multipart-upload-list.vue +517 -517
- package/packages/organization-input/index.js +6 -6
- package/packages/organization-input/src/organization-input.vue +583 -583
- package/packages/plugins/export-data-new.js +623 -623
- package/packages/plugins/export-data.js +431 -431
- package/packages/plugins/index.js +15 -15
- package/packages/plugins/public-method.js +47 -47
- package/packages/remove-department/index.js +6 -6
- package/packages/remove-department/src/remove-department.vue +200 -200
- package/packages/remove-department/src/remove-dept-service.js +31 -31
- package/packages/remove-user/index.js +6 -6
- package/packages/remove-user/src/remove-user-service.js +31 -31
- package/packages/remove-user/src/remove-user.vue +226 -226
- package/packages/remove-workgroup/index.js +6 -6
- package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -31
- package/packages/remove-workgroup/src/remove-workgroup.vue +183 -183
- package/packages/rich-editor/index.js +7 -7
- package/packages/rich-editor/index.vue +297 -297
- package/packages/rich-editor/langs/zh-Hans.js +438 -438
- package/packages/rich-editor/viewer.vue +105 -105
- package/packages/scan-code-input/index.js +6 -6
- package/packages/scan-code-input/src/events.js +34 -34
- package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -140
- package/packages/scan-code-input/src/scan-code-input.vue +132 -132
- package/packages/secret-info/index.js +7 -7
- package/packages/secret-info/index.vue +100 -100
- package/packages/super-grid/index.js +7 -7
- package/packages/super-grid/src/apis.js +1092 -1092
- package/packages/super-grid/src/columns-config.vue +427 -427
- package/packages/super-grid/src/custom-formatter.js +394 -394
- package/packages/super-grid/src/eventBus.js +2 -2
- package/packages/super-grid/src/events.js +56 -56
- package/packages/super-grid/src/formValidatorUtil.js +300 -300
- package/packages/super-grid/src/formatter.js +196 -196
- package/packages/super-grid/src/group-column.vue +99 -99
- package/packages/super-grid/src/header-context-menu.vue +82 -82
- package/packages/super-grid/src/index-column.vue +69 -69
- package/packages/super-grid/src/public-methods.js +30 -30
- package/packages/super-grid/src/row-operation.vue +193 -193
- package/packages/super-grid/src/search-button.vue +74 -74
- package/packages/super-grid/src/search-condition-input.vue +73 -73
- package/packages/super-grid/src/search-condition-list.vue +68 -68
- package/packages/super-grid/src/search-form-advancedQuery.vue +819 -819
- package/packages/super-grid/src/search-form-dialog.vue +77 -77
- package/packages/super-grid/src/search-form-item.vue +495 -495
- package/packages/super-grid/src/search-form-number.vue +111 -111
- package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -239
- package/packages/super-grid/src/search-form.vue +762 -762
- package/packages/super-grid/src/search-methods.js +592 -592
- package/packages/super-grid/src/selection-column.vue +46 -46
- package/packages/super-grid/src/store.js +3 -3
- package/packages/super-grid/src/super-grid-service.js +728 -728
- package/packages/super-grid/src/super-grid.vue +3011 -3011
- package/packages/super-grid/src/utils.js +880 -880
- package/packages/super-grid/src/view-image-dialog.vue +176 -176
- package/packages/super-nine-grid/index.js +7 -7
- package/packages/super-nine-grid/src/apis.js +108 -108
- package/packages/super-nine-grid/src/custom-formatter.js +73 -73
- package/packages/super-nine-grid/src/formatter.js +134 -134
- package/packages/super-nine-grid/src/search-form-number.vue +35 -35
- package/packages/super-nine-grid/src/search-form.vue +700 -700
- package/packages/super-nine-grid/src/search-methods.js +151 -151
- package/packages/super-nine-grid/src/store.js +3 -3
- package/packages/super-nine-grid/src/super-grid-service.js +107 -107
- package/packages/svg-icon/index.js +6 -6
- package/packages/svg-icon/src/svg-icon.vue +43 -43
- package/packages/utils/date-util.js +292 -292
- package/packages/utils/dom.js +227 -227
- package/packages/utils/gogocodeTransfer.js +59 -59
- package/packages/utils/memory-cache-utils.js +117 -117
- package/packages/utils/utils.js +180 -180
- package/packages/utils/value-set.js +97 -97
- package/packages/valid-code/index.js +7 -7
- package/packages/valid-code/src/valid-code.vue +104 -104
- package/packages/workflow-button/index.js +6 -6
- package/packages/workflow-button/src/workflow-button.vue +550 -550
- package/packages/workflow-history-list/index.js +6 -6
- package/packages/workflow-history-list/src/api.js +7 -7
- package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
- package/packages/workgroup-tree/index.js +6 -6
- package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
- package/packages/workgroup-tree-inline/index.js +6 -6
- package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
- package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
- package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
- package/packages/workgroup-user-tree/index.js +6 -6
- package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
- package/packages/workgroup-user-tree-inline/index.js +9 -9
- package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
- package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
- package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
- package/packages/year-range-picker/index.js +6 -6
- package/packages/year-range-picker/src/year-range-picker.vue +53 -53
- package/src/api/sso-service.js +172 -172
- package/src/api/tab.js +36 -36
- package/src/api/user-service.js +11 -11
- package/src/directives/permission/index.js +13 -13
- package/src/directives/permission/permission.js +20 -20
- package/src/i18n/langs/cn.js +259 -259
- package/src/i18n/langs/en.js +269 -269
- package/src/index.js +93 -93
- package/src/plugins.js +18 -18
- package/src/router/index.js +8 -26
- package/src/store/getters.js +15 -15
- package/src/store/index.js +19 -19
- package/src/store/modules/app.js +54 -54
- package/src/store/modules/tab-content.js +36 -36
- package/src/store/modules/user.js +285 -285
- package/src/utils/auth.js +61 -61
- package/src/utils/calculator/calculator-factory-wf.js +558 -558
- package/src/utils/calculator/calculator-factory.js +145 -145
- package/src/utils/calculator/calculator-util.js +166 -166
- package/src/utils/eventBus.js +2 -2
- package/src/utils/iconUtils.js +28 -28
- package/src/utils/index.js +102 -102
- package/src/utils/jump-page-utils.js +824 -824
- package/src/utils/menu.js +19 -19
- package/src/utils/permission.js +31 -31
- package/src/utils/permissionAuth.js +96 -96
- package/src/utils/range-selector.js +188 -188
- package/src/utils/request.js +269 -269
- package/src/utils/restful-interface-utils.js +57 -57
- package/src/utils/util.js +703 -703
- package/src/utils/validate.js +34 -34
- package/src/utils/watermark.js +108 -108
- package/src/utils/workflow-util.js +93 -93
- package/src/views/404.vue +248 -248
- package/src/views/dsc-component/Sidebar/Item.vue +84 -84
- package/src/views/dsc-component/Sidebar/Link.vue +38 -38
- package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
- package/src/views/dsc-component/Sidebar/index.vue +229 -229
- package/src/views/dsc-component/tabs/tab-content.vue +203 -203
- package/src/views/error-page/401.vue +106 -106
- package/src/views/error-page/404.vue +248 -248
- package/src/views/layout/EmptyLayout.vue +3 -3
- package/src/views/layout/Layout.vue +81 -81
- package/src/views/layout/NewLayout.vue +18 -18
- package/src/views/layout/components/AppMain.vue +39 -39
- package/src/views/layout/components/Breadcrumb/index.vue +158 -158
- package/src/views/layout/components/Menubar/Item.vue +79 -79
- package/src/views/layout/components/Menubar/Link.vue +38 -38
- package/src/views/layout/components/Menubar/index.vue +210 -210
- package/src/views/layout/components/Sidebar/Item.vue +53 -53
- package/src/views/layout/components/Sidebar/Link.vue +38 -38
- package/src/views/layout/components/Sidebar/index.vue +141 -141
- package/src/views/layout/components/iframe-page.vue +38 -38
- package/src/views/layout/components/index.js +4 -4
- package/src/views/layout/components/tabs/tab-content.vue +207 -207
- package/src/views/layout/mixin/ResizeHandler.js +41 -41
- package/src/views/layout/tab-content-iframe-index.vue +38 -38
- package/src/views/layout/tab-content-index.vue +93 -93
- package/src/views/login/authredirect.vue +10 -10
- package/src/views/login/index.vue +296 -296
- package/src/views/login/update-password.vue +243 -243
- package/src/views/redirect/index.vue +14 -14
- package/src/views/wf-history/tache-subprocess-history.vue +45 -45
package/packages/utils/dom.js
CHANGED
|
@@ -1,227 +1,227 @@
|
|
|
1
|
-
/* istanbul ignore next */
|
|
2
|
-
|
|
3
|
-
import * as Vue from 'vue';
|
|
4
|
-
|
|
5
|
-
const isServer = Vue.prototype.$isServer;
|
|
6
|
-
const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
|
|
7
|
-
const MOZ_HACK_REGEXP = /^moz([A-Z])/;
|
|
8
|
-
const ieVersion = isServer ? 0 : Number(document.documentMode);
|
|
9
|
-
|
|
10
|
-
/* istanbul ignore next */
|
|
11
|
-
const trim = function(string) {
|
|
12
|
-
return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
|
|
13
|
-
};
|
|
14
|
-
/* istanbul ignore next */
|
|
15
|
-
const camelCase = function(name) {
|
|
16
|
-
return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
|
|
17
|
-
return offset ? letter.toUpperCase() : letter;
|
|
18
|
-
}).replace(MOZ_HACK_REGEXP, 'Moz$1');
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/* istanbul ignore next */
|
|
22
|
-
export const on = (function() {
|
|
23
|
-
if (!isServer && document.addEventListener) {
|
|
24
|
-
return function(element, event, handler) {
|
|
25
|
-
if (element && event && handler) {
|
|
26
|
-
element.addEventListener(event, handler, false);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
} else {
|
|
30
|
-
return function(element, event, handler) {
|
|
31
|
-
if (element && event && handler) {
|
|
32
|
-
element.attachEvent('on' + event, handler);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
})();
|
|
37
|
-
|
|
38
|
-
/* istanbul ignore next */
|
|
39
|
-
export const off = (function() {
|
|
40
|
-
if (!isServer && document.removeEventListener) {
|
|
41
|
-
return function(element, event, handler) {
|
|
42
|
-
if (element && event) {
|
|
43
|
-
element.removeEventListener(event, handler, false);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
} else {
|
|
47
|
-
return function(element, event, handler) {
|
|
48
|
-
if (element && event) {
|
|
49
|
-
element.detachEvent('on' + event, handler);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
})();
|
|
54
|
-
|
|
55
|
-
/* istanbul ignore next */
|
|
56
|
-
export const once = function(el, event, fn) {
|
|
57
|
-
var listener = function() {
|
|
58
|
-
if (fn) {
|
|
59
|
-
fn.apply(this, arguments);
|
|
60
|
-
}
|
|
61
|
-
off(el, event, listener);
|
|
62
|
-
};
|
|
63
|
-
on(el, event, listener);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/* istanbul ignore next */
|
|
67
|
-
export function hasClass(el, cls) {
|
|
68
|
-
if (!el || !cls) return false;
|
|
69
|
-
if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
|
|
70
|
-
if (el.classList) {
|
|
71
|
-
return el.classList.contains(cls);
|
|
72
|
-
} else {
|
|
73
|
-
return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
/* istanbul ignore next */
|
|
78
|
-
export function addClass(el, cls) {
|
|
79
|
-
if (!el) return;
|
|
80
|
-
var curClass = el.className;
|
|
81
|
-
var classes = (cls || '').split(' ');
|
|
82
|
-
|
|
83
|
-
for (var i = 0, j = classes.length; i < j; i++) {
|
|
84
|
-
var clsName = classes[i];
|
|
85
|
-
if (!clsName) continue;
|
|
86
|
-
|
|
87
|
-
if (el.classList) {
|
|
88
|
-
el.classList.add(clsName);
|
|
89
|
-
} else if (!hasClass(el, clsName)) {
|
|
90
|
-
curClass += ' ' + clsName;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (!el.classList) {
|
|
94
|
-
el.setAttribute('class', curClass);
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
/* istanbul ignore next */
|
|
99
|
-
export function removeClass(el, cls) {
|
|
100
|
-
if (!el || !cls) return;
|
|
101
|
-
var classes = cls.split(' ');
|
|
102
|
-
var curClass = ' ' + el.className + ' ';
|
|
103
|
-
|
|
104
|
-
for (var i = 0, j = classes.length; i < j; i++) {
|
|
105
|
-
var clsName = classes[i];
|
|
106
|
-
if (!clsName) continue;
|
|
107
|
-
|
|
108
|
-
if (el.classList) {
|
|
109
|
-
el.classList.remove(clsName);
|
|
110
|
-
} else if (hasClass(el, clsName)) {
|
|
111
|
-
curClass = curClass.replace(' ' + clsName + ' ', ' ');
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (!el.classList) {
|
|
115
|
-
el.setAttribute('class', trim(curClass));
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
/* istanbul ignore next */
|
|
120
|
-
export const getStyle = ieVersion < 9 ? function(element, styleName) {
|
|
121
|
-
if (isServer) return;
|
|
122
|
-
if (!element || !styleName) return null;
|
|
123
|
-
styleName = camelCase(styleName);
|
|
124
|
-
if (styleName === 'float') {
|
|
125
|
-
styleName = 'styleFloat';
|
|
126
|
-
}
|
|
127
|
-
try {
|
|
128
|
-
switch (styleName) {
|
|
129
|
-
case 'opacity':
|
|
130
|
-
try {
|
|
131
|
-
return element.filters.item('alpha').opacity / 100;
|
|
132
|
-
} catch (e) {
|
|
133
|
-
return 1.0;
|
|
134
|
-
}
|
|
135
|
-
default:
|
|
136
|
-
return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);
|
|
137
|
-
}
|
|
138
|
-
} catch (e) {
|
|
139
|
-
return element.style[styleName];
|
|
140
|
-
}
|
|
141
|
-
} : function(element, styleName) {
|
|
142
|
-
if (isServer) return;
|
|
143
|
-
if (!element || !styleName) return null;
|
|
144
|
-
styleName = camelCase(styleName);
|
|
145
|
-
if (styleName === 'float') {
|
|
146
|
-
styleName = 'cssFloat';
|
|
147
|
-
}
|
|
148
|
-
try {
|
|
149
|
-
var computed = document.defaultView.getComputedStyle(element, '');
|
|
150
|
-
return element.style[styleName] || computed ? computed[styleName] : null;
|
|
151
|
-
} catch (e) {
|
|
152
|
-
return element.style[styleName];
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
/* istanbul ignore next */
|
|
157
|
-
export function setStyle(element, styleName, value) {
|
|
158
|
-
if (!element || !styleName) return;
|
|
159
|
-
|
|
160
|
-
if (typeof styleName === 'object') {
|
|
161
|
-
for (var prop in styleName) {
|
|
162
|
-
if (styleName.hasOwnProperty(prop)) {
|
|
163
|
-
setStyle(element, prop, styleName[prop]);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
} else {
|
|
167
|
-
styleName = camelCase(styleName);
|
|
168
|
-
if (styleName === 'opacity' && ieVersion < 9) {
|
|
169
|
-
element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
|
|
170
|
-
} else {
|
|
171
|
-
element.style[styleName] = value;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
export const isScroll = (el, vertical) => {
|
|
177
|
-
if (isServer) return;
|
|
178
|
-
|
|
179
|
-
const determinedDirection = vertical !== null && vertical !== undefined;
|
|
180
|
-
const overflow = determinedDirection
|
|
181
|
-
? vertical
|
|
182
|
-
? getStyle(el, 'overflow-y')
|
|
183
|
-
: getStyle(el, 'overflow-x')
|
|
184
|
-
: getStyle(el, 'overflow');
|
|
185
|
-
|
|
186
|
-
return overflow.match(/(scroll|auto)/);
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
export const getScrollContainer = (el, vertical) => {
|
|
190
|
-
if (isServer) return;
|
|
191
|
-
|
|
192
|
-
let parent = el;
|
|
193
|
-
while (parent) {
|
|
194
|
-
if ([window, document, document.documentElement].includes(parent)) {
|
|
195
|
-
return window;
|
|
196
|
-
}
|
|
197
|
-
if (isScroll(parent, vertical)) {
|
|
198
|
-
return parent;
|
|
199
|
-
}
|
|
200
|
-
parent = parent.parentNode;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return parent;
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
export const isInContainer = (el, container) => {
|
|
207
|
-
if (isServer || !el || !container) return false;
|
|
208
|
-
|
|
209
|
-
const elRect = el.getBoundingClientRect();
|
|
210
|
-
let containerRect;
|
|
211
|
-
|
|
212
|
-
if ([window, document, document.documentElement, null, undefined].includes(container)) {
|
|
213
|
-
containerRect = {
|
|
214
|
-
top: 0,
|
|
215
|
-
right: window.innerWidth,
|
|
216
|
-
bottom: window.innerHeight,
|
|
217
|
-
left: 0
|
|
218
|
-
};
|
|
219
|
-
} else {
|
|
220
|
-
containerRect = container.getBoundingClientRect();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
return elRect.top < containerRect.bottom &&
|
|
224
|
-
elRect.bottom > containerRect.top &&
|
|
225
|
-
elRect.right > containerRect.left &&
|
|
226
|
-
elRect.left < containerRect.right;
|
|
227
|
-
};
|
|
1
|
+
/* istanbul ignore next */
|
|
2
|
+
|
|
3
|
+
import * as Vue from 'vue';
|
|
4
|
+
|
|
5
|
+
const isServer = Vue.prototype.$isServer;
|
|
6
|
+
const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
|
|
7
|
+
const MOZ_HACK_REGEXP = /^moz([A-Z])/;
|
|
8
|
+
const ieVersion = isServer ? 0 : Number(document.documentMode);
|
|
9
|
+
|
|
10
|
+
/* istanbul ignore next */
|
|
11
|
+
const trim = function(string) {
|
|
12
|
+
return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
|
|
13
|
+
};
|
|
14
|
+
/* istanbul ignore next */
|
|
15
|
+
const camelCase = function(name) {
|
|
16
|
+
return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
|
|
17
|
+
return offset ? letter.toUpperCase() : letter;
|
|
18
|
+
}).replace(MOZ_HACK_REGEXP, 'Moz$1');
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/* istanbul ignore next */
|
|
22
|
+
export const on = (function() {
|
|
23
|
+
if (!isServer && document.addEventListener) {
|
|
24
|
+
return function(element, event, handler) {
|
|
25
|
+
if (element && event && handler) {
|
|
26
|
+
element.addEventListener(event, handler, false);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
} else {
|
|
30
|
+
return function(element, event, handler) {
|
|
31
|
+
if (element && event && handler) {
|
|
32
|
+
element.attachEvent('on' + event, handler);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
})();
|
|
37
|
+
|
|
38
|
+
/* istanbul ignore next */
|
|
39
|
+
export const off = (function() {
|
|
40
|
+
if (!isServer && document.removeEventListener) {
|
|
41
|
+
return function(element, event, handler) {
|
|
42
|
+
if (element && event) {
|
|
43
|
+
element.removeEventListener(event, handler, false);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
} else {
|
|
47
|
+
return function(element, event, handler) {
|
|
48
|
+
if (element && event) {
|
|
49
|
+
element.detachEvent('on' + event, handler);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
})();
|
|
54
|
+
|
|
55
|
+
/* istanbul ignore next */
|
|
56
|
+
export const once = function(el, event, fn) {
|
|
57
|
+
var listener = function() {
|
|
58
|
+
if (fn) {
|
|
59
|
+
fn.apply(this, arguments);
|
|
60
|
+
}
|
|
61
|
+
off(el, event, listener);
|
|
62
|
+
};
|
|
63
|
+
on(el, event, listener);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/* istanbul ignore next */
|
|
67
|
+
export function hasClass(el, cls) {
|
|
68
|
+
if (!el || !cls) return false;
|
|
69
|
+
if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
|
|
70
|
+
if (el.classList) {
|
|
71
|
+
return el.classList.contains(cls);
|
|
72
|
+
} else {
|
|
73
|
+
return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/* istanbul ignore next */
|
|
78
|
+
export function addClass(el, cls) {
|
|
79
|
+
if (!el) return;
|
|
80
|
+
var curClass = el.className;
|
|
81
|
+
var classes = (cls || '').split(' ');
|
|
82
|
+
|
|
83
|
+
for (var i = 0, j = classes.length; i < j; i++) {
|
|
84
|
+
var clsName = classes[i];
|
|
85
|
+
if (!clsName) continue;
|
|
86
|
+
|
|
87
|
+
if (el.classList) {
|
|
88
|
+
el.classList.add(clsName);
|
|
89
|
+
} else if (!hasClass(el, clsName)) {
|
|
90
|
+
curClass += ' ' + clsName;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!el.classList) {
|
|
94
|
+
el.setAttribute('class', curClass);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/* istanbul ignore next */
|
|
99
|
+
export function removeClass(el, cls) {
|
|
100
|
+
if (!el || !cls) return;
|
|
101
|
+
var classes = cls.split(' ');
|
|
102
|
+
var curClass = ' ' + el.className + ' ';
|
|
103
|
+
|
|
104
|
+
for (var i = 0, j = classes.length; i < j; i++) {
|
|
105
|
+
var clsName = classes[i];
|
|
106
|
+
if (!clsName) continue;
|
|
107
|
+
|
|
108
|
+
if (el.classList) {
|
|
109
|
+
el.classList.remove(clsName);
|
|
110
|
+
} else if (hasClass(el, clsName)) {
|
|
111
|
+
curClass = curClass.replace(' ' + clsName + ' ', ' ');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (!el.classList) {
|
|
115
|
+
el.setAttribute('class', trim(curClass));
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/* istanbul ignore next */
|
|
120
|
+
export const getStyle = ieVersion < 9 ? function(element, styleName) {
|
|
121
|
+
if (isServer) return;
|
|
122
|
+
if (!element || !styleName) return null;
|
|
123
|
+
styleName = camelCase(styleName);
|
|
124
|
+
if (styleName === 'float') {
|
|
125
|
+
styleName = 'styleFloat';
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
switch (styleName) {
|
|
129
|
+
case 'opacity':
|
|
130
|
+
try {
|
|
131
|
+
return element.filters.item('alpha').opacity / 100;
|
|
132
|
+
} catch (e) {
|
|
133
|
+
return 1.0;
|
|
134
|
+
}
|
|
135
|
+
default:
|
|
136
|
+
return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);
|
|
137
|
+
}
|
|
138
|
+
} catch (e) {
|
|
139
|
+
return element.style[styleName];
|
|
140
|
+
}
|
|
141
|
+
} : function(element, styleName) {
|
|
142
|
+
if (isServer) return;
|
|
143
|
+
if (!element || !styleName) return null;
|
|
144
|
+
styleName = camelCase(styleName);
|
|
145
|
+
if (styleName === 'float') {
|
|
146
|
+
styleName = 'cssFloat';
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
var computed = document.defaultView.getComputedStyle(element, '');
|
|
150
|
+
return element.style[styleName] || computed ? computed[styleName] : null;
|
|
151
|
+
} catch (e) {
|
|
152
|
+
return element.style[styleName];
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/* istanbul ignore next */
|
|
157
|
+
export function setStyle(element, styleName, value) {
|
|
158
|
+
if (!element || !styleName) return;
|
|
159
|
+
|
|
160
|
+
if (typeof styleName === 'object') {
|
|
161
|
+
for (var prop in styleName) {
|
|
162
|
+
if (styleName.hasOwnProperty(prop)) {
|
|
163
|
+
setStyle(element, prop, styleName[prop]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
styleName = camelCase(styleName);
|
|
168
|
+
if (styleName === 'opacity' && ieVersion < 9) {
|
|
169
|
+
element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
|
|
170
|
+
} else {
|
|
171
|
+
element.style[styleName] = value;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export const isScroll = (el, vertical) => {
|
|
177
|
+
if (isServer) return;
|
|
178
|
+
|
|
179
|
+
const determinedDirection = vertical !== null && vertical !== undefined;
|
|
180
|
+
const overflow = determinedDirection
|
|
181
|
+
? vertical
|
|
182
|
+
? getStyle(el, 'overflow-y')
|
|
183
|
+
: getStyle(el, 'overflow-x')
|
|
184
|
+
: getStyle(el, 'overflow');
|
|
185
|
+
|
|
186
|
+
return overflow.match(/(scroll|auto)/);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
export const getScrollContainer = (el, vertical) => {
|
|
190
|
+
if (isServer) return;
|
|
191
|
+
|
|
192
|
+
let parent = el;
|
|
193
|
+
while (parent) {
|
|
194
|
+
if ([window, document, document.documentElement].includes(parent)) {
|
|
195
|
+
return window;
|
|
196
|
+
}
|
|
197
|
+
if (isScroll(parent, vertical)) {
|
|
198
|
+
return parent;
|
|
199
|
+
}
|
|
200
|
+
parent = parent.parentNode;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return parent;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
export const isInContainer = (el, container) => {
|
|
207
|
+
if (isServer || !el || !container) return false;
|
|
208
|
+
|
|
209
|
+
const elRect = el.getBoundingClientRect();
|
|
210
|
+
let containerRect;
|
|
211
|
+
|
|
212
|
+
if ([window, document, document.documentElement, null, undefined].includes(container)) {
|
|
213
|
+
containerRect = {
|
|
214
|
+
top: 0,
|
|
215
|
+
right: window.innerWidth,
|
|
216
|
+
bottom: window.innerHeight,
|
|
217
|
+
left: 0
|
|
218
|
+
};
|
|
219
|
+
} else {
|
|
220
|
+
containerRect = container.getBoundingClientRect();
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
return elRect.top < containerRect.bottom &&
|
|
224
|
+
elRect.bottom > containerRect.top &&
|
|
225
|
+
elRect.right > containerRect.left &&
|
|
226
|
+
elRect.left < containerRect.right;
|
|
227
|
+
};
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
const eventRegistryMap = new WeakMap()
|
|
2
|
-
function getRegistry(instance) {
|
|
3
|
-
let events = eventRegistryMap.get(instance)
|
|
4
|
-
if (!events) {
|
|
5
|
-
eventRegistryMap.set(instance, (events = Object.create(null)))
|
|
6
|
-
}
|
|
7
|
-
return events
|
|
8
|
-
}
|
|
9
|
-
export function $on(instance, event, fn) {
|
|
10
|
-
if (Array.isArray(event)) {
|
|
11
|
-
event.forEach((e) => $on(instance, e, fn))
|
|
12
|
-
} else {
|
|
13
|
-
const events = getRegistry(instance)
|
|
14
|
-
;(events[event] || (events[event] = [])).push(fn)
|
|
15
|
-
}
|
|
16
|
-
return instance
|
|
17
|
-
}
|
|
18
|
-
export function $once(instance, event, fn) {
|
|
19
|
-
const wrapped = (...args) => {
|
|
20
|
-
$off(instance, event, wrapped)
|
|
21
|
-
fn.call(instance, ...args)
|
|
22
|
-
}
|
|
23
|
-
wrapped.fn = fn
|
|
24
|
-
$on(instance, event, wrapped)
|
|
25
|
-
return instance
|
|
26
|
-
}
|
|
27
|
-
export function $off(instance, event, fn) {
|
|
28
|
-
const vm = instance
|
|
29
|
-
// all
|
|
30
|
-
if (!event) {
|
|
31
|
-
eventRegistryMap.set(instance, Object.create(null))
|
|
32
|
-
return vm
|
|
33
|
-
}
|
|
34
|
-
// array of events
|
|
35
|
-
if (Array.isArray(event)) {
|
|
36
|
-
event.forEach((e) => $off(instance, e, fn))
|
|
37
|
-
return vm
|
|
38
|
-
}
|
|
39
|
-
// specific event
|
|
40
|
-
const events = getRegistry(instance)
|
|
41
|
-
const cbs = events[event]
|
|
42
|
-
if (!cbs) {
|
|
43
|
-
return vm
|
|
44
|
-
}
|
|
45
|
-
if (!fn) {
|
|
46
|
-
events[event] = undefined
|
|
47
|
-
return vm
|
|
48
|
-
}
|
|
49
|
-
events[event] = cbs.filter((cb) => !(cb === fn || cb.fn === fn))
|
|
50
|
-
return vm
|
|
51
|
-
}
|
|
52
|
-
export function $emit(instance, event, ...args) {
|
|
53
|
-
instance && instance.$emit && instance.$emit(event, ...args)
|
|
54
|
-
const cbs = getRegistry(instance)[event]
|
|
55
|
-
if (cbs) {
|
|
56
|
-
cbs.map((cb) => cb.apply(instance, args))
|
|
57
|
-
}
|
|
58
|
-
return instance
|
|
59
|
-
}
|
|
1
|
+
const eventRegistryMap = new WeakMap()
|
|
2
|
+
function getRegistry(instance) {
|
|
3
|
+
let events = eventRegistryMap.get(instance)
|
|
4
|
+
if (!events) {
|
|
5
|
+
eventRegistryMap.set(instance, (events = Object.create(null)))
|
|
6
|
+
}
|
|
7
|
+
return events
|
|
8
|
+
}
|
|
9
|
+
export function $on(instance, event, fn) {
|
|
10
|
+
if (Array.isArray(event)) {
|
|
11
|
+
event.forEach((e) => $on(instance, e, fn))
|
|
12
|
+
} else {
|
|
13
|
+
const events = getRegistry(instance)
|
|
14
|
+
;(events[event] || (events[event] = [])).push(fn)
|
|
15
|
+
}
|
|
16
|
+
return instance
|
|
17
|
+
}
|
|
18
|
+
export function $once(instance, event, fn) {
|
|
19
|
+
const wrapped = (...args) => {
|
|
20
|
+
$off(instance, event, wrapped)
|
|
21
|
+
fn.call(instance, ...args)
|
|
22
|
+
}
|
|
23
|
+
wrapped.fn = fn
|
|
24
|
+
$on(instance, event, wrapped)
|
|
25
|
+
return instance
|
|
26
|
+
}
|
|
27
|
+
export function $off(instance, event, fn) {
|
|
28
|
+
const vm = instance
|
|
29
|
+
// all
|
|
30
|
+
if (!event) {
|
|
31
|
+
eventRegistryMap.set(instance, Object.create(null))
|
|
32
|
+
return vm
|
|
33
|
+
}
|
|
34
|
+
// array of events
|
|
35
|
+
if (Array.isArray(event)) {
|
|
36
|
+
event.forEach((e) => $off(instance, e, fn))
|
|
37
|
+
return vm
|
|
38
|
+
}
|
|
39
|
+
// specific event
|
|
40
|
+
const events = getRegistry(instance)
|
|
41
|
+
const cbs = events[event]
|
|
42
|
+
if (!cbs) {
|
|
43
|
+
return vm
|
|
44
|
+
}
|
|
45
|
+
if (!fn) {
|
|
46
|
+
events[event] = undefined
|
|
47
|
+
return vm
|
|
48
|
+
}
|
|
49
|
+
events[event] = cbs.filter((cb) => !(cb === fn || cb.fn === fn))
|
|
50
|
+
return vm
|
|
51
|
+
}
|
|
52
|
+
export function $emit(instance, event, ...args) {
|
|
53
|
+
instance && instance.$emit && instance.$emit(event, ...args)
|
|
54
|
+
const cbs = getRegistry(instance)[event]
|
|
55
|
+
if (cbs) {
|
|
56
|
+
cbs.map((cb) => cb.apply(instance, args))
|
|
57
|
+
}
|
|
58
|
+
return instance
|
|
59
|
+
}
|