1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | var global = new Function('return this')();
|
6 |
|
7 | var isClient = typeof window === "object" && window === global;
|
8 | var isServer = !isClient;
|
9 |
|
10 | var AP = Array.prototype;
|
11 | var OP = Object.prototype;
|
12 |
|
13 | var arrayForEach = AP.forEach;
|
14 | var arraySlice = AP.slice;
|
15 | var toString = OP.toString;
|
16 | var hasOwnProperty = OP.hasOwnProperty;
|
17 |
|
18 | var referenceTypes = {'object': !0, 'function': !0};
|
19 |
|
20 | var support__proto__ = '__proto__' in {};
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | function noop () {
|
27 | }
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | function returnFalse () {
|
34 | return false
|
35 | }
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 | function returnTrue () {
|
42 | return true
|
43 | }
|
44 |
|
45 | var sNativeCode = (isNaN + '').slice((isNaN + '').indexOf('{'));
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 | function isNativeFunction(func) {
|
53 | return toString.call(func) === '[object Function]' && sNativeCode === (func += '').slice(func.indexOf('{'))
|
54 | }
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | var assign = isNativeFunction(Object.assign) ? Object.assign : (Object.assign = function assign(target/*, ...args*/) {
|
63 | if (target == null) {
|
64 | throw new TypeError('Cannot convert undefined or null to object')
|
65 | }
|
66 |
|
67 | var output = Object(target),
|
68 | i = -1,
|
69 | args = arraySlice.call(arguments, 1),
|
70 | l = args.length;
|
71 |
|
72 | while (++i < l) {
|
73 | var source = args[i];
|
74 |
|
75 | if (source) {
|
76 | for (var prop in source) {
|
77 | if (source.hasOwnProperty(prop)) {
|
78 | output[prop] = source[prop];
|
79 | }
|
80 | }
|
81 | }
|
82 | }
|
83 | return output
|
84 | });
|
85 |
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | var create = isNativeFunction(Object.create) ? Object.create : (Object.create = function create(object, props) {
|
94 | if (object == null || !referenceTypes[typeof object]) {
|
95 | throw 'Object prototype may only be an Object or null'
|
96 | }
|
97 |
|
98 | var proto = support__proto__ ? {__proto__: object} : (noop.prototype = object, new noop);
|
99 |
|
100 | if (props) {
|
101 | if (referenceTypes[typeof props]) {
|
102 | for (var propName in props) {
|
103 | if (hasOwnProperty.call(props, propName)) {
|
104 | var prop = props[propName];
|
105 |
|
106 | if (prop && referenceTypes[typeof prop]) {
|
107 | object[propName] = prop.value;
|
108 | } else {
|
109 | throw 'Property description must be an object: value'
|
110 | }
|
111 | }
|
112 | }
|
113 | }
|
114 | }
|
115 | return proto
|
116 | });
|
117 |
|
118 |
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 | var isArray = isNativeFunction(Array.isArray) ? Array.isArray : (Array.isArray = function isArray(arg) {
|
125 | return toString.call(arg) === '[object Array]'
|
126 | });
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 |
|
134 | function isEmptyObject(object) {
|
135 | for (var k in object) {
|
136 | return false
|
137 | }
|
138 | return true
|
139 | }
|
140 |
|
141 |
|
142 |
|
143 |
|
144 |
|
145 | var firstTraverseOwnProperty = function () {
|
146 | var o = {a: 1};
|
147 | var c = create(o);
|
148 | c.b = 1;
|
149 | for (var k in c) {
|
150 | return k === 'b'
|
151 | }
|
152 | }();
|
153 |
|
154 |
|
155 |
|
156 |
|
157 |
|
158 |
|
159 |
|
160 | function isPlainObject (object) {
|
161 |
|
162 |
|
163 |
|
164 | if (!object || toString.call(object) !== "[object Object]") { return false }
|
165 | try {
|
166 |
|
167 | if (object.constructor && !hasOwnProperty.call(object, "constructor") && !hasOwnProperty.call(object.constructor.prototype, "isPrototypeOf")) {
|
168 | return false
|
169 | }
|
170 | } catch (e) {
|
171 |
|
172 | return false
|
173 | }
|
174 | var k;
|
175 | if (firstTraverseOwnProperty) {
|
176 | for (k in object) {
|
177 | 0;
|
178 | }
|
179 | return typeof k !== 'string' || hasOwnProperty.call(object, k)
|
180 | }
|
181 | for (k in object) {
|
182 | return hasOwnProperty.call(object, k)
|
183 | }
|
184 | return true
|
185 | }
|
186 |
|
187 | var keys = isNativeFunction(Object.keys) ? Object.keys : function () {
|
188 | var unableEnumerateOwnKeys, key;
|
189 | for (key in {toString: 1}) {
|
190 | 0;
|
191 | break
|
192 | }
|
193 |
|
194 |
|
195 | key || (unableEnumerateOwnKeys = 'constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf'.split(' '));
|
196 |
|
197 | |
198 |
|
199 |
|
200 |
|
201 |
|
202 |
|
203 | return (Object.keys = function keys (object) {
|
204 | var arrkeys = [], key, l, i;
|
205 | if (unableEnumerateOwnKeys) {
|
206 | l = unableEnumerateOwnKeys.length;
|
207 | i = -1;
|
208 | while (++i < l) {
|
209 | hasOwnProperty.call(object, unableEnumerateOwnKeys[i]) && (arrkeys[l++] = unableEnumerateOwnKeys[i]);
|
210 | }
|
211 | }
|
212 | for (key in object) {
|
213 | hasOwnProperty.call(object, key) && (arrkeys[l++] = key);
|
214 | }
|
215 | return arrkeys
|
216 | })
|
217 | }();
|
218 |
|
219 |
|
220 |
|
221 |
|
222 |
|
223 |
|
224 |
|
225 | function merge(target/*, ...args*/) {
|
226 | var arguments$1 = arguments;
|
227 |
|
228 | if (target == null) {
|
229 | throw new TypeError('Cannot convert undefined or null to object')
|
230 | }
|
231 |
|
232 | for (var l = arguments.length, i = 0; ++i < l;) {
|
233 | var overrider = arguments$1[i];
|
234 |
|
235 | if (overrider && overrider !== target) {
|
236 | if (isArray(overrider)) {
|
237 | mergeArray(target, overrider);
|
238 | } else {
|
239 | mergeObject(target, overrider);
|
240 | }
|
241 | }
|
242 | }
|
243 | return target
|
244 |
|
245 | function mergeArray(target, overrider){
|
246 | for (var n = overrider.length, k = -1; ++k < n;) {
|
247 | deepMerge(target, overrider, k);
|
248 | }
|
249 | return target
|
250 | }
|
251 |
|
252 | function mergeObject(target, overrider){
|
253 | for (var k in overrider) {
|
254 | deepMerge(target, overrider, k);
|
255 | }
|
256 | return target
|
257 | }
|
258 |
|
259 | function deepMerge(target, overrider, key) {
|
260 | var oValue = overrider[key];
|
261 | var tValue = target[key];
|
262 |
|
263 | if (oValue && oValue !== tValue && typeof oValue === 'object') {
|
264 |
|
265 | if (isArray(oValue)) {
|
266 | target[key] = mergeArray(tValue && isArray(tValue) ? tValue : [], oValue);
|
267 |
|
268 | } else if (isPlainObject(oValue)) {
|
269 | target[key] = mergeObject(tValue && isPlainObject(tValue) ? tValue : {}, oValue);
|
270 |
|
271 | } else {
|
272 | target[key] = oValue;
|
273 | }
|
274 | } else {
|
275 | target[key] = oValue;
|
276 | }
|
277 | }
|
278 | }
|
279 |
|
280 |
|
281 |
|
282 |
|
283 |
|
284 | function namespace (root, sNamespace, variable) {
|
285 |
|
286 | if (typeof root === 'string') {
|
287 | variable = sNamespace;
|
288 | sNamespace = root;
|
289 | root = global;
|
290 | }
|
291 |
|
292 | if (!root || typeof sNamespace !== 'string') {
|
293 | return
|
294 | }
|
295 |
|
296 | var namespaces = sNamespace.split('.');
|
297 | var i = -1;
|
298 | var l = namespaces.length - 1;
|
299 |
|
300 |
|
301 | if (typeof variable === 'undefined') {
|
302 | while (++i < l) {
|
303 | root = root[namespaces[i]];
|
304 | if (!root) {
|
305 | return
|
306 | }
|
307 | }
|
308 | return root[namespaces[l]]
|
309 | }
|
310 |
|
311 | while (++i < l) {
|
312 | root = root[namespaces[i]] || (root[namespaces[i]] = {});
|
313 | }
|
314 | return (root[namespaces[l]] = variable)
|
315 | }
|
316 |
|
317 | function toArray (object, startIndex, endIndex) {
|
318 | if (object == null) {
|
319 | throw new Error('can not convert from null or undefined')
|
320 | }
|
321 | return arraySlice.call(object, startIndex, endIndex)
|
322 | }
|
323 |
|
324 |
|
325 |
|
326 |
|
327 |
|
328 |
|
329 |
|
330 | function typeOf(object) {
|
331 | return toString.call(object).slice(8, -1)
|
332 | }
|
333 |
|
334 |
|
335 |
|
336 |
|
337 |
|
338 |
|
339 |
|
340 |
|
341 |
|
342 |
|
343 |
|
344 |
|
345 |
|
346 |
|
347 |
|
348 | function S4() {
|
349 | return (((1 + Math.random()) * 0x10000) | 0).toString(16).slice(1)
|
350 | }
|
351 |
|
352 |
|
353 |
|
354 |
|
355 |
|
356 | function uuid() {
|
357 | return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4())
|
358 | }
|
359 |
|
360 | exports.assign = assign;
|
361 | exports.create = create;
|
362 | exports.isArray = isArray;
|
363 | exports.isEmptyObject = isEmptyObject;
|
364 | exports.isNativeFunction = isNativeFunction;
|
365 | exports.isPlainObject = isPlainObject;
|
366 | exports.keys = keys;
|
367 | exports.merge = merge;
|
368 | exports.namespace = namespace;
|
369 | exports.toArray = toArray;
|
370 | exports.typeOf = typeOf;
|
371 | exports.uuid = uuid;
|
372 | exports.global = global;
|
373 | exports.isClient = isClient;
|
374 | exports.isServer = isServer;
|
375 | exports.arrayForEach = arrayForEach;
|
376 | exports.arraySlice = arraySlice;
|
377 | exports.toString = toString;
|
378 | exports.hasOwnProperty = hasOwnProperty;
|
379 | exports.referenceTypes = referenceTypes;
|
380 | exports.support__proto__ = support__proto__;
|
381 | exports.noop = noop;
|
382 | exports.returnFalse = returnFalse;
|
383 | exports.returnTrue = returnTrue;
|