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