@cloudcare/browser-core 3.0.29 → 3.1.1
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/cjs/browser/addEventListener.js +3 -8
- package/cjs/browser/addEventListener.js.map +1 -0
- package/cjs/browser/cookie.js +3 -14
- package/cjs/browser/cookie.js.map +1 -0
- package/cjs/browser/fetchObservable.js +4 -21
- package/cjs/browser/fetchObservable.js.map +1 -0
- package/cjs/browser/htmlDomUtils.js +3 -9
- package/cjs/browser/htmlDomUtils.js.map +1 -0
- package/cjs/browser/pageExitObservable.js +3 -9
- package/cjs/browser/pageExitObservable.js.map +1 -0
- package/cjs/browser/runOnReadyState.js +2 -4
- package/cjs/browser/runOnReadyState.js.map +1 -0
- package/cjs/browser/scroll.js +32 -0
- package/cjs/browser/scroll.js.map +1 -0
- package/cjs/browser/xhrObservable.js +2 -21
- package/cjs/browser/xhrObservable.js.map +1 -0
- package/cjs/configuration/configuration.js +9 -20
- package/cjs/configuration/configuration.js.map +1 -0
- package/cjs/configuration/transportConfiguration.js +6 -20
- package/cjs/configuration/transportConfiguration.js.map +1 -0
- package/cjs/console/consoleObservable.js +3 -21
- package/cjs/console/consoleObservable.js.map +1 -0
- package/cjs/dataMap.js +24 -10
- package/cjs/dataMap.js.map +1 -0
- package/cjs/error/trackRuntimeError.js +3 -7
- package/cjs/error/trackRuntimeError.js.map +1 -0
- package/cjs/helper/boundedBuffer.js +2 -6
- package/cjs/helper/boundedBuffer.js.map +1 -0
- package/cjs/helper/byteUtils.js +6 -16
- package/cjs/helper/byteUtils.js.map +1 -0
- package/cjs/helper/catchUserErrors.js +2 -4
- package/cjs/helper/catchUserErrors.js.map +1 -0
- package/cjs/helper/contextHistory.js +21 -37
- package/cjs/helper/contextHistory.js.map +1 -0
- package/cjs/helper/createEventRateLimiter.js +2 -10
- package/cjs/helper/createEventRateLimiter.js.map +1 -0
- package/cjs/helper/deviceInfo.js +10 -64
- package/cjs/helper/deviceInfo.js.map +1 -0
- package/cjs/helper/display.js +2 -5
- package/cjs/helper/display.js.map +1 -0
- package/cjs/helper/enums.js +8 -2
- package/cjs/helper/enums.js.map +1 -0
- package/cjs/helper/errorTools.js +32 -38
- package/cjs/helper/errorTools.js.map +1 -0
- package/cjs/helper/eventEmitter.js +2 -6
- package/cjs/helper/eventEmitter.js.map +1 -0
- package/cjs/helper/getZoneJsOriginalValue.js +2 -5
- package/cjs/helper/getZoneJsOriginalValue.js.map +1 -0
- package/cjs/helper/instrumentMethod.js +10 -22
- package/cjs/helper/instrumentMethod.js.map +1 -0
- package/cjs/helper/lifeCycle.js +2 -9
- package/cjs/helper/lifeCycle.js.map +1 -0
- package/cjs/helper/limitModification.js +4 -22
- package/cjs/helper/limitModification.js.map +1 -0
- package/cjs/helper/mobileUtil.js +2 -20
- package/cjs/helper/mobileUtil.js.map +1 -0
- package/cjs/helper/monitor.js +2 -11
- package/cjs/helper/monitor.js.map +1 -0
- package/cjs/helper/observable.js +2 -9
- package/cjs/helper/observable.js.map +1 -0
- package/cjs/helper/readBytesFromStream.js +4 -14
- package/cjs/helper/readBytesFromStream.js.map +1 -0
- package/cjs/helper/sanitize.js +38 -61
- package/cjs/helper/sanitize.js.map +1 -0
- package/cjs/helper/serialisation/contextManager.js +5 -15
- package/cjs/helper/serialisation/contextManager.js.map +1 -0
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js +2 -7
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
- package/cjs/helper/serialisation/jsonStringify.js +6 -12
- package/cjs/helper/serialisation/jsonStringify.js.map +1 -0
- package/cjs/helper/serialisation/rowData.js +3 -10
- package/cjs/helper/serialisation/rowData.js.map +1 -0
- package/cjs/helper/timer.js +2 -8
- package/cjs/helper/timer.js.map +1 -0
- package/cjs/helper/tools.js +57 -444
- package/cjs/helper/tools.js.map +1 -0
- package/cjs/helper/urlPolyfill.js +5 -18
- package/cjs/helper/urlPolyfill.js.map +1 -0
- package/cjs/index.js +24 -95
- package/cjs/index.js.map +1 -0
- package/cjs/init.js +14 -20
- package/cjs/init.js.map +1 -0
- package/cjs/report/reportObservable.js +5 -24
- package/cjs/report/reportObservable.js.map +1 -0
- package/cjs/session/sessionConstants.js +2 -3
- package/cjs/session/sessionConstants.js.map +1 -0
- package/cjs/session/sessionCookieStore.js +11 -46
- package/cjs/session/sessionCookieStore.js.map +1 -0
- package/cjs/session/sessionManagement.js +2 -19
- package/cjs/session/sessionManagement.js.map +1 -0
- package/cjs/session/sessionStore.js +3 -28
- package/cjs/session/sessionStore.js.map +1 -0
- package/cjs/synthetics/syntheticsWorkerValues.js +2 -6
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/cjs/synthetics/usr.js +2 -8
- package/cjs/synthetics/usr.js.map +1 -0
- package/cjs/telemetry/telemetry.js +125 -0
- package/cjs/telemetry/telemetry.js.map +1 -0
- package/cjs/telemetry/types.js +17 -0
- package/cjs/telemetry/types.js.map +1 -0
- package/cjs/tracekit/computeStackTrace.js +4 -34
- package/cjs/tracekit/computeStackTrace.js.map +1 -0
- package/cjs/tracekit/index.js +2 -3
- package/cjs/tracekit/index.js.map +1 -0
- package/cjs/tracekit/tracekit.js +3 -18
- package/cjs/tracekit/tracekit.js.map +1 -0
- package/cjs/transport/batch.js +5 -54
- package/cjs/transport/batch.js.map +1 -0
- package/cjs/transport/eventBridge.js +2 -7
- package/cjs/transport/eventBridge.js.map +1 -0
- package/cjs/transport/flushController.js +8 -21
- package/cjs/transport/flushController.js.map +1 -0
- package/cjs/transport/httpRequest.js +4 -18
- package/cjs/transport/httpRequest.js.map +1 -0
- package/cjs/transport/index.js +2 -6
- package/cjs/transport/index.js.map +1 -0
- package/cjs/transport/sendWithRetryStrategy.js +3 -27
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
- package/cjs/transport/startBatchWithReplica.js +2 -7
- package/cjs/transport/startBatchWithReplica.js.map +1 -0
- package/cjs/user/index.js +2 -3
- package/cjs/user/index.js.map +1 -0
- package/cjs/user/user.js +3 -8
- package/cjs/user/user.js.map +1 -0
- package/cjs/worker.js +2 -2
- package/cjs/worker.js.map +1 -0
- package/esm/browser/addEventListener.js +3 -3
- package/esm/browser/addEventListener.js.map +1 -0
- package/esm/browser/cookie.js +3 -6
- package/esm/browser/cookie.js.map +1 -0
- package/esm/browser/fetchObservable.js +4 -14
- package/esm/browser/fetchObservable.js.map +1 -0
- package/esm/browser/htmlDomUtils.js +3 -2
- package/esm/browser/htmlDomUtils.js.map +1 -0
- package/esm/browser/pageExitObservable.js +3 -2
- package/esm/browser/pageExitObservable.js.map +1 -0
- package/esm/browser/runOnReadyState.js +2 -1
- package/esm/browser/runOnReadyState.js.map +1 -0
- package/esm/browser/scroll.js +25 -0
- package/esm/browser/scroll.js.map +1 -0
- package/esm/browser/xhrObservable.js +2 -14
- package/esm/browser/xhrObservable.js.map +1 -0
- package/esm/configuration/configuration.js +9 -9
- package/esm/configuration/configuration.js.map +1 -0
- package/esm/configuration/transportConfiguration.js +6 -17
- package/esm/configuration/transportConfiguration.js.map +1 -0
- package/esm/console/consoleObservable.js +3 -11
- package/esm/console/consoleObservable.js.map +1 -0
- package/esm/dataMap.js +24 -8
- package/esm/dataMap.js.map +1 -0
- package/esm/error/trackRuntimeError.js +4 -3
- package/esm/error/trackRuntimeError.js.map +1 -0
- package/esm/helper/boundedBuffer.js +2 -4
- package/esm/helper/boundedBuffer.js.map +1 -0
- package/esm/helper/byteUtils.js +6 -13
- package/esm/helper/byteUtils.js.map +1 -0
- package/esm/helper/catchUserErrors.js +2 -2
- package/esm/helper/catchUserErrors.js.map +1 -0
- package/esm/helper/contextHistory.js +21 -33
- package/esm/helper/contextHistory.js.map +1 -0
- package/esm/helper/createEventRateLimiter.js +2 -6
- package/esm/helper/createEventRateLimiter.js.map +1 -0
- package/esm/helper/deviceInfo.js +10 -62
- package/esm/helper/deviceInfo.js.map +1 -0
- package/esm/helper/display.js +2 -3
- package/esm/helper/display.js.map +1 -0
- package/esm/helper/enums.js +6 -1
- package/esm/helper/enums.js.map +1 -0
- package/esm/helper/errorTools.js +30 -25
- package/esm/helper/errorTools.js.map +1 -0
- package/esm/helper/eventEmitter.js +2 -5
- package/esm/helper/eventEmitter.js.map +1 -0
- package/esm/helper/getZoneJsOriginalValue.js +2 -4
- package/esm/helper/getZoneJsOriginalValue.js.map +1 -0
- package/esm/helper/instrumentMethod.js +10 -16
- package/esm/helper/instrumentMethod.js.map +1 -0
- package/esm/helper/lifeCycle.js +2 -5
- package/esm/helper/lifeCycle.js.map +1 -0
- package/esm/helper/limitModification.js +5 -20
- package/esm/helper/limitModification.js.map +1 -0
- package/esm/helper/mobileUtil.js +2 -16
- package/esm/helper/mobileUtil.js.map +1 -0
- package/esm/helper/monitor.js +2 -3
- package/esm/helper/monitor.js.map +1 -0
- package/esm/helper/observable.js +2 -7
- package/esm/helper/observable.js.map +1 -0
- package/esm/helper/readBytesFromStream.js +4 -12
- package/esm/helper/readBytesFromStream.js.map +1 -0
- package/esm/helper/sanitize.js +40 -57
- package/esm/helper/sanitize.js.map +1 -0
- package/esm/helper/serialisation/contextManager.js +5 -9
- package/esm/helper/serialisation/contextManager.js.map +1 -0
- package/esm/helper/serialisation/heavyCustomerDataWarning.js +5 -4
- package/esm/helper/serialisation/heavyCustomerDataWarning.js.map +1 -0
- package/esm/helper/serialisation/jsonStringify.js +7 -10
- package/esm/helper/serialisation/jsonStringify.js.map +1 -0
- package/esm/helper/serialisation/rowData.js +3 -4
- package/esm/helper/serialisation/rowData.js.map +1 -0
- package/esm/helper/timer.js +2 -1
- package/esm/helper/timer.js.map +1 -0
- package/esm/helper/tools.js +57 -256
- package/esm/helper/tools.js.map +1 -0
- package/esm/helper/urlPolyfill.js +5 -9
- package/esm/helper/urlPolyfill.js.map +1 -0
- package/esm/index.js +4 -1
- package/esm/index.js.map +1 -0
- package/esm/init.js +14 -14
- package/esm/init.js.map +1 -0
- package/esm/report/reportObservable.js +5 -16
- package/esm/report/reportObservable.js.map +1 -0
- package/esm/session/sessionConstants.js +2 -1
- package/esm/session/sessionConstants.js.map +1 -0
- package/esm/session/sessionCookieStore.js +11 -38
- package/esm/session/sessionCookieStore.js.map +1 -0
- package/esm/session/sessionManagement.js +2 -8
- package/esm/session/sessionManagement.js.map +1 -0
- package/esm/session/sessionStore.js +4 -22
- package/esm/session/sessionStore.js.map +1 -0
- package/esm/synthetics/syntheticsWorkerValues.js +2 -1
- package/esm/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/esm/synthetics/usr.js +2 -3
- package/esm/synthetics/usr.js.map +1 -0
- package/esm/telemetry/telemetry.js +111 -0
- package/esm/telemetry/telemetry.js.map +1 -0
- package/esm/telemetry/types.js +9 -0
- package/esm/telemetry/types.js.map +1 -0
- package/esm/tracekit/computeStackTrace.js +4 -31
- package/esm/tracekit/computeStackTrace.js.map +1 -0
- package/esm/tracekit/index.js +2 -1
- package/esm/tracekit/index.js.map +1 -0
- package/esm/tracekit/tracekit.js +5 -14
- package/esm/tracekit/tracekit.js.map +1 -0
- package/esm/transport/batch.js +7 -45
- package/esm/transport/batch.js.map +1 -0
- package/esm/transport/eventBridge.js +2 -5
- package/esm/transport/eventBridge.js.map +1 -0
- package/esm/transport/flushController.js +11 -20
- package/esm/transport/flushController.js.map +1 -0
- package/esm/transport/httpRequest.js +4 -15
- package/esm/transport/httpRequest.js.map +1 -0
- package/esm/transport/index.js +2 -1
- package/esm/transport/index.js.map +1 -0
- package/esm/transport/sendWithRetryStrategy.js +3 -21
- package/esm/transport/sendWithRetryStrategy.js.map +1 -0
- package/esm/transport/startBatchWithReplica.js +2 -3
- package/esm/transport/startBatchWithReplica.js.map +1 -0
- package/esm/user/index.js.map +1 -0
- package/esm/user/user.js +4 -5
- package/esm/user/user.js.map +1 -0
- package/esm/worker.js.map +1 -0
- package/package.json +2 -2
- package/src/browser/scroll.js +25 -0
- package/src/configuration/configuration.js +16 -0
- package/src/configuration/transportConfiguration.js +2 -2
- package/src/dataMap.js +17 -3
- package/src/error/trackRuntimeError.js +2 -2
- package/src/helper/contextHistory.js +3 -3
- package/src/helper/enums.js +4 -0
- package/src/helper/errorTools.js +49 -19
- package/src/helper/tools.js +1 -0
- package/src/index.js +3 -0
- package/src/report/reportObservable.js +3 -3
- package/src/telemetry/telemetry.js +165 -0
- package/src/telemetry/types.js +9 -0
- package/src/transport/sendWithRetryStrategy.js +1 -5
package/esm/helper/tools.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
2
|
-
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
2
|
import { display } from './display';
|
|
4
3
|
import { setTimeout, clearTimeout } from './timer';
|
|
5
4
|
var ArrayProto = Array.prototype;
|
|
@@ -13,7 +12,6 @@ var nativeIsArray = Array.isArray;
|
|
|
13
12
|
var breaker = false;
|
|
14
13
|
export var each = function each(obj, iterator, context) {
|
|
15
14
|
if (obj === null) return false;
|
|
16
|
-
|
|
17
15
|
if (nativeForEach && obj.forEach === nativeForEach) {
|
|
18
16
|
obj.forEach(iterator, context);
|
|
19
17
|
} else if (obj.length === +obj.length) {
|
|
@@ -86,7 +84,6 @@ export var isFunction = function isFunction(f) {
|
|
|
86
84
|
if (!f) {
|
|
87
85
|
return false;
|
|
88
86
|
}
|
|
89
|
-
|
|
90
87
|
try {
|
|
91
88
|
return /^\s*\bfunction\b/.test(f);
|
|
92
89
|
} catch (err) {
|
|
@@ -98,28 +95,22 @@ export var isArguments = function isArguments(obj) {
|
|
|
98
95
|
};
|
|
99
96
|
export var toArray = function toArray(iterable) {
|
|
100
97
|
if (!iterable) return [];
|
|
101
|
-
|
|
102
98
|
if (iterable.toArray) {
|
|
103
99
|
return iterable.toArray();
|
|
104
100
|
}
|
|
105
|
-
|
|
106
101
|
if (isArray(iterable)) {
|
|
107
102
|
return slice.call(iterable);
|
|
108
103
|
}
|
|
109
|
-
|
|
110
104
|
if (isArguments(iterable)) {
|
|
111
105
|
return slice.call(iterable);
|
|
112
106
|
}
|
|
113
|
-
|
|
114
107
|
return values(iterable);
|
|
115
108
|
};
|
|
116
109
|
export var values = function values(obj) {
|
|
117
110
|
var results = [];
|
|
118
|
-
|
|
119
111
|
if (obj === null) {
|
|
120
112
|
return results;
|
|
121
113
|
}
|
|
122
|
-
|
|
123
114
|
each(obj, function (value) {
|
|
124
115
|
results[results.length] = value;
|
|
125
116
|
});
|
|
@@ -127,11 +118,9 @@ export var values = function values(obj) {
|
|
|
127
118
|
};
|
|
128
119
|
export var keys = function keys(obj) {
|
|
129
120
|
var results = [];
|
|
130
|
-
|
|
131
121
|
if (obj === null) {
|
|
132
122
|
return results;
|
|
133
123
|
}
|
|
134
|
-
|
|
135
124
|
each(obj, function (value, key) {
|
|
136
125
|
results[results.length] = key;
|
|
137
126
|
});
|
|
@@ -139,7 +128,6 @@ export var keys = function keys(obj) {
|
|
|
139
128
|
};
|
|
140
129
|
export var indexOf = function indexOf(arr, target) {
|
|
141
130
|
var indexOf = arr.indexOf;
|
|
142
|
-
|
|
143
131
|
if (indexOf) {
|
|
144
132
|
return indexOf.call(arr, target);
|
|
145
133
|
} else {
|
|
@@ -148,7 +136,6 @@ export var indexOf = function indexOf(arr, target) {
|
|
|
148
136
|
return i;
|
|
149
137
|
}
|
|
150
138
|
}
|
|
151
|
-
|
|
152
139
|
return -1;
|
|
153
140
|
}
|
|
154
141
|
};
|
|
@@ -163,90 +150,70 @@ export var filter = function filter(arr, fn, self) {
|
|
|
163
150
|
if (arr.filter) {
|
|
164
151
|
return arr.filter(fn);
|
|
165
152
|
}
|
|
166
|
-
|
|
167
153
|
var ret = [];
|
|
168
|
-
|
|
169
154
|
for (var i = 0; i < arr.length; i++) {
|
|
170
155
|
if (!hasOwnProperty.call(arr, i)) {
|
|
171
156
|
continue;
|
|
172
157
|
}
|
|
173
|
-
|
|
174
158
|
var val = arr[i];
|
|
175
|
-
|
|
176
159
|
if (fn.call(self, val, i, arr)) {
|
|
177
160
|
ret.push(val);
|
|
178
161
|
}
|
|
179
162
|
}
|
|
180
|
-
|
|
181
163
|
return ret;
|
|
182
164
|
};
|
|
183
165
|
export var map = function map(arr, fn, self) {
|
|
184
166
|
if (arr.map) {
|
|
185
167
|
return arr.map(fn);
|
|
186
168
|
}
|
|
187
|
-
|
|
188
169
|
var ret = [];
|
|
189
|
-
|
|
190
170
|
for (var i = 0; i < arr.length; i++) {
|
|
191
171
|
if (!hasOwnProperty.call(arr, i)) {
|
|
192
172
|
continue;
|
|
193
173
|
}
|
|
194
|
-
|
|
195
174
|
var val = arr[i];
|
|
196
175
|
ret.push(fn.call(self, val, i, arr));
|
|
197
176
|
}
|
|
198
|
-
|
|
199
177
|
return ret;
|
|
200
178
|
};
|
|
201
179
|
export var some = function some(arr, fn, self) {
|
|
202
180
|
if (arr.some) {
|
|
203
181
|
return arr.some(fn);
|
|
204
182
|
}
|
|
205
|
-
|
|
206
183
|
var flag = false;
|
|
207
|
-
|
|
208
184
|
for (var i = 0; i < arr.length; i++) {
|
|
209
185
|
if (!hasOwnProperty.call(arr, i)) {
|
|
210
186
|
continue;
|
|
211
187
|
}
|
|
212
|
-
|
|
213
188
|
var val = arr[i];
|
|
214
|
-
|
|
215
189
|
if (fn.call(self, val, i, arr)) {
|
|
216
190
|
flag = true;
|
|
217
191
|
break;
|
|
218
192
|
}
|
|
219
193
|
}
|
|
220
|
-
|
|
221
194
|
return flag;
|
|
222
195
|
};
|
|
223
196
|
export var every = function every(arr, fn, self) {
|
|
224
197
|
if (arr.every) {
|
|
225
198
|
return arr.every(fn);
|
|
226
199
|
}
|
|
227
|
-
|
|
228
200
|
var flag = true;
|
|
229
|
-
|
|
230
201
|
for (var i = 0; i < arr.length; i++) {
|
|
231
202
|
if (!hasOwnProperty.call(arr, i)) {
|
|
232
203
|
continue;
|
|
233
204
|
}
|
|
234
|
-
|
|
235
205
|
var val = arr[i];
|
|
236
|
-
|
|
237
206
|
if (!fn.call(self, val, i, arr)) {
|
|
238
207
|
flag = false;
|
|
239
208
|
break;
|
|
240
209
|
}
|
|
241
210
|
}
|
|
242
|
-
|
|
243
211
|
return flag;
|
|
244
212
|
};
|
|
245
213
|
export var matchList = function matchList(list, value, useStartsWith) {
|
|
246
214
|
if (useStartsWith === undefined) {
|
|
247
215
|
useStartsWith = false;
|
|
248
216
|
}
|
|
249
|
-
|
|
250
217
|
return some(list, function (item) {
|
|
251
218
|
try {
|
|
252
219
|
if (typeof item === 'function') {
|
|
@@ -260,34 +227,30 @@ export var matchList = function matchList(list, value, useStartsWith) {
|
|
|
260
227
|
display.error(e);
|
|
261
228
|
}
|
|
262
229
|
});
|
|
263
|
-
};
|
|
264
|
-
|
|
230
|
+
};
|
|
231
|
+
// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js
|
|
265
232
|
export var cssEscape = function cssEscape(str) {
|
|
266
233
|
str = str + '';
|
|
267
|
-
|
|
268
234
|
if (window.CSS && window.CSS.escape) {
|
|
269
235
|
return window.CSS.escape(str);
|
|
270
|
-
}
|
|
271
|
-
|
|
236
|
+
}
|
|
272
237
|
|
|
238
|
+
// eslint-disable-next-line no-control-regex
|
|
273
239
|
return str.replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function (ch, asCodePoint) {
|
|
274
240
|
if (asCodePoint) {
|
|
275
241
|
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
|
|
276
242
|
if (ch === '\0') {
|
|
277
243
|
return "\uFFFD";
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
244
|
+
}
|
|
245
|
+
// Control characters and (dependent upon position) numbers get escaped as code points
|
|
281
246
|
return ch.slice(0, -1) + '\\' + ch.charCodeAt(ch.length - 1).toString(16) + ' ';
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
|
|
247
|
+
}
|
|
248
|
+
// Other potentially-special ASCII characters get backslash-escaped
|
|
285
249
|
return '\\' + ch;
|
|
286
250
|
});
|
|
287
251
|
};
|
|
288
252
|
export var inherit = function inherit(subclass, superclass) {
|
|
289
253
|
var F = function F() {};
|
|
290
|
-
|
|
291
254
|
F.prototype = superclass.prototype;
|
|
292
255
|
subclass.prototype = new F();
|
|
293
256
|
subclass.prototype.constructor = subclass;
|
|
@@ -308,7 +271,6 @@ export var isEmptyObject = function isEmptyObject(obj) {
|
|
|
308
271
|
return false;
|
|
309
272
|
}
|
|
310
273
|
}
|
|
311
|
-
|
|
312
274
|
return true;
|
|
313
275
|
} else {
|
|
314
276
|
return false;
|
|
@@ -345,29 +307,24 @@ export var isJSONString = function isJSONString(str) {
|
|
|
345
307
|
} catch (e) {
|
|
346
308
|
return false;
|
|
347
309
|
}
|
|
348
|
-
|
|
349
310
|
return true;
|
|
350
311
|
};
|
|
351
312
|
export var safeJSONParse = function safeJSONParse(str) {
|
|
352
313
|
var val = null;
|
|
353
|
-
|
|
354
314
|
try {
|
|
355
315
|
val = JSON.parse(str);
|
|
356
316
|
} catch (e) {
|
|
357
317
|
return false;
|
|
358
318
|
}
|
|
359
|
-
|
|
360
319
|
return val;
|
|
361
320
|
};
|
|
362
321
|
export var decodeURIComponent = function decodeURIComponent(val) {
|
|
363
322
|
var result = val;
|
|
364
|
-
|
|
365
323
|
try {
|
|
366
324
|
result = decodeURIComponent(val);
|
|
367
325
|
} catch (error) {
|
|
368
326
|
result = val;
|
|
369
327
|
}
|
|
370
|
-
|
|
371
328
|
return result;
|
|
372
329
|
};
|
|
373
330
|
export var encodeDates = function encodeDates(obj) {
|
|
@@ -386,19 +343,16 @@ export var mediaQueriesSupported = function mediaQueriesSupported() {
|
|
|
386
343
|
export var getScreenOrientation = function getScreenOrientation() {
|
|
387
344
|
var screenOrientationAPI = screen.msOrientation || screen.mozOrientation || (screen.orientation || {}).type;
|
|
388
345
|
var screenOrientation = '未取到值';
|
|
389
|
-
|
|
390
346
|
if (screenOrientationAPI) {
|
|
391
347
|
screenOrientation = screenOrientationAPI.indexOf('landscape') > -1 ? 'landscape' : 'portrait';
|
|
392
348
|
} else if (mediaQueriesSupported()) {
|
|
393
349
|
var matchMediaFunc = window.matchMedia || window.msMatchMedia;
|
|
394
|
-
|
|
395
350
|
if (matchMediaFunc('(orientation: landscape)').matches) {
|
|
396
351
|
screenOrientation = 'landscape';
|
|
397
352
|
} else if (matchMediaFunc('(orientation: portrait)').matches) {
|
|
398
353
|
screenOrientation = 'portrait';
|
|
399
354
|
}
|
|
400
355
|
}
|
|
401
|
-
|
|
402
356
|
return screenOrientation;
|
|
403
357
|
};
|
|
404
358
|
export var now = Date.now || function () {
|
|
@@ -417,19 +371,16 @@ export var throttle = function throttle(fn, wait, options) {
|
|
|
417
371
|
pendingExecutionWithParameters = arguments;
|
|
418
372
|
return;
|
|
419
373
|
}
|
|
420
|
-
|
|
421
374
|
if (needLeadingExecution) {
|
|
422
375
|
fn.apply(context, arguments);
|
|
423
376
|
} else {
|
|
424
377
|
pendingExecutionWithParameters = arguments;
|
|
425
378
|
}
|
|
426
|
-
|
|
427
379
|
inWaitPeriod = true;
|
|
428
380
|
pendingTimeoutId = setTimeout(function () {
|
|
429
381
|
if (needTrailingExecution && pendingExecutionWithParameters) {
|
|
430
382
|
fn.apply(context, pendingExecutionWithParameters);
|
|
431
383
|
}
|
|
432
|
-
|
|
433
384
|
inWaitPeriod = false;
|
|
434
385
|
pendingExecutionWithParameters = undefined;
|
|
435
386
|
}, wait);
|
|
@@ -445,27 +396,22 @@ export var hashCode = function hashCode(str) {
|
|
|
445
396
|
if (typeof str !== 'string') {
|
|
446
397
|
return 0;
|
|
447
398
|
}
|
|
448
|
-
|
|
449
399
|
var hash = 0;
|
|
450
400
|
var _char = null;
|
|
451
|
-
|
|
452
401
|
if (str.length == 0) {
|
|
453
402
|
return hash;
|
|
454
403
|
}
|
|
455
|
-
|
|
456
404
|
for (var i = 0; i < str.length; i++) {
|
|
457
405
|
_char = str.charCodeAt(i);
|
|
458
406
|
hash = (hash << 5) - hash + _char;
|
|
459
407
|
hash = hash & hash;
|
|
460
408
|
}
|
|
461
|
-
|
|
462
409
|
return hash;
|
|
463
410
|
};
|
|
464
411
|
export var formatDate = function formatDate(d) {
|
|
465
412
|
function pad(n) {
|
|
466
413
|
return n < 10 ? '0' + n : n;
|
|
467
414
|
}
|
|
468
|
-
|
|
469
415
|
return d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate()) + ' ' + pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds()) + '.' + pad(d.getMilliseconds());
|
|
470
416
|
};
|
|
471
417
|
export var searchObjDate = function searchObjDate(o) {
|
|
@@ -487,7 +433,8 @@ export var formatJsonString = function formatJsonString(obj) {
|
|
|
487
433
|
} catch (e) {
|
|
488
434
|
return JSON.stringify(obj);
|
|
489
435
|
}
|
|
490
|
-
};
|
|
436
|
+
};
|
|
437
|
+
// export var formatString = function (str) {
|
|
491
438
|
// if (str.length > MAX_STRING_LENGTH) {
|
|
492
439
|
// sd.log('字符串长度超过限制,已经做截取--' + str)
|
|
493
440
|
// return str.slice(0, MAX_STRING_LENGTH)
|
|
@@ -495,7 +442,6 @@ export var formatJsonString = function formatJsonString(obj) {
|
|
|
495
442
|
// return str
|
|
496
443
|
// }
|
|
497
444
|
// }
|
|
498
|
-
|
|
499
445
|
export var searchObjString = function searchObjString(o) {
|
|
500
446
|
if (isObject(o)) {
|
|
501
447
|
each(o, function (a, b) {
|
|
@@ -511,18 +457,15 @@ export var searchObjString = function searchObjString(o) {
|
|
|
511
457
|
};
|
|
512
458
|
export var unique = function unique(ar) {
|
|
513
459
|
var temp,
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
460
|
+
n = [],
|
|
461
|
+
o = {};
|
|
517
462
|
for (var i = 0; i < ar.length; i++) {
|
|
518
463
|
temp = ar[i];
|
|
519
|
-
|
|
520
464
|
if (!(temp in o)) {
|
|
521
465
|
o[temp] = true;
|
|
522
466
|
n.push(temp);
|
|
523
467
|
}
|
|
524
468
|
}
|
|
525
|
-
|
|
526
469
|
return n;
|
|
527
470
|
};
|
|
528
471
|
export var strip_empty_properties = function strip_empty_properties(p) {
|
|
@@ -537,17 +480,15 @@ export var strip_empty_properties = function strip_empty_properties(p) {
|
|
|
537
480
|
export var utf8Encode = function utf8Encode(string) {
|
|
538
481
|
string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
539
482
|
var utftext = '',
|
|
540
|
-
|
|
541
|
-
|
|
483
|
+
start,
|
|
484
|
+
end;
|
|
542
485
|
var stringl = 0,
|
|
543
|
-
|
|
486
|
+
n;
|
|
544
487
|
start = end = 0;
|
|
545
488
|
stringl = string.length;
|
|
546
|
-
|
|
547
489
|
for (n = 0; n < stringl; n++) {
|
|
548
490
|
var c1 = string.charCodeAt(n);
|
|
549
491
|
var enc = null;
|
|
550
|
-
|
|
551
492
|
if (c1 < 128) {
|
|
552
493
|
end++;
|
|
553
494
|
} else if (c1 > 127 && c1 < 2048) {
|
|
@@ -555,21 +496,17 @@ export var utf8Encode = function utf8Encode(string) {
|
|
|
555
496
|
} else {
|
|
556
497
|
enc = String.fromCharCode(c1 >> 12 | 224, c1 >> 6 & 63 | 128, c1 & 63 | 128);
|
|
557
498
|
}
|
|
558
|
-
|
|
559
499
|
if (enc !== null) {
|
|
560
500
|
if (end > start) {
|
|
561
501
|
utftext += string.substring(start, end);
|
|
562
502
|
}
|
|
563
|
-
|
|
564
503
|
utftext += enc;
|
|
565
504
|
start = end = n + 1;
|
|
566
505
|
}
|
|
567
506
|
}
|
|
568
|
-
|
|
569
507
|
if (end > start) {
|
|
570
508
|
utftext += string.substring(start, string.length);
|
|
571
509
|
}
|
|
572
|
-
|
|
573
510
|
return utftext;
|
|
574
511
|
};
|
|
575
512
|
export var base64Encode = function base64Encode(data) {
|
|
@@ -578,28 +515,24 @@ export var base64Encode = function base64Encode(data) {
|
|
|
578
515
|
return String.fromCharCode('0x' + p1);
|
|
579
516
|
}));
|
|
580
517
|
}
|
|
581
|
-
|
|
582
518
|
data = String(data);
|
|
583
519
|
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
584
520
|
var o1,
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
521
|
+
o2,
|
|
522
|
+
o3,
|
|
523
|
+
h1,
|
|
524
|
+
h2,
|
|
525
|
+
h3,
|
|
526
|
+
h4,
|
|
527
|
+
bits,
|
|
528
|
+
i = 0,
|
|
529
|
+
ac = 0,
|
|
530
|
+
enc = '',
|
|
531
|
+
tmp_arr = [];
|
|
597
532
|
if (!data) {
|
|
598
533
|
return data;
|
|
599
534
|
}
|
|
600
|
-
|
|
601
535
|
data = utf8Encode(data);
|
|
602
|
-
|
|
603
536
|
do {
|
|
604
537
|
o1 = data.charCodeAt(i++);
|
|
605
538
|
o2 = data.charCodeAt(i++);
|
|
@@ -611,47 +544,41 @@ export var base64Encode = function base64Encode(data) {
|
|
|
611
544
|
h4 = bits & 0x3f;
|
|
612
545
|
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
|
613
546
|
} while (i < data.length);
|
|
614
|
-
|
|
615
547
|
enc = tmp_arr.join('');
|
|
616
|
-
|
|
617
548
|
switch (data.length % 3) {
|
|
618
549
|
case 1:
|
|
619
550
|
enc = enc.slice(0, -2) + '==';
|
|
620
551
|
break;
|
|
621
|
-
|
|
622
552
|
case 2:
|
|
623
553
|
enc = enc.slice(0, -1) + '=';
|
|
624
554
|
break;
|
|
625
555
|
}
|
|
626
|
-
|
|
627
556
|
return enc;
|
|
628
557
|
};
|
|
629
558
|
/**
|
|
630
559
|
* UUID v4
|
|
631
560
|
* from https://gist.github.com/jed/982883
|
|
632
561
|
*/
|
|
633
|
-
|
|
634
562
|
export function UUID(placeholder) {
|
|
635
|
-
return placeholder ?
|
|
563
|
+
return placeholder ?
|
|
564
|
+
// eslint-disable-next-line no-bitwise
|
|
636
565
|
(parseInt(placeholder, 10) ^ Math.random() * 16 >> parseInt(placeholder, 10) / 4).toString(16) : "".concat(1e7, "-", 1e3, "-", 4e3, "-", 8e3, "-", 1e11).replace(/[018]/g, UUID);
|
|
637
|
-
}
|
|
566
|
+
}
|
|
638
567
|
|
|
568
|
+
// 替换url包含数字的路由
|
|
639
569
|
export function replaceNumberCharByPath(path) {
|
|
640
570
|
var pathGroup = '';
|
|
641
|
-
|
|
642
571
|
if (path) {
|
|
643
572
|
pathGroup = path.replace(/\/([^\/]*)\d([^\/]*)/g, '/?').replace(/\/$/g, '');
|
|
644
573
|
}
|
|
645
|
-
|
|
646
574
|
return pathGroup || '/';
|
|
647
575
|
}
|
|
648
576
|
export var getQueryParam = function getQueryParam(url, param) {
|
|
649
577
|
param = param.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
|
|
650
578
|
url = decodeURIComponent(url);
|
|
651
579
|
var regexS = '[\\?&]' + param + '=([^&#]*)',
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
580
|
+
regex = new RegExp(regexS),
|
|
581
|
+
results = regex.exec(url);
|
|
655
582
|
if (results === null || results && typeof results[1] !== 'string' && results[1].length) {
|
|
656
583
|
return '';
|
|
657
584
|
} else {
|
|
@@ -674,29 +601,23 @@ export var urlParse = function urlParse(para) {
|
|
|
674
601
|
this._values = {};
|
|
675
602
|
this._regex = null;
|
|
676
603
|
this._regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
|
|
677
|
-
|
|
678
604
|
if (typeof a != 'undefined') {
|
|
679
605
|
this._parse(a);
|
|
680
606
|
}
|
|
681
607
|
};
|
|
682
|
-
|
|
683
608
|
URLParser.prototype.setUrl = function (a) {
|
|
684
609
|
this._parse(a);
|
|
685
610
|
};
|
|
686
|
-
|
|
687
611
|
URLParser.prototype._initValues = function () {
|
|
688
612
|
for (var a in this._fields) {
|
|
689
613
|
this._values[a] = '';
|
|
690
614
|
}
|
|
691
615
|
};
|
|
692
|
-
|
|
693
616
|
URLParser.prototype.addQueryString = function (queryObj) {
|
|
694
617
|
if (_typeof(queryObj) !== 'object') {
|
|
695
618
|
return false;
|
|
696
619
|
}
|
|
697
|
-
|
|
698
620
|
var query = this._values.QueryString || '';
|
|
699
|
-
|
|
700
621
|
for (var i in queryObj) {
|
|
701
622
|
if (new RegExp(i + '[^&]+').test(query)) {
|
|
702
623
|
query = query.replace(new RegExp(i + '[^&]+'), i + '=' + queryObj[i]);
|
|
@@ -712,41 +633,34 @@ export var urlParse = function urlParse(para) {
|
|
|
712
633
|
}
|
|
713
634
|
}
|
|
714
635
|
}
|
|
715
|
-
|
|
716
636
|
this._values.QueryString = query;
|
|
717
637
|
};
|
|
718
|
-
|
|
719
638
|
URLParser.prototype.getParse = function () {
|
|
720
639
|
return this._values;
|
|
721
640
|
};
|
|
722
|
-
|
|
723
641
|
URLParser.prototype.getUrl = function () {
|
|
724
642
|
var url = '';
|
|
725
|
-
url += this._values.Origin;
|
|
726
|
-
|
|
643
|
+
url += this._values.Origin;
|
|
644
|
+
// url += this._values.Port ? ':' + this._values.Port : ''
|
|
727
645
|
url += this._values.Path;
|
|
728
646
|
url += this._values.QueryString ? '?' + this._values.QueryString : '';
|
|
729
647
|
return url;
|
|
730
648
|
};
|
|
731
|
-
|
|
732
649
|
URLParser.prototype._parse = function (a) {
|
|
733
650
|
this._initValues();
|
|
734
|
-
|
|
735
651
|
var b = this._regex.exec(a);
|
|
736
|
-
|
|
737
652
|
if (!b) {
|
|
738
653
|
throw 'DPURLParser::_parse -> Invalid URL';
|
|
739
654
|
}
|
|
740
|
-
|
|
741
655
|
for (var c in this._fields) {
|
|
742
656
|
if (typeof b[this._fields[c]] != 'undefined') {
|
|
743
657
|
this._values[c] = b[this._fields[c]];
|
|
744
658
|
}
|
|
745
659
|
}
|
|
746
|
-
|
|
747
660
|
this._values['Path'] = this._values['Path'] || '/';
|
|
748
661
|
this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '');
|
|
749
|
-
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
|
|
662
|
+
this._values['Origin'] = this._values['Protocol'] + '://' + this._values['Hostname'] + (this._values.Port ? ':' + this._values.Port : '');
|
|
663
|
+
// this._values['Hostname'] = this._values['Host'].replace(/:\d+$/, '')
|
|
750
664
|
// this._values['Origin'] =
|
|
751
665
|
// this._values['Protocol'] + '://' + this._values['Hostname']
|
|
752
666
|
};
|
|
@@ -756,56 +670,45 @@ export var urlParse = function urlParse(para) {
|
|
|
756
670
|
export function elementMatches(element, selector) {
|
|
757
671
|
if (element.matches) {
|
|
758
672
|
return element.matches(selector);
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
|
|
673
|
+
}
|
|
674
|
+
// IE11 support
|
|
762
675
|
if (element.msMatchesSelector) {
|
|
763
676
|
return element.msMatchesSelector(selector);
|
|
764
677
|
}
|
|
765
|
-
|
|
766
678
|
return false;
|
|
767
679
|
}
|
|
768
680
|
export var cookie = {
|
|
769
681
|
get: function get(name) {
|
|
770
682
|
var nameEQ = name + '=';
|
|
771
683
|
var ca = document.cookie.split(';');
|
|
772
|
-
|
|
773
684
|
for (var i = 0; i < ca.length; i++) {
|
|
774
685
|
var c = ca[i];
|
|
775
|
-
|
|
776
686
|
while (c.charAt(0) == ' ') {
|
|
777
687
|
c = c.substring(1, c.length);
|
|
778
688
|
}
|
|
779
|
-
|
|
780
689
|
if (c.indexOf(nameEQ) == 0) {
|
|
781
690
|
return decodeURIComponent(c.substring(nameEQ.length, c.length));
|
|
782
691
|
}
|
|
783
692
|
}
|
|
784
|
-
|
|
785
693
|
return null;
|
|
786
694
|
},
|
|
787
695
|
set: function set(name, value, days, is_secure) {
|
|
788
696
|
var cdomain = '',
|
|
789
|
-
|
|
790
|
-
|
|
697
|
+
expires = '',
|
|
698
|
+
secure = '';
|
|
791
699
|
days = days == null ? 73000 : days;
|
|
792
|
-
|
|
793
700
|
if (days !== 0) {
|
|
794
701
|
var date = new Date();
|
|
795
|
-
|
|
796
702
|
if (String(days).slice(-1) === 's') {
|
|
797
703
|
date.setTime(date.getTime() + Number(String(days).slice(0, -1)) * 1000);
|
|
798
704
|
} else {
|
|
799
705
|
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
|
|
800
706
|
}
|
|
801
|
-
|
|
802
707
|
expires = '; expires=' + date.toGMTString();
|
|
803
708
|
}
|
|
804
|
-
|
|
805
709
|
if (is_secure) {
|
|
806
710
|
secure = '; secure';
|
|
807
711
|
}
|
|
808
|
-
|
|
809
712
|
document.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;
|
|
810
713
|
},
|
|
811
714
|
remove: function remove(name) {
|
|
@@ -818,13 +721,11 @@ export var localStorage = {
|
|
|
818
721
|
},
|
|
819
722
|
parse: function parse(name) {
|
|
820
723
|
var storedValue;
|
|
821
|
-
|
|
822
724
|
try {
|
|
823
725
|
storedValue = JSON.parse(localStorage.get(name)) || null;
|
|
824
726
|
} catch (err) {
|
|
825
727
|
sd.log(err);
|
|
826
728
|
}
|
|
827
|
-
|
|
828
729
|
return storedValue;
|
|
829
730
|
},
|
|
830
731
|
set: function set(name, value) {
|
|
@@ -835,21 +736,17 @@ export var localStorage = {
|
|
|
835
736
|
},
|
|
836
737
|
isSupport: function isSupport() {
|
|
837
738
|
var supported = true;
|
|
838
|
-
|
|
839
739
|
try {
|
|
840
740
|
var key = '__sensorsdatasupport__';
|
|
841
741
|
var val = 'testIsSupportStorage';
|
|
842
742
|
localStorage.set(key, val);
|
|
843
|
-
|
|
844
743
|
if (localStorage.get(key) !== val) {
|
|
845
744
|
supported = false;
|
|
846
745
|
}
|
|
847
|
-
|
|
848
746
|
localStorage.remove(key);
|
|
849
747
|
} catch (err) {
|
|
850
748
|
supported = false;
|
|
851
749
|
}
|
|
852
|
-
|
|
853
750
|
return supported;
|
|
854
751
|
}
|
|
855
752
|
};
|
|
@@ -858,7 +755,6 @@ export var sessionStorage = {
|
|
|
858
755
|
var supported = true;
|
|
859
756
|
var key = '__sensorsdatasupport__';
|
|
860
757
|
var val = 'testIsSupportStorage';
|
|
861
|
-
|
|
862
758
|
try {
|
|
863
759
|
if (sessionStorage && sessionStorage.setItem) {
|
|
864
760
|
sessionStorage.setItem(key, val);
|
|
@@ -870,7 +766,6 @@ export var sessionStorage = {
|
|
|
870
766
|
} catch (e) {
|
|
871
767
|
supported = false;
|
|
872
768
|
}
|
|
873
|
-
|
|
874
769
|
return supported;
|
|
875
770
|
}
|
|
876
771
|
};
|
|
@@ -878,7 +773,6 @@ export var isSupportCors = function isSupportCors() {
|
|
|
878
773
|
if (typeof window.XMLHttpRequest === 'undefined') {
|
|
879
774
|
return false;
|
|
880
775
|
}
|
|
881
|
-
|
|
882
776
|
if ('withCredentials' in new XMLHttpRequest()) {
|
|
883
777
|
return true;
|
|
884
778
|
} else if (typeof XDomainRequest !== 'undefined') {
|
|
@@ -900,7 +794,6 @@ export var xhr = function xhr(cors) {
|
|
|
900
794
|
if (typeof window.XMLHttpRequest !== 'undefined') {
|
|
901
795
|
return new XMLHttpRequest();
|
|
902
796
|
}
|
|
903
|
-
|
|
904
797
|
if (window.ActiveXObject) {
|
|
905
798
|
try {
|
|
906
799
|
return new ActiveXObject('Msxml2.XMLHTTP');
|
|
@@ -917,34 +810,27 @@ export var xhr = function xhr(cors) {
|
|
|
917
810
|
export var ajax = function ajax(para) {
|
|
918
811
|
para.timeout = para.timeout || 20000;
|
|
919
812
|
para.credentials = typeof para.credentials === 'undefined' ? true : para.credentials;
|
|
920
|
-
|
|
921
813
|
function getJSON(data) {
|
|
922
814
|
if (!data) {
|
|
923
815
|
return '';
|
|
924
816
|
}
|
|
925
|
-
|
|
926
817
|
try {
|
|
927
818
|
return JSON.parse(data);
|
|
928
819
|
} catch (e) {
|
|
929
820
|
return {};
|
|
930
821
|
}
|
|
931
822
|
}
|
|
932
|
-
|
|
933
823
|
var g = xhr(para.cors);
|
|
934
|
-
|
|
935
824
|
if (!g) {
|
|
936
825
|
return false;
|
|
937
826
|
}
|
|
938
|
-
|
|
939
827
|
if (!para.type) {
|
|
940
828
|
para.type = para.data ? 'POST' : 'GET';
|
|
941
829
|
}
|
|
942
|
-
|
|
943
830
|
para = extend({
|
|
944
831
|
success: function success() {},
|
|
945
832
|
error: function error() {}
|
|
946
833
|
}, para);
|
|
947
|
-
|
|
948
834
|
try {
|
|
949
835
|
if (_typeof(g) === 'object' && 'timeout' in g) {
|
|
950
836
|
g.timeout = para.timeout;
|
|
@@ -960,7 +846,6 @@ export var ajax = function ajax(para) {
|
|
|
960
846
|
}, para.timeout + 500);
|
|
961
847
|
} catch (e2) {}
|
|
962
848
|
}
|
|
963
|
-
|
|
964
849
|
g.onreadystatechange = function () {
|
|
965
850
|
try {
|
|
966
851
|
if (g.readyState == 4) {
|
|
@@ -969,7 +854,6 @@ export var ajax = function ajax(para) {
|
|
|
969
854
|
} else {
|
|
970
855
|
para.error(getJSON(g.responseText), g.status);
|
|
971
856
|
}
|
|
972
|
-
|
|
973
857
|
g.onreadystatechange = null;
|
|
974
858
|
g.onload = null;
|
|
975
859
|
}
|
|
@@ -978,25 +862,20 @@ export var ajax = function ajax(para) {
|
|
|
978
862
|
g.onload = null;
|
|
979
863
|
}
|
|
980
864
|
};
|
|
981
|
-
|
|
982
865
|
g.open(para.type, para.url, true);
|
|
983
|
-
|
|
984
866
|
try {
|
|
985
867
|
if (para.credentials) {
|
|
986
868
|
g.withCredentials = true;
|
|
987
869
|
}
|
|
988
|
-
|
|
989
870
|
if (isObject(para.header)) {
|
|
990
871
|
for (var i in para.header) {
|
|
991
872
|
g.setRequestHeader(i, para.header[i]);
|
|
992
873
|
}
|
|
993
874
|
}
|
|
994
|
-
|
|
995
875
|
if (para.data) {
|
|
996
876
|
if (!para.cors) {
|
|
997
877
|
g.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
|
998
878
|
}
|
|
999
|
-
|
|
1000
879
|
if (para.contentType === 'application/json') {
|
|
1001
880
|
g.setRequestHeader('Content-type', 'application/json; charset=UTF-8');
|
|
1002
881
|
} else {
|
|
@@ -1004,7 +883,6 @@ export var ajax = function ajax(para) {
|
|
|
1004
883
|
}
|
|
1005
884
|
}
|
|
1006
885
|
} catch (e) {}
|
|
1007
|
-
|
|
1008
886
|
g.send(para.data || null);
|
|
1009
887
|
};
|
|
1010
888
|
export var loadScript = function loadScript(para) {
|
|
@@ -1016,13 +894,11 @@ export var loadScript = function loadScript(para) {
|
|
|
1016
894
|
}
|
|
1017
895
|
}, para);
|
|
1018
896
|
var g = null;
|
|
1019
|
-
|
|
1020
897
|
if (para.type === 'css') {
|
|
1021
898
|
g = document.createElement('link');
|
|
1022
899
|
g.rel = 'stylesheet';
|
|
1023
900
|
g.href = para.url;
|
|
1024
901
|
}
|
|
1025
|
-
|
|
1026
902
|
if (para.type === 'js') {
|
|
1027
903
|
g = document.createElement('script');
|
|
1028
904
|
g.async = 'async';
|
|
@@ -1030,56 +906,45 @@ export var loadScript = function loadScript(para) {
|
|
|
1030
906
|
g.src = para.url;
|
|
1031
907
|
g.type = 'text/javascript';
|
|
1032
908
|
}
|
|
1033
|
-
|
|
1034
909
|
g.onload = g.onreadystatechange = function () {
|
|
1035
910
|
if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
|
|
1036
911
|
para.success();
|
|
1037
912
|
g.onload = g.onreadystatechange = null;
|
|
1038
913
|
}
|
|
1039
914
|
};
|
|
1040
|
-
|
|
1041
915
|
g.onerror = function () {
|
|
1042
916
|
para.error();
|
|
1043
917
|
g.onerror = null;
|
|
1044
918
|
};
|
|
1045
|
-
|
|
1046
919
|
para.appendCall(g);
|
|
1047
920
|
};
|
|
1048
921
|
export var getHostname = function getHostname(url, defaultValue) {
|
|
1049
922
|
if (!defaultValue || typeof defaultValue !== 'string') {
|
|
1050
923
|
defaultValue = 'hostname解析异常';
|
|
1051
924
|
}
|
|
1052
|
-
|
|
1053
925
|
var hostname = null;
|
|
1054
|
-
|
|
1055
926
|
try {
|
|
1056
927
|
hostname = URL(url).hostname;
|
|
1057
928
|
} catch (e) {}
|
|
1058
|
-
|
|
1059
929
|
return hostname || defaultValue;
|
|
1060
930
|
};
|
|
1061
931
|
export var getQueryParamsFromUrl = function getQueryParamsFromUrl(url) {
|
|
1062
932
|
var result = {};
|
|
1063
933
|
var arr = url.split('?');
|
|
1064
934
|
var queryString = arr[1] || '';
|
|
1065
|
-
|
|
1066
935
|
if (queryString) {
|
|
1067
936
|
result = getURLSearchParams('?' + queryString);
|
|
1068
937
|
}
|
|
1069
|
-
|
|
1070
938
|
return result;
|
|
1071
939
|
};
|
|
1072
940
|
export var getURLSearchParams = function getURLSearchParams(queryString) {
|
|
1073
941
|
queryString = queryString || '';
|
|
1074
|
-
|
|
1075
942
|
var decodeParam = function decodeParam(str) {
|
|
1076
943
|
return decodeURIComponent(str);
|
|
1077
944
|
};
|
|
1078
|
-
|
|
1079
945
|
var args = {};
|
|
1080
946
|
var query = queryString.substring(1);
|
|
1081
947
|
var pairs = query.split('&');
|
|
1082
|
-
|
|
1083
948
|
for (var i = 0; i < pairs.length; i++) {
|
|
1084
949
|
var pos = pairs[i].indexOf('=');
|
|
1085
950
|
if (pos === -1) continue;
|
|
@@ -1089,35 +954,28 @@ export var getURLSearchParams = function getURLSearchParams(queryString) {
|
|
|
1089
954
|
value = decodeParam(value);
|
|
1090
955
|
args[name] = value;
|
|
1091
956
|
}
|
|
1092
|
-
|
|
1093
957
|
return args;
|
|
1094
958
|
};
|
|
1095
|
-
|
|
1096
959
|
function createCircularReferenceChecker() {
|
|
1097
960
|
if (typeof WeakSet !== 'undefined') {
|
|
1098
961
|
var set = new WeakSet();
|
|
1099
962
|
return {
|
|
1100
963
|
hasAlreadyBeenSeen: function hasAlreadyBeenSeen(value) {
|
|
1101
964
|
var has = set.has(value);
|
|
1102
|
-
|
|
1103
965
|
if (!has) {
|
|
1104
966
|
set.add(value);
|
|
1105
967
|
}
|
|
1106
|
-
|
|
1107
968
|
return has;
|
|
1108
969
|
}
|
|
1109
970
|
};
|
|
1110
971
|
}
|
|
1111
|
-
|
|
1112
972
|
var array = [];
|
|
1113
973
|
return {
|
|
1114
974
|
hasAlreadyBeenSeen: function hasAlreadyBeenSeen(value) {
|
|
1115
975
|
var has = array.indexOf(value) >= 0;
|
|
1116
|
-
|
|
1117
976
|
if (!has) {
|
|
1118
977
|
array.push(value);
|
|
1119
978
|
}
|
|
1120
|
-
|
|
1121
979
|
return has;
|
|
1122
980
|
}
|
|
1123
981
|
};
|
|
@@ -1125,85 +983,71 @@ function createCircularReferenceChecker() {
|
|
|
1125
983
|
/**
|
|
1126
984
|
* Similar to `typeof`, but distinguish plain objects from `null` and arrays
|
|
1127
985
|
*/
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
986
|
export function getType(value) {
|
|
1131
987
|
if (value === null) {
|
|
1132
988
|
return 'null';
|
|
1133
989
|
}
|
|
1134
|
-
|
|
1135
990
|
if (Array.isArray(value)) {
|
|
1136
991
|
return 'array';
|
|
1137
992
|
}
|
|
1138
|
-
|
|
1139
993
|
return _typeof(value);
|
|
1140
994
|
}
|
|
1141
995
|
/**
|
|
1142
996
|
* Iterate over source and affect its sub values into destination, recursively.
|
|
1143
997
|
* If the source and destination can't be merged, return source.
|
|
1144
998
|
*/
|
|
1145
|
-
|
|
1146
999
|
export function mergeInto(destination, source, circularReferenceChecker) {
|
|
1147
1000
|
// ignore the source if it is undefined
|
|
1148
1001
|
if (typeof circularReferenceChecker === 'undefined') {
|
|
1149
1002
|
circularReferenceChecker = createCircularReferenceChecker();
|
|
1150
1003
|
}
|
|
1151
|
-
|
|
1152
1004
|
if (source === undefined) {
|
|
1153
1005
|
return destination;
|
|
1154
1006
|
}
|
|
1155
|
-
|
|
1156
1007
|
if (_typeof(source) !== 'object' || source === null) {
|
|
1157
1008
|
// primitive values - just return source
|
|
1158
1009
|
return source;
|
|
1159
1010
|
} else if (source instanceof Date) {
|
|
1160
1011
|
return new Date(source.getTime());
|
|
1161
1012
|
} else if (source instanceof RegExp) {
|
|
1162
|
-
var flags = source.flags ||
|
|
1013
|
+
var flags = source.flags ||
|
|
1014
|
+
// old browsers compatibility
|
|
1163
1015
|
[source.global ? 'g' : '', source.ignoreCase ? 'i' : '', source.multiline ? 'm' : '', source.sticky ? 'y' : '', source.unicode ? 'u' : ''].join('');
|
|
1164
1016
|
return new RegExp(source.source, flags);
|
|
1165
1017
|
}
|
|
1166
|
-
|
|
1167
1018
|
if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {
|
|
1168
1019
|
// remove circular references
|
|
1169
1020
|
return undefined;
|
|
1170
1021
|
} else if (Array.isArray(source)) {
|
|
1171
1022
|
var merged = Array.isArray(destination) ? destination : [];
|
|
1172
|
-
|
|
1173
1023
|
for (var i = 0; i < source.length; ++i) {
|
|
1174
1024
|
merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker);
|
|
1175
1025
|
}
|
|
1176
|
-
|
|
1177
1026
|
return merged;
|
|
1178
1027
|
}
|
|
1179
|
-
|
|
1180
1028
|
var merged = getType(destination) === 'object' ? destination : {};
|
|
1181
|
-
|
|
1182
1029
|
for (var key in source) {
|
|
1183
1030
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1184
1031
|
merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);
|
|
1185
1032
|
}
|
|
1186
1033
|
}
|
|
1187
|
-
|
|
1188
1034
|
return merged;
|
|
1189
1035
|
}
|
|
1036
|
+
|
|
1190
1037
|
/**
|
|
1191
1038
|
* A simplistic implementation of a deep clone algorithm.
|
|
1192
1039
|
* Caveats:
|
|
1193
1040
|
* - It doesn't maintain prototype chains - don't use with instances of custom classes.
|
|
1194
1041
|
* - It doesn't handle Map and Set
|
|
1195
1042
|
*/
|
|
1196
|
-
|
|
1197
1043
|
export function deepClone(value) {
|
|
1198
1044
|
return mergeInto(undefined, value);
|
|
1199
1045
|
}
|
|
1200
1046
|
export var _URL = function _URL(url) {
|
|
1201
1047
|
var result = {};
|
|
1202
1048
|
var basicProps = ['hash', 'host', 'hostname', 'href', 'origin', 'password', 'pathname', 'port', 'protocol', 'search', 'username'];
|
|
1203
|
-
|
|
1204
1049
|
var isURLAPIWorking = function isURLAPIWorking() {
|
|
1205
1050
|
var url;
|
|
1206
|
-
|
|
1207
1051
|
try {
|
|
1208
1052
|
url = new URL('http://modernizr.com/');
|
|
1209
1053
|
return url.href === 'http://modernizr.com/';
|
|
@@ -1211,10 +1055,8 @@ export var _URL = function _URL(url) {
|
|
|
1211
1055
|
return false;
|
|
1212
1056
|
}
|
|
1213
1057
|
};
|
|
1214
|
-
|
|
1215
1058
|
if (typeof window.URL === 'function' && isURLAPIWorking()) {
|
|
1216
1059
|
result = new URL(url);
|
|
1217
|
-
|
|
1218
1060
|
if (!result.searchParams) {
|
|
1219
1061
|
result.searchParams = function () {
|
|
1220
1062
|
var params = getURLSearchParams(result.search);
|
|
@@ -1227,23 +1069,18 @@ export var _URL = function _URL(url) {
|
|
|
1227
1069
|
}
|
|
1228
1070
|
} else {
|
|
1229
1071
|
var _regex = /^https?:\/\/.+/;
|
|
1230
|
-
|
|
1231
1072
|
if (_regex.test(url) === false) {
|
|
1232
1073
|
throw 'Invalid URL';
|
|
1233
1074
|
}
|
|
1234
|
-
|
|
1235
1075
|
var link = document.createElement('a');
|
|
1236
1076
|
link.href = url;
|
|
1237
|
-
|
|
1238
1077
|
for (var i = basicProps.length - 1; i >= 0; i--) {
|
|
1239
1078
|
var prop = basicProps[i];
|
|
1240
1079
|
result[prop] = link[prop];
|
|
1241
1080
|
}
|
|
1242
|
-
|
|
1243
1081
|
if (result.hostname && typeof result.pathname === 'string' && result.pathname.indexOf('/') !== 0) {
|
|
1244
1082
|
result.pathname = '/' + result.pathname;
|
|
1245
1083
|
}
|
|
1246
|
-
|
|
1247
1084
|
result.searchParams = function () {
|
|
1248
1085
|
var params = getURLSearchParams(result.search);
|
|
1249
1086
|
return {
|
|
@@ -1253,12 +1090,10 @@ export var _URL = function _URL(url) {
|
|
|
1253
1090
|
};
|
|
1254
1091
|
}();
|
|
1255
1092
|
}
|
|
1256
|
-
|
|
1257
1093
|
return result;
|
|
1258
1094
|
};
|
|
1259
1095
|
export var getCurrentDomain = function getCurrentDomain(url) {
|
|
1260
1096
|
var cookieTopLevelDomain = getCookieTopLevelDomain();
|
|
1261
|
-
|
|
1262
1097
|
if (url === '') {
|
|
1263
1098
|
return 'url解析失败';
|
|
1264
1099
|
} else if (cookieTopLevelDomain === '') {
|
|
@@ -1270,14 +1105,11 @@ export var getCurrentDomain = function getCurrentDomain(url) {
|
|
|
1270
1105
|
export var getCookieTopLevelDomain = function getCookieTopLevelDomain(hostname) {
|
|
1271
1106
|
hostname = hostname || window.location.hostname;
|
|
1272
1107
|
var splitResult = hostname.split('.');
|
|
1273
|
-
|
|
1274
1108
|
if (isArray(splitResult) && splitResult.length >= 2 && !/^(\d+\.)+\d+$/.test(hostname)) {
|
|
1275
1109
|
var domainStr = '.' + splitResult.splice(splitResult.length - 1, 1);
|
|
1276
|
-
|
|
1277
1110
|
while (splitResult.length > 0) {
|
|
1278
1111
|
domainStr = '.' + splitResult.splice(splitResult.length - 1, 1) + domainStr;
|
|
1279
1112
|
document.cookie = 'domain_test=true; path=/; domain=' + domainStr;
|
|
1280
|
-
|
|
1281
1113
|
if (document.cookie.indexOf('domain_test=true') !== -1) {
|
|
1282
1114
|
var now = new Date();
|
|
1283
1115
|
now.setTime(now.getTime() - 1000);
|
|
@@ -1286,20 +1118,16 @@ export var getCookieTopLevelDomain = function getCookieTopLevelDomain(hostname)
|
|
|
1286
1118
|
}
|
|
1287
1119
|
}
|
|
1288
1120
|
}
|
|
1289
|
-
|
|
1290
1121
|
return '';
|
|
1291
1122
|
};
|
|
1292
1123
|
export var strToUnicode = function strToUnicode(str) {
|
|
1293
1124
|
if (typeof str !== 'string') {
|
|
1294
1125
|
return str;
|
|
1295
1126
|
}
|
|
1296
|
-
|
|
1297
1127
|
var nstr = '';
|
|
1298
|
-
|
|
1299
1128
|
for (var i = 0; i < str.length; i++) {
|
|
1300
1129
|
nstr += '\\' + str.charCodeAt(i).toString(16);
|
|
1301
1130
|
}
|
|
1302
|
-
|
|
1303
1131
|
return nstr;
|
|
1304
1132
|
};
|
|
1305
1133
|
export var autoExeQueue = function autoExeQueue() {
|
|
@@ -1334,7 +1162,6 @@ export var strip_sa_properties = function strip_sa_properties(p) {
|
|
|
1334
1162
|
if (!isObject(p)) {
|
|
1335
1163
|
return p;
|
|
1336
1164
|
}
|
|
1337
|
-
|
|
1338
1165
|
each(p, function (v, k) {
|
|
1339
1166
|
if (isArray(v)) {
|
|
1340
1167
|
var temp = [];
|
|
@@ -1345,7 +1172,6 @@ export var strip_sa_properties = function strip_sa_properties(p) {
|
|
|
1345
1172
|
console.log('您的数据-', k, v, '的数组里的值必须是字符串,已经将其删除');
|
|
1346
1173
|
}
|
|
1347
1174
|
});
|
|
1348
|
-
|
|
1349
1175
|
if (temp.length !== 0) {
|
|
1350
1176
|
p[k] = temp;
|
|
1351
1177
|
} else {
|
|
@@ -1353,7 +1179,6 @@ export var strip_sa_properties = function strip_sa_properties(p) {
|
|
|
1353
1179
|
console.log('已经删除空的数组');
|
|
1354
1180
|
}
|
|
1355
1181
|
}
|
|
1356
|
-
|
|
1357
1182
|
if (!(isString(v) || isNumber(v) || isDate(v) || isBoolean(v) || isArray(v) || isFunction(v) || k === '$option')) {
|
|
1358
1183
|
console.log('您的数据-', k, v, '-格式不满足要求,我们已经将其删除');
|
|
1359
1184
|
delete p[k];
|
|
@@ -1369,23 +1194,20 @@ export var searchConfigData = function searchConfigData(data) {
|
|
|
1369
1194
|
} else {
|
|
1370
1195
|
return {};
|
|
1371
1196
|
}
|
|
1372
|
-
};
|
|
1197
|
+
};
|
|
1198
|
+
// 从字符串 src 中查找 k+sp 和 e 之间的字符串,如果 k==e 且 k 只有一个,或者 e 不存在,从 k+sp 截取到字符串结束
|
|
1373
1199
|
// abcd=1&b=1&c=3;
|
|
1374
1200
|
// abdc=1;b=1;a=3;
|
|
1375
|
-
|
|
1376
1201
|
export var stringSplice = function stringSplice(src, k, e, sp) {
|
|
1377
1202
|
if (src === '') {
|
|
1378
1203
|
return '';
|
|
1379
1204
|
}
|
|
1380
|
-
|
|
1381
1205
|
sp = sp === '' ? '=' : sp;
|
|
1382
1206
|
k += sp;
|
|
1383
1207
|
var ps = src.indexOf(k);
|
|
1384
|
-
|
|
1385
1208
|
if (ps < 0) {
|
|
1386
1209
|
return '';
|
|
1387
1210
|
}
|
|
1388
|
-
|
|
1389
1211
|
ps += k.length;
|
|
1390
1212
|
var pe = pe < ps ? src.length : src.indexOf(e, ps);
|
|
1391
1213
|
return src.substring(ps, pe);
|
|
@@ -1396,16 +1218,14 @@ export function getStatusGroup(status) {
|
|
|
1396
1218
|
}
|
|
1397
1219
|
export var getReferrer = function getReferrer() {
|
|
1398
1220
|
var ref = document.referrer.toLowerCase();
|
|
1399
|
-
var re = /^[^\?&#]*.swf([\?#])?/;
|
|
1400
|
-
|
|
1221
|
+
var re = /^[^\?&#]*.swf([\?#])?/;
|
|
1222
|
+
// 如果页面 Referer 为空,从 URL 中获取
|
|
1401
1223
|
if (ref === '' || ref.match(re)) {
|
|
1402
1224
|
ref = stringSplice(window.location.href, 'ref', '&', '');
|
|
1403
|
-
|
|
1404
1225
|
if (ref !== '') {
|
|
1405
1226
|
return encodeURIComponent(ref);
|
|
1406
1227
|
}
|
|
1407
1228
|
}
|
|
1408
|
-
|
|
1409
1229
|
return encodeURIComponent(ref);
|
|
1410
1230
|
};
|
|
1411
1231
|
export var typeDecide = function typeDecide(o, type) {
|
|
@@ -1417,11 +1237,11 @@ export var ONE_MINUTE = 60 * ONE_SECOND;
|
|
|
1417
1237
|
export var ONE_HOUR = 60 * ONE_MINUTE;
|
|
1418
1238
|
export var ONE_DAY = 24 * ONE_HOUR;
|
|
1419
1239
|
export var ONE_YEAR = 365 * ONE_DAY;
|
|
1240
|
+
|
|
1420
1241
|
/**
|
|
1421
1242
|
* Return true if the draw is successful
|
|
1422
1243
|
* @param threshold between 0 and 100
|
|
1423
1244
|
*/
|
|
1424
|
-
|
|
1425
1245
|
export function performDraw(threshold) {
|
|
1426
1246
|
return threshold !== 0 && Math.random() * 100 <= threshold;
|
|
1427
1247
|
}
|
|
@@ -1432,7 +1252,6 @@ export function msToNs(duration) {
|
|
|
1432
1252
|
if (typeof duration !== 'number') {
|
|
1433
1253
|
return duration;
|
|
1434
1254
|
}
|
|
1435
|
-
|
|
1436
1255
|
return round(duration * 1e6, 0);
|
|
1437
1256
|
}
|
|
1438
1257
|
export function mapValues(object, fn) {
|
|
@@ -1446,7 +1265,6 @@ export function toServerDuration(duration) {
|
|
|
1446
1265
|
if (!isNumber(duration)) {
|
|
1447
1266
|
return duration;
|
|
1448
1267
|
}
|
|
1449
|
-
|
|
1450
1268
|
return round(duration * 1e6, 0);
|
|
1451
1269
|
}
|
|
1452
1270
|
export function getRelativeTime(timestamp) {
|
|
@@ -1509,27 +1327,22 @@ export function currentDrift() {
|
|
|
1509
1327
|
export function addDuration(a, b) {
|
|
1510
1328
|
return a + b;
|
|
1511
1329
|
}
|
|
1512
|
-
|
|
1513
1330
|
function getCorrectedTimeStamp(relativeTime) {
|
|
1514
|
-
var correctedOrigin = dateNow() - performance.now();
|
|
1515
|
-
|
|
1331
|
+
var correctedOrigin = dateNow() - performance.now();
|
|
1332
|
+
// apply correction only for positive drift
|
|
1516
1333
|
if (correctedOrigin > getNavigationStart()) {
|
|
1517
1334
|
return Math.round(correctedOrigin + relativeTime);
|
|
1518
1335
|
}
|
|
1519
|
-
|
|
1520
1336
|
return getTimestamp(relativeTime);
|
|
1521
1337
|
}
|
|
1522
1338
|
/**
|
|
1523
1339
|
* Navigation start slightly change on some rare cases
|
|
1524
1340
|
*/
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
1341
|
var navigationStart;
|
|
1528
1342
|
export function getNavigationStart() {
|
|
1529
1343
|
if (navigationStart === undefined) {
|
|
1530
1344
|
navigationStart = performance.timing.navigationStart;
|
|
1531
1345
|
}
|
|
1532
|
-
|
|
1533
1346
|
return navigationStart;
|
|
1534
1347
|
}
|
|
1535
1348
|
export function findCommaSeparatedValue(rawString, name) {
|
|
@@ -1538,26 +1351,22 @@ export function findCommaSeparatedValue(rawString, name) {
|
|
|
1538
1351
|
}
|
|
1539
1352
|
export function findByPath(source, path) {
|
|
1540
1353
|
var pathArr = path.split('.');
|
|
1541
|
-
|
|
1542
1354
|
while (pathArr.length) {
|
|
1543
1355
|
var key = pathArr.shift();
|
|
1544
|
-
|
|
1545
1356
|
if (source && key in source && hasOwnProperty.call(source, key)) {
|
|
1546
1357
|
source = source[key];
|
|
1547
1358
|
} else {
|
|
1548
1359
|
return undefined;
|
|
1549
1360
|
}
|
|
1550
1361
|
}
|
|
1551
|
-
|
|
1552
1362
|
return source;
|
|
1553
1363
|
}
|
|
1554
1364
|
export function safeTruncate(candidate, length) {
|
|
1555
|
-
var lastChar = candidate.charCodeAt(length - 1);
|
|
1556
|
-
|
|
1365
|
+
var lastChar = candidate.charCodeAt(length - 1);
|
|
1366
|
+
// check if it is the high part of a surrogate pair
|
|
1557
1367
|
if (lastChar >= 0xd800 && lastChar <= 0xdbff) {
|
|
1558
1368
|
return candidate.slice(0, length + 1);
|
|
1559
1369
|
}
|
|
1560
|
-
|
|
1561
1370
|
return candidate.slice(0, length);
|
|
1562
1371
|
}
|
|
1563
1372
|
export function isMatchOption(item) {
|
|
@@ -1571,21 +1380,17 @@ export function includes(candidate, search) {
|
|
|
1571
1380
|
export function find(array, predicate) {
|
|
1572
1381
|
for (var i = 0; i < array.length; i += 1) {
|
|
1573
1382
|
var item = array[i];
|
|
1574
|
-
|
|
1575
1383
|
if (predicate(item, i, array)) {
|
|
1576
1384
|
return item;
|
|
1577
1385
|
}
|
|
1578
1386
|
}
|
|
1579
|
-
|
|
1580
1387
|
return undefined;
|
|
1581
1388
|
}
|
|
1582
1389
|
export function arrayFrom(arrayLike) {
|
|
1583
1390
|
if (Array.from) {
|
|
1584
1391
|
return Array.from(arrayLike);
|
|
1585
1392
|
}
|
|
1586
|
-
|
|
1587
1393
|
var array = [];
|
|
1588
|
-
|
|
1589
1394
|
if (arrayLike instanceof Set) {
|
|
1590
1395
|
arrayLike.forEach(function (item) {
|
|
1591
1396
|
array.push(item);
|
|
@@ -1595,18 +1400,15 @@ export function arrayFrom(arrayLike) {
|
|
|
1595
1400
|
array.push(arrayLike[i]);
|
|
1596
1401
|
}
|
|
1597
1402
|
}
|
|
1598
|
-
|
|
1599
1403
|
return array;
|
|
1600
1404
|
}
|
|
1601
1405
|
export function findLast(array, predicate) {
|
|
1602
1406
|
for (var i = array.length - 1; i >= 0; i -= 1) {
|
|
1603
1407
|
var item = array[i];
|
|
1604
|
-
|
|
1605
1408
|
if (predicate(item, i, array)) {
|
|
1606
1409
|
return item;
|
|
1607
1410
|
}
|
|
1608
1411
|
}
|
|
1609
|
-
|
|
1610
1412
|
return undefined;
|
|
1611
1413
|
}
|
|
1612
1414
|
export function isPercentage(value) {
|
|
@@ -1621,16 +1423,15 @@ export function isIE() {
|
|
|
1621
1423
|
export function isChromium() {
|
|
1622
1424
|
return !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent);
|
|
1623
1425
|
}
|
|
1426
|
+
|
|
1624
1427
|
/**
|
|
1625
1428
|
* IE fallback
|
|
1626
1429
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin
|
|
1627
1430
|
*/
|
|
1628
|
-
|
|
1629
1431
|
export function getLinkElementOrigin(element) {
|
|
1630
1432
|
if (element.origin && element.origin !== 'null') {
|
|
1631
1433
|
return element.origin;
|
|
1632
1434
|
}
|
|
1633
|
-
|
|
1634
1435
|
var sanitizedHost = element.host.replace(/(:80|:443)$/, '');
|
|
1635
1436
|
return element.protocol + '//' + sanitizedHost;
|
|
1636
1437
|
}
|
|
@@ -1647,11 +1448,9 @@ export function deepSnakeCase(candidate) {
|
|
|
1647
1448
|
return deepSnakeCase(value);
|
|
1648
1449
|
});
|
|
1649
1450
|
}
|
|
1650
|
-
|
|
1651
1451
|
if (_typeof(candidate) === 'object' && candidate !== null) {
|
|
1652
1452
|
return withSnakeCaseKeys(candidate);
|
|
1653
1453
|
}
|
|
1654
|
-
|
|
1655
1454
|
return candidate;
|
|
1656
1455
|
}
|
|
1657
1456
|
export function toSnakeCase(word) {
|
|
@@ -1687,9 +1486,11 @@ export function tryToClone(response) {
|
|
|
1687
1486
|
}
|
|
1688
1487
|
export function isHashAnAnchor(hash) {
|
|
1689
1488
|
var correspondingId = hash.substr(1);
|
|
1489
|
+
if (!correspondingId) return false;
|
|
1690
1490
|
return !!document.getElementById(correspondingId);
|
|
1691
1491
|
}
|
|
1692
1492
|
export function getPathFromHash(hash) {
|
|
1693
1493
|
var index = hash.indexOf('?');
|
|
1694
1494
|
return index < 0 ? hash : hash.slice(0, index);
|
|
1695
|
-
}
|
|
1495
|
+
}
|
|
1496
|
+
//# sourceMappingURL=tools.js.map
|