@wimi/gantt 0.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/README.md +785 -0
- package/dist/VanillaGantt.common.js +4751 -0
- package/dist/VanillaGantt.common.js.map +1 -0
- package/dist/VanillaGantt.css +1 -0
- package/dist/VanillaGantt.umd.js +4762 -0
- package/dist/VanillaGantt.umd.js.map +1 -0
- package/dist/VanillaGantt.umd.min.js +2 -0
- package/dist/VanillaGantt.umd.min.js.map +1 -0
- package/dist/demo.html +1 -0
- package/package.json +23 -0
- package/src/VanillaGantt.js +1924 -0
- package/src/index.js +1 -0
- package/src/vanilla-gantt.css +399 -0
- package/types/index.d.ts +356 -0
|
@@ -0,0 +1,4762 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define([], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["VanillaGantt"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["VanillaGantt"] = factory();
|
|
10
|
+
})((typeof self !== 'undefined' ? self : this), function() {
|
|
11
|
+
return /******/ (function() { // webpackBootstrap
|
|
12
|
+
/******/ "use strict";
|
|
13
|
+
/******/ var __webpack_modules__ = ({
|
|
14
|
+
|
|
15
|
+
/***/ 2481:
|
|
16
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var isCallable = __webpack_require__(8252);
|
|
20
|
+
var tryToString = __webpack_require__(1958);
|
|
21
|
+
|
|
22
|
+
var $TypeError = TypeError;
|
|
23
|
+
|
|
24
|
+
// `Assert: IsCallable(argument) is true`
|
|
25
|
+
module.exports = function (argument) {
|
|
26
|
+
if (isCallable(argument)) return argument;
|
|
27
|
+
throw new $TypeError(tryToString(argument) + ' is not a function');
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
/***/ }),
|
|
32
|
+
|
|
33
|
+
/***/ 7938:
|
|
34
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
38
|
+
var create = __webpack_require__(3369);
|
|
39
|
+
var defineProperty = (__webpack_require__(1250).f);
|
|
40
|
+
|
|
41
|
+
var UNSCOPABLES = wellKnownSymbol('unscopables');
|
|
42
|
+
var ArrayPrototype = Array.prototype;
|
|
43
|
+
|
|
44
|
+
// Array.prototype[@@unscopables]
|
|
45
|
+
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
|
|
46
|
+
if (ArrayPrototype[UNSCOPABLES] === undefined) {
|
|
47
|
+
defineProperty(ArrayPrototype, UNSCOPABLES, {
|
|
48
|
+
configurable: true,
|
|
49
|
+
value: create(null)
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// add a key to Array.prototype[@@unscopables]
|
|
54
|
+
module.exports = function (key) {
|
|
55
|
+
ArrayPrototype[UNSCOPABLES][key] = true;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
/***/ }),
|
|
60
|
+
|
|
61
|
+
/***/ 462:
|
|
62
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
var isPrototypeOf = __webpack_require__(8130);
|
|
66
|
+
|
|
67
|
+
var $TypeError = TypeError;
|
|
68
|
+
|
|
69
|
+
module.exports = function (it, Prototype) {
|
|
70
|
+
if (isPrototypeOf(Prototype, it)) return it;
|
|
71
|
+
throw new $TypeError('Incorrect invocation');
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/***/ }),
|
|
76
|
+
|
|
77
|
+
/***/ 3162:
|
|
78
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
var isObject = __webpack_require__(8271);
|
|
82
|
+
|
|
83
|
+
var $String = String;
|
|
84
|
+
var $TypeError = TypeError;
|
|
85
|
+
|
|
86
|
+
// `Assert: Type(argument) is Object`
|
|
87
|
+
module.exports = function (argument) {
|
|
88
|
+
if (isObject(argument)) return argument;
|
|
89
|
+
throw new $TypeError($String(argument) + ' is not an object');
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
/***/ }),
|
|
94
|
+
|
|
95
|
+
/***/ 8658:
|
|
96
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
var toIndexedObject = __webpack_require__(2364);
|
|
100
|
+
var toAbsoluteIndex = __webpack_require__(9283);
|
|
101
|
+
var lengthOfArrayLike = __webpack_require__(6013);
|
|
102
|
+
|
|
103
|
+
// `Array.prototype.{ indexOf, includes }` methods implementation
|
|
104
|
+
var createMethod = function (IS_INCLUDES) {
|
|
105
|
+
return function ($this, el, fromIndex) {
|
|
106
|
+
var O = toIndexedObject($this);
|
|
107
|
+
var length = lengthOfArrayLike(O);
|
|
108
|
+
if (length === 0) return !IS_INCLUDES && -1;
|
|
109
|
+
var index = toAbsoluteIndex(fromIndex, length);
|
|
110
|
+
var value;
|
|
111
|
+
// Array#includes uses SameValueZero equality algorithm
|
|
112
|
+
// eslint-disable-next-line no-self-compare -- NaN check
|
|
113
|
+
if (IS_INCLUDES && el !== el) while (length > index) {
|
|
114
|
+
value = O[index++];
|
|
115
|
+
// eslint-disable-next-line no-self-compare -- NaN check
|
|
116
|
+
if (value !== value) return true;
|
|
117
|
+
// Array#indexOf ignores holes, Array#includes - not
|
|
118
|
+
} else for (;length > index; index++) {
|
|
119
|
+
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
|
|
120
|
+
} return !IS_INCLUDES && -1;
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
module.exports = {
|
|
125
|
+
// `Array.prototype.includes` method
|
|
126
|
+
// https://tc39.es/ecma262/#sec-array.prototype.includes
|
|
127
|
+
includes: createMethod(true),
|
|
128
|
+
// `Array.prototype.indexOf` method
|
|
129
|
+
// https://tc39.es/ecma262/#sec-array.prototype.indexof
|
|
130
|
+
indexOf: createMethod(false)
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
/***/ }),
|
|
135
|
+
|
|
136
|
+
/***/ 592:
|
|
137
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
141
|
+
var isArray = __webpack_require__(8431);
|
|
142
|
+
|
|
143
|
+
var $TypeError = TypeError;
|
|
144
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
145
|
+
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
146
|
+
|
|
147
|
+
// Safari < 13 does not throw an error in this case
|
|
148
|
+
var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
|
|
149
|
+
// makes no sense without proper strict mode support
|
|
150
|
+
if (this !== undefined) return true;
|
|
151
|
+
try {
|
|
152
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
153
|
+
Object.defineProperty([], 'length', { writable: false }).length = 1;
|
|
154
|
+
} catch (error) {
|
|
155
|
+
return error instanceof TypeError;
|
|
156
|
+
}
|
|
157
|
+
}();
|
|
158
|
+
|
|
159
|
+
module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
|
|
160
|
+
if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
|
|
161
|
+
throw new $TypeError('Cannot set read only .length');
|
|
162
|
+
} return O.length = length;
|
|
163
|
+
} : function (O, length) {
|
|
164
|
+
return O.length = length;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
/***/ }),
|
|
169
|
+
|
|
170
|
+
/***/ 9836:
|
|
171
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
var anObject = __webpack_require__(3162);
|
|
175
|
+
var iteratorClose = __webpack_require__(1380);
|
|
176
|
+
|
|
177
|
+
// call something on iterator step with safe closing on error
|
|
178
|
+
module.exports = function (iterator, fn, value, ENTRIES) {
|
|
179
|
+
try {
|
|
180
|
+
return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
iteratorClose(iterator, 'throw', error);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
/***/ }),
|
|
188
|
+
|
|
189
|
+
/***/ 7409:
|
|
190
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
var uncurryThis = __webpack_require__(2289);
|
|
194
|
+
|
|
195
|
+
var toString = uncurryThis({}.toString);
|
|
196
|
+
var stringSlice = uncurryThis(''.slice);
|
|
197
|
+
|
|
198
|
+
module.exports = function (it) {
|
|
199
|
+
return stringSlice(toString(it), 8, -1);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
/***/ }),
|
|
204
|
+
|
|
205
|
+
/***/ 110:
|
|
206
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
var TO_STRING_TAG_SUPPORT = __webpack_require__(1153);
|
|
210
|
+
var isCallable = __webpack_require__(8252);
|
|
211
|
+
var classofRaw = __webpack_require__(7409);
|
|
212
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
213
|
+
|
|
214
|
+
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
215
|
+
var $Object = Object;
|
|
216
|
+
|
|
217
|
+
// ES3 wrong here
|
|
218
|
+
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';
|
|
219
|
+
|
|
220
|
+
// fallback for IE11 Script Access Denied error
|
|
221
|
+
var tryGet = function (it, key) {
|
|
222
|
+
try {
|
|
223
|
+
return it[key];
|
|
224
|
+
} catch (error) { /* empty */ }
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// getting tag from ES6+ `Object.prototype.toString`
|
|
228
|
+
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
|
|
229
|
+
var O, tag, result;
|
|
230
|
+
return it === undefined ? 'Undefined' : it === null ? 'Null'
|
|
231
|
+
// @@toStringTag case
|
|
232
|
+
: typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
|
|
233
|
+
// builtinTag case
|
|
234
|
+
: CORRECT_ARGUMENTS ? classofRaw(O)
|
|
235
|
+
// ES3 arguments fallback
|
|
236
|
+
: (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
/***/ }),
|
|
241
|
+
|
|
242
|
+
/***/ 4993:
|
|
243
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
var hasOwn = __webpack_require__(9522);
|
|
247
|
+
var ownKeys = __webpack_require__(5456);
|
|
248
|
+
var getOwnPropertyDescriptorModule = __webpack_require__(6056);
|
|
249
|
+
var definePropertyModule = __webpack_require__(1250);
|
|
250
|
+
|
|
251
|
+
module.exports = function (target, source, exceptions) {
|
|
252
|
+
var keys = ownKeys(source);
|
|
253
|
+
var defineProperty = definePropertyModule.f;
|
|
254
|
+
var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
|
|
255
|
+
for (var i = 0; i < keys.length; i++) {
|
|
256
|
+
var key = keys[i];
|
|
257
|
+
if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
|
|
258
|
+
defineProperty(target, key, getOwnPropertyDescriptor(source, key));
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
/***/ }),
|
|
265
|
+
|
|
266
|
+
/***/ 6280:
|
|
267
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
var fails = __webpack_require__(8930);
|
|
271
|
+
|
|
272
|
+
module.exports = !fails(function () {
|
|
273
|
+
function F() { /* empty */ }
|
|
274
|
+
F.prototype.constructor = null;
|
|
275
|
+
// eslint-disable-next-line es/no-object-getprototypeof -- required for testing
|
|
276
|
+
return Object.getPrototypeOf(new F()) !== F.prototype;
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
/***/ }),
|
|
281
|
+
|
|
282
|
+
/***/ 4992:
|
|
283
|
+
/***/ (function(module) {
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
// `CreateIterResultObject` abstract operation
|
|
287
|
+
// https://tc39.es/ecma262/#sec-createiterresultobject
|
|
288
|
+
module.exports = function (value, done) {
|
|
289
|
+
return { value: value, done: done };
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
/***/ }),
|
|
294
|
+
|
|
295
|
+
/***/ 232:
|
|
296
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
300
|
+
var definePropertyModule = __webpack_require__(1250);
|
|
301
|
+
var createPropertyDescriptor = __webpack_require__(9299);
|
|
302
|
+
|
|
303
|
+
module.exports = DESCRIPTORS ? function (object, key, value) {
|
|
304
|
+
return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
|
|
305
|
+
} : function (object, key, value) {
|
|
306
|
+
object[key] = value;
|
|
307
|
+
return object;
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
/***/ }),
|
|
312
|
+
|
|
313
|
+
/***/ 9299:
|
|
314
|
+
/***/ (function(module) {
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
module.exports = function (bitmap, value) {
|
|
318
|
+
return {
|
|
319
|
+
enumerable: !(bitmap & 1),
|
|
320
|
+
configurable: !(bitmap & 2),
|
|
321
|
+
writable: !(bitmap & 4),
|
|
322
|
+
value: value
|
|
323
|
+
};
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
/***/ }),
|
|
328
|
+
|
|
329
|
+
/***/ 721:
|
|
330
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
334
|
+
var definePropertyModule = __webpack_require__(1250);
|
|
335
|
+
var createPropertyDescriptor = __webpack_require__(9299);
|
|
336
|
+
|
|
337
|
+
module.exports = function (object, key, value) {
|
|
338
|
+
if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));
|
|
339
|
+
else object[key] = value;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
/***/ }),
|
|
344
|
+
|
|
345
|
+
/***/ 7893:
|
|
346
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
var makeBuiltIn = __webpack_require__(4034);
|
|
350
|
+
var defineProperty = __webpack_require__(1250);
|
|
351
|
+
|
|
352
|
+
module.exports = function (target, name, descriptor) {
|
|
353
|
+
if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });
|
|
354
|
+
if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });
|
|
355
|
+
return defineProperty.f(target, name, descriptor);
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
/***/ }),
|
|
360
|
+
|
|
361
|
+
/***/ 3589:
|
|
362
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
var isCallable = __webpack_require__(8252);
|
|
366
|
+
var definePropertyModule = __webpack_require__(1250);
|
|
367
|
+
var makeBuiltIn = __webpack_require__(4034);
|
|
368
|
+
var defineGlobalProperty = __webpack_require__(7214);
|
|
369
|
+
|
|
370
|
+
module.exports = function (O, key, value, options) {
|
|
371
|
+
if (!options) options = {};
|
|
372
|
+
var simple = options.enumerable;
|
|
373
|
+
var name = options.name !== undefined ? options.name : key;
|
|
374
|
+
if (isCallable(value)) makeBuiltIn(value, name, options);
|
|
375
|
+
if (options.global) {
|
|
376
|
+
if (simple) O[key] = value;
|
|
377
|
+
else defineGlobalProperty(key, value);
|
|
378
|
+
} else {
|
|
379
|
+
try {
|
|
380
|
+
if (!options.unsafe) delete O[key];
|
|
381
|
+
else if (O[key]) simple = true;
|
|
382
|
+
} catch (error) { /* empty */ }
|
|
383
|
+
if (simple) O[key] = value;
|
|
384
|
+
else definePropertyModule.f(O, key, {
|
|
385
|
+
value: value,
|
|
386
|
+
enumerable: false,
|
|
387
|
+
configurable: !options.nonConfigurable,
|
|
388
|
+
writable: !options.nonWritable
|
|
389
|
+
});
|
|
390
|
+
} return O;
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
/***/ }),
|
|
395
|
+
|
|
396
|
+
/***/ 2976:
|
|
397
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
var defineBuiltIn = __webpack_require__(3589);
|
|
401
|
+
|
|
402
|
+
module.exports = function (target, src, options) {
|
|
403
|
+
for (var key in src) defineBuiltIn(target, key, src[key], options);
|
|
404
|
+
return target;
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
/***/ }),
|
|
409
|
+
|
|
410
|
+
/***/ 7214:
|
|
411
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
var globalThis = __webpack_require__(3405);
|
|
415
|
+
|
|
416
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
417
|
+
var defineProperty = Object.defineProperty;
|
|
418
|
+
|
|
419
|
+
module.exports = function (key, value) {
|
|
420
|
+
try {
|
|
421
|
+
defineProperty(globalThis, key, { value: value, configurable: true, writable: true });
|
|
422
|
+
} catch (error) {
|
|
423
|
+
globalThis[key] = value;
|
|
424
|
+
} return value;
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
|
|
428
|
+
/***/ }),
|
|
429
|
+
|
|
430
|
+
/***/ 7101:
|
|
431
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
var fails = __webpack_require__(8930);
|
|
435
|
+
|
|
436
|
+
// Detect IE8's incomplete defineProperty implementation
|
|
437
|
+
module.exports = !fails(function () {
|
|
438
|
+
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
439
|
+
return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
|
|
440
|
+
});
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
/***/ }),
|
|
444
|
+
|
|
445
|
+
/***/ 2998:
|
|
446
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
var globalThis = __webpack_require__(3405);
|
|
450
|
+
var isObject = __webpack_require__(8271);
|
|
451
|
+
|
|
452
|
+
var document = globalThis.document;
|
|
453
|
+
// typeof document.createElement is 'object' in old IE
|
|
454
|
+
var EXISTS = isObject(document) && isObject(document.createElement);
|
|
455
|
+
|
|
456
|
+
module.exports = function (it) {
|
|
457
|
+
return EXISTS ? document.createElement(it) : {};
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
/***/ }),
|
|
462
|
+
|
|
463
|
+
/***/ 6994:
|
|
464
|
+
/***/ (function(module) {
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
var $TypeError = TypeError;
|
|
468
|
+
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
|
|
469
|
+
|
|
470
|
+
module.exports = function (it) {
|
|
471
|
+
if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');
|
|
472
|
+
return it;
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
/***/ }),
|
|
477
|
+
|
|
478
|
+
/***/ 7658:
|
|
479
|
+
/***/ (function(module) {
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
// IE8- don't enum bug keys
|
|
483
|
+
module.exports = [
|
|
484
|
+
'constructor',
|
|
485
|
+
'hasOwnProperty',
|
|
486
|
+
'isPrototypeOf',
|
|
487
|
+
'propertyIsEnumerable',
|
|
488
|
+
'toLocaleString',
|
|
489
|
+
'toString',
|
|
490
|
+
'valueOf'
|
|
491
|
+
];
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
/***/ }),
|
|
495
|
+
|
|
496
|
+
/***/ 6332:
|
|
497
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
var globalThis = __webpack_require__(3405);
|
|
501
|
+
|
|
502
|
+
var navigator = globalThis.navigator;
|
|
503
|
+
var userAgent = navigator && navigator.userAgent;
|
|
504
|
+
|
|
505
|
+
module.exports = userAgent ? String(userAgent) : '';
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
/***/ }),
|
|
509
|
+
|
|
510
|
+
/***/ 5168:
|
|
511
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
var globalThis = __webpack_require__(3405);
|
|
515
|
+
var userAgent = __webpack_require__(6332);
|
|
516
|
+
|
|
517
|
+
var process = globalThis.process;
|
|
518
|
+
var Deno = globalThis.Deno;
|
|
519
|
+
var versions = process && process.versions || Deno && Deno.version;
|
|
520
|
+
var v8 = versions && versions.v8;
|
|
521
|
+
var match, version;
|
|
522
|
+
|
|
523
|
+
if (v8) {
|
|
524
|
+
match = v8.split('.');
|
|
525
|
+
// in old Chrome, versions of V8 isn't V8 = Chrome / 10
|
|
526
|
+
// but their correct versions are not interesting for us
|
|
527
|
+
version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
|
|
531
|
+
// so check `userAgent` even if `.v8` exists, but 0
|
|
532
|
+
if (!version && userAgent) {
|
|
533
|
+
match = userAgent.match(/Edge\/(\d+)/);
|
|
534
|
+
if (!match || match[1] >= 74) {
|
|
535
|
+
match = userAgent.match(/Chrome\/(\d+)/);
|
|
536
|
+
if (match) version = +match[1];
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
module.exports = version;
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
/***/ }),
|
|
544
|
+
|
|
545
|
+
/***/ 7725:
|
|
546
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
var globalThis = __webpack_require__(3405);
|
|
550
|
+
var getOwnPropertyDescriptor = (__webpack_require__(6056).f);
|
|
551
|
+
var createNonEnumerableProperty = __webpack_require__(232);
|
|
552
|
+
var defineBuiltIn = __webpack_require__(3589);
|
|
553
|
+
var defineGlobalProperty = __webpack_require__(7214);
|
|
554
|
+
var copyConstructorProperties = __webpack_require__(4993);
|
|
555
|
+
var isForced = __webpack_require__(5129);
|
|
556
|
+
|
|
557
|
+
/*
|
|
558
|
+
options.target - name of the target object
|
|
559
|
+
options.global - target is the global object
|
|
560
|
+
options.stat - export as static methods of target
|
|
561
|
+
options.proto - export as prototype methods of target
|
|
562
|
+
options.real - real prototype method for the `pure` version
|
|
563
|
+
options.forced - export even if the native feature is available
|
|
564
|
+
options.bind - bind methods to the target, required for the `pure` version
|
|
565
|
+
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
|
|
566
|
+
options.unsafe - use the simple assignment of property instead of delete + defineProperty
|
|
567
|
+
options.sham - add a flag to not completely full polyfills
|
|
568
|
+
options.enumerable - export as enumerable property
|
|
569
|
+
options.dontCallGetSet - prevent calling a getter on target
|
|
570
|
+
options.name - the .name of the function if it does not match the key
|
|
571
|
+
*/
|
|
572
|
+
module.exports = function (options, source) {
|
|
573
|
+
var TARGET = options.target;
|
|
574
|
+
var GLOBAL = options.global;
|
|
575
|
+
var STATIC = options.stat;
|
|
576
|
+
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
|
|
577
|
+
if (GLOBAL) {
|
|
578
|
+
target = globalThis;
|
|
579
|
+
} else if (STATIC) {
|
|
580
|
+
target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});
|
|
581
|
+
} else {
|
|
582
|
+
target = globalThis[TARGET] && globalThis[TARGET].prototype;
|
|
583
|
+
}
|
|
584
|
+
if (target) for (key in source) {
|
|
585
|
+
sourceProperty = source[key];
|
|
586
|
+
if (options.dontCallGetSet) {
|
|
587
|
+
descriptor = getOwnPropertyDescriptor(target, key);
|
|
588
|
+
targetProperty = descriptor && descriptor.value;
|
|
589
|
+
} else targetProperty = target[key];
|
|
590
|
+
FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
|
|
591
|
+
// contained in target
|
|
592
|
+
if (!FORCED && targetProperty !== undefined) {
|
|
593
|
+
if (typeof sourceProperty == typeof targetProperty) continue;
|
|
594
|
+
copyConstructorProperties(sourceProperty, targetProperty);
|
|
595
|
+
}
|
|
596
|
+
// add a flag to not completely full polyfills
|
|
597
|
+
if (options.sham || (targetProperty && targetProperty.sham)) {
|
|
598
|
+
createNonEnumerableProperty(sourceProperty, 'sham', true);
|
|
599
|
+
}
|
|
600
|
+
defineBuiltIn(target, key, sourceProperty, options);
|
|
601
|
+
}
|
|
602
|
+
};
|
|
603
|
+
|
|
604
|
+
|
|
605
|
+
/***/ }),
|
|
606
|
+
|
|
607
|
+
/***/ 8930:
|
|
608
|
+
/***/ (function(module) {
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
module.exports = function (exec) {
|
|
612
|
+
try {
|
|
613
|
+
return !!exec();
|
|
614
|
+
} catch (error) {
|
|
615
|
+
return true;
|
|
616
|
+
}
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
/***/ }),
|
|
621
|
+
|
|
622
|
+
/***/ 5990:
|
|
623
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
var NATIVE_BIND = __webpack_require__(5647);
|
|
627
|
+
|
|
628
|
+
var FunctionPrototype = Function.prototype;
|
|
629
|
+
var apply = FunctionPrototype.apply;
|
|
630
|
+
var call = FunctionPrototype.call;
|
|
631
|
+
|
|
632
|
+
// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe
|
|
633
|
+
module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
|
|
634
|
+
return call.apply(apply, arguments);
|
|
635
|
+
});
|
|
636
|
+
|
|
637
|
+
|
|
638
|
+
/***/ }),
|
|
639
|
+
|
|
640
|
+
/***/ 4445:
|
|
641
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
var uncurryThis = __webpack_require__(9995);
|
|
645
|
+
var aCallable = __webpack_require__(2481);
|
|
646
|
+
var NATIVE_BIND = __webpack_require__(5647);
|
|
647
|
+
|
|
648
|
+
var bind = uncurryThis(uncurryThis.bind);
|
|
649
|
+
|
|
650
|
+
// optional / simple context binding
|
|
651
|
+
module.exports = function (fn, that) {
|
|
652
|
+
aCallable(fn);
|
|
653
|
+
return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {
|
|
654
|
+
return fn.apply(that, arguments);
|
|
655
|
+
};
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
/***/ }),
|
|
660
|
+
|
|
661
|
+
/***/ 5647:
|
|
662
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
var fails = __webpack_require__(8930);
|
|
666
|
+
|
|
667
|
+
module.exports = !fails(function () {
|
|
668
|
+
// eslint-disable-next-line es/no-function-prototype-bind -- safe
|
|
669
|
+
var test = function () { /* empty */ }.bind();
|
|
670
|
+
// eslint-disable-next-line no-prototype-builtins -- safe
|
|
671
|
+
return typeof test != 'function' || test.hasOwnProperty('prototype');
|
|
672
|
+
});
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
/***/ }),
|
|
676
|
+
|
|
677
|
+
/***/ 3176:
|
|
678
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
var NATIVE_BIND = __webpack_require__(5647);
|
|
682
|
+
|
|
683
|
+
var call = Function.prototype.call;
|
|
684
|
+
// eslint-disable-next-line es/no-function-prototype-bind -- safe
|
|
685
|
+
module.exports = NATIVE_BIND ? call.bind(call) : function () {
|
|
686
|
+
return call.apply(call, arguments);
|
|
687
|
+
};
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
/***/ }),
|
|
691
|
+
|
|
692
|
+
/***/ 3743:
|
|
693
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
694
|
+
|
|
695
|
+
|
|
696
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
697
|
+
var hasOwn = __webpack_require__(9522);
|
|
698
|
+
|
|
699
|
+
var FunctionPrototype = Function.prototype;
|
|
700
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
701
|
+
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
|
|
702
|
+
|
|
703
|
+
var EXISTS = hasOwn(FunctionPrototype, 'name');
|
|
704
|
+
// additional protection from minified / mangled / dropped function names
|
|
705
|
+
var PROPER = EXISTS && function something() { /* empty */ }.name === 'something';
|
|
706
|
+
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
|
|
707
|
+
|
|
708
|
+
module.exports = {
|
|
709
|
+
EXISTS: EXISTS,
|
|
710
|
+
PROPER: PROPER,
|
|
711
|
+
CONFIGURABLE: CONFIGURABLE
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
/***/ }),
|
|
716
|
+
|
|
717
|
+
/***/ 9995:
|
|
718
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
var classofRaw = __webpack_require__(7409);
|
|
722
|
+
var uncurryThis = __webpack_require__(2289);
|
|
723
|
+
|
|
724
|
+
module.exports = function (fn) {
|
|
725
|
+
// Nashorn bug:
|
|
726
|
+
// https://github.com/zloirock/core-js/issues/1128
|
|
727
|
+
// https://github.com/zloirock/core-js/issues/1130
|
|
728
|
+
if (classofRaw(fn) === 'Function') return uncurryThis(fn);
|
|
729
|
+
};
|
|
730
|
+
|
|
731
|
+
|
|
732
|
+
/***/ }),
|
|
733
|
+
|
|
734
|
+
/***/ 2289:
|
|
735
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
736
|
+
|
|
737
|
+
|
|
738
|
+
var NATIVE_BIND = __webpack_require__(5647);
|
|
739
|
+
|
|
740
|
+
var FunctionPrototype = Function.prototype;
|
|
741
|
+
var call = FunctionPrototype.call;
|
|
742
|
+
// eslint-disable-next-line es/no-function-prototype-bind -- safe
|
|
743
|
+
var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
|
|
744
|
+
|
|
745
|
+
module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
|
|
746
|
+
return function () {
|
|
747
|
+
return call.apply(fn, arguments);
|
|
748
|
+
};
|
|
749
|
+
};
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
/***/ }),
|
|
753
|
+
|
|
754
|
+
/***/ 3220:
|
|
755
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
var globalThis = __webpack_require__(3405);
|
|
759
|
+
var isCallable = __webpack_require__(8252);
|
|
760
|
+
|
|
761
|
+
var aFunction = function (argument) {
|
|
762
|
+
return isCallable(argument) ? argument : undefined;
|
|
763
|
+
};
|
|
764
|
+
|
|
765
|
+
module.exports = function (namespace, method) {
|
|
766
|
+
return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];
|
|
767
|
+
};
|
|
768
|
+
|
|
769
|
+
|
|
770
|
+
/***/ }),
|
|
771
|
+
|
|
772
|
+
/***/ 6226:
|
|
773
|
+
/***/ (function(module) {
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
// `GetIteratorDirect(obj)` abstract operation
|
|
777
|
+
// https://tc39.es/ecma262/#sec-getiteratordirect
|
|
778
|
+
module.exports = function (obj) {
|
|
779
|
+
return {
|
|
780
|
+
iterator: obj,
|
|
781
|
+
next: obj.next,
|
|
782
|
+
done: false
|
|
783
|
+
};
|
|
784
|
+
};
|
|
785
|
+
|
|
786
|
+
|
|
787
|
+
/***/ }),
|
|
788
|
+
|
|
789
|
+
/***/ 8258:
|
|
790
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
791
|
+
|
|
792
|
+
|
|
793
|
+
var classof = __webpack_require__(110);
|
|
794
|
+
var getMethod = __webpack_require__(3377);
|
|
795
|
+
var isNullOrUndefined = __webpack_require__(3022);
|
|
796
|
+
var Iterators = __webpack_require__(4988);
|
|
797
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
798
|
+
|
|
799
|
+
var ITERATOR = wellKnownSymbol('iterator');
|
|
800
|
+
|
|
801
|
+
module.exports = function (it) {
|
|
802
|
+
if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
|
|
803
|
+
|| getMethod(it, '@@iterator')
|
|
804
|
+
|| Iterators[classof(it)];
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
/***/ }),
|
|
809
|
+
|
|
810
|
+
/***/ 4750:
|
|
811
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
var call = __webpack_require__(3176);
|
|
815
|
+
var aCallable = __webpack_require__(2481);
|
|
816
|
+
var anObject = __webpack_require__(3162);
|
|
817
|
+
var tryToString = __webpack_require__(1958);
|
|
818
|
+
var getIteratorMethod = __webpack_require__(8258);
|
|
819
|
+
|
|
820
|
+
var $TypeError = TypeError;
|
|
821
|
+
|
|
822
|
+
module.exports = function (argument, usingIterator) {
|
|
823
|
+
var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
|
|
824
|
+
if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
|
|
825
|
+
throw new $TypeError(tryToString(argument) + ' is not iterable');
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
/***/ }),
|
|
830
|
+
|
|
831
|
+
/***/ 3377:
|
|
832
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
833
|
+
|
|
834
|
+
|
|
835
|
+
var aCallable = __webpack_require__(2481);
|
|
836
|
+
var isNullOrUndefined = __webpack_require__(3022);
|
|
837
|
+
|
|
838
|
+
// `GetMethod` abstract operation
|
|
839
|
+
// https://tc39.es/ecma262/#sec-getmethod
|
|
840
|
+
module.exports = function (V, P) {
|
|
841
|
+
var func = V[P];
|
|
842
|
+
return isNullOrUndefined(func) ? undefined : aCallable(func);
|
|
843
|
+
};
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
/***/ }),
|
|
847
|
+
|
|
848
|
+
/***/ 3405:
|
|
849
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
var check = function (it) {
|
|
853
|
+
return it && it.Math === Math && it;
|
|
854
|
+
};
|
|
855
|
+
|
|
856
|
+
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
|
|
857
|
+
module.exports =
|
|
858
|
+
// eslint-disable-next-line es/no-global-this -- safe
|
|
859
|
+
check(typeof globalThis == 'object' && globalThis) ||
|
|
860
|
+
check(typeof window == 'object' && window) ||
|
|
861
|
+
// eslint-disable-next-line no-restricted-globals -- safe
|
|
862
|
+
check(typeof self == 'object' && self) ||
|
|
863
|
+
check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
|
|
864
|
+
check(typeof this == 'object' && this) ||
|
|
865
|
+
// eslint-disable-next-line no-new-func -- fallback
|
|
866
|
+
(function () { return this; })() || Function('return this')();
|
|
867
|
+
|
|
868
|
+
|
|
869
|
+
/***/ }),
|
|
870
|
+
|
|
871
|
+
/***/ 9522:
|
|
872
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
873
|
+
|
|
874
|
+
|
|
875
|
+
var uncurryThis = __webpack_require__(2289);
|
|
876
|
+
var toObject = __webpack_require__(1724);
|
|
877
|
+
|
|
878
|
+
var hasOwnProperty = uncurryThis({}.hasOwnProperty);
|
|
879
|
+
|
|
880
|
+
// `HasOwnProperty` abstract operation
|
|
881
|
+
// https://tc39.es/ecma262/#sec-hasownproperty
|
|
882
|
+
// eslint-disable-next-line es/no-object-hasown -- safe
|
|
883
|
+
module.exports = Object.hasOwn || function hasOwn(it, key) {
|
|
884
|
+
return hasOwnProperty(toObject(it), key);
|
|
885
|
+
};
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
/***/ }),
|
|
889
|
+
|
|
890
|
+
/***/ 4036:
|
|
891
|
+
/***/ (function(module) {
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
module.exports = {};
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
/***/ }),
|
|
898
|
+
|
|
899
|
+
/***/ 9810:
|
|
900
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
901
|
+
|
|
902
|
+
|
|
903
|
+
var getBuiltIn = __webpack_require__(3220);
|
|
904
|
+
|
|
905
|
+
module.exports = getBuiltIn('document', 'documentElement');
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
/***/ }),
|
|
909
|
+
|
|
910
|
+
/***/ 1782:
|
|
911
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
915
|
+
var fails = __webpack_require__(8930);
|
|
916
|
+
var createElement = __webpack_require__(2998);
|
|
917
|
+
|
|
918
|
+
// Thanks to IE8 for its funny defineProperty
|
|
919
|
+
module.exports = !DESCRIPTORS && !fails(function () {
|
|
920
|
+
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
921
|
+
return Object.defineProperty(createElement('div'), 'a', {
|
|
922
|
+
get: function () { return 7; }
|
|
923
|
+
}).a !== 7;
|
|
924
|
+
});
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
/***/ }),
|
|
928
|
+
|
|
929
|
+
/***/ 1792:
|
|
930
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
var uncurryThis = __webpack_require__(2289);
|
|
934
|
+
var fails = __webpack_require__(8930);
|
|
935
|
+
var classof = __webpack_require__(7409);
|
|
936
|
+
|
|
937
|
+
var $Object = Object;
|
|
938
|
+
var split = uncurryThis(''.split);
|
|
939
|
+
|
|
940
|
+
// fallback for non-array-like ES3 and non-enumerable old V8 strings
|
|
941
|
+
module.exports = fails(function () {
|
|
942
|
+
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
|
|
943
|
+
// eslint-disable-next-line no-prototype-builtins -- safe
|
|
944
|
+
return !$Object('z').propertyIsEnumerable(0);
|
|
945
|
+
}) ? function (it) {
|
|
946
|
+
return classof(it) === 'String' ? split(it, '') : $Object(it);
|
|
947
|
+
} : $Object;
|
|
948
|
+
|
|
949
|
+
|
|
950
|
+
/***/ }),
|
|
951
|
+
|
|
952
|
+
/***/ 4117:
|
|
953
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
var uncurryThis = __webpack_require__(2289);
|
|
957
|
+
var isCallable = __webpack_require__(8252);
|
|
958
|
+
var store = __webpack_require__(8486);
|
|
959
|
+
|
|
960
|
+
var functionToString = uncurryThis(Function.toString);
|
|
961
|
+
|
|
962
|
+
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
|
|
963
|
+
if (!isCallable(store.inspectSource)) {
|
|
964
|
+
store.inspectSource = function (it) {
|
|
965
|
+
return functionToString(it);
|
|
966
|
+
};
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
module.exports = store.inspectSource;
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
/***/ }),
|
|
973
|
+
|
|
974
|
+
/***/ 4206:
|
|
975
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
var NATIVE_WEAK_MAP = __webpack_require__(3337);
|
|
979
|
+
var globalThis = __webpack_require__(3405);
|
|
980
|
+
var isObject = __webpack_require__(8271);
|
|
981
|
+
var createNonEnumerableProperty = __webpack_require__(232);
|
|
982
|
+
var hasOwn = __webpack_require__(9522);
|
|
983
|
+
var shared = __webpack_require__(8486);
|
|
984
|
+
var sharedKey = __webpack_require__(4040);
|
|
985
|
+
var hiddenKeys = __webpack_require__(4036);
|
|
986
|
+
|
|
987
|
+
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
|
|
988
|
+
var TypeError = globalThis.TypeError;
|
|
989
|
+
var WeakMap = globalThis.WeakMap;
|
|
990
|
+
var set, get, has;
|
|
991
|
+
|
|
992
|
+
var enforce = function (it) {
|
|
993
|
+
return has(it) ? get(it) : set(it, {});
|
|
994
|
+
};
|
|
995
|
+
|
|
996
|
+
var getterFor = function (TYPE) {
|
|
997
|
+
return function (it) {
|
|
998
|
+
var state;
|
|
999
|
+
if (!isObject(it) || (state = get(it)).type !== TYPE) {
|
|
1000
|
+
throw new TypeError('Incompatible receiver, ' + TYPE + ' required');
|
|
1001
|
+
} return state;
|
|
1002
|
+
};
|
|
1003
|
+
};
|
|
1004
|
+
|
|
1005
|
+
if (NATIVE_WEAK_MAP || shared.state) {
|
|
1006
|
+
var store = shared.state || (shared.state = new WeakMap());
|
|
1007
|
+
/* eslint-disable no-self-assign -- prototype methods protection */
|
|
1008
|
+
store.get = store.get;
|
|
1009
|
+
store.has = store.has;
|
|
1010
|
+
store.set = store.set;
|
|
1011
|
+
/* eslint-enable no-self-assign -- prototype methods protection */
|
|
1012
|
+
set = function (it, metadata) {
|
|
1013
|
+
if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
|
|
1014
|
+
metadata.facade = it;
|
|
1015
|
+
store.set(it, metadata);
|
|
1016
|
+
return metadata;
|
|
1017
|
+
};
|
|
1018
|
+
get = function (it) {
|
|
1019
|
+
return store.get(it) || {};
|
|
1020
|
+
};
|
|
1021
|
+
has = function (it) {
|
|
1022
|
+
return store.has(it);
|
|
1023
|
+
};
|
|
1024
|
+
} else {
|
|
1025
|
+
var STATE = sharedKey('state');
|
|
1026
|
+
hiddenKeys[STATE] = true;
|
|
1027
|
+
set = function (it, metadata) {
|
|
1028
|
+
if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
|
|
1029
|
+
metadata.facade = it;
|
|
1030
|
+
createNonEnumerableProperty(it, STATE, metadata);
|
|
1031
|
+
return metadata;
|
|
1032
|
+
};
|
|
1033
|
+
get = function (it) {
|
|
1034
|
+
return hasOwn(it, STATE) ? it[STATE] : {};
|
|
1035
|
+
};
|
|
1036
|
+
has = function (it) {
|
|
1037
|
+
return hasOwn(it, STATE);
|
|
1038
|
+
};
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
module.exports = {
|
|
1042
|
+
set: set,
|
|
1043
|
+
get: get,
|
|
1044
|
+
has: has,
|
|
1045
|
+
enforce: enforce,
|
|
1046
|
+
getterFor: getterFor
|
|
1047
|
+
};
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
/***/ }),
|
|
1051
|
+
|
|
1052
|
+
/***/ 450:
|
|
1053
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
1057
|
+
var Iterators = __webpack_require__(4988);
|
|
1058
|
+
|
|
1059
|
+
var ITERATOR = wellKnownSymbol('iterator');
|
|
1060
|
+
var ArrayPrototype = Array.prototype;
|
|
1061
|
+
|
|
1062
|
+
// check on default Array iterator
|
|
1063
|
+
module.exports = function (it) {
|
|
1064
|
+
return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
|
|
1065
|
+
};
|
|
1066
|
+
|
|
1067
|
+
|
|
1068
|
+
/***/ }),
|
|
1069
|
+
|
|
1070
|
+
/***/ 8431:
|
|
1071
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
var classof = __webpack_require__(7409);
|
|
1075
|
+
|
|
1076
|
+
// `IsArray` abstract operation
|
|
1077
|
+
// https://tc39.es/ecma262/#sec-isarray
|
|
1078
|
+
// eslint-disable-next-line es/no-array-isarray -- safe
|
|
1079
|
+
module.exports = Array.isArray || function isArray(argument) {
|
|
1080
|
+
return classof(argument) === 'Array';
|
|
1081
|
+
};
|
|
1082
|
+
|
|
1083
|
+
|
|
1084
|
+
/***/ }),
|
|
1085
|
+
|
|
1086
|
+
/***/ 8252:
|
|
1087
|
+
/***/ (function(module) {
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
|
|
1091
|
+
var documentAll = typeof document == 'object' && document.all;
|
|
1092
|
+
|
|
1093
|
+
// `IsCallable` abstract operation
|
|
1094
|
+
// https://tc39.es/ecma262/#sec-iscallable
|
|
1095
|
+
// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing
|
|
1096
|
+
module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {
|
|
1097
|
+
return typeof argument == 'function' || argument === documentAll;
|
|
1098
|
+
} : function (argument) {
|
|
1099
|
+
return typeof argument == 'function';
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
/***/ }),
|
|
1104
|
+
|
|
1105
|
+
/***/ 5129:
|
|
1106
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1107
|
+
|
|
1108
|
+
|
|
1109
|
+
var fails = __webpack_require__(8930);
|
|
1110
|
+
var isCallable = __webpack_require__(8252);
|
|
1111
|
+
|
|
1112
|
+
var replacement = /#|\.prototype\./;
|
|
1113
|
+
|
|
1114
|
+
var isForced = function (feature, detection) {
|
|
1115
|
+
var value = data[normalize(feature)];
|
|
1116
|
+
return value === POLYFILL ? true
|
|
1117
|
+
: value === NATIVE ? false
|
|
1118
|
+
: isCallable(detection) ? fails(detection)
|
|
1119
|
+
: !!detection;
|
|
1120
|
+
};
|
|
1121
|
+
|
|
1122
|
+
var normalize = isForced.normalize = function (string) {
|
|
1123
|
+
return String(string).replace(replacement, '.').toLowerCase();
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
var data = isForced.data = {};
|
|
1127
|
+
var NATIVE = isForced.NATIVE = 'N';
|
|
1128
|
+
var POLYFILL = isForced.POLYFILL = 'P';
|
|
1129
|
+
|
|
1130
|
+
module.exports = isForced;
|
|
1131
|
+
|
|
1132
|
+
|
|
1133
|
+
/***/ }),
|
|
1134
|
+
|
|
1135
|
+
/***/ 3022:
|
|
1136
|
+
/***/ (function(module) {
|
|
1137
|
+
|
|
1138
|
+
|
|
1139
|
+
// we can't use just `it == null` since of `document.all` special case
|
|
1140
|
+
// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
|
|
1141
|
+
module.exports = function (it) {
|
|
1142
|
+
return it === null || it === undefined;
|
|
1143
|
+
};
|
|
1144
|
+
|
|
1145
|
+
|
|
1146
|
+
/***/ }),
|
|
1147
|
+
|
|
1148
|
+
/***/ 8271:
|
|
1149
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
var isCallable = __webpack_require__(8252);
|
|
1153
|
+
|
|
1154
|
+
module.exports = function (it) {
|
|
1155
|
+
return typeof it == 'object' ? it !== null : isCallable(it);
|
|
1156
|
+
};
|
|
1157
|
+
|
|
1158
|
+
|
|
1159
|
+
/***/ }),
|
|
1160
|
+
|
|
1161
|
+
/***/ 4214:
|
|
1162
|
+
/***/ (function(module) {
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
module.exports = false;
|
|
1166
|
+
|
|
1167
|
+
|
|
1168
|
+
/***/ }),
|
|
1169
|
+
|
|
1170
|
+
/***/ 8944:
|
|
1171
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1172
|
+
|
|
1173
|
+
|
|
1174
|
+
var getBuiltIn = __webpack_require__(3220);
|
|
1175
|
+
var isCallable = __webpack_require__(8252);
|
|
1176
|
+
var isPrototypeOf = __webpack_require__(8130);
|
|
1177
|
+
var USE_SYMBOL_AS_UID = __webpack_require__(5537);
|
|
1178
|
+
|
|
1179
|
+
var $Object = Object;
|
|
1180
|
+
|
|
1181
|
+
module.exports = USE_SYMBOL_AS_UID ? function (it) {
|
|
1182
|
+
return typeof it == 'symbol';
|
|
1183
|
+
} : function (it) {
|
|
1184
|
+
var $Symbol = getBuiltIn('Symbol');
|
|
1185
|
+
return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
/***/ }),
|
|
1190
|
+
|
|
1191
|
+
/***/ 6841:
|
|
1192
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
var bind = __webpack_require__(4445);
|
|
1196
|
+
var call = __webpack_require__(3176);
|
|
1197
|
+
var anObject = __webpack_require__(3162);
|
|
1198
|
+
var tryToString = __webpack_require__(1958);
|
|
1199
|
+
var isArrayIteratorMethod = __webpack_require__(450);
|
|
1200
|
+
var lengthOfArrayLike = __webpack_require__(6013);
|
|
1201
|
+
var isPrototypeOf = __webpack_require__(8130);
|
|
1202
|
+
var getIterator = __webpack_require__(4750);
|
|
1203
|
+
var getIteratorMethod = __webpack_require__(8258);
|
|
1204
|
+
var iteratorClose = __webpack_require__(1380);
|
|
1205
|
+
|
|
1206
|
+
var $TypeError = TypeError;
|
|
1207
|
+
|
|
1208
|
+
var Result = function (stopped, result) {
|
|
1209
|
+
this.stopped = stopped;
|
|
1210
|
+
this.result = result;
|
|
1211
|
+
};
|
|
1212
|
+
|
|
1213
|
+
var ResultPrototype = Result.prototype;
|
|
1214
|
+
|
|
1215
|
+
module.exports = function (iterable, unboundFunction, options) {
|
|
1216
|
+
var that = options && options.that;
|
|
1217
|
+
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
|
|
1218
|
+
var IS_RECORD = !!(options && options.IS_RECORD);
|
|
1219
|
+
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
|
|
1220
|
+
var INTERRUPTED = !!(options && options.INTERRUPTED);
|
|
1221
|
+
var fn = bind(unboundFunction, that);
|
|
1222
|
+
var iterator, iterFn, index, length, result, next, step;
|
|
1223
|
+
|
|
1224
|
+
var stop = function (condition) {
|
|
1225
|
+
var $iterator = iterator;
|
|
1226
|
+
iterator = undefined;
|
|
1227
|
+
if ($iterator) iteratorClose($iterator, 'normal');
|
|
1228
|
+
return new Result(true, condition);
|
|
1229
|
+
};
|
|
1230
|
+
|
|
1231
|
+
var callFn = function (value) {
|
|
1232
|
+
if (AS_ENTRIES) {
|
|
1233
|
+
anObject(value);
|
|
1234
|
+
return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
|
|
1235
|
+
} return INTERRUPTED ? fn(value, stop) : fn(value);
|
|
1236
|
+
};
|
|
1237
|
+
|
|
1238
|
+
if (IS_RECORD) {
|
|
1239
|
+
iterator = iterable.iterator;
|
|
1240
|
+
} else if (IS_ITERATOR) {
|
|
1241
|
+
iterator = iterable;
|
|
1242
|
+
} else {
|
|
1243
|
+
iterFn = getIteratorMethod(iterable);
|
|
1244
|
+
if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');
|
|
1245
|
+
// optimisation for array iterators
|
|
1246
|
+
if (isArrayIteratorMethod(iterFn)) {
|
|
1247
|
+
for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
|
|
1248
|
+
result = callFn(iterable[index]);
|
|
1249
|
+
if (result && isPrototypeOf(ResultPrototype, result)) return result;
|
|
1250
|
+
} return new Result(false);
|
|
1251
|
+
}
|
|
1252
|
+
iterator = getIterator(iterable, iterFn);
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
next = IS_RECORD ? iterable.next : iterator.next;
|
|
1256
|
+
while (!(step = call(next, iterator)).done) {
|
|
1257
|
+
// `IteratorValue` errors should propagate without closing the iterator
|
|
1258
|
+
var value = step.value;
|
|
1259
|
+
try {
|
|
1260
|
+
result = callFn(value);
|
|
1261
|
+
} catch (error) {
|
|
1262
|
+
if (iterator) iteratorClose(iterator, 'throw', error);
|
|
1263
|
+
else throw error;
|
|
1264
|
+
}
|
|
1265
|
+
if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
|
|
1266
|
+
} return new Result(false);
|
|
1267
|
+
};
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
/***/ }),
|
|
1271
|
+
|
|
1272
|
+
/***/ 7462:
|
|
1273
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
var iteratorClose = __webpack_require__(1380);
|
|
1277
|
+
|
|
1278
|
+
module.exports = function (iters, kind, value) {
|
|
1279
|
+
for (var i = iters.length - 1; i >= 0; i--) {
|
|
1280
|
+
if (iters[i] === undefined) continue;
|
|
1281
|
+
try {
|
|
1282
|
+
value = iteratorClose(iters[i].iterator, kind, value);
|
|
1283
|
+
} catch (error) {
|
|
1284
|
+
kind = 'throw';
|
|
1285
|
+
value = error;
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
if (kind === 'throw') throw value;
|
|
1289
|
+
return value;
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
/***/ }),
|
|
1294
|
+
|
|
1295
|
+
/***/ 1380:
|
|
1296
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
var call = __webpack_require__(3176);
|
|
1300
|
+
var anObject = __webpack_require__(3162);
|
|
1301
|
+
var getMethod = __webpack_require__(3377);
|
|
1302
|
+
|
|
1303
|
+
module.exports = function (iterator, kind, value) {
|
|
1304
|
+
var innerResult, innerError;
|
|
1305
|
+
anObject(iterator);
|
|
1306
|
+
try {
|
|
1307
|
+
innerResult = getMethod(iterator, 'return');
|
|
1308
|
+
if (!innerResult) {
|
|
1309
|
+
if (kind === 'throw') throw value;
|
|
1310
|
+
return value;
|
|
1311
|
+
}
|
|
1312
|
+
innerResult = call(innerResult, iterator);
|
|
1313
|
+
} catch (error) {
|
|
1314
|
+
innerError = true;
|
|
1315
|
+
innerResult = error;
|
|
1316
|
+
}
|
|
1317
|
+
if (kind === 'throw') throw value;
|
|
1318
|
+
if (innerError) throw innerResult;
|
|
1319
|
+
anObject(innerResult);
|
|
1320
|
+
return value;
|
|
1321
|
+
};
|
|
1322
|
+
|
|
1323
|
+
|
|
1324
|
+
/***/ }),
|
|
1325
|
+
|
|
1326
|
+
/***/ 7211:
|
|
1327
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
var call = __webpack_require__(3176);
|
|
1331
|
+
var create = __webpack_require__(3369);
|
|
1332
|
+
var createNonEnumerableProperty = __webpack_require__(232);
|
|
1333
|
+
var defineBuiltIns = __webpack_require__(2976);
|
|
1334
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
1335
|
+
var InternalStateModule = __webpack_require__(4206);
|
|
1336
|
+
var getMethod = __webpack_require__(3377);
|
|
1337
|
+
var IteratorPrototype = (__webpack_require__(2274).IteratorPrototype);
|
|
1338
|
+
var createIterResultObject = __webpack_require__(4992);
|
|
1339
|
+
var iteratorClose = __webpack_require__(1380);
|
|
1340
|
+
var iteratorCloseAll = __webpack_require__(7462);
|
|
1341
|
+
|
|
1342
|
+
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
1343
|
+
var ITERATOR_HELPER = 'IteratorHelper';
|
|
1344
|
+
var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';
|
|
1345
|
+
var NORMAL = 'normal';
|
|
1346
|
+
var THROW = 'throw';
|
|
1347
|
+
var setInternalState = InternalStateModule.set;
|
|
1348
|
+
|
|
1349
|
+
var createIteratorProxyPrototype = function (IS_ITERATOR) {
|
|
1350
|
+
var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
|
|
1351
|
+
|
|
1352
|
+
return defineBuiltIns(create(IteratorPrototype), {
|
|
1353
|
+
next: function next() {
|
|
1354
|
+
var state = getInternalState(this);
|
|
1355
|
+
// for simplification:
|
|
1356
|
+
// for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`
|
|
1357
|
+
// for `%IteratorHelperPrototype%.next` - just a value
|
|
1358
|
+
if (IS_ITERATOR) return state.nextHandler();
|
|
1359
|
+
if (state.done) return createIterResultObject(undefined, true);
|
|
1360
|
+
try {
|
|
1361
|
+
var result = state.nextHandler();
|
|
1362
|
+
return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
|
|
1363
|
+
} catch (error) {
|
|
1364
|
+
state.done = true;
|
|
1365
|
+
throw error;
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
'return': function () {
|
|
1369
|
+
var state = getInternalState(this);
|
|
1370
|
+
var iterator = state.iterator;
|
|
1371
|
+
var done = state.done;
|
|
1372
|
+
state.done = true;
|
|
1373
|
+
if (IS_ITERATOR) {
|
|
1374
|
+
var returnMethod = getMethod(iterator, 'return');
|
|
1375
|
+
return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
|
|
1376
|
+
}
|
|
1377
|
+
if (done) return createIterResultObject(undefined, true);
|
|
1378
|
+
if (state.inner) try {
|
|
1379
|
+
iteratorClose(state.inner.iterator, NORMAL);
|
|
1380
|
+
} catch (error) {
|
|
1381
|
+
return iteratorClose(iterator, THROW, error);
|
|
1382
|
+
}
|
|
1383
|
+
if (state.openIters) try {
|
|
1384
|
+
iteratorCloseAll(state.openIters, NORMAL);
|
|
1385
|
+
} catch (error) {
|
|
1386
|
+
if (iterator) return iteratorClose(iterator, THROW, error);
|
|
1387
|
+
throw error;
|
|
1388
|
+
}
|
|
1389
|
+
if (iterator) iteratorClose(iterator, NORMAL);
|
|
1390
|
+
return createIterResultObject(undefined, true);
|
|
1391
|
+
}
|
|
1392
|
+
});
|
|
1393
|
+
};
|
|
1394
|
+
|
|
1395
|
+
var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
|
|
1396
|
+
var IteratorHelperPrototype = createIteratorProxyPrototype(false);
|
|
1397
|
+
|
|
1398
|
+
createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');
|
|
1399
|
+
|
|
1400
|
+
module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
|
|
1401
|
+
var IteratorProxy = function Iterator(record, state) {
|
|
1402
|
+
if (state) {
|
|
1403
|
+
state.iterator = record.iterator;
|
|
1404
|
+
state.next = record.next;
|
|
1405
|
+
} else state = record;
|
|
1406
|
+
state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
|
|
1407
|
+
state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
|
|
1408
|
+
state.nextHandler = nextHandler;
|
|
1409
|
+
state.counter = 0;
|
|
1410
|
+
state.done = false;
|
|
1411
|
+
setInternalState(this, state);
|
|
1412
|
+
};
|
|
1413
|
+
|
|
1414
|
+
IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
|
|
1415
|
+
|
|
1416
|
+
return IteratorProxy;
|
|
1417
|
+
};
|
|
1418
|
+
|
|
1419
|
+
|
|
1420
|
+
/***/ }),
|
|
1421
|
+
|
|
1422
|
+
/***/ 6483:
|
|
1423
|
+
/***/ (function(module) {
|
|
1424
|
+
|
|
1425
|
+
|
|
1426
|
+
// Should throw an error on invalid iterator
|
|
1427
|
+
// https://issues.chromium.org/issues/336839115
|
|
1428
|
+
module.exports = function (methodName, argument) {
|
|
1429
|
+
// eslint-disable-next-line es/no-iterator -- required for testing
|
|
1430
|
+
var method = typeof Iterator == 'function' && Iterator.prototype[methodName];
|
|
1431
|
+
if (method) try {
|
|
1432
|
+
method.call({ next: null }, argument).next();
|
|
1433
|
+
} catch (error) {
|
|
1434
|
+
return true;
|
|
1435
|
+
}
|
|
1436
|
+
};
|
|
1437
|
+
|
|
1438
|
+
|
|
1439
|
+
/***/ }),
|
|
1440
|
+
|
|
1441
|
+
/***/ 2229:
|
|
1442
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
var globalThis = __webpack_require__(3405);
|
|
1446
|
+
|
|
1447
|
+
// https://github.com/tc39/ecma262/pull/3467
|
|
1448
|
+
module.exports = function (METHOD_NAME, ExpectedError) {
|
|
1449
|
+
var Iterator = globalThis.Iterator;
|
|
1450
|
+
var IteratorPrototype = Iterator && Iterator.prototype;
|
|
1451
|
+
var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];
|
|
1452
|
+
|
|
1453
|
+
var CLOSED = false;
|
|
1454
|
+
|
|
1455
|
+
if (method) try {
|
|
1456
|
+
method.call({
|
|
1457
|
+
next: function () { return { done: true }; },
|
|
1458
|
+
'return': function () { CLOSED = true; }
|
|
1459
|
+
}, -1);
|
|
1460
|
+
} catch (error) {
|
|
1461
|
+
// https://bugs.webkit.org/show_bug.cgi?id=291195
|
|
1462
|
+
if (!(error instanceof ExpectedError)) CLOSED = false;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
if (!CLOSED) return method;
|
|
1466
|
+
};
|
|
1467
|
+
|
|
1468
|
+
|
|
1469
|
+
/***/ }),
|
|
1470
|
+
|
|
1471
|
+
/***/ 2274:
|
|
1472
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1473
|
+
|
|
1474
|
+
|
|
1475
|
+
var fails = __webpack_require__(8930);
|
|
1476
|
+
var isCallable = __webpack_require__(8252);
|
|
1477
|
+
var isObject = __webpack_require__(8271);
|
|
1478
|
+
var create = __webpack_require__(3369);
|
|
1479
|
+
var getPrototypeOf = __webpack_require__(8778);
|
|
1480
|
+
var defineBuiltIn = __webpack_require__(3589);
|
|
1481
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
1482
|
+
var IS_PURE = __webpack_require__(4214);
|
|
1483
|
+
|
|
1484
|
+
var ITERATOR = wellKnownSymbol('iterator');
|
|
1485
|
+
var BUGGY_SAFARI_ITERATORS = false;
|
|
1486
|
+
|
|
1487
|
+
// `%IteratorPrototype%` object
|
|
1488
|
+
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
|
|
1489
|
+
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
|
|
1490
|
+
|
|
1491
|
+
/* eslint-disable es/no-array-prototype-keys -- safe */
|
|
1492
|
+
if ([].keys) {
|
|
1493
|
+
arrayIterator = [].keys();
|
|
1494
|
+
// Safari 8 has buggy iterators w/o `next`
|
|
1495
|
+
if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
|
|
1496
|
+
else {
|
|
1497
|
+
PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
|
|
1498
|
+
if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {
|
|
1503
|
+
var test = {};
|
|
1504
|
+
// FF44- legacy iterators case
|
|
1505
|
+
return IteratorPrototype[ITERATOR].call(test) !== test;
|
|
1506
|
+
});
|
|
1507
|
+
|
|
1508
|
+
if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
|
|
1509
|
+
else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
|
|
1510
|
+
|
|
1511
|
+
// `%IteratorPrototype%[@@iterator]()` method
|
|
1512
|
+
// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
|
|
1513
|
+
if (!isCallable(IteratorPrototype[ITERATOR])) {
|
|
1514
|
+
defineBuiltIn(IteratorPrototype, ITERATOR, function () {
|
|
1515
|
+
return this;
|
|
1516
|
+
});
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
module.exports = {
|
|
1520
|
+
IteratorPrototype: IteratorPrototype,
|
|
1521
|
+
BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
|
|
1522
|
+
};
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
/***/ }),
|
|
1526
|
+
|
|
1527
|
+
/***/ 4988:
|
|
1528
|
+
/***/ (function(module) {
|
|
1529
|
+
|
|
1530
|
+
|
|
1531
|
+
module.exports = {};
|
|
1532
|
+
|
|
1533
|
+
|
|
1534
|
+
/***/ }),
|
|
1535
|
+
|
|
1536
|
+
/***/ 6013:
|
|
1537
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1538
|
+
|
|
1539
|
+
|
|
1540
|
+
var toLength = __webpack_require__(5531);
|
|
1541
|
+
|
|
1542
|
+
// `LengthOfArrayLike` abstract operation
|
|
1543
|
+
// https://tc39.es/ecma262/#sec-lengthofarraylike
|
|
1544
|
+
module.exports = function (obj) {
|
|
1545
|
+
return toLength(obj.length);
|
|
1546
|
+
};
|
|
1547
|
+
|
|
1548
|
+
|
|
1549
|
+
/***/ }),
|
|
1550
|
+
|
|
1551
|
+
/***/ 4034:
|
|
1552
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1553
|
+
|
|
1554
|
+
|
|
1555
|
+
var uncurryThis = __webpack_require__(2289);
|
|
1556
|
+
var fails = __webpack_require__(8930);
|
|
1557
|
+
var isCallable = __webpack_require__(8252);
|
|
1558
|
+
var hasOwn = __webpack_require__(9522);
|
|
1559
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
1560
|
+
var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(3743).CONFIGURABLE);
|
|
1561
|
+
var inspectSource = __webpack_require__(4117);
|
|
1562
|
+
var InternalStateModule = __webpack_require__(4206);
|
|
1563
|
+
|
|
1564
|
+
var enforceInternalState = InternalStateModule.enforce;
|
|
1565
|
+
var getInternalState = InternalStateModule.get;
|
|
1566
|
+
var $String = String;
|
|
1567
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
1568
|
+
var defineProperty = Object.defineProperty;
|
|
1569
|
+
var stringSlice = uncurryThis(''.slice);
|
|
1570
|
+
var replace = uncurryThis(''.replace);
|
|
1571
|
+
var join = uncurryThis([].join);
|
|
1572
|
+
|
|
1573
|
+
var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
|
|
1574
|
+
return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
|
|
1575
|
+
});
|
|
1576
|
+
|
|
1577
|
+
var TEMPLATE = String(String).split('String');
|
|
1578
|
+
|
|
1579
|
+
var makeBuiltIn = module.exports = function (value, name, options) {
|
|
1580
|
+
if (stringSlice($String(name), 0, 7) === 'Symbol(') {
|
|
1581
|
+
name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']';
|
|
1582
|
+
}
|
|
1583
|
+
if (options && options.getter) name = 'get ' + name;
|
|
1584
|
+
if (options && options.setter) name = 'set ' + name;
|
|
1585
|
+
if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
|
|
1586
|
+
if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });
|
|
1587
|
+
else value.name = name;
|
|
1588
|
+
}
|
|
1589
|
+
if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
|
|
1590
|
+
defineProperty(value, 'length', { value: options.arity });
|
|
1591
|
+
}
|
|
1592
|
+
try {
|
|
1593
|
+
if (options && hasOwn(options, 'constructor') && options.constructor) {
|
|
1594
|
+
if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });
|
|
1595
|
+
// in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
|
|
1596
|
+
} else if (value.prototype) value.prototype = undefined;
|
|
1597
|
+
} catch (error) { /* empty */ }
|
|
1598
|
+
var state = enforceInternalState(value);
|
|
1599
|
+
if (!hasOwn(state, 'source')) {
|
|
1600
|
+
state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
|
|
1601
|
+
} return value;
|
|
1602
|
+
};
|
|
1603
|
+
|
|
1604
|
+
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
|
|
1605
|
+
// eslint-disable-next-line no-extend-native -- required
|
|
1606
|
+
Function.prototype.toString = makeBuiltIn(function toString() {
|
|
1607
|
+
return isCallable(this) && getInternalState(this).source || inspectSource(this);
|
|
1608
|
+
}, 'toString');
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
/***/ }),
|
|
1612
|
+
|
|
1613
|
+
/***/ 7966:
|
|
1614
|
+
/***/ (function(module) {
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
var ceil = Math.ceil;
|
|
1618
|
+
var floor = Math.floor;
|
|
1619
|
+
|
|
1620
|
+
// `Math.trunc` method
|
|
1621
|
+
// https://tc39.es/ecma262/#sec-math.trunc
|
|
1622
|
+
// eslint-disable-next-line es/no-math-trunc -- safe
|
|
1623
|
+
module.exports = Math.trunc || function trunc(x) {
|
|
1624
|
+
var n = +x;
|
|
1625
|
+
return (n > 0 ? floor : ceil)(n);
|
|
1626
|
+
};
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
/***/ }),
|
|
1630
|
+
|
|
1631
|
+
/***/ 3369:
|
|
1632
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
/* global ActiveXObject -- old IE, WSH */
|
|
1636
|
+
var anObject = __webpack_require__(3162);
|
|
1637
|
+
var definePropertiesModule = __webpack_require__(5422);
|
|
1638
|
+
var enumBugKeys = __webpack_require__(7658);
|
|
1639
|
+
var hiddenKeys = __webpack_require__(4036);
|
|
1640
|
+
var html = __webpack_require__(9810);
|
|
1641
|
+
var documentCreateElement = __webpack_require__(2998);
|
|
1642
|
+
var sharedKey = __webpack_require__(4040);
|
|
1643
|
+
|
|
1644
|
+
var GT = '>';
|
|
1645
|
+
var LT = '<';
|
|
1646
|
+
var PROTOTYPE = 'prototype';
|
|
1647
|
+
var SCRIPT = 'script';
|
|
1648
|
+
var IE_PROTO = sharedKey('IE_PROTO');
|
|
1649
|
+
|
|
1650
|
+
var EmptyConstructor = function () { /* empty */ };
|
|
1651
|
+
|
|
1652
|
+
var scriptTag = function (content) {
|
|
1653
|
+
return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
|
|
1654
|
+
};
|
|
1655
|
+
|
|
1656
|
+
// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
|
|
1657
|
+
var NullProtoObjectViaActiveX = function (activeXDocument) {
|
|
1658
|
+
activeXDocument.write(scriptTag(''));
|
|
1659
|
+
activeXDocument.close();
|
|
1660
|
+
var temp = activeXDocument.parentWindow.Object;
|
|
1661
|
+
// eslint-disable-next-line no-useless-assignment -- avoid memory leak
|
|
1662
|
+
activeXDocument = null;
|
|
1663
|
+
return temp;
|
|
1664
|
+
};
|
|
1665
|
+
|
|
1666
|
+
// Create object with fake `null` prototype: use iframe Object with cleared prototype
|
|
1667
|
+
var NullProtoObjectViaIFrame = function () {
|
|
1668
|
+
// Thrash, waste and sodomy: IE GC bug
|
|
1669
|
+
var iframe = documentCreateElement('iframe');
|
|
1670
|
+
var JS = 'java' + SCRIPT + ':';
|
|
1671
|
+
var iframeDocument;
|
|
1672
|
+
iframe.style.display = 'none';
|
|
1673
|
+
html.appendChild(iframe);
|
|
1674
|
+
// https://github.com/zloirock/core-js/issues/475
|
|
1675
|
+
iframe.src = String(JS);
|
|
1676
|
+
iframeDocument = iframe.contentWindow.document;
|
|
1677
|
+
iframeDocument.open();
|
|
1678
|
+
iframeDocument.write(scriptTag('document.F=Object'));
|
|
1679
|
+
iframeDocument.close();
|
|
1680
|
+
return iframeDocument.F;
|
|
1681
|
+
};
|
|
1682
|
+
|
|
1683
|
+
// Check for document.domain and active x support
|
|
1684
|
+
// No need to use active x approach when document.domain is not set
|
|
1685
|
+
// see https://github.com/es-shims/es5-shim/issues/150
|
|
1686
|
+
// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
|
|
1687
|
+
// avoid IE GC bug
|
|
1688
|
+
var activeXDocument;
|
|
1689
|
+
var NullProtoObject = function () {
|
|
1690
|
+
try {
|
|
1691
|
+
activeXDocument = new ActiveXObject('htmlfile');
|
|
1692
|
+
} catch (error) { /* ignore */ }
|
|
1693
|
+
NullProtoObject = typeof document != 'undefined'
|
|
1694
|
+
? document.domain && activeXDocument
|
|
1695
|
+
? NullProtoObjectViaActiveX(activeXDocument) // old IE
|
|
1696
|
+
: NullProtoObjectViaIFrame()
|
|
1697
|
+
: NullProtoObjectViaActiveX(activeXDocument); // WSH
|
|
1698
|
+
var length = enumBugKeys.length;
|
|
1699
|
+
while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
|
|
1700
|
+
return NullProtoObject();
|
|
1701
|
+
};
|
|
1702
|
+
|
|
1703
|
+
hiddenKeys[IE_PROTO] = true;
|
|
1704
|
+
|
|
1705
|
+
// `Object.create` method
|
|
1706
|
+
// https://tc39.es/ecma262/#sec-object.create
|
|
1707
|
+
// eslint-disable-next-line es/no-object-create -- safe
|
|
1708
|
+
module.exports = Object.create || function create(O, Properties) {
|
|
1709
|
+
var result;
|
|
1710
|
+
if (O !== null) {
|
|
1711
|
+
EmptyConstructor[PROTOTYPE] = anObject(O);
|
|
1712
|
+
result = new EmptyConstructor();
|
|
1713
|
+
EmptyConstructor[PROTOTYPE] = null;
|
|
1714
|
+
// add "__proto__" for Object.getPrototypeOf polyfill
|
|
1715
|
+
result[IE_PROTO] = O;
|
|
1716
|
+
} else result = NullProtoObject();
|
|
1717
|
+
return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
|
|
1718
|
+
};
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
/***/ }),
|
|
1722
|
+
|
|
1723
|
+
/***/ 5422:
|
|
1724
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1725
|
+
|
|
1726
|
+
|
|
1727
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
1728
|
+
var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(3667);
|
|
1729
|
+
var definePropertyModule = __webpack_require__(1250);
|
|
1730
|
+
var anObject = __webpack_require__(3162);
|
|
1731
|
+
var toIndexedObject = __webpack_require__(2364);
|
|
1732
|
+
var objectKeys = __webpack_require__(7185);
|
|
1733
|
+
|
|
1734
|
+
// `Object.defineProperties` method
|
|
1735
|
+
// https://tc39.es/ecma262/#sec-object.defineproperties
|
|
1736
|
+
// eslint-disable-next-line es/no-object-defineproperties -- safe
|
|
1737
|
+
exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
|
|
1738
|
+
anObject(O);
|
|
1739
|
+
var props = toIndexedObject(Properties);
|
|
1740
|
+
var keys = objectKeys(Properties);
|
|
1741
|
+
var length = keys.length;
|
|
1742
|
+
var index = 0;
|
|
1743
|
+
var key;
|
|
1744
|
+
while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
|
|
1745
|
+
return O;
|
|
1746
|
+
};
|
|
1747
|
+
|
|
1748
|
+
|
|
1749
|
+
/***/ }),
|
|
1750
|
+
|
|
1751
|
+
/***/ 1250:
|
|
1752
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1753
|
+
|
|
1754
|
+
|
|
1755
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
1756
|
+
var IE8_DOM_DEFINE = __webpack_require__(1782);
|
|
1757
|
+
var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(3667);
|
|
1758
|
+
var anObject = __webpack_require__(3162);
|
|
1759
|
+
var toPropertyKey = __webpack_require__(3704);
|
|
1760
|
+
|
|
1761
|
+
var $TypeError = TypeError;
|
|
1762
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
1763
|
+
var $defineProperty = Object.defineProperty;
|
|
1764
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
1765
|
+
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
1766
|
+
var ENUMERABLE = 'enumerable';
|
|
1767
|
+
var CONFIGURABLE = 'configurable';
|
|
1768
|
+
var WRITABLE = 'writable';
|
|
1769
|
+
|
|
1770
|
+
// `Object.defineProperty` method
|
|
1771
|
+
// https://tc39.es/ecma262/#sec-object.defineproperty
|
|
1772
|
+
exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
|
|
1773
|
+
anObject(O);
|
|
1774
|
+
P = toPropertyKey(P);
|
|
1775
|
+
anObject(Attributes);
|
|
1776
|
+
if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
|
|
1777
|
+
var current = $getOwnPropertyDescriptor(O, P);
|
|
1778
|
+
if (current && current[WRITABLE]) {
|
|
1779
|
+
O[P] = Attributes.value;
|
|
1780
|
+
Attributes = {
|
|
1781
|
+
configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
|
|
1782
|
+
enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
|
|
1783
|
+
writable: false
|
|
1784
|
+
};
|
|
1785
|
+
}
|
|
1786
|
+
} return $defineProperty(O, P, Attributes);
|
|
1787
|
+
} : $defineProperty : function defineProperty(O, P, Attributes) {
|
|
1788
|
+
anObject(O);
|
|
1789
|
+
P = toPropertyKey(P);
|
|
1790
|
+
anObject(Attributes);
|
|
1791
|
+
if (IE8_DOM_DEFINE) try {
|
|
1792
|
+
return $defineProperty(O, P, Attributes);
|
|
1793
|
+
} catch (error) { /* empty */ }
|
|
1794
|
+
if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');
|
|
1795
|
+
if ('value' in Attributes) O[P] = Attributes.value;
|
|
1796
|
+
return O;
|
|
1797
|
+
};
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
/***/ }),
|
|
1801
|
+
|
|
1802
|
+
/***/ 6056:
|
|
1803
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
1807
|
+
var call = __webpack_require__(3176);
|
|
1808
|
+
var propertyIsEnumerableModule = __webpack_require__(6640);
|
|
1809
|
+
var createPropertyDescriptor = __webpack_require__(9299);
|
|
1810
|
+
var toIndexedObject = __webpack_require__(2364);
|
|
1811
|
+
var toPropertyKey = __webpack_require__(3704);
|
|
1812
|
+
var hasOwn = __webpack_require__(9522);
|
|
1813
|
+
var IE8_DOM_DEFINE = __webpack_require__(1782);
|
|
1814
|
+
|
|
1815
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
1816
|
+
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
1817
|
+
|
|
1818
|
+
// `Object.getOwnPropertyDescriptor` method
|
|
1819
|
+
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
|
|
1820
|
+
exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
|
|
1821
|
+
O = toIndexedObject(O);
|
|
1822
|
+
P = toPropertyKey(P);
|
|
1823
|
+
if (IE8_DOM_DEFINE) try {
|
|
1824
|
+
return $getOwnPropertyDescriptor(O, P);
|
|
1825
|
+
} catch (error) { /* empty */ }
|
|
1826
|
+
if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
|
|
1827
|
+
};
|
|
1828
|
+
|
|
1829
|
+
|
|
1830
|
+
/***/ }),
|
|
1831
|
+
|
|
1832
|
+
/***/ 7469:
|
|
1833
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
1834
|
+
|
|
1835
|
+
|
|
1836
|
+
var internalObjectKeys = __webpack_require__(6067);
|
|
1837
|
+
var enumBugKeys = __webpack_require__(7658);
|
|
1838
|
+
|
|
1839
|
+
var hiddenKeys = enumBugKeys.concat('length', 'prototype');
|
|
1840
|
+
|
|
1841
|
+
// `Object.getOwnPropertyNames` method
|
|
1842
|
+
// https://tc39.es/ecma262/#sec-object.getownpropertynames
|
|
1843
|
+
// eslint-disable-next-line es/no-object-getownpropertynames -- safe
|
|
1844
|
+
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
|
|
1845
|
+
return internalObjectKeys(O, hiddenKeys);
|
|
1846
|
+
};
|
|
1847
|
+
|
|
1848
|
+
|
|
1849
|
+
/***/ }),
|
|
1850
|
+
|
|
1851
|
+
/***/ 4540:
|
|
1852
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
1853
|
+
|
|
1854
|
+
|
|
1855
|
+
// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
|
|
1856
|
+
exports.f = Object.getOwnPropertySymbols;
|
|
1857
|
+
|
|
1858
|
+
|
|
1859
|
+
/***/ }),
|
|
1860
|
+
|
|
1861
|
+
/***/ 8778:
|
|
1862
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1863
|
+
|
|
1864
|
+
|
|
1865
|
+
var hasOwn = __webpack_require__(9522);
|
|
1866
|
+
var isCallable = __webpack_require__(8252);
|
|
1867
|
+
var toObject = __webpack_require__(1724);
|
|
1868
|
+
var sharedKey = __webpack_require__(4040);
|
|
1869
|
+
var CORRECT_PROTOTYPE_GETTER = __webpack_require__(6280);
|
|
1870
|
+
|
|
1871
|
+
var IE_PROTO = sharedKey('IE_PROTO');
|
|
1872
|
+
var $Object = Object;
|
|
1873
|
+
var ObjectPrototype = $Object.prototype;
|
|
1874
|
+
|
|
1875
|
+
// `Object.getPrototypeOf` method
|
|
1876
|
+
// https://tc39.es/ecma262/#sec-object.getprototypeof
|
|
1877
|
+
// eslint-disable-next-line es/no-object-getprototypeof -- safe
|
|
1878
|
+
module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
|
|
1879
|
+
var object = toObject(O);
|
|
1880
|
+
if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
|
|
1881
|
+
var constructor = object.constructor;
|
|
1882
|
+
if (isCallable(constructor) && object instanceof constructor) {
|
|
1883
|
+
return constructor.prototype;
|
|
1884
|
+
} return object instanceof $Object ? ObjectPrototype : null;
|
|
1885
|
+
};
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
/***/ }),
|
|
1889
|
+
|
|
1890
|
+
/***/ 8130:
|
|
1891
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1892
|
+
|
|
1893
|
+
|
|
1894
|
+
var uncurryThis = __webpack_require__(2289);
|
|
1895
|
+
|
|
1896
|
+
module.exports = uncurryThis({}.isPrototypeOf);
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
/***/ }),
|
|
1900
|
+
|
|
1901
|
+
/***/ 6067:
|
|
1902
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1903
|
+
|
|
1904
|
+
|
|
1905
|
+
var uncurryThis = __webpack_require__(2289);
|
|
1906
|
+
var hasOwn = __webpack_require__(9522);
|
|
1907
|
+
var toIndexedObject = __webpack_require__(2364);
|
|
1908
|
+
var indexOf = (__webpack_require__(8658).indexOf);
|
|
1909
|
+
var hiddenKeys = __webpack_require__(4036);
|
|
1910
|
+
|
|
1911
|
+
var push = uncurryThis([].push);
|
|
1912
|
+
|
|
1913
|
+
module.exports = function (object, names) {
|
|
1914
|
+
var O = toIndexedObject(object);
|
|
1915
|
+
var i = 0;
|
|
1916
|
+
var result = [];
|
|
1917
|
+
var key;
|
|
1918
|
+
for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
|
|
1919
|
+
// Don't enum bug & hidden keys
|
|
1920
|
+
while (names.length > i) if (hasOwn(O, key = names[i++])) {
|
|
1921
|
+
~indexOf(result, key) || push(result, key);
|
|
1922
|
+
}
|
|
1923
|
+
return result;
|
|
1924
|
+
};
|
|
1925
|
+
|
|
1926
|
+
|
|
1927
|
+
/***/ }),
|
|
1928
|
+
|
|
1929
|
+
/***/ 7185:
|
|
1930
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
var internalObjectKeys = __webpack_require__(6067);
|
|
1934
|
+
var enumBugKeys = __webpack_require__(7658);
|
|
1935
|
+
|
|
1936
|
+
// `Object.keys` method
|
|
1937
|
+
// https://tc39.es/ecma262/#sec-object.keys
|
|
1938
|
+
// eslint-disable-next-line es/no-object-keys -- safe
|
|
1939
|
+
module.exports = Object.keys || function keys(O) {
|
|
1940
|
+
return internalObjectKeys(O, enumBugKeys);
|
|
1941
|
+
};
|
|
1942
|
+
|
|
1943
|
+
|
|
1944
|
+
/***/ }),
|
|
1945
|
+
|
|
1946
|
+
/***/ 6640:
|
|
1947
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
var $propertyIsEnumerable = {}.propertyIsEnumerable;
|
|
1951
|
+
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
1952
|
+
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
1953
|
+
|
|
1954
|
+
// Nashorn ~ JDK8 bug
|
|
1955
|
+
var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
|
|
1956
|
+
|
|
1957
|
+
// `Object.prototype.propertyIsEnumerable` method implementation
|
|
1958
|
+
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
|
|
1959
|
+
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
|
|
1960
|
+
var descriptor = getOwnPropertyDescriptor(this, V);
|
|
1961
|
+
return !!descriptor && descriptor.enumerable;
|
|
1962
|
+
} : $propertyIsEnumerable;
|
|
1963
|
+
|
|
1964
|
+
|
|
1965
|
+
/***/ }),
|
|
1966
|
+
|
|
1967
|
+
/***/ 5519:
|
|
1968
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
var call = __webpack_require__(3176);
|
|
1972
|
+
var isCallable = __webpack_require__(8252);
|
|
1973
|
+
var isObject = __webpack_require__(8271);
|
|
1974
|
+
|
|
1975
|
+
var $TypeError = TypeError;
|
|
1976
|
+
|
|
1977
|
+
// `OrdinaryToPrimitive` abstract operation
|
|
1978
|
+
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
|
|
1979
|
+
module.exports = function (input, pref) {
|
|
1980
|
+
var fn, val;
|
|
1981
|
+
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
|
|
1982
|
+
if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
|
|
1983
|
+
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
|
|
1984
|
+
throw new $TypeError("Can't convert object to primitive value");
|
|
1985
|
+
};
|
|
1986
|
+
|
|
1987
|
+
|
|
1988
|
+
/***/ }),
|
|
1989
|
+
|
|
1990
|
+
/***/ 5456:
|
|
1991
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
1992
|
+
|
|
1993
|
+
|
|
1994
|
+
var getBuiltIn = __webpack_require__(3220);
|
|
1995
|
+
var uncurryThis = __webpack_require__(2289);
|
|
1996
|
+
var getOwnPropertyNamesModule = __webpack_require__(7469);
|
|
1997
|
+
var getOwnPropertySymbolsModule = __webpack_require__(4540);
|
|
1998
|
+
var anObject = __webpack_require__(3162);
|
|
1999
|
+
|
|
2000
|
+
var concat = uncurryThis([].concat);
|
|
2001
|
+
|
|
2002
|
+
// all object keys, includes non-enumerable and symbols
|
|
2003
|
+
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
|
|
2004
|
+
var keys = getOwnPropertyNamesModule.f(anObject(it));
|
|
2005
|
+
var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
|
|
2006
|
+
return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
|
|
2007
|
+
};
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
/***/ }),
|
|
2011
|
+
|
|
2012
|
+
/***/ 2341:
|
|
2013
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2014
|
+
|
|
2015
|
+
|
|
2016
|
+
var isNullOrUndefined = __webpack_require__(3022);
|
|
2017
|
+
|
|
2018
|
+
var $TypeError = TypeError;
|
|
2019
|
+
|
|
2020
|
+
// `RequireObjectCoercible` abstract operation
|
|
2021
|
+
// https://tc39.es/ecma262/#sec-requireobjectcoercible
|
|
2022
|
+
module.exports = function (it) {
|
|
2023
|
+
if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it);
|
|
2024
|
+
return it;
|
|
2025
|
+
};
|
|
2026
|
+
|
|
2027
|
+
|
|
2028
|
+
/***/ }),
|
|
2029
|
+
|
|
2030
|
+
/***/ 4040:
|
|
2031
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2032
|
+
|
|
2033
|
+
|
|
2034
|
+
var shared = __webpack_require__(8762);
|
|
2035
|
+
var uid = __webpack_require__(2161);
|
|
2036
|
+
|
|
2037
|
+
var keys = shared('keys');
|
|
2038
|
+
|
|
2039
|
+
module.exports = function (key) {
|
|
2040
|
+
return keys[key] || (keys[key] = uid(key));
|
|
2041
|
+
};
|
|
2042
|
+
|
|
2043
|
+
|
|
2044
|
+
/***/ }),
|
|
2045
|
+
|
|
2046
|
+
/***/ 8486:
|
|
2047
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2048
|
+
|
|
2049
|
+
|
|
2050
|
+
var IS_PURE = __webpack_require__(4214);
|
|
2051
|
+
var globalThis = __webpack_require__(3405);
|
|
2052
|
+
var defineGlobalProperty = __webpack_require__(7214);
|
|
2053
|
+
|
|
2054
|
+
var SHARED = '__core-js_shared__';
|
|
2055
|
+
var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
|
|
2056
|
+
|
|
2057
|
+
(store.versions || (store.versions = [])).push({
|
|
2058
|
+
version: '3.49.0',
|
|
2059
|
+
mode: IS_PURE ? 'pure' : 'global',
|
|
2060
|
+
copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',
|
|
2061
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',
|
|
2062
|
+
source: 'https://github.com/zloirock/core-js'
|
|
2063
|
+
});
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
/***/ }),
|
|
2067
|
+
|
|
2068
|
+
/***/ 8762:
|
|
2069
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2070
|
+
|
|
2071
|
+
|
|
2072
|
+
var store = __webpack_require__(8486);
|
|
2073
|
+
|
|
2074
|
+
module.exports = function (key, value) {
|
|
2075
|
+
return store[key] || (store[key] = value || {});
|
|
2076
|
+
};
|
|
2077
|
+
|
|
2078
|
+
|
|
2079
|
+
/***/ }),
|
|
2080
|
+
|
|
2081
|
+
/***/ 1520:
|
|
2082
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
/* eslint-disable es/no-symbol -- required for testing */
|
|
2086
|
+
var V8_VERSION = __webpack_require__(5168);
|
|
2087
|
+
var fails = __webpack_require__(8930);
|
|
2088
|
+
var globalThis = __webpack_require__(3405);
|
|
2089
|
+
|
|
2090
|
+
var $String = globalThis.String;
|
|
2091
|
+
|
|
2092
|
+
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
|
|
2093
|
+
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
|
|
2094
|
+
var symbol = Symbol('symbol detection');
|
|
2095
|
+
// Chrome 38 Symbol has incorrect toString conversion
|
|
2096
|
+
// `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
|
|
2097
|
+
// nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,
|
|
2098
|
+
// of course, fail.
|
|
2099
|
+
return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||
|
|
2100
|
+
// Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
|
|
2101
|
+
!Symbol.sham && V8_VERSION && V8_VERSION < 41;
|
|
2102
|
+
});
|
|
2103
|
+
|
|
2104
|
+
|
|
2105
|
+
/***/ }),
|
|
2106
|
+
|
|
2107
|
+
/***/ 9283:
|
|
2108
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2109
|
+
|
|
2110
|
+
|
|
2111
|
+
var toIntegerOrInfinity = __webpack_require__(136);
|
|
2112
|
+
|
|
2113
|
+
var max = Math.max;
|
|
2114
|
+
var min = Math.min;
|
|
2115
|
+
|
|
2116
|
+
// Helper for a popular repeating case of the spec:
|
|
2117
|
+
// Let integer be ? ToInteger(index).
|
|
2118
|
+
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
|
|
2119
|
+
module.exports = function (index, length) {
|
|
2120
|
+
var integer = toIntegerOrInfinity(index);
|
|
2121
|
+
return integer < 0 ? max(integer + length, 0) : min(integer, length);
|
|
2122
|
+
};
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
/***/ }),
|
|
2126
|
+
|
|
2127
|
+
/***/ 2364:
|
|
2128
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2129
|
+
|
|
2130
|
+
|
|
2131
|
+
// toObject with fallback for non-array-like ES3 strings
|
|
2132
|
+
var IndexedObject = __webpack_require__(1792);
|
|
2133
|
+
var requireObjectCoercible = __webpack_require__(2341);
|
|
2134
|
+
|
|
2135
|
+
module.exports = function (it) {
|
|
2136
|
+
return IndexedObject(requireObjectCoercible(it));
|
|
2137
|
+
};
|
|
2138
|
+
|
|
2139
|
+
|
|
2140
|
+
/***/ }),
|
|
2141
|
+
|
|
2142
|
+
/***/ 136:
|
|
2143
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
var trunc = __webpack_require__(7966);
|
|
2147
|
+
|
|
2148
|
+
// `ToIntegerOrInfinity` abstract operation
|
|
2149
|
+
// https://tc39.es/ecma262/#sec-tointegerorinfinity
|
|
2150
|
+
module.exports = function (argument) {
|
|
2151
|
+
var number = +argument;
|
|
2152
|
+
// eslint-disable-next-line no-self-compare -- NaN check
|
|
2153
|
+
return number !== number || number === 0 ? 0 : trunc(number);
|
|
2154
|
+
};
|
|
2155
|
+
|
|
2156
|
+
|
|
2157
|
+
/***/ }),
|
|
2158
|
+
|
|
2159
|
+
/***/ 5531:
|
|
2160
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2161
|
+
|
|
2162
|
+
|
|
2163
|
+
var toIntegerOrInfinity = __webpack_require__(136);
|
|
2164
|
+
|
|
2165
|
+
var min = Math.min;
|
|
2166
|
+
|
|
2167
|
+
// `ToLength` abstract operation
|
|
2168
|
+
// https://tc39.es/ecma262/#sec-tolength
|
|
2169
|
+
module.exports = function (argument) {
|
|
2170
|
+
var len = toIntegerOrInfinity(argument);
|
|
2171
|
+
return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
|
|
2172
|
+
};
|
|
2173
|
+
|
|
2174
|
+
|
|
2175
|
+
/***/ }),
|
|
2176
|
+
|
|
2177
|
+
/***/ 1724:
|
|
2178
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2179
|
+
|
|
2180
|
+
|
|
2181
|
+
var requireObjectCoercible = __webpack_require__(2341);
|
|
2182
|
+
|
|
2183
|
+
var $Object = Object;
|
|
2184
|
+
|
|
2185
|
+
// `ToObject` abstract operation
|
|
2186
|
+
// https://tc39.es/ecma262/#sec-toobject
|
|
2187
|
+
module.exports = function (argument) {
|
|
2188
|
+
return $Object(requireObjectCoercible(argument));
|
|
2189
|
+
};
|
|
2190
|
+
|
|
2191
|
+
|
|
2192
|
+
/***/ }),
|
|
2193
|
+
|
|
2194
|
+
/***/ 4610:
|
|
2195
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2196
|
+
|
|
2197
|
+
|
|
2198
|
+
var call = __webpack_require__(3176);
|
|
2199
|
+
var isObject = __webpack_require__(8271);
|
|
2200
|
+
var isSymbol = __webpack_require__(8944);
|
|
2201
|
+
var getMethod = __webpack_require__(3377);
|
|
2202
|
+
var ordinaryToPrimitive = __webpack_require__(5519);
|
|
2203
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
2204
|
+
|
|
2205
|
+
var $TypeError = TypeError;
|
|
2206
|
+
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
|
|
2207
|
+
|
|
2208
|
+
// `ToPrimitive` abstract operation
|
|
2209
|
+
// https://tc39.es/ecma262/#sec-toprimitive
|
|
2210
|
+
module.exports = function (input, pref) {
|
|
2211
|
+
if (!isObject(input) || isSymbol(input)) return input;
|
|
2212
|
+
var exoticToPrim = getMethod(input, TO_PRIMITIVE);
|
|
2213
|
+
var result;
|
|
2214
|
+
if (exoticToPrim) {
|
|
2215
|
+
if (pref === undefined) pref = 'default';
|
|
2216
|
+
result = call(exoticToPrim, input, pref);
|
|
2217
|
+
if (!isObject(result) || isSymbol(result)) return result;
|
|
2218
|
+
throw new $TypeError("Can't convert object to primitive value");
|
|
2219
|
+
}
|
|
2220
|
+
if (pref === undefined) pref = 'number';
|
|
2221
|
+
return ordinaryToPrimitive(input, pref);
|
|
2222
|
+
};
|
|
2223
|
+
|
|
2224
|
+
|
|
2225
|
+
/***/ }),
|
|
2226
|
+
|
|
2227
|
+
/***/ 3704:
|
|
2228
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2229
|
+
|
|
2230
|
+
|
|
2231
|
+
var toPrimitive = __webpack_require__(4610);
|
|
2232
|
+
var isSymbol = __webpack_require__(8944);
|
|
2233
|
+
|
|
2234
|
+
// `ToPropertyKey` abstract operation
|
|
2235
|
+
// https://tc39.es/ecma262/#sec-topropertykey
|
|
2236
|
+
module.exports = function (argument) {
|
|
2237
|
+
var key = toPrimitive(argument, 'string');
|
|
2238
|
+
return isSymbol(key) ? key : key + '';
|
|
2239
|
+
};
|
|
2240
|
+
|
|
2241
|
+
|
|
2242
|
+
/***/ }),
|
|
2243
|
+
|
|
2244
|
+
/***/ 1153:
|
|
2245
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2246
|
+
|
|
2247
|
+
|
|
2248
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
2249
|
+
|
|
2250
|
+
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
2251
|
+
var test = {};
|
|
2252
|
+
// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
|
|
2253
|
+
test[TO_STRING_TAG] = 'z';
|
|
2254
|
+
|
|
2255
|
+
module.exports = String(test) === '[object z]';
|
|
2256
|
+
|
|
2257
|
+
|
|
2258
|
+
/***/ }),
|
|
2259
|
+
|
|
2260
|
+
/***/ 1958:
|
|
2261
|
+
/***/ (function(module) {
|
|
2262
|
+
|
|
2263
|
+
|
|
2264
|
+
var $String = String;
|
|
2265
|
+
|
|
2266
|
+
module.exports = function (argument) {
|
|
2267
|
+
try {
|
|
2268
|
+
return $String(argument);
|
|
2269
|
+
} catch (error) {
|
|
2270
|
+
return 'Object';
|
|
2271
|
+
}
|
|
2272
|
+
};
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
/***/ }),
|
|
2276
|
+
|
|
2277
|
+
/***/ 2161:
|
|
2278
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2279
|
+
|
|
2280
|
+
|
|
2281
|
+
var uncurryThis = __webpack_require__(2289);
|
|
2282
|
+
|
|
2283
|
+
var id = 0;
|
|
2284
|
+
var postfix = Math.random();
|
|
2285
|
+
var toString = uncurryThis(1.1.toString);
|
|
2286
|
+
|
|
2287
|
+
module.exports = function (key) {
|
|
2288
|
+
return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
|
|
2289
|
+
};
|
|
2290
|
+
|
|
2291
|
+
|
|
2292
|
+
/***/ }),
|
|
2293
|
+
|
|
2294
|
+
/***/ 5537:
|
|
2295
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2296
|
+
|
|
2297
|
+
|
|
2298
|
+
/* eslint-disable es/no-symbol -- required for testing */
|
|
2299
|
+
var NATIVE_SYMBOL = __webpack_require__(1520);
|
|
2300
|
+
|
|
2301
|
+
module.exports = NATIVE_SYMBOL &&
|
|
2302
|
+
!Symbol.sham &&
|
|
2303
|
+
typeof Symbol.iterator == 'symbol';
|
|
2304
|
+
|
|
2305
|
+
|
|
2306
|
+
/***/ }),
|
|
2307
|
+
|
|
2308
|
+
/***/ 3667:
|
|
2309
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2310
|
+
|
|
2311
|
+
|
|
2312
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
2313
|
+
var fails = __webpack_require__(8930);
|
|
2314
|
+
|
|
2315
|
+
// V8 ~ Chrome 36-
|
|
2316
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=3334
|
|
2317
|
+
module.exports = DESCRIPTORS && fails(function () {
|
|
2318
|
+
// eslint-disable-next-line es/no-object-defineproperty -- required for testing
|
|
2319
|
+
return Object.defineProperty(function () { /* empty */ }, 'prototype', {
|
|
2320
|
+
value: 42,
|
|
2321
|
+
writable: false
|
|
2322
|
+
}).prototype !== 42;
|
|
2323
|
+
});
|
|
2324
|
+
|
|
2325
|
+
|
|
2326
|
+
/***/ }),
|
|
2327
|
+
|
|
2328
|
+
/***/ 3337:
|
|
2329
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2330
|
+
|
|
2331
|
+
|
|
2332
|
+
var globalThis = __webpack_require__(3405);
|
|
2333
|
+
var isCallable = __webpack_require__(8252);
|
|
2334
|
+
|
|
2335
|
+
var WeakMap = globalThis.WeakMap;
|
|
2336
|
+
|
|
2337
|
+
module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
|
|
2338
|
+
|
|
2339
|
+
|
|
2340
|
+
/***/ }),
|
|
2341
|
+
|
|
2342
|
+
/***/ 2666:
|
|
2343
|
+
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
2344
|
+
|
|
2345
|
+
|
|
2346
|
+
var globalThis = __webpack_require__(3405);
|
|
2347
|
+
var shared = __webpack_require__(8762);
|
|
2348
|
+
var hasOwn = __webpack_require__(9522);
|
|
2349
|
+
var uid = __webpack_require__(2161);
|
|
2350
|
+
var NATIVE_SYMBOL = __webpack_require__(1520);
|
|
2351
|
+
var USE_SYMBOL_AS_UID = __webpack_require__(5537);
|
|
2352
|
+
|
|
2353
|
+
var Symbol = globalThis.Symbol;
|
|
2354
|
+
var WellKnownSymbolsStore = shared('wks');
|
|
2355
|
+
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
|
|
2356
|
+
|
|
2357
|
+
module.exports = function (name) {
|
|
2358
|
+
if (!hasOwn(WellKnownSymbolsStore, name)) {
|
|
2359
|
+
WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)
|
|
2360
|
+
? Symbol[name]
|
|
2361
|
+
: createWellKnownSymbol('Symbol.' + name);
|
|
2362
|
+
} return WellKnownSymbolsStore[name];
|
|
2363
|
+
};
|
|
2364
|
+
|
|
2365
|
+
|
|
2366
|
+
/***/ }),
|
|
2367
|
+
|
|
2368
|
+
/***/ 9690:
|
|
2369
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2370
|
+
|
|
2371
|
+
|
|
2372
|
+
var $ = __webpack_require__(7725);
|
|
2373
|
+
var $includes = (__webpack_require__(8658).includes);
|
|
2374
|
+
var fails = __webpack_require__(8930);
|
|
2375
|
+
var addToUnscopables = __webpack_require__(7938);
|
|
2376
|
+
|
|
2377
|
+
// FF99+ bug
|
|
2378
|
+
var BROKEN_ON_SPARSE = fails(function () {
|
|
2379
|
+
// eslint-disable-next-line es/no-array-prototype-includes -- detection
|
|
2380
|
+
return !Array(1).includes();
|
|
2381
|
+
});
|
|
2382
|
+
|
|
2383
|
+
// Safari 26.4- bug
|
|
2384
|
+
var BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {
|
|
2385
|
+
// eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection
|
|
2386
|
+
return [, 1].includes(undefined, 1);
|
|
2387
|
+
});
|
|
2388
|
+
|
|
2389
|
+
// `Array.prototype.includes` method
|
|
2390
|
+
// https://tc39.es/ecma262/#sec-array.prototype.includes
|
|
2391
|
+
$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {
|
|
2392
|
+
includes: function includes(el /* , fromIndex = 0 */) {
|
|
2393
|
+
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
|
|
2394
|
+
}
|
|
2395
|
+
});
|
|
2396
|
+
|
|
2397
|
+
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
|
|
2398
|
+
addToUnscopables('includes');
|
|
2399
|
+
|
|
2400
|
+
|
|
2401
|
+
/***/ }),
|
|
2402
|
+
|
|
2403
|
+
/***/ 4495:
|
|
2404
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2405
|
+
|
|
2406
|
+
|
|
2407
|
+
var $ = __webpack_require__(7725);
|
|
2408
|
+
var toObject = __webpack_require__(1724);
|
|
2409
|
+
var lengthOfArrayLike = __webpack_require__(6013);
|
|
2410
|
+
var setArrayLength = __webpack_require__(592);
|
|
2411
|
+
var doesNotExceedSafeInteger = __webpack_require__(6994);
|
|
2412
|
+
var fails = __webpack_require__(8930);
|
|
2413
|
+
|
|
2414
|
+
var INCORRECT_TO_LENGTH = fails(function () {
|
|
2415
|
+
return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;
|
|
2416
|
+
});
|
|
2417
|
+
|
|
2418
|
+
// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError
|
|
2419
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=12681
|
|
2420
|
+
var properErrorOnNonWritableLength = function () {
|
|
2421
|
+
try {
|
|
2422
|
+
// eslint-disable-next-line es/no-object-defineproperty -- safe
|
|
2423
|
+
Object.defineProperty([], 'length', { writable: false }).push();
|
|
2424
|
+
} catch (error) {
|
|
2425
|
+
return error instanceof TypeError;
|
|
2426
|
+
}
|
|
2427
|
+
};
|
|
2428
|
+
|
|
2429
|
+
var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();
|
|
2430
|
+
|
|
2431
|
+
// `Array.prototype.push` method
|
|
2432
|
+
// https://tc39.es/ecma262/#sec-array.prototype.push
|
|
2433
|
+
$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
|
|
2434
|
+
// eslint-disable-next-line no-unused-vars -- required for `.length`
|
|
2435
|
+
push: function push(item) {
|
|
2436
|
+
var O = toObject(this);
|
|
2437
|
+
var len = lengthOfArrayLike(O);
|
|
2438
|
+
var argCount = arguments.length;
|
|
2439
|
+
doesNotExceedSafeInteger(len + argCount);
|
|
2440
|
+
for (var i = 0; i < argCount; i++) {
|
|
2441
|
+
O[len] = arguments[i];
|
|
2442
|
+
len++;
|
|
2443
|
+
}
|
|
2444
|
+
setArrayLength(O, len);
|
|
2445
|
+
return len;
|
|
2446
|
+
}
|
|
2447
|
+
});
|
|
2448
|
+
|
|
2449
|
+
|
|
2450
|
+
/***/ }),
|
|
2451
|
+
|
|
2452
|
+
/***/ 7622:
|
|
2453
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2454
|
+
|
|
2455
|
+
|
|
2456
|
+
var $ = __webpack_require__(7725);
|
|
2457
|
+
var globalThis = __webpack_require__(3405);
|
|
2458
|
+
var anInstance = __webpack_require__(462);
|
|
2459
|
+
var anObject = __webpack_require__(3162);
|
|
2460
|
+
var isCallable = __webpack_require__(8252);
|
|
2461
|
+
var getPrototypeOf = __webpack_require__(8778);
|
|
2462
|
+
var defineBuiltInAccessor = __webpack_require__(7893);
|
|
2463
|
+
var createProperty = __webpack_require__(721);
|
|
2464
|
+
var fails = __webpack_require__(8930);
|
|
2465
|
+
var hasOwn = __webpack_require__(9522);
|
|
2466
|
+
var wellKnownSymbol = __webpack_require__(2666);
|
|
2467
|
+
var IteratorPrototype = (__webpack_require__(2274).IteratorPrototype);
|
|
2468
|
+
var DESCRIPTORS = __webpack_require__(7101);
|
|
2469
|
+
var IS_PURE = __webpack_require__(4214);
|
|
2470
|
+
|
|
2471
|
+
var CONSTRUCTOR = 'constructor';
|
|
2472
|
+
var ITERATOR = 'Iterator';
|
|
2473
|
+
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
2474
|
+
|
|
2475
|
+
var $TypeError = TypeError;
|
|
2476
|
+
var NativeIterator = globalThis[ITERATOR];
|
|
2477
|
+
|
|
2478
|
+
// FF56- have non-standard global helper `Iterator`
|
|
2479
|
+
var FORCED = IS_PURE
|
|
2480
|
+
|| !isCallable(NativeIterator)
|
|
2481
|
+
|| NativeIterator.prototype !== IteratorPrototype
|
|
2482
|
+
// FF44- non-standard `Iterator` passes previous tests
|
|
2483
|
+
|| !fails(function () { NativeIterator({}); });
|
|
2484
|
+
|
|
2485
|
+
var IteratorConstructor = function Iterator() {
|
|
2486
|
+
anInstance(this, IteratorPrototype);
|
|
2487
|
+
if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');
|
|
2488
|
+
};
|
|
2489
|
+
|
|
2490
|
+
var defineIteratorPrototypeAccessor = function (key, value) {
|
|
2491
|
+
if (DESCRIPTORS) {
|
|
2492
|
+
defineBuiltInAccessor(IteratorPrototype, key, {
|
|
2493
|
+
configurable: true,
|
|
2494
|
+
get: function () {
|
|
2495
|
+
return value;
|
|
2496
|
+
},
|
|
2497
|
+
set: function (replacement) {
|
|
2498
|
+
anObject(this);
|
|
2499
|
+
if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
|
|
2500
|
+
if (hasOwn(this, key)) this[key] = replacement;
|
|
2501
|
+
else createProperty(this, key, replacement);
|
|
2502
|
+
}
|
|
2503
|
+
});
|
|
2504
|
+
} else IteratorPrototype[key] = value;
|
|
2505
|
+
};
|
|
2506
|
+
|
|
2507
|
+
if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
|
|
2508
|
+
|
|
2509
|
+
if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {
|
|
2510
|
+
defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
|
|
2511
|
+
}
|
|
2512
|
+
|
|
2513
|
+
IteratorConstructor.prototype = IteratorPrototype;
|
|
2514
|
+
|
|
2515
|
+
// `Iterator` constructor
|
|
2516
|
+
// https://tc39.es/ecma262/#sec-iterator
|
|
2517
|
+
$({ global: true, constructor: true, forced: FORCED }, {
|
|
2518
|
+
Iterator: IteratorConstructor
|
|
2519
|
+
});
|
|
2520
|
+
|
|
2521
|
+
|
|
2522
|
+
/***/ }),
|
|
2523
|
+
|
|
2524
|
+
/***/ 3149:
|
|
2525
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2526
|
+
|
|
2527
|
+
|
|
2528
|
+
var $ = __webpack_require__(7725);
|
|
2529
|
+
var call = __webpack_require__(3176);
|
|
2530
|
+
var iterate = __webpack_require__(6841);
|
|
2531
|
+
var aCallable = __webpack_require__(2481);
|
|
2532
|
+
var anObject = __webpack_require__(3162);
|
|
2533
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2534
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2535
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2536
|
+
|
|
2537
|
+
var everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);
|
|
2538
|
+
|
|
2539
|
+
// `Iterator.prototype.every` method
|
|
2540
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.every
|
|
2541
|
+
$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {
|
|
2542
|
+
every: function every(predicate) {
|
|
2543
|
+
anObject(this);
|
|
2544
|
+
try {
|
|
2545
|
+
aCallable(predicate);
|
|
2546
|
+
} catch (error) {
|
|
2547
|
+
iteratorClose(this, 'throw', error);
|
|
2548
|
+
}
|
|
2549
|
+
|
|
2550
|
+
if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);
|
|
2551
|
+
|
|
2552
|
+
var record = getIteratorDirect(this);
|
|
2553
|
+
var counter = 0;
|
|
2554
|
+
return !iterate(record, function (value, stop) {
|
|
2555
|
+
if (!predicate(value, counter++)) return stop();
|
|
2556
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
2557
|
+
}
|
|
2558
|
+
});
|
|
2559
|
+
|
|
2560
|
+
|
|
2561
|
+
/***/ }),
|
|
2562
|
+
|
|
2563
|
+
/***/ 746:
|
|
2564
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2565
|
+
|
|
2566
|
+
|
|
2567
|
+
var $ = __webpack_require__(7725);
|
|
2568
|
+
var call = __webpack_require__(3176);
|
|
2569
|
+
var aCallable = __webpack_require__(2481);
|
|
2570
|
+
var anObject = __webpack_require__(3162);
|
|
2571
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2572
|
+
var createIteratorProxy = __webpack_require__(7211);
|
|
2573
|
+
var callWithSafeIterationClosing = __webpack_require__(9836);
|
|
2574
|
+
var IS_PURE = __webpack_require__(4214);
|
|
2575
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2576
|
+
var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(6483);
|
|
2577
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2578
|
+
|
|
2579
|
+
var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });
|
|
2580
|
+
var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
2581
|
+
&& iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
|
|
2582
|
+
|
|
2583
|
+
var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
|
|
2584
|
+
|
|
2585
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
2586
|
+
var iterator = this.iterator;
|
|
2587
|
+
var predicate = this.predicate;
|
|
2588
|
+
var next = this.next;
|
|
2589
|
+
var result, done, value;
|
|
2590
|
+
while (true) {
|
|
2591
|
+
result = anObject(call(next, iterator));
|
|
2592
|
+
done = this.done = !!result.done;
|
|
2593
|
+
if (done) return;
|
|
2594
|
+
value = result.value;
|
|
2595
|
+
if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
|
|
2596
|
+
}
|
|
2597
|
+
});
|
|
2598
|
+
|
|
2599
|
+
// `Iterator.prototype.filter` method
|
|
2600
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.filter
|
|
2601
|
+
$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
|
|
2602
|
+
filter: function filter(predicate) {
|
|
2603
|
+
anObject(this);
|
|
2604
|
+
try {
|
|
2605
|
+
aCallable(predicate);
|
|
2606
|
+
} catch (error) {
|
|
2607
|
+
iteratorClose(this, 'throw', error);
|
|
2608
|
+
}
|
|
2609
|
+
|
|
2610
|
+
if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);
|
|
2611
|
+
|
|
2612
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
2613
|
+
predicate: predicate
|
|
2614
|
+
});
|
|
2615
|
+
}
|
|
2616
|
+
});
|
|
2617
|
+
|
|
2618
|
+
|
|
2619
|
+
/***/ }),
|
|
2620
|
+
|
|
2621
|
+
/***/ 4059:
|
|
2622
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2623
|
+
|
|
2624
|
+
|
|
2625
|
+
var $ = __webpack_require__(7725);
|
|
2626
|
+
var call = __webpack_require__(3176);
|
|
2627
|
+
var iterate = __webpack_require__(6841);
|
|
2628
|
+
var aCallable = __webpack_require__(2481);
|
|
2629
|
+
var anObject = __webpack_require__(3162);
|
|
2630
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2631
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2632
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2633
|
+
|
|
2634
|
+
var findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);
|
|
2635
|
+
|
|
2636
|
+
// `Iterator.prototype.find` method
|
|
2637
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.find
|
|
2638
|
+
$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {
|
|
2639
|
+
find: function find(predicate) {
|
|
2640
|
+
anObject(this);
|
|
2641
|
+
try {
|
|
2642
|
+
aCallable(predicate);
|
|
2643
|
+
} catch (error) {
|
|
2644
|
+
iteratorClose(this, 'throw', error);
|
|
2645
|
+
}
|
|
2646
|
+
|
|
2647
|
+
if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);
|
|
2648
|
+
|
|
2649
|
+
var record = getIteratorDirect(this);
|
|
2650
|
+
var counter = 0;
|
|
2651
|
+
return iterate(record, function (value, stop) {
|
|
2652
|
+
if (predicate(value, counter++)) return stop(value);
|
|
2653
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).result;
|
|
2654
|
+
}
|
|
2655
|
+
});
|
|
2656
|
+
|
|
2657
|
+
|
|
2658
|
+
/***/ }),
|
|
2659
|
+
|
|
2660
|
+
/***/ 1119:
|
|
2661
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
var $ = __webpack_require__(7725);
|
|
2665
|
+
var call = __webpack_require__(3176);
|
|
2666
|
+
var iterate = __webpack_require__(6841);
|
|
2667
|
+
var aCallable = __webpack_require__(2481);
|
|
2668
|
+
var anObject = __webpack_require__(3162);
|
|
2669
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2670
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2671
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2672
|
+
|
|
2673
|
+
var forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);
|
|
2674
|
+
|
|
2675
|
+
// `Iterator.prototype.forEach` method
|
|
2676
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.foreach
|
|
2677
|
+
$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {
|
|
2678
|
+
forEach: function forEach(fn) {
|
|
2679
|
+
anObject(this);
|
|
2680
|
+
try {
|
|
2681
|
+
aCallable(fn);
|
|
2682
|
+
} catch (error) {
|
|
2683
|
+
iteratorClose(this, 'throw', error);
|
|
2684
|
+
}
|
|
2685
|
+
|
|
2686
|
+
if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);
|
|
2687
|
+
|
|
2688
|
+
var record = getIteratorDirect(this);
|
|
2689
|
+
var counter = 0;
|
|
2690
|
+
iterate(record, function (value) {
|
|
2691
|
+
fn(value, counter++);
|
|
2692
|
+
}, { IS_RECORD: true });
|
|
2693
|
+
}
|
|
2694
|
+
});
|
|
2695
|
+
|
|
2696
|
+
|
|
2697
|
+
/***/ }),
|
|
2698
|
+
|
|
2699
|
+
/***/ 8660:
|
|
2700
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2701
|
+
|
|
2702
|
+
|
|
2703
|
+
var $ = __webpack_require__(7725);
|
|
2704
|
+
var call = __webpack_require__(3176);
|
|
2705
|
+
var aCallable = __webpack_require__(2481);
|
|
2706
|
+
var anObject = __webpack_require__(3162);
|
|
2707
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2708
|
+
var createIteratorProxy = __webpack_require__(7211);
|
|
2709
|
+
var callWithSafeIterationClosing = __webpack_require__(9836);
|
|
2710
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2711
|
+
var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(6483);
|
|
2712
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2713
|
+
var IS_PURE = __webpack_require__(4214);
|
|
2714
|
+
|
|
2715
|
+
var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
|
|
2716
|
+
var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
2717
|
+
&& iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
|
|
2718
|
+
|
|
2719
|
+
var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
|
|
2720
|
+
|
|
2721
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
2722
|
+
var iterator = this.iterator;
|
|
2723
|
+
var result = anObject(call(this.next, iterator));
|
|
2724
|
+
var done = this.done = !!result.done;
|
|
2725
|
+
if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
|
|
2726
|
+
});
|
|
2727
|
+
|
|
2728
|
+
// `Iterator.prototype.map` method
|
|
2729
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.map
|
|
2730
|
+
$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
|
|
2731
|
+
map: function map(mapper) {
|
|
2732
|
+
anObject(this);
|
|
2733
|
+
try {
|
|
2734
|
+
aCallable(mapper);
|
|
2735
|
+
} catch (error) {
|
|
2736
|
+
iteratorClose(this, 'throw', error);
|
|
2737
|
+
}
|
|
2738
|
+
|
|
2739
|
+
if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
|
|
2740
|
+
|
|
2741
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
2742
|
+
mapper: mapper
|
|
2743
|
+
});
|
|
2744
|
+
}
|
|
2745
|
+
});
|
|
2746
|
+
|
|
2747
|
+
|
|
2748
|
+
/***/ }),
|
|
2749
|
+
|
|
2750
|
+
/***/ 882:
|
|
2751
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2752
|
+
|
|
2753
|
+
|
|
2754
|
+
var $ = __webpack_require__(7725);
|
|
2755
|
+
var iterate = __webpack_require__(6841);
|
|
2756
|
+
var aCallable = __webpack_require__(2481);
|
|
2757
|
+
var anObject = __webpack_require__(3162);
|
|
2758
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2759
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2760
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2761
|
+
var apply = __webpack_require__(5990);
|
|
2762
|
+
var fails = __webpack_require__(8930);
|
|
2763
|
+
|
|
2764
|
+
var $TypeError = TypeError;
|
|
2765
|
+
|
|
2766
|
+
// https://bugs.webkit.org/show_bug.cgi?id=291651
|
|
2767
|
+
var FAILS_ON_INITIAL_UNDEFINED = fails(function () {
|
|
2768
|
+
// eslint-disable-next-line es/no-iterator-prototype-reduce, es/no-array-prototype-keys, array-callback-return -- required for testing
|
|
2769
|
+
[].keys().reduce(function () { /* empty */ }, undefined);
|
|
2770
|
+
});
|
|
2771
|
+
|
|
2772
|
+
var reduceWithoutClosingOnEarlyError = !FAILS_ON_INITIAL_UNDEFINED && iteratorHelperWithoutClosingOnEarlyError('reduce', $TypeError);
|
|
2773
|
+
|
|
2774
|
+
// `Iterator.prototype.reduce` method
|
|
2775
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.reduce
|
|
2776
|
+
$({ target: 'Iterator', proto: true, real: true, forced: FAILS_ON_INITIAL_UNDEFINED || reduceWithoutClosingOnEarlyError }, {
|
|
2777
|
+
reduce: function reduce(reducer /* , initialValue */) {
|
|
2778
|
+
anObject(this);
|
|
2779
|
+
try {
|
|
2780
|
+
aCallable(reducer);
|
|
2781
|
+
} catch (error) {
|
|
2782
|
+
iteratorClose(this, 'throw', error);
|
|
2783
|
+
}
|
|
2784
|
+
|
|
2785
|
+
var noInitial = arguments.length < 2;
|
|
2786
|
+
var accumulator = noInitial ? undefined : arguments[1];
|
|
2787
|
+
if (reduceWithoutClosingOnEarlyError) {
|
|
2788
|
+
return apply(reduceWithoutClosingOnEarlyError, this, noInitial ? [reducer] : [reducer, accumulator]);
|
|
2789
|
+
}
|
|
2790
|
+
var record = getIteratorDirect(this);
|
|
2791
|
+
var counter = 0;
|
|
2792
|
+
iterate(record, function (value) {
|
|
2793
|
+
if (noInitial) {
|
|
2794
|
+
noInitial = false;
|
|
2795
|
+
accumulator = value;
|
|
2796
|
+
} else {
|
|
2797
|
+
accumulator = reducer(accumulator, value, counter);
|
|
2798
|
+
}
|
|
2799
|
+
counter++;
|
|
2800
|
+
}, { IS_RECORD: true });
|
|
2801
|
+
if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');
|
|
2802
|
+
return accumulator;
|
|
2803
|
+
}
|
|
2804
|
+
});
|
|
2805
|
+
|
|
2806
|
+
|
|
2807
|
+
/***/ }),
|
|
2808
|
+
|
|
2809
|
+
/***/ 5528:
|
|
2810
|
+
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
2811
|
+
|
|
2812
|
+
|
|
2813
|
+
var $ = __webpack_require__(7725);
|
|
2814
|
+
var call = __webpack_require__(3176);
|
|
2815
|
+
var iterate = __webpack_require__(6841);
|
|
2816
|
+
var aCallable = __webpack_require__(2481);
|
|
2817
|
+
var anObject = __webpack_require__(3162);
|
|
2818
|
+
var getIteratorDirect = __webpack_require__(6226);
|
|
2819
|
+
var iteratorClose = __webpack_require__(1380);
|
|
2820
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(2229);
|
|
2821
|
+
|
|
2822
|
+
var someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);
|
|
2823
|
+
|
|
2824
|
+
// `Iterator.prototype.some` method
|
|
2825
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.some
|
|
2826
|
+
$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {
|
|
2827
|
+
some: function some(predicate) {
|
|
2828
|
+
anObject(this);
|
|
2829
|
+
try {
|
|
2830
|
+
aCallable(predicate);
|
|
2831
|
+
} catch (error) {
|
|
2832
|
+
iteratorClose(this, 'throw', error);
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2835
|
+
if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);
|
|
2836
|
+
|
|
2837
|
+
var record = getIteratorDirect(this);
|
|
2838
|
+
var counter = 0;
|
|
2839
|
+
return iterate(record, function (value, stop) {
|
|
2840
|
+
if (predicate(value, counter++)) return stop();
|
|
2841
|
+
}, { IS_RECORD: true, INTERRUPTED: true }).stopped;
|
|
2842
|
+
}
|
|
2843
|
+
});
|
|
2844
|
+
|
|
2845
|
+
|
|
2846
|
+
/***/ })
|
|
2847
|
+
|
|
2848
|
+
/******/ });
|
|
2849
|
+
/************************************************************************/
|
|
2850
|
+
/******/ // The module cache
|
|
2851
|
+
/******/ var __webpack_module_cache__ = {};
|
|
2852
|
+
/******/
|
|
2853
|
+
/******/ // The require function
|
|
2854
|
+
/******/ function __webpack_require__(moduleId) {
|
|
2855
|
+
/******/ // Check if module is in cache
|
|
2856
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
2857
|
+
/******/ if (cachedModule !== undefined) {
|
|
2858
|
+
/******/ return cachedModule.exports;
|
|
2859
|
+
/******/ }
|
|
2860
|
+
/******/ // Create a new module (and put it into the cache)
|
|
2861
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
2862
|
+
/******/ // no module.id needed
|
|
2863
|
+
/******/ // no module.loaded needed
|
|
2864
|
+
/******/ exports: {}
|
|
2865
|
+
/******/ };
|
|
2866
|
+
/******/
|
|
2867
|
+
/******/ // Execute the module function
|
|
2868
|
+
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
2869
|
+
/******/
|
|
2870
|
+
/******/ // Return the exports of the module
|
|
2871
|
+
/******/ return module.exports;
|
|
2872
|
+
/******/ }
|
|
2873
|
+
/******/
|
|
2874
|
+
/************************************************************************/
|
|
2875
|
+
/******/ /* webpack/runtime/define property getters */
|
|
2876
|
+
/******/ !function() {
|
|
2877
|
+
/******/ // define getter functions for harmony exports
|
|
2878
|
+
/******/ __webpack_require__.d = function(exports, definition) {
|
|
2879
|
+
/******/ for(var key in definition) {
|
|
2880
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
2881
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
2882
|
+
/******/ }
|
|
2883
|
+
/******/ }
|
|
2884
|
+
/******/ };
|
|
2885
|
+
/******/ }();
|
|
2886
|
+
/******/
|
|
2887
|
+
/******/ /* webpack/runtime/global */
|
|
2888
|
+
/******/ !function() {
|
|
2889
|
+
/******/ __webpack_require__.g = (function() {
|
|
2890
|
+
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
2891
|
+
/******/ try {
|
|
2892
|
+
/******/ return this || new Function('return this')();
|
|
2893
|
+
/******/ } catch (e) {
|
|
2894
|
+
/******/ if (typeof window === 'object') return window;
|
|
2895
|
+
/******/ }
|
|
2896
|
+
/******/ })();
|
|
2897
|
+
/******/ }();
|
|
2898
|
+
/******/
|
|
2899
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
2900
|
+
/******/ !function() {
|
|
2901
|
+
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
2902
|
+
/******/ }();
|
|
2903
|
+
/******/
|
|
2904
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
2905
|
+
/******/ !function() {
|
|
2906
|
+
/******/ // define __esModule on exports
|
|
2907
|
+
/******/ __webpack_require__.r = function(exports) {
|
|
2908
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
2909
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2910
|
+
/******/ }
|
|
2911
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
2912
|
+
/******/ };
|
|
2913
|
+
/******/ }();
|
|
2914
|
+
/******/
|
|
2915
|
+
/******/ /* webpack/runtime/publicPath */
|
|
2916
|
+
/******/ !function() {
|
|
2917
|
+
/******/ __webpack_require__.p = "";
|
|
2918
|
+
/******/ }();
|
|
2919
|
+
/******/
|
|
2920
|
+
/************************************************************************/
|
|
2921
|
+
var __webpack_exports__ = {};
|
|
2922
|
+
// ESM COMPAT FLAG
|
|
2923
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2924
|
+
|
|
2925
|
+
// EXPORTS
|
|
2926
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
2927
|
+
VanillaGantt: function() { return /* reexport */ VanillaGantt; }
|
|
2928
|
+
});
|
|
2929
|
+
|
|
2930
|
+
;// ./node_modules/.pnpm/@vue+cli-service@5.0.9_@vue+compiler-sfc@3.5.38_lodash@4.18.1_vue-template-compiler@2.7_c9972e4047f004f60ec0a5944100d8f4/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
|
|
2931
|
+
/* eslint-disable no-var */
|
|
2932
|
+
// This file is imported into lib/wc client bundles.
|
|
2933
|
+
|
|
2934
|
+
if (typeof window !== 'undefined') {
|
|
2935
|
+
var currentScript = window.document.currentScript
|
|
2936
|
+
if (false) // removed by dead control flow
|
|
2937
|
+
{ var getCurrentScript; }
|
|
2938
|
+
|
|
2939
|
+
var src = currentScript && currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)
|
|
2940
|
+
if (src) {
|
|
2941
|
+
__webpack_require__.p = src[1] // eslint-disable-line
|
|
2942
|
+
}
|
|
2943
|
+
}
|
|
2944
|
+
|
|
2945
|
+
// Indicate to webpack that this file can be concatenated
|
|
2946
|
+
/* harmony default export */ var setPublicPath = (null);
|
|
2947
|
+
|
|
2948
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.array.includes.js
|
|
2949
|
+
var es_array_includes = __webpack_require__(9690);
|
|
2950
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.array.push.js
|
|
2951
|
+
var es_array_push = __webpack_require__(4495);
|
|
2952
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.constructor.js
|
|
2953
|
+
var es_iterator_constructor = __webpack_require__(7622);
|
|
2954
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.every.js
|
|
2955
|
+
var es_iterator_every = __webpack_require__(3149);
|
|
2956
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.filter.js
|
|
2957
|
+
var es_iterator_filter = __webpack_require__(746);
|
|
2958
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.find.js
|
|
2959
|
+
var es_iterator_find = __webpack_require__(4059);
|
|
2960
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.for-each.js
|
|
2961
|
+
var es_iterator_for_each = __webpack_require__(1119);
|
|
2962
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.map.js
|
|
2963
|
+
var es_iterator_map = __webpack_require__(8660);
|
|
2964
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.reduce.js
|
|
2965
|
+
var es_iterator_reduce = __webpack_require__(882);
|
|
2966
|
+
// EXTERNAL MODULE: ./node_modules/.pnpm/core-js@3.49.0/node_modules/core-js/modules/es.iterator.some.js
|
|
2967
|
+
var es_iterator_some = __webpack_require__(5528);
|
|
2968
|
+
;// ./packages/gantt/src/vanilla-gantt.css
|
|
2969
|
+
// extracted by mini-css-extract-plugin
|
|
2970
|
+
|
|
2971
|
+
;// ./packages/gantt/src/VanillaGantt.js
|
|
2972
|
+
|
|
2973
|
+
|
|
2974
|
+
|
|
2975
|
+
|
|
2976
|
+
|
|
2977
|
+
|
|
2978
|
+
|
|
2979
|
+
|
|
2980
|
+
|
|
2981
|
+
|
|
2982
|
+
|
|
2983
|
+
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
2984
|
+
const HOUR = 60 * 60 * 1000;
|
|
2985
|
+
const DEFAULT_TASK_TOOLTIP = {
|
|
2986
|
+
visible: true,
|
|
2987
|
+
customLayout: null,
|
|
2988
|
+
className: '',
|
|
2989
|
+
offsetX: 12,
|
|
2990
|
+
offsetY: 12
|
|
2991
|
+
};
|
|
2992
|
+
const DEFAULT_OPTIONS = {
|
|
2993
|
+
records: [],
|
|
2994
|
+
recordKeyField: 'id',
|
|
2995
|
+
taskKeyField: 'id',
|
|
2996
|
+
minDate: '',
|
|
2997
|
+
maxDate: '',
|
|
2998
|
+
rowHeight: 78,
|
|
2999
|
+
taskHeight: 36,
|
|
3000
|
+
headerRowHeight: 24,
|
|
3001
|
+
taskListTable: {
|
|
3002
|
+
tableWidth: 'auto',
|
|
3003
|
+
minTableWidth: 120,
|
|
3004
|
+
maxTableWidth: 640,
|
|
3005
|
+
columnResizable: true,
|
|
3006
|
+
headerStyle: null,
|
|
3007
|
+
columns: [{
|
|
3008
|
+
field: 'name',
|
|
3009
|
+
title: '工位',
|
|
3010
|
+
width: 170,
|
|
3011
|
+
tree: true
|
|
3012
|
+
}],
|
|
3013
|
+
renderHeader: null,
|
|
3014
|
+
renderCell: null
|
|
3015
|
+
},
|
|
3016
|
+
timelineHeader: {
|
|
3017
|
+
backgroundColor: '#fff',
|
|
3018
|
+
colWidth: 56,
|
|
3019
|
+
style: null,
|
|
3020
|
+
scales: [{
|
|
3021
|
+
unit: 'day',
|
|
3022
|
+
step: 1,
|
|
3023
|
+
rowHeight: 24
|
|
3024
|
+
}, {
|
|
3025
|
+
unit: 'hour',
|
|
3026
|
+
step: 2,
|
|
3027
|
+
rowHeight: 24,
|
|
3028
|
+
colWidth: 56
|
|
3029
|
+
}]
|
|
3030
|
+
},
|
|
3031
|
+
taskBar: {
|
|
3032
|
+
tasksField: 'tasks',
|
|
3033
|
+
startDateField: 'startDate',
|
|
3034
|
+
endDateField: 'endDate',
|
|
3035
|
+
progressField: 'progress',
|
|
3036
|
+
laneField: 'lane',
|
|
3037
|
+
statusField: 'status',
|
|
3038
|
+
labelText: 'title',
|
|
3039
|
+
subLabelText: 'subtitle',
|
|
3040
|
+
barStyle: null,
|
|
3041
|
+
projectStyle: null,
|
|
3042
|
+
customLayout: null,
|
|
3043
|
+
clip: true,
|
|
3044
|
+
draggable: true,
|
|
3045
|
+
dragStep: 60 * 1000,
|
|
3046
|
+
tooltip: false,
|
|
3047
|
+
onClick: null,
|
|
3048
|
+
onContextMenu: null,
|
|
3049
|
+
onMouseEnter: null,
|
|
3050
|
+
onMouseLeave: null,
|
|
3051
|
+
onDragStart: null,
|
|
3052
|
+
onDrag: null,
|
|
3053
|
+
onDragEnd: null,
|
|
3054
|
+
lanes: [{
|
|
3055
|
+
key: 'plan',
|
|
3056
|
+
offset: 8,
|
|
3057
|
+
height: 36
|
|
3058
|
+
}, {
|
|
3059
|
+
key: 'load',
|
|
3060
|
+
offset: 52,
|
|
3061
|
+
height: 6
|
|
3062
|
+
}, {
|
|
3063
|
+
key: 'unload',
|
|
3064
|
+
offset: 66,
|
|
3065
|
+
height: 6
|
|
3066
|
+
}]
|
|
3067
|
+
},
|
|
3068
|
+
dependency: {
|
|
3069
|
+
links: [],
|
|
3070
|
+
linkLineStyle: null,
|
|
3071
|
+
showLinks: false,
|
|
3072
|
+
highlightConnected: false,
|
|
3073
|
+
dimOpacity: 0.18
|
|
3074
|
+
},
|
|
3075
|
+
grid: {
|
|
3076
|
+
backgroundColor: '#f7fbfb',
|
|
3077
|
+
alternatingBackgroundColor: '#f8fbfb',
|
|
3078
|
+
verticalLine: {
|
|
3079
|
+
lineColor: '#e8eeee'
|
|
3080
|
+
},
|
|
3081
|
+
horizontalLine: {
|
|
3082
|
+
lineColor: '#edf1f2'
|
|
3083
|
+
},
|
|
3084
|
+
backgroundRanges: [],
|
|
3085
|
+
rowBackgroundRanges: []
|
|
3086
|
+
},
|
|
3087
|
+
markLine: null,
|
|
3088
|
+
onScroll: null
|
|
3089
|
+
};
|
|
3090
|
+
class VanillaGantt {
|
|
3091
|
+
constructor(container, options = {}) {
|
|
3092
|
+
this.container = typeof container === 'string' ? document.querySelector(container) : container;
|
|
3093
|
+
if (!this.container) {
|
|
3094
|
+
throw new Error('VanillaGantt requires a valid container.');
|
|
3095
|
+
}
|
|
3096
|
+
this.options = mergeOptions(DEFAULT_OPTIONS, options);
|
|
3097
|
+
this.expandedRows = {};
|
|
3098
|
+
this.scrollTop = 0;
|
|
3099
|
+
this.scrollLeft = 0;
|
|
3100
|
+
this.disposers = [];
|
|
3101
|
+
this.activeDrag = null;
|
|
3102
|
+
this.activeLinkTaskKey = null;
|
|
3103
|
+
this.activeLinkGroupKey = null;
|
|
3104
|
+
this.suppressClickUntil = 0;
|
|
3105
|
+
this.suppressClickTaskKey = null;
|
|
3106
|
+
this.seedExpandedRows(this.options.records);
|
|
3107
|
+
this.render();
|
|
3108
|
+
}
|
|
3109
|
+
setOptions(options = {}) {
|
|
3110
|
+
const previousRecords = this.options.records;
|
|
3111
|
+
this.options = mergeOptions(this.options, options);
|
|
3112
|
+
if (options.records && options.records !== previousRecords) {
|
|
3113
|
+
this.seedExpandedRows(options.records, true);
|
|
3114
|
+
}
|
|
3115
|
+
this.render();
|
|
3116
|
+
}
|
|
3117
|
+
destroy() {
|
|
3118
|
+
this.cleanup();
|
|
3119
|
+
this.container.innerHTML = '';
|
|
3120
|
+
}
|
|
3121
|
+
cleanup() {
|
|
3122
|
+
this.hideTaskTooltip();
|
|
3123
|
+
this.disposers.forEach(dispose => dispose());
|
|
3124
|
+
this.disposers = [];
|
|
3125
|
+
}
|
|
3126
|
+
render() {
|
|
3127
|
+
this.cleanup();
|
|
3128
|
+
const root = el('div', 'vg');
|
|
3129
|
+
root.style.setProperty('--vg-left-width', `${this.tableWidth}px`);
|
|
3130
|
+
this.rootEl = root;
|
|
3131
|
+
const left = el('div', 'vg-left');
|
|
3132
|
+
const right = el('div', 'vg-right');
|
|
3133
|
+
left.append(this.renderLeftHeader(), this.renderLeftBody(), this.renderResizeHandle(root));
|
|
3134
|
+
right.append(this.renderTimeline(), this.renderBody());
|
|
3135
|
+
root.append(left, right);
|
|
3136
|
+
this.container.innerHTML = '';
|
|
3137
|
+
this.container.append(root);
|
|
3138
|
+
if (this.scrollEl) {
|
|
3139
|
+
this.scrollEl.scrollTop = this.scrollTop;
|
|
3140
|
+
this.scrollEl.scrollLeft = this.scrollLeft;
|
|
3141
|
+
}
|
|
3142
|
+
}
|
|
3143
|
+
renderLeftHeader() {
|
|
3144
|
+
const header = el('div', 'vg-left-header');
|
|
3145
|
+
header.style.height = `${this.headerHeight}px`;
|
|
3146
|
+
header.style.gridTemplateColumns = this.tableGridTemplateColumns;
|
|
3147
|
+
applyTableHeaderStyle(header, this.taskListTable.headerStyle);
|
|
3148
|
+
this.leftHeaderEl = header;
|
|
3149
|
+
const custom = this.resolveContent(this.taskListTable.renderHeader, {
|
|
3150
|
+
gantt: this
|
|
3151
|
+
});
|
|
3152
|
+
if (custom) {
|
|
3153
|
+
header.append(custom);
|
|
3154
|
+
} else {
|
|
3155
|
+
this.tableColumns.forEach((column, columnIndex) => {
|
|
3156
|
+
header.append(this.renderTableHeaderCell(column, columnIndex));
|
|
3157
|
+
});
|
|
3158
|
+
}
|
|
3159
|
+
return header;
|
|
3160
|
+
}
|
|
3161
|
+
renderTableHeaderCell(column, columnIndex) {
|
|
3162
|
+
const cell = el('div', `vg-table-header-cell${column.className ? ` ${column.className}` : ''}`);
|
|
3163
|
+
const headerStyle = {
|
|
3164
|
+
...(this.taskListTable.headerStyle || {}),
|
|
3165
|
+
...(column.headerStyle || {})
|
|
3166
|
+
};
|
|
3167
|
+
applyTableHeaderStyle(cell, headerStyle);
|
|
3168
|
+
const content = el('div', 'vg-table-header-content');
|
|
3169
|
+
content.style.justifyContent = alignToFlex(column.headerAlign || headerStyle.textAlign || column.align || 'left');
|
|
3170
|
+
const custom = this.resolveContent(column.renderHeader, {
|
|
3171
|
+
column,
|
|
3172
|
+
columnIndex,
|
|
3173
|
+
gantt: this
|
|
3174
|
+
});
|
|
3175
|
+
if (custom) {
|
|
3176
|
+
content.append(custom);
|
|
3177
|
+
} else {
|
|
3178
|
+
content.textContent = column.title || column.field || '';
|
|
3179
|
+
}
|
|
3180
|
+
cell.append(content);
|
|
3181
|
+
if (this.isColumnResizable(column)) {
|
|
3182
|
+
cell.append(this.renderColumnResizeHandle(column, columnIndex));
|
|
3183
|
+
}
|
|
3184
|
+
return cell;
|
|
3185
|
+
}
|
|
3186
|
+
renderColumnResizeHandle(column, columnIndex) {
|
|
3187
|
+
const handle = el('span', 'vg-column-resize-handle');
|
|
3188
|
+
const onMouseDown = event => {
|
|
3189
|
+
const startX = event.clientX;
|
|
3190
|
+
const startWidth = this.columnWidth(column);
|
|
3191
|
+
const onMove = moveEvent => {
|
|
3192
|
+
const next = startWidth + moveEvent.clientX - startX;
|
|
3193
|
+
this.resizeColumn(columnIndex, next);
|
|
3194
|
+
};
|
|
3195
|
+
const onUp = () => {
|
|
3196
|
+
document.removeEventListener('mousemove', onMove);
|
|
3197
|
+
document.removeEventListener('mouseup', onUp);
|
|
3198
|
+
};
|
|
3199
|
+
document.addEventListener('mousemove', onMove);
|
|
3200
|
+
document.addEventListener('mouseup', onUp);
|
|
3201
|
+
event.preventDefault();
|
|
3202
|
+
event.stopPropagation();
|
|
3203
|
+
};
|
|
3204
|
+
handle.addEventListener('mousedown', onMouseDown);
|
|
3205
|
+
this.disposers.push(() => handle.removeEventListener('mousedown', onMouseDown));
|
|
3206
|
+
return handle;
|
|
3207
|
+
}
|
|
3208
|
+
resizeColumn(columnIndex, width) {
|
|
3209
|
+
const sourceColumn = this.sourceTableColumns[columnIndex];
|
|
3210
|
+
if (!sourceColumn) return;
|
|
3211
|
+
const minWidth = Number(sourceColumn.minWidth || 48);
|
|
3212
|
+
const maxWidth = Number(sourceColumn.maxWidth || 600);
|
|
3213
|
+
sourceColumn.width = Math.min(maxWidth, Math.max(minWidth, Math.round(width)));
|
|
3214
|
+
if (typeof this.taskListTable.tableWidth === 'number') {
|
|
3215
|
+
this.taskListTable.tableWidth = this.sourceTableColumns.reduce((total, item) => total + this.columnWidth(item), 0);
|
|
3216
|
+
}
|
|
3217
|
+
this.syncTableLayout();
|
|
3218
|
+
}
|
|
3219
|
+
syncTableLayout() {
|
|
3220
|
+
const width = this.tableWidth;
|
|
3221
|
+
if (this.rootEl) this.rootEl.style.setProperty('--vg-left-width', `${width}px`);
|
|
3222
|
+
if (this.leftHeaderEl) this.leftHeaderEl.style.gridTemplateColumns = this.tableGridTemplateColumns;
|
|
3223
|
+
if (this.leftBodyInner) {
|
|
3224
|
+
Array.from(this.leftBodyInner.children).forEach(row => {
|
|
3225
|
+
row.style.gridTemplateColumns = this.tableGridTemplateColumns;
|
|
3226
|
+
});
|
|
3227
|
+
}
|
|
3228
|
+
}
|
|
3229
|
+
renderLeftBody() {
|
|
3230
|
+
const body = el('div', 'vg-left-body');
|
|
3231
|
+
const inner = el('div', 'vg-left-body-inner');
|
|
3232
|
+
inner.style.height = `${this.bodyHeight}px`;
|
|
3233
|
+
inner.style.transform = `translateY(-${this.scrollTop}px)`;
|
|
3234
|
+
this.leftBodyInner = inner;
|
|
3235
|
+
this.visibleRows.forEach(row => {
|
|
3236
|
+
const rowEl = el('div', `vg-row${row.children ? ' vg-row--group' : ''}`);
|
|
3237
|
+
rowEl.style.height = `${row.height || this.options.rowHeight}px`;
|
|
3238
|
+
rowEl.style.gridTemplateColumns = this.tableGridTemplateColumns;
|
|
3239
|
+
this.tableColumns.forEach((column, columnIndex) => {
|
|
3240
|
+
rowEl.append(this.renderTableCell(row, column, columnIndex));
|
|
3241
|
+
});
|
|
3242
|
+
inner.append(rowEl);
|
|
3243
|
+
});
|
|
3244
|
+
body.append(inner);
|
|
3245
|
+
const onWheel = event => {
|
|
3246
|
+
if (!this.scrollEl || !event.deltaY) return;
|
|
3247
|
+
this.scrollEl.scrollTop += event.deltaY;
|
|
3248
|
+
event.preventDefault();
|
|
3249
|
+
};
|
|
3250
|
+
body.addEventListener('wheel', onWheel, {
|
|
3251
|
+
passive: false
|
|
3252
|
+
});
|
|
3253
|
+
this.disposers.push(() => body.removeEventListener('wheel', onWheel));
|
|
3254
|
+
return body;
|
|
3255
|
+
}
|
|
3256
|
+
renderTableCell(row, column, columnIndex) {
|
|
3257
|
+
const cell = el('div', `vg-table-cell${column.className ? ` ${column.className}` : ''}`);
|
|
3258
|
+
cell.style.justifyContent = alignToFlex(column.align || 'left');
|
|
3259
|
+
const value = this.getCellValue(row, column, columnIndex);
|
|
3260
|
+
const payload = {
|
|
3261
|
+
value,
|
|
3262
|
+
record: row,
|
|
3263
|
+
row,
|
|
3264
|
+
column,
|
|
3265
|
+
columnIndex,
|
|
3266
|
+
expanded: this.isExpanded(row),
|
|
3267
|
+
toggle: () => this.toggleRow(row),
|
|
3268
|
+
gantt: this
|
|
3269
|
+
};
|
|
3270
|
+
const custom = this.resolveContent(column.renderCell || this.taskListTable.renderCell, payload);
|
|
3271
|
+
if (custom) {
|
|
3272
|
+
cell.append(custom);
|
|
3273
|
+
this.bindTemplateToggle(cell, row);
|
|
3274
|
+
return cell;
|
|
3275
|
+
}
|
|
3276
|
+
if (this.isTreeColumn(column, columnIndex)) {
|
|
3277
|
+
cell.append(this.renderTreeCell(row, value));
|
|
3278
|
+
} else if (column.field === 'load') {
|
|
3279
|
+
cell.append(this.renderLoadCell(row, value));
|
|
3280
|
+
} else {
|
|
3281
|
+
cell.textContent = value === undefined || value === null ? '' : String(value);
|
|
3282
|
+
}
|
|
3283
|
+
return cell;
|
|
3284
|
+
}
|
|
3285
|
+
renderTreeCell(row, value) {
|
|
3286
|
+
const name = el('div', `vg-row-name${row.children ? ' vg-row-name--toggle' : ''}`);
|
|
3287
|
+
name.style.paddingLeft = `${row.level * 16}px`;
|
|
3288
|
+
if (row.children) {
|
|
3289
|
+
const button = el('button', 'vg-row-toggle');
|
|
3290
|
+
button.type = 'button';
|
|
3291
|
+
button.setAttribute('aria-label', this.isExpanded(row) ? '收起' : '展开');
|
|
3292
|
+
button.setAttribute('aria-expanded', String(this.isExpanded(row)));
|
|
3293
|
+
if (this.isExpanded(row)) {
|
|
3294
|
+
button.classList.add('vg-row-toggle--expanded');
|
|
3295
|
+
}
|
|
3296
|
+
name.append(button);
|
|
3297
|
+
name.addEventListener('click', () => this.toggleRow(row));
|
|
3298
|
+
}
|
|
3299
|
+
name.append(document.createTextNode(value === undefined || value === null ? '' : String(value)));
|
|
3300
|
+
return name;
|
|
3301
|
+
}
|
|
3302
|
+
renderLoadCell(row, value) {
|
|
3303
|
+
const loadValue = value === undefined ? row.load : value;
|
|
3304
|
+
if (loadValue === undefined || loadValue === null) return document.createTextNode('');
|
|
3305
|
+
const load = el('div', 'vg-row-load');
|
|
3306
|
+
const bar = el('i');
|
|
3307
|
+
bar.style.width = `${loadValue}%`;
|
|
3308
|
+
bar.style.background = this.loadColor(loadValue);
|
|
3309
|
+
const valueNode = el('b');
|
|
3310
|
+
valueNode.textContent = `${loadValue}%`;
|
|
3311
|
+
valueNode.style.color = this.loadColor(loadValue);
|
|
3312
|
+
load.append(bar, valueNode);
|
|
3313
|
+
return load;
|
|
3314
|
+
}
|
|
3315
|
+
getCellValue(row, column, columnIndex) {
|
|
3316
|
+
if (typeof column.valueGetter === 'function') {
|
|
3317
|
+
return column.valueGetter({
|
|
3318
|
+
record: row,
|
|
3319
|
+
row,
|
|
3320
|
+
column,
|
|
3321
|
+
columnIndex,
|
|
3322
|
+
gantt: this
|
|
3323
|
+
});
|
|
3324
|
+
}
|
|
3325
|
+
return column.field ? row[column.field] : undefined;
|
|
3326
|
+
}
|
|
3327
|
+
isTreeColumn(column, columnIndex) {
|
|
3328
|
+
return column.tree === true || column.tree !== false && columnIndex === 0 && column.field === 'name';
|
|
3329
|
+
}
|
|
3330
|
+
isColumnResizable(column) {
|
|
3331
|
+
if (column.resizable === false) return false;
|
|
3332
|
+
return this.taskListTable.columnResizable !== false;
|
|
3333
|
+
}
|
|
3334
|
+
bindTemplateToggle(root, row) {
|
|
3335
|
+
if (!row.children) return;
|
|
3336
|
+
root.querySelectorAll('[data-vg-toggle]').forEach(node => {
|
|
3337
|
+
const onClick = event => {
|
|
3338
|
+
event.preventDefault();
|
|
3339
|
+
event.stopPropagation();
|
|
3340
|
+
this.toggleRow(row);
|
|
3341
|
+
};
|
|
3342
|
+
node.addEventListener('click', onClick);
|
|
3343
|
+
this.disposers.push(() => node.removeEventListener('click', onClick));
|
|
3344
|
+
});
|
|
3345
|
+
}
|
|
3346
|
+
renderResizeHandle(root) {
|
|
3347
|
+
const handle = el('span', 'vg-resize-handle');
|
|
3348
|
+
const onMouseDown = event => {
|
|
3349
|
+
const startX = event.clientX;
|
|
3350
|
+
const startWidth = this.tableWidth;
|
|
3351
|
+
const onMove = moveEvent => {
|
|
3352
|
+
const next = startWidth + moveEvent.clientX - startX;
|
|
3353
|
+
this.taskListTable.tableWidth = Math.min(this.taskListTable.maxTableWidth, Math.max(this.taskListTable.minTableWidth, next));
|
|
3354
|
+
root.style.setProperty('--vg-left-width', `${this.taskListTable.tableWidth}px`);
|
|
3355
|
+
};
|
|
3356
|
+
const onUp = () => {
|
|
3357
|
+
document.removeEventListener('mousemove', onMove);
|
|
3358
|
+
document.removeEventListener('mouseup', onUp);
|
|
3359
|
+
};
|
|
3360
|
+
document.addEventListener('mousemove', onMove);
|
|
3361
|
+
document.addEventListener('mouseup', onUp);
|
|
3362
|
+
event.preventDefault();
|
|
3363
|
+
};
|
|
3364
|
+
handle.addEventListener('mousedown', onMouseDown);
|
|
3365
|
+
this.disposers.push(() => handle.removeEventListener('mousedown', onMouseDown));
|
|
3366
|
+
return handle;
|
|
3367
|
+
}
|
|
3368
|
+
renderTimeline() {
|
|
3369
|
+
const viewport = el('div', 'vg-timeline-viewport');
|
|
3370
|
+
viewport.style.height = `${this.headerHeight}px`;
|
|
3371
|
+
if (this.timelineHeader.backgroundColor) {
|
|
3372
|
+
viewport.style.background = this.timelineHeader.backgroundColor;
|
|
3373
|
+
}
|
|
3374
|
+
const stage = el('div', 'vg-timeline-stage');
|
|
3375
|
+
stage.style.width = `${this.chartWidth}px`;
|
|
3376
|
+
stage.style.transform = `translateX(-${this.scrollLeft}px)`;
|
|
3377
|
+
this.timelineStage = stage;
|
|
3378
|
+
const svg = svgEl('svg', 'vg-timeline-svg');
|
|
3379
|
+
attrs(svg, {
|
|
3380
|
+
width: this.chartWidth,
|
|
3381
|
+
height: this.headerHeight,
|
|
3382
|
+
viewBox: `0 0 ${this.chartWidth} ${this.headerHeight}`
|
|
3383
|
+
});
|
|
3384
|
+
if (this.timelineHeader.backgroundColor) {
|
|
3385
|
+
svg.style.background = this.timelineHeader.backgroundColor;
|
|
3386
|
+
}
|
|
3387
|
+
let y = 0;
|
|
3388
|
+
this.timelineUnitsByScale.forEach((units, scaleIndex) => {
|
|
3389
|
+
const scale = this.timelineScales[scaleIndex];
|
|
3390
|
+
const height = this.scaleRowHeight(scale);
|
|
3391
|
+
units.forEach(unit => {
|
|
3392
|
+
svg.append(this.renderTimelineUnit(unit, y, height, scale, scaleIndex));
|
|
3393
|
+
});
|
|
3394
|
+
y += height;
|
|
3395
|
+
});
|
|
3396
|
+
stage.append(svg);
|
|
3397
|
+
viewport.append(stage);
|
|
3398
|
+
return viewport;
|
|
3399
|
+
}
|
|
3400
|
+
renderTimelineUnit(unit, y, height, scale, scaleIndex) {
|
|
3401
|
+
const fo = svgEl('foreignObject');
|
|
3402
|
+
attrs(fo, {
|
|
3403
|
+
x: unit.x,
|
|
3404
|
+
y,
|
|
3405
|
+
width: unit.width,
|
|
3406
|
+
height
|
|
3407
|
+
});
|
|
3408
|
+
const custom = this.resolveContent(scale.customLayout || this.timelineHeader.customLayout, {
|
|
3409
|
+
dateInfo: unit,
|
|
3410
|
+
unit,
|
|
3411
|
+
scale,
|
|
3412
|
+
scaleIndex,
|
|
3413
|
+
major: scaleIndex === 0,
|
|
3414
|
+
gantt: this
|
|
3415
|
+
});
|
|
3416
|
+
const style = this.timelineCellStyle(scale);
|
|
3417
|
+
if (custom) {
|
|
3418
|
+
applyTimelineStyleToContent(custom, this.timelineCustomCellStyle(scale));
|
|
3419
|
+
fo.append(custom);
|
|
3420
|
+
} else {
|
|
3421
|
+
const cell = el('div', `vg-timeline-cell${scaleIndex === 0 ? ' vg-timeline-cell--major' : ''}`);
|
|
3422
|
+
applyTimelineStyle(cell, style);
|
|
3423
|
+
cell.textContent = unit.label;
|
|
3424
|
+
fo.append(cell);
|
|
3425
|
+
}
|
|
3426
|
+
return fo;
|
|
3427
|
+
}
|
|
3428
|
+
renderBody() {
|
|
3429
|
+
const scroll = el('div', 'vg-scroll');
|
|
3430
|
+
const stage = el('div', 'vg-stage');
|
|
3431
|
+
stage.style.width = `${this.chartWidth}px`;
|
|
3432
|
+
stage.style.minWidth = `${this.chartWidth}px`;
|
|
3433
|
+
const svg = svgEl('svg', 'vg-svg');
|
|
3434
|
+
attrs(svg, {
|
|
3435
|
+
width: this.chartWidth,
|
|
3436
|
+
height: this.bodyHeight,
|
|
3437
|
+
viewBox: `0 0 ${this.chartWidth} ${this.bodyHeight}`
|
|
3438
|
+
});
|
|
3439
|
+
svg.append(this.renderDefs());
|
|
3440
|
+
this.appendGrid(svg);
|
|
3441
|
+
const onCanvasClick = () => {
|
|
3442
|
+
if (this.clearActiveLinkGroup()) this.render();
|
|
3443
|
+
};
|
|
3444
|
+
svg.addEventListener('click', onCanvasClick);
|
|
3445
|
+
this.disposers.push(() => svg.removeEventListener('click', onCanvasClick));
|
|
3446
|
+
stage.append(svg);
|
|
3447
|
+
scroll.append(stage);
|
|
3448
|
+
const onScroll = () => {
|
|
3449
|
+
this.scrollTop = scroll.scrollTop;
|
|
3450
|
+
this.scrollLeft = scroll.scrollLeft;
|
|
3451
|
+
if (this.leftBodyInner) {
|
|
3452
|
+
this.leftBodyInner.style.transform = `translateY(-${this.scrollTop}px)`;
|
|
3453
|
+
}
|
|
3454
|
+
if (this.timelineStage) {
|
|
3455
|
+
this.timelineStage.style.transform = `translateX(-${this.scrollLeft}px)`;
|
|
3456
|
+
}
|
|
3457
|
+
if (typeof this.options.onScroll === 'function') {
|
|
3458
|
+
this.options.onScroll({
|
|
3459
|
+
scrollLeft: this.scrollLeft,
|
|
3460
|
+
scrollTop: this.scrollTop
|
|
3461
|
+
});
|
|
3462
|
+
}
|
|
3463
|
+
};
|
|
3464
|
+
scroll.addEventListener('scroll', onScroll);
|
|
3465
|
+
this.disposers.push(() => scroll.removeEventListener('scroll', onScroll));
|
|
3466
|
+
this.scrollEl = scroll;
|
|
3467
|
+
return scroll;
|
|
3468
|
+
}
|
|
3469
|
+
renderDefs() {
|
|
3470
|
+
const defs = svgEl('defs');
|
|
3471
|
+
const pattern = svgEl('pattern');
|
|
3472
|
+
attrs(pattern, {
|
|
3473
|
+
id: 'vg-diagonal-stripe',
|
|
3474
|
+
patternUnits: 'userSpaceOnUse',
|
|
3475
|
+
width: 8,
|
|
3476
|
+
height: 8
|
|
3477
|
+
});
|
|
3478
|
+
const path = svgEl('path');
|
|
3479
|
+
attrs(path, {
|
|
3480
|
+
d: 'M-2,2 l4,-4 M0,8 l8,-8 M6,10 l4,-4',
|
|
3481
|
+
stroke: '#86ddd4',
|
|
3482
|
+
'stroke-width': 1
|
|
3483
|
+
});
|
|
3484
|
+
pattern.append(path);
|
|
3485
|
+
defs.append(pattern);
|
|
3486
|
+
return defs;
|
|
3487
|
+
}
|
|
3488
|
+
appendGrid(svg) {
|
|
3489
|
+
if (this.grid.backgroundColor) {
|
|
3490
|
+
svg.append(this.rect(0, 0, this.chartWidth, this.bodyHeight, this.grid.backgroundColor));
|
|
3491
|
+
}
|
|
3492
|
+
this.backgroundShades.forEach(shade => {
|
|
3493
|
+
svg.append(this.rect(shade.x, 0, shade.width, this.bodyHeight, shade.fill));
|
|
3494
|
+
});
|
|
3495
|
+
this.visibleBackgroundRanges.forEach(range => {
|
|
3496
|
+
const rect = this.rect(this.timeToX(range.startDate), 0, this.durationWidth(range.startDate, range.endDate), this.bodyHeight, range.color || range.fill || '#edf1f1');
|
|
3497
|
+
rect.setAttribute('opacity', range.opacity === undefined ? 1 : range.opacity);
|
|
3498
|
+
svg.append(rect);
|
|
3499
|
+
});
|
|
3500
|
+
this.verticalLines.forEach((item, index) => {
|
|
3501
|
+
const style = this.resolveStyle(this.grid.verticalLine, {
|
|
3502
|
+
index,
|
|
3503
|
+
dateIndex: index,
|
|
3504
|
+
date: item.startDate,
|
|
3505
|
+
ganttInstance: this
|
|
3506
|
+
});
|
|
3507
|
+
const line = this.line(item.x, 0, item.x, this.bodyHeight, style.lineColor || '#e8eeee');
|
|
3508
|
+
this.applyLineStyle(line, style);
|
|
3509
|
+
svg.append(line);
|
|
3510
|
+
});
|
|
3511
|
+
this.rowLines.forEach((item, index) => {
|
|
3512
|
+
const style = this.resolveStyle(this.grid.horizontalLine, {
|
|
3513
|
+
index,
|
|
3514
|
+
ganttInstance: this
|
|
3515
|
+
});
|
|
3516
|
+
const line = this.line(0, item.y, this.chartWidth, item.y, style.lineColor || '#edf1f2');
|
|
3517
|
+
this.applyLineStyle(line, style);
|
|
3518
|
+
svg.append(line);
|
|
3519
|
+
});
|
|
3520
|
+
this.markLines.forEach(markLine => {
|
|
3521
|
+
this.appendMarkLine(svg, markLine);
|
|
3522
|
+
});
|
|
3523
|
+
this.visibleRowBackgroundRanges.forEach(range => {
|
|
3524
|
+
const rect = this.rect(this.timeToX(range.startDate), this.rowTop(range.recordKey) + (range.offsetY || 0), this.durationWidth(range.startDate, range.endDate), range.height || this.options.rowHeight, range.color || range.fill || '#dcf8c9');
|
|
3525
|
+
rect.setAttribute('opacity', range.opacity === undefined ? 1 : range.opacity);
|
|
3526
|
+
svg.append(rect);
|
|
3527
|
+
});
|
|
3528
|
+
this.stripedTasks.forEach(task => {
|
|
3529
|
+
const rect = this.rect(this.timeToX(this.taskStart(task)), this.taskY(task), this.durationWidth(this.taskStart(task), this.taskEnd(task)), this.taskRenderHeight(task), 'url(#vg-diagonal-stripe)');
|
|
3530
|
+
svg.append(rect);
|
|
3531
|
+
});
|
|
3532
|
+
this.renderTasks.forEach(task => {
|
|
3533
|
+
svg.append(this.renderTask(task));
|
|
3534
|
+
});
|
|
3535
|
+
this.visibleLinks.forEach(link => {
|
|
3536
|
+
this.appendLink(svg, link);
|
|
3537
|
+
});
|
|
3538
|
+
}
|
|
3539
|
+
appendMarkLine(svg, markLine) {
|
|
3540
|
+
const x = this.timeToX(markLine.date);
|
|
3541
|
+
if (x < 0 || x > this.chartWidth) return;
|
|
3542
|
+
const style = markLine.style || {};
|
|
3543
|
+
const line = this.line(x, 0, x, this.bodyHeight, style.lineColor || '#35cce0');
|
|
3544
|
+
this.applyLineStyle(line, {
|
|
3545
|
+
lineDash: [4, 4],
|
|
3546
|
+
...style
|
|
3547
|
+
});
|
|
3548
|
+
svg.append(line);
|
|
3549
|
+
if (!markLine.content) return;
|
|
3550
|
+
const text = svgEl('text', 'vg-mark-line-text');
|
|
3551
|
+
attrs(text, {
|
|
3552
|
+
x: x + 6,
|
|
3553
|
+
y: 16,
|
|
3554
|
+
fill: markLine.contentStyle && markLine.contentStyle.color ? markLine.contentStyle.color : style.lineColor || '#35cce0'
|
|
3555
|
+
});
|
|
3556
|
+
text.textContent = markLine.content;
|
|
3557
|
+
svg.append(text);
|
|
3558
|
+
}
|
|
3559
|
+
appendLink(svg, link) {
|
|
3560
|
+
const from = this.taskLayoutByKey[link.from];
|
|
3561
|
+
const to = this.taskLayoutByKey[link.to];
|
|
3562
|
+
if (!from || !to) return;
|
|
3563
|
+
const route = this.linkRoute(link.type, from, to);
|
|
3564
|
+
const style = {
|
|
3565
|
+
...(this.dependency.linkLineStyle || {}),
|
|
3566
|
+
...(link.linkLineStyle || {})
|
|
3567
|
+
};
|
|
3568
|
+
const color = style.lineColor || link.color || '#168dff';
|
|
3569
|
+
const path = this.path(route.d, color);
|
|
3570
|
+
attrs(path, {
|
|
3571
|
+
fill: 'none',
|
|
3572
|
+
'stroke-linejoin': 'round',
|
|
3573
|
+
'stroke-linecap': 'round'
|
|
3574
|
+
});
|
|
3575
|
+
this.applyLineStyle(path, {
|
|
3576
|
+
lineWidth: 2,
|
|
3577
|
+
...style
|
|
3578
|
+
});
|
|
3579
|
+
if (link.dashed) path.setAttribute('stroke-dasharray', '6 4');
|
|
3580
|
+
svg.append(path);
|
|
3581
|
+
svg.append(this.circle(route.start.x, route.start.y, 4, color));
|
|
3582
|
+
svg.append(this.arrow(route.end.x, route.end.y, route.direction, color));
|
|
3583
|
+
}
|
|
3584
|
+
linkRoute(type, from, to) {
|
|
3585
|
+
const fromStart = from.x;
|
|
3586
|
+
const fromEnd = from.x + from.width;
|
|
3587
|
+
const toStart = to.x;
|
|
3588
|
+
const toEnd = to.x + to.width;
|
|
3589
|
+
const normalizedType = type || 'finish_to_start';
|
|
3590
|
+
let start;
|
|
3591
|
+
let end;
|
|
3592
|
+
if (normalizedType === 'start_to_start') {
|
|
3593
|
+
start = {
|
|
3594
|
+
x: fromStart,
|
|
3595
|
+
y: from.centerY
|
|
3596
|
+
};
|
|
3597
|
+
end = {
|
|
3598
|
+
x: toStart,
|
|
3599
|
+
y: to.centerY
|
|
3600
|
+
};
|
|
3601
|
+
} else if (normalizedType === 'finish_to_finish') {
|
|
3602
|
+
start = {
|
|
3603
|
+
x: fromEnd,
|
|
3604
|
+
y: from.centerY
|
|
3605
|
+
};
|
|
3606
|
+
end = {
|
|
3607
|
+
x: toEnd,
|
|
3608
|
+
y: to.centerY
|
|
3609
|
+
};
|
|
3610
|
+
} else if (normalizedType === 'start_to_finish') {
|
|
3611
|
+
start = {
|
|
3612
|
+
x: fromStart,
|
|
3613
|
+
y: from.centerY
|
|
3614
|
+
};
|
|
3615
|
+
end = {
|
|
3616
|
+
x: toEnd,
|
|
3617
|
+
y: to.centerY
|
|
3618
|
+
};
|
|
3619
|
+
} else {
|
|
3620
|
+
start = {
|
|
3621
|
+
x: fromEnd,
|
|
3622
|
+
y: from.centerY
|
|
3623
|
+
};
|
|
3624
|
+
end = {
|
|
3625
|
+
x: toStart,
|
|
3626
|
+
y: to.centerY
|
|
3627
|
+
};
|
|
3628
|
+
}
|
|
3629
|
+
const direction = end.x >= start.x ? 1 : -1;
|
|
3630
|
+
const gap = Math.abs(end.x - start.x);
|
|
3631
|
+
const elbow = direction > 0 ? start.x + Math.max(20, gap / 2) : start.x + 28;
|
|
3632
|
+
return {
|
|
3633
|
+
start,
|
|
3634
|
+
end,
|
|
3635
|
+
direction,
|
|
3636
|
+
d: `M ${start.x} ${start.y} H ${elbow} V ${end.y} H ${end.x}`
|
|
3637
|
+
};
|
|
3638
|
+
}
|
|
3639
|
+
renderTask(task) {
|
|
3640
|
+
const width = this.durationWidth(this.taskStart(task), this.taskEnd(task));
|
|
3641
|
+
const height = this.taskRenderHeight(task);
|
|
3642
|
+
const fo = svgEl('foreignObject', 'vg-task-fo');
|
|
3643
|
+
attrs(fo, {
|
|
3644
|
+
x: this.timeToX(this.taskStart(task)),
|
|
3645
|
+
y: this.taskY(task),
|
|
3646
|
+
width,
|
|
3647
|
+
height
|
|
3648
|
+
});
|
|
3649
|
+
const row = this.rowById[task.__rowId];
|
|
3650
|
+
const payload = this.createTaskPayload(task, {
|
|
3651
|
+
row,
|
|
3652
|
+
width,
|
|
3653
|
+
height,
|
|
3654
|
+
x: this.timeToX(this.taskStart(task)),
|
|
3655
|
+
y: this.taskY(task)
|
|
3656
|
+
});
|
|
3657
|
+
const custom = this.resolveContent(this.taskBar.customLayout, payload);
|
|
3658
|
+
fo.append(custom || this.renderDefaultTask(task));
|
|
3659
|
+
if (this.isTaskDimmed(task)) {
|
|
3660
|
+
fo.classList.add('vg-task-fo--dimmed');
|
|
3661
|
+
fo.style.opacity = String(this.dependency.dimOpacity === undefined ? 0.18 : this.dependency.dimOpacity);
|
|
3662
|
+
}
|
|
3663
|
+
this.bindTaskInteractions(fo, task);
|
|
3664
|
+
return fo;
|
|
3665
|
+
}
|
|
3666
|
+
bindTaskInteractions(node, task) {
|
|
3667
|
+
if (this.isTaskDraggable(task)) {
|
|
3668
|
+
node.classList.add('vg-task-fo--draggable');
|
|
3669
|
+
}
|
|
3670
|
+
const onClick = event => {
|
|
3671
|
+
const taskKey = this.taskKey(task);
|
|
3672
|
+
if (this.suppressClickTaskKey === taskKey && Date.now() < this.suppressClickUntil) {
|
|
3673
|
+
event.preventDefault();
|
|
3674
|
+
event.stopPropagation();
|
|
3675
|
+
return;
|
|
3676
|
+
}
|
|
3677
|
+
const shouldRender = this.activateTaskLinkGroup(task);
|
|
3678
|
+
this.callTaskCallback('onClick', task, event);
|
|
3679
|
+
event.stopPropagation();
|
|
3680
|
+
if (shouldRender) this.render();
|
|
3681
|
+
};
|
|
3682
|
+
const onContextMenu = event => {
|
|
3683
|
+
if (typeof this.taskBar.onContextMenu !== 'function') return;
|
|
3684
|
+
event.preventDefault();
|
|
3685
|
+
this.callTaskCallback('onContextMenu', task, event);
|
|
3686
|
+
};
|
|
3687
|
+
const onMouseEnter = event => {
|
|
3688
|
+
this.callTaskCallback('onMouseEnter', task, event);
|
|
3689
|
+
this.showTaskTooltip(task, event);
|
|
3690
|
+
};
|
|
3691
|
+
const onMouseMove = event => {
|
|
3692
|
+
this.positionTaskTooltip(event);
|
|
3693
|
+
};
|
|
3694
|
+
const onMouseLeave = event => {
|
|
3695
|
+
this.callTaskCallback('onMouseLeave', task, event);
|
|
3696
|
+
this.hideTaskTooltip();
|
|
3697
|
+
};
|
|
3698
|
+
const onPointerDown = event => {
|
|
3699
|
+
this.startTaskDrag(node, task, event);
|
|
3700
|
+
};
|
|
3701
|
+
node.addEventListener('click', onClick);
|
|
3702
|
+
node.addEventListener('contextmenu', onContextMenu);
|
|
3703
|
+
node.addEventListener('mouseenter', onMouseEnter);
|
|
3704
|
+
node.addEventListener('mousemove', onMouseMove);
|
|
3705
|
+
node.addEventListener('mouseleave', onMouseLeave);
|
|
3706
|
+
node.addEventListener('pointerdown', onPointerDown);
|
|
3707
|
+
this.disposers.push(() => {
|
|
3708
|
+
node.removeEventListener('click', onClick);
|
|
3709
|
+
node.removeEventListener('contextmenu', onContextMenu);
|
|
3710
|
+
node.removeEventListener('mouseenter', onMouseEnter);
|
|
3711
|
+
node.removeEventListener('mousemove', onMouseMove);
|
|
3712
|
+
node.removeEventListener('mouseleave', onMouseLeave);
|
|
3713
|
+
node.removeEventListener('pointerdown', onPointerDown);
|
|
3714
|
+
});
|
|
3715
|
+
}
|
|
3716
|
+
startTaskDrag(node, task, event) {
|
|
3717
|
+
if (!this.isTaskDraggable(task)) return;
|
|
3718
|
+
if (event.button !== undefined && event.button !== 0) return;
|
|
3719
|
+
if (event.target && event.target.closest && event.target.closest('[data-vg-no-drag]')) return;
|
|
3720
|
+
const sourceTask = this.findSourceTask(task);
|
|
3721
|
+
if (!sourceTask) return;
|
|
3722
|
+
const startTime = toTime(this.taskStart(sourceTask));
|
|
3723
|
+
const endTime = toTime(this.taskEnd(sourceTask));
|
|
3724
|
+
if (!Number.isFinite(startTime) || !Number.isFinite(endTime)) return;
|
|
3725
|
+
const startPayload = this.createTaskPayload(task, {
|
|
3726
|
+
event,
|
|
3727
|
+
sourceTask,
|
|
3728
|
+
startDate: new Date(startTime),
|
|
3729
|
+
endDate: new Date(endTime),
|
|
3730
|
+
originalStartDate: new Date(startTime),
|
|
3731
|
+
originalEndDate: new Date(endTime)
|
|
3732
|
+
});
|
|
3733
|
+
if (this.callTaskCallback('onDragStart', task, event, startPayload) === false) return;
|
|
3734
|
+
this.hideTaskTooltip();
|
|
3735
|
+
node.classList.add('vg-task-fo--dragging');
|
|
3736
|
+
if (node.setPointerCapture && event.pointerId !== undefined) {
|
|
3737
|
+
node.setPointerCapture(event.pointerId);
|
|
3738
|
+
}
|
|
3739
|
+
const drag = {
|
|
3740
|
+
node,
|
|
3741
|
+
task,
|
|
3742
|
+
sourceTask,
|
|
3743
|
+
pointerId: event.pointerId,
|
|
3744
|
+
startClientX: event.clientX,
|
|
3745
|
+
originalStartTime: startTime,
|
|
3746
|
+
originalEndTime: endTime,
|
|
3747
|
+
nextStartTime: startTime,
|
|
3748
|
+
nextEndTime: endTime,
|
|
3749
|
+
moved: false
|
|
3750
|
+
};
|
|
3751
|
+
this.activeDrag = drag;
|
|
3752
|
+
const onMove = moveEvent => this.moveTaskDrag(moveEvent);
|
|
3753
|
+
const onUp = upEvent => {
|
|
3754
|
+
document.removeEventListener('pointermove', onMove);
|
|
3755
|
+
document.removeEventListener('pointerup', onUp);
|
|
3756
|
+
document.removeEventListener('pointercancel', onUp);
|
|
3757
|
+
this.endTaskDrag(upEvent);
|
|
3758
|
+
};
|
|
3759
|
+
document.addEventListener('pointermove', onMove);
|
|
3760
|
+
document.addEventListener('pointerup', onUp);
|
|
3761
|
+
document.addEventListener('pointercancel', onUp);
|
|
3762
|
+
this.disposers.push(() => {
|
|
3763
|
+
document.removeEventListener('pointermove', onMove);
|
|
3764
|
+
document.removeEventListener('pointerup', onUp);
|
|
3765
|
+
document.removeEventListener('pointercancel', onUp);
|
|
3766
|
+
});
|
|
3767
|
+
event.preventDefault();
|
|
3768
|
+
event.stopPropagation();
|
|
3769
|
+
}
|
|
3770
|
+
moveTaskDrag(event) {
|
|
3771
|
+
const drag = this.activeDrag;
|
|
3772
|
+
if (!drag) return;
|
|
3773
|
+
if (drag.pointerId !== undefined && event.pointerId !== undefined && drag.pointerId !== event.pointerId) return;
|
|
3774
|
+
const deltaX = event.clientX - drag.startClientX;
|
|
3775
|
+
if (Math.abs(deltaX) < 2 && !drag.moved) return;
|
|
3776
|
+
const deltaMs = this.snapDragDelta(deltaX / this.pxPerMs);
|
|
3777
|
+
const nextRange = this.clampDragRange(drag.originalStartTime + deltaMs, drag.originalEndTime + deltaMs);
|
|
3778
|
+
drag.nextStartTime = nextRange.start;
|
|
3779
|
+
drag.nextEndTime = nextRange.end;
|
|
3780
|
+
drag.moved = true;
|
|
3781
|
+
drag.node.setAttribute('x', this.timeToX(nextRange.start));
|
|
3782
|
+
this.callTaskCallback('onDrag', drag.task, event, this.createTaskPayload(drag.task, {
|
|
3783
|
+
event,
|
|
3784
|
+
sourceTask: drag.sourceTask,
|
|
3785
|
+
startDate: new Date(nextRange.start),
|
|
3786
|
+
endDate: new Date(nextRange.end),
|
|
3787
|
+
originalStartDate: new Date(drag.originalStartTime),
|
|
3788
|
+
originalEndDate: new Date(drag.originalEndTime)
|
|
3789
|
+
}));
|
|
3790
|
+
event.preventDefault();
|
|
3791
|
+
}
|
|
3792
|
+
endTaskDrag(event) {
|
|
3793
|
+
const drag = this.activeDrag;
|
|
3794
|
+
if (!drag) return;
|
|
3795
|
+
this.activeDrag = null;
|
|
3796
|
+
drag.node.classList.remove('vg-task-fo--dragging');
|
|
3797
|
+
if (drag.node.releasePointerCapture && drag.pointerId !== undefined) {
|
|
3798
|
+
try {
|
|
3799
|
+
drag.node.releasePointerCapture(drag.pointerId);
|
|
3800
|
+
} catch (error) {}
|
|
3801
|
+
}
|
|
3802
|
+
if (drag.moved) {
|
|
3803
|
+
this.updateTaskTime(drag.sourceTask, drag.nextStartTime, drag.nextEndTime);
|
|
3804
|
+
this.suppressClickTaskKey = this.taskKey(drag.task);
|
|
3805
|
+
this.suppressClickUntil = Date.now() + 300;
|
|
3806
|
+
this.callTaskCallback('onDragEnd', drag.task, event, this.createTaskPayload(drag.task, {
|
|
3807
|
+
event,
|
|
3808
|
+
sourceTask: drag.sourceTask,
|
|
3809
|
+
startDate: new Date(drag.nextStartTime),
|
|
3810
|
+
endDate: new Date(drag.nextEndTime),
|
|
3811
|
+
originalStartDate: new Date(drag.originalStartTime),
|
|
3812
|
+
originalEndDate: new Date(drag.originalEndTime)
|
|
3813
|
+
}));
|
|
3814
|
+
this.render();
|
|
3815
|
+
}
|
|
3816
|
+
}
|
|
3817
|
+
showTaskTooltip(task, event) {
|
|
3818
|
+
const tooltip = this.taskTooltip;
|
|
3819
|
+
if (!tooltip || tooltip.visible === false) return;
|
|
3820
|
+
const payload = this.createTaskPayload(task, {
|
|
3821
|
+
event
|
|
3822
|
+
});
|
|
3823
|
+
const content = this.resolveContent(tooltip.customLayout, payload) || this.renderDefaultTaskTooltip(payload);
|
|
3824
|
+
if (!content) return;
|
|
3825
|
+
this.hideTaskTooltip();
|
|
3826
|
+
const node = el('div', `vg-tooltip${tooltip.className ? ` ${tooltip.className}` : ''}`);
|
|
3827
|
+
node.append(content);
|
|
3828
|
+
document.body.append(node);
|
|
3829
|
+
this.tooltipEl = node;
|
|
3830
|
+
this.positionTaskTooltip(event);
|
|
3831
|
+
}
|
|
3832
|
+
positionTaskTooltip(event) {
|
|
3833
|
+
if (!this.tooltipEl || !event) return;
|
|
3834
|
+
const tooltip = this.taskTooltip || {};
|
|
3835
|
+
const offsetX = tooltip.offsetX === undefined ? 12 : Number(tooltip.offsetX);
|
|
3836
|
+
const offsetY = tooltip.offsetY === undefined ? 12 : Number(tooltip.offsetY);
|
|
3837
|
+
const rect = this.tooltipEl.getBoundingClientRect();
|
|
3838
|
+
const maxLeft = window.innerWidth - rect.width - 8;
|
|
3839
|
+
const maxTop = window.innerHeight - rect.height - 8;
|
|
3840
|
+
const left = Math.max(8, Math.min(maxLeft, event.clientX + offsetX));
|
|
3841
|
+
const top = Math.max(8, Math.min(maxTop, event.clientY + offsetY));
|
|
3842
|
+
this.tooltipEl.style.left = `${left}px`;
|
|
3843
|
+
this.tooltipEl.style.top = `${top}px`;
|
|
3844
|
+
}
|
|
3845
|
+
hideTaskTooltip() {
|
|
3846
|
+
if (!this.tooltipEl) return;
|
|
3847
|
+
this.tooltipEl.remove();
|
|
3848
|
+
this.tooltipEl = null;
|
|
3849
|
+
}
|
|
3850
|
+
renderDefaultTaskTooltip(payload) {
|
|
3851
|
+
const root = el('div', 'vg-tooltip-default');
|
|
3852
|
+
const title = el('div', 'vg-tooltip-title');
|
|
3853
|
+
title.textContent = this.taskLabel(payload.task, this.taskBar.labelText);
|
|
3854
|
+
const time = el('div', 'vg-tooltip-time');
|
|
3855
|
+
time.textContent = `${formatDateTime(payload.startDate)} - ${formatDateTime(payload.endDate)}`;
|
|
3856
|
+
root.append(title, time);
|
|
3857
|
+
const subtitle = this.taskLabel(payload.task, this.taskBar.subLabelText);
|
|
3858
|
+
if (subtitle) {
|
|
3859
|
+
const meta = el('div', 'vg-tooltip-meta');
|
|
3860
|
+
meta.textContent = subtitle;
|
|
3861
|
+
root.append(meta);
|
|
3862
|
+
}
|
|
3863
|
+
return root;
|
|
3864
|
+
}
|
|
3865
|
+
createTaskPayload(task, extra = {}) {
|
|
3866
|
+
const row = extra.row || this.rowById[task.__rowId];
|
|
3867
|
+
const sourceTask = extra.sourceTask || this.findSourceTask(task) || task;
|
|
3868
|
+
const startTime = extra.startDate ? extra.startDate.getTime() : toTime(this.taskStart(sourceTask));
|
|
3869
|
+
const endTime = extra.endDate ? extra.endDate.getTime() : toTime(this.taskEnd(sourceTask));
|
|
3870
|
+
const width = extra.width === undefined ? this.durationWidth(this.taskStart(task), this.taskEnd(task)) : extra.width;
|
|
3871
|
+
const height = extra.height === undefined ? this.taskRenderHeight(task) : extra.height;
|
|
3872
|
+
return {
|
|
3873
|
+
taskRecord: sourceTask,
|
|
3874
|
+
task,
|
|
3875
|
+
sourceTask,
|
|
3876
|
+
rowRecord: row,
|
|
3877
|
+
row,
|
|
3878
|
+
taskKey: this.taskKey(task),
|
|
3879
|
+
rowKey: task.__rowId,
|
|
3880
|
+
x: extra.x === undefined ? this.timeToX(this.taskStart(task)) : extra.x,
|
|
3881
|
+
y: extra.y === undefined ? this.taskY(task) : extra.y,
|
|
3882
|
+
width,
|
|
3883
|
+
height,
|
|
3884
|
+
startDate: new Date(startTime),
|
|
3885
|
+
endDate: new Date(endTime),
|
|
3886
|
+
originalStartDate: extra.originalStartDate,
|
|
3887
|
+
originalEndDate: extra.originalEndDate,
|
|
3888
|
+
progress: this.taskProgress(task),
|
|
3889
|
+
event: extra.event,
|
|
3890
|
+
ganttInstance: this,
|
|
3891
|
+
gantt: this
|
|
3892
|
+
};
|
|
3893
|
+
}
|
|
3894
|
+
callTaskCallback(name, task, event, payload) {
|
|
3895
|
+
const callback = this.taskBar[name];
|
|
3896
|
+
if (typeof callback !== 'function') return undefined;
|
|
3897
|
+
return callback(payload || this.createTaskPayload(task, {
|
|
3898
|
+
event
|
|
3899
|
+
}));
|
|
3900
|
+
}
|
|
3901
|
+
isTaskDraggable(task) {
|
|
3902
|
+
if (task.draggable !== undefined) return task.draggable !== false;
|
|
3903
|
+
if (task.parentAggregate) return false;
|
|
3904
|
+
const draggable = this.taskBar.draggable;
|
|
3905
|
+
if (typeof draggable === 'function') {
|
|
3906
|
+
return draggable(this.createTaskPayload(task)) !== false;
|
|
3907
|
+
}
|
|
3908
|
+
return draggable !== false;
|
|
3909
|
+
}
|
|
3910
|
+
findSourceTask(task) {
|
|
3911
|
+
const rowKey = task.__rowId;
|
|
3912
|
+
const taskKey = this.taskKey(task);
|
|
3913
|
+
if (!rowKey || !taskKey) return null;
|
|
3914
|
+
const record = this.findRecordByKey(rowKey);
|
|
3915
|
+
const tasks = record && Array.isArray(record[this.taskBar.tasksField]) ? record[this.taskBar.tasksField] : [];
|
|
3916
|
+
return tasks.find(item => this.taskKey(item) === taskKey) || null;
|
|
3917
|
+
}
|
|
3918
|
+
findRecordByKey(recordKey, records = this.options.records) {
|
|
3919
|
+
for (const record of records || []) {
|
|
3920
|
+
if (this.recordKey(record) === recordKey) return record;
|
|
3921
|
+
if (record.children) {
|
|
3922
|
+
const found = this.findRecordByKey(recordKey, record.children);
|
|
3923
|
+
if (found) return found;
|
|
3924
|
+
}
|
|
3925
|
+
}
|
|
3926
|
+
return null;
|
|
3927
|
+
}
|
|
3928
|
+
snapDragDelta(deltaMs) {
|
|
3929
|
+
const step = Number(this.taskBar.dragStep || 0);
|
|
3930
|
+
if (!step) return deltaMs;
|
|
3931
|
+
return Math.round(deltaMs / step) * step;
|
|
3932
|
+
}
|
|
3933
|
+
clampDragRange(startTime, endTime) {
|
|
3934
|
+
const duration = endTime - startTime;
|
|
3935
|
+
if (duration >= this.rangeMs) {
|
|
3936
|
+
return {
|
|
3937
|
+
start: this.startTime,
|
|
3938
|
+
end: this.endTime
|
|
3939
|
+
};
|
|
3940
|
+
}
|
|
3941
|
+
let start = startTime;
|
|
3942
|
+
let end = endTime;
|
|
3943
|
+
if (start < this.startTime) {
|
|
3944
|
+
start = this.startTime;
|
|
3945
|
+
end = start + duration;
|
|
3946
|
+
}
|
|
3947
|
+
if (end > this.endTime) {
|
|
3948
|
+
end = this.endTime;
|
|
3949
|
+
start = end - duration;
|
|
3950
|
+
}
|
|
3951
|
+
return {
|
|
3952
|
+
start,
|
|
3953
|
+
end
|
|
3954
|
+
};
|
|
3955
|
+
}
|
|
3956
|
+
updateTaskTime(task, startTime, endTime) {
|
|
3957
|
+
const startField = this.taskBar.startDateField;
|
|
3958
|
+
const endField = this.taskBar.endDateField;
|
|
3959
|
+
task[startField] = this.createTimeValueLike(task[startField], startTime);
|
|
3960
|
+
task[endField] = this.createTimeValueLike(task[endField], endTime);
|
|
3961
|
+
}
|
|
3962
|
+
createTimeValueLike(source, time) {
|
|
3963
|
+
if (source instanceof Date) return new Date(time);
|
|
3964
|
+
if (typeof source === 'number') return time;
|
|
3965
|
+
return formatLocalDateTime(new Date(time));
|
|
3966
|
+
}
|
|
3967
|
+
renderDefaultTask(task) {
|
|
3968
|
+
const status = this.taskStatus(task);
|
|
3969
|
+
const root = el('div', `vg-task vg-task--${status || 'normal'}`);
|
|
3970
|
+
const style = this.taskStyle(task);
|
|
3971
|
+
this.applyTaskStyle(root, style, task);
|
|
3972
|
+
const title = el('div', 'vg-task-title');
|
|
3973
|
+
title.textContent = this.taskLabel(task, this.taskBar.labelText);
|
|
3974
|
+
const meta = el('div', 'vg-task-meta');
|
|
3975
|
+
meta.textContent = this.taskLabel(task, this.taskBar.subLabelText);
|
|
3976
|
+
root.append(title, meta);
|
|
3977
|
+
const progressValue = this.taskProgress(task);
|
|
3978
|
+
if (progressValue !== undefined) {
|
|
3979
|
+
const progress = el('div', 'vg-task-progress');
|
|
3980
|
+
const bar = el('i');
|
|
3981
|
+
bar.style.width = `${progressValue}%`;
|
|
3982
|
+
if (style.completedBarColor) bar.style.background = style.completedBarColor;
|
|
3983
|
+
progress.append(bar);
|
|
3984
|
+
root.append(progress);
|
|
3985
|
+
}
|
|
3986
|
+
if (task.locked) {
|
|
3987
|
+
const lock = el('span', 'vg-task-lock');
|
|
3988
|
+
lock.textContent = '▣';
|
|
3989
|
+
root.append(lock);
|
|
3990
|
+
}
|
|
3991
|
+
return root;
|
|
3992
|
+
}
|
|
3993
|
+
applyTaskStyle(node, style, task) {
|
|
3994
|
+
if (!style) return;
|
|
3995
|
+
const progressValue = this.taskProgress(task);
|
|
3996
|
+
const background = progressValue >= 100 && style.completedBarColor ? style.completedBarColor : style.barColor;
|
|
3997
|
+
if (background) node.style.background = background;
|
|
3998
|
+
if (style.borderColor) node.style.borderColor = style.borderColor;
|
|
3999
|
+
if (style.borderLineWidth !== undefined) node.style.borderWidth = `${style.borderLineWidth}px`;
|
|
4000
|
+
if (style.borderWidth !== undefined) node.style.borderWidth = `${style.borderWidth}px`;
|
|
4001
|
+
if (style.cornerRadius !== undefined) node.style.borderRadius = `${style.cornerRadius}px`;
|
|
4002
|
+
}
|
|
4003
|
+
rect(x, y, width, height, fill) {
|
|
4004
|
+
const rect = svgEl('rect');
|
|
4005
|
+
attrs(rect, {
|
|
4006
|
+
x,
|
|
4007
|
+
y,
|
|
4008
|
+
width,
|
|
4009
|
+
height,
|
|
4010
|
+
fill
|
|
4011
|
+
});
|
|
4012
|
+
return rect;
|
|
4013
|
+
}
|
|
4014
|
+
line(x1, y1, x2, y2, stroke) {
|
|
4015
|
+
const line = svgEl('line');
|
|
4016
|
+
attrs(line, {
|
|
4017
|
+
x1,
|
|
4018
|
+
y1,
|
|
4019
|
+
x2,
|
|
4020
|
+
y2,
|
|
4021
|
+
stroke
|
|
4022
|
+
});
|
|
4023
|
+
return line;
|
|
4024
|
+
}
|
|
4025
|
+
circle(cx, cy, r, fill) {
|
|
4026
|
+
const circle = svgEl('circle');
|
|
4027
|
+
attrs(circle, {
|
|
4028
|
+
cx,
|
|
4029
|
+
cy,
|
|
4030
|
+
r,
|
|
4031
|
+
fill
|
|
4032
|
+
});
|
|
4033
|
+
return circle;
|
|
4034
|
+
}
|
|
4035
|
+
path(d, stroke) {
|
|
4036
|
+
const path = svgEl('path', 'vg-link-path');
|
|
4037
|
+
attrs(path, {
|
|
4038
|
+
d,
|
|
4039
|
+
stroke
|
|
4040
|
+
});
|
|
4041
|
+
return path;
|
|
4042
|
+
}
|
|
4043
|
+
arrow(x, y, direction, fill) {
|
|
4044
|
+
const arrow = svgEl('path', 'vg-link-arrow');
|
|
4045
|
+
const d = direction >= 0 ? `M ${x} ${y} l -8 -4 v 8 Z` : `M ${x} ${y} l 8 -4 v 8 Z`;
|
|
4046
|
+
attrs(arrow, {
|
|
4047
|
+
d,
|
|
4048
|
+
fill
|
|
4049
|
+
});
|
|
4050
|
+
return arrow;
|
|
4051
|
+
}
|
|
4052
|
+
applyLineStyle(line, style = {}) {
|
|
4053
|
+
if (style.lineWidth !== undefined) line.setAttribute('stroke-width', style.lineWidth);
|
|
4054
|
+
if (style.lineDash) line.setAttribute('stroke-dasharray', style.lineDash.join(' '));
|
|
4055
|
+
}
|
|
4056
|
+
resolveStyle(style, payload) {
|
|
4057
|
+
if (typeof style === 'function') return style(payload) || {};
|
|
4058
|
+
return style || {};
|
|
4059
|
+
}
|
|
4060
|
+
resolveContent(renderer, payload) {
|
|
4061
|
+
if (typeof renderer !== 'function') return null;
|
|
4062
|
+
const result = renderer(payload);
|
|
4063
|
+
if (result === undefined || result === null) return null;
|
|
4064
|
+
if (result instanceof Node) return result;
|
|
4065
|
+
if (result.rootContainer instanceof Node) return result.rootContainer;
|
|
4066
|
+
const template = document.createElement('template');
|
|
4067
|
+
template.innerHTML = String(result).trim();
|
|
4068
|
+
return template.content;
|
|
4069
|
+
}
|
|
4070
|
+
seedExpandedRows(records, applyExplicit = false) {
|
|
4071
|
+
records.forEach(record => {
|
|
4072
|
+
if (record.children) {
|
|
4073
|
+
const key = this.recordKey(record);
|
|
4074
|
+
if (applyExplicit && record.expanded !== undefined) {
|
|
4075
|
+
this.expandedRows[key] = record.expanded !== false;
|
|
4076
|
+
} else if (this.expandedRows[key] === undefined) {
|
|
4077
|
+
this.expandedRows[key] = record.expanded !== false;
|
|
4078
|
+
}
|
|
4079
|
+
this.seedExpandedRows(record.children, applyExplicit);
|
|
4080
|
+
}
|
|
4081
|
+
});
|
|
4082
|
+
}
|
|
4083
|
+
isExpanded(row) {
|
|
4084
|
+
return row.children ? this.expandedRows[this.recordKey(row)] !== false : false;
|
|
4085
|
+
}
|
|
4086
|
+
toggleRow(row) {
|
|
4087
|
+
if (!row.children) return;
|
|
4088
|
+
const key = this.recordKey(row);
|
|
4089
|
+
this.expandedRows[key] = !this.isExpanded(row);
|
|
4090
|
+
this.render();
|
|
4091
|
+
}
|
|
4092
|
+
recordKey(record) {
|
|
4093
|
+
return record.__recordKey || record[this.options.recordKeyField];
|
|
4094
|
+
}
|
|
4095
|
+
taskKey(task) {
|
|
4096
|
+
return task[this.options.taskKeyField];
|
|
4097
|
+
}
|
|
4098
|
+
taskStart(task) {
|
|
4099
|
+
return task[this.taskBar.startDateField];
|
|
4100
|
+
}
|
|
4101
|
+
taskEnd(task) {
|
|
4102
|
+
return task[this.taskBar.endDateField];
|
|
4103
|
+
}
|
|
4104
|
+
taskProgress(task) {
|
|
4105
|
+
return task[this.taskBar.progressField];
|
|
4106
|
+
}
|
|
4107
|
+
taskLane(task) {
|
|
4108
|
+
return task[this.taskBar.laneField];
|
|
4109
|
+
}
|
|
4110
|
+
taskStatus(task) {
|
|
4111
|
+
return task[this.taskBar.statusField];
|
|
4112
|
+
}
|
|
4113
|
+
taskLabel(task, label) {
|
|
4114
|
+
if (!label) return '';
|
|
4115
|
+
if (typeof label === 'function') return label(task);
|
|
4116
|
+
return task[label] === undefined ? String(label) : String(task[label]);
|
|
4117
|
+
}
|
|
4118
|
+
taskStyle(task) {
|
|
4119
|
+
const style = task.parentAggregate ? this.taskBar.projectStyle : this.taskBar.barStyle;
|
|
4120
|
+
return this.resolveStyle(style, {
|
|
4121
|
+
taskRecord: task,
|
|
4122
|
+
index: this.renderTasks.findIndex(item => this.taskKey(item) === this.taskKey(task)),
|
|
4123
|
+
startDate: new Date(toTime(this.taskStart(task))),
|
|
4124
|
+
endDate: new Date(toTime(this.taskEnd(task))),
|
|
4125
|
+
ganttInstance: this
|
|
4126
|
+
});
|
|
4127
|
+
}
|
|
4128
|
+
isTaskDimmed(task) {
|
|
4129
|
+
if (!this.dependency.highlightConnected) return false;
|
|
4130
|
+
const key = this.taskKey(task);
|
|
4131
|
+
if (!key) return false;
|
|
4132
|
+
if (!this.visibleLinks.length) return false;
|
|
4133
|
+
return !this.connectedTaskKeys[key];
|
|
4134
|
+
}
|
|
4135
|
+
activateTaskLinkGroup(task) {
|
|
4136
|
+
const taskKey = this.taskKey(task);
|
|
4137
|
+
const groupKey = this.firstLinkGroupKeyByTask(taskKey);
|
|
4138
|
+
const nextTaskKey = groupKey ? taskKey : null;
|
|
4139
|
+
const changed = this.activeLinkTaskKey !== nextTaskKey || this.activeLinkGroupKey !== groupKey;
|
|
4140
|
+
this.activeLinkTaskKey = nextTaskKey;
|
|
4141
|
+
this.activeLinkGroupKey = groupKey;
|
|
4142
|
+
return changed;
|
|
4143
|
+
}
|
|
4144
|
+
clearActiveLinkGroup() {
|
|
4145
|
+
if (!this.activeLinkTaskKey && !this.activeLinkGroupKey) return false;
|
|
4146
|
+
this.activeLinkTaskKey = null;
|
|
4147
|
+
this.activeLinkGroupKey = null;
|
|
4148
|
+
return true;
|
|
4149
|
+
}
|
|
4150
|
+
timeToX(value) {
|
|
4151
|
+
return (toTime(value) - this.startTime) * this.pxPerMs;
|
|
4152
|
+
}
|
|
4153
|
+
durationWidth(start, end) {
|
|
4154
|
+
return Math.max(this.taskMinWidth, this.timeToX(end) - this.timeToX(start));
|
|
4155
|
+
}
|
|
4156
|
+
rowTop(recordKey) {
|
|
4157
|
+
let top = 0;
|
|
4158
|
+
for (const row of this.visibleRows) {
|
|
4159
|
+
if (this.recordKey(row) === recordKey) return top;
|
|
4160
|
+
top += row.height || this.options.rowHeight;
|
|
4161
|
+
}
|
|
4162
|
+
return 0;
|
|
4163
|
+
}
|
|
4164
|
+
taskY(task) {
|
|
4165
|
+
return this.rowTop(task.__rowId) + this.taskOffsetY(task);
|
|
4166
|
+
}
|
|
4167
|
+
taskOffsetY(task) {
|
|
4168
|
+
if (task.parentAggregate && task.offsetY !== undefined) return task.offsetY;
|
|
4169
|
+
const lane = this.taskLane(task);
|
|
4170
|
+
if (lane && this.laneByKey[lane]) return this.laneByKey[lane].offset;
|
|
4171
|
+
return task.offsetY === undefined ? 10 : task.offsetY;
|
|
4172
|
+
}
|
|
4173
|
+
taskRenderHeight(task) {
|
|
4174
|
+
if (task.parentAggregate && task.height !== undefined) return task.height;
|
|
4175
|
+
const lane = this.taskLane(task);
|
|
4176
|
+
if (lane && this.laneByKey[lane]) return this.laneByKey[lane].height;
|
|
4177
|
+
if (task.height) return task.height;
|
|
4178
|
+
const style = this.taskStyle(task);
|
|
4179
|
+
return style.width || this.options.taskHeight;
|
|
4180
|
+
}
|
|
4181
|
+
createUnits(scale, scaleIndex) {
|
|
4182
|
+
const units = [];
|
|
4183
|
+
const unit = scale.unit || 'hour';
|
|
4184
|
+
const step = scale.step || 1;
|
|
4185
|
+
let cursor = this.floorDate(new Date(this.startTime), unit, scale.startOfWeek);
|
|
4186
|
+
let dateIndex = 0;
|
|
4187
|
+
while (cursor.getTime() < this.endTime) {
|
|
4188
|
+
const unitStart = Math.max(cursor.getTime(), this.startTime);
|
|
4189
|
+
const next = this.addUnit(cursor, unit, step);
|
|
4190
|
+
const unitEnd = Math.min(next.getTime(), this.endTime);
|
|
4191
|
+
if (unitEnd > unitStart) {
|
|
4192
|
+
const info = {
|
|
4193
|
+
type: unit,
|
|
4194
|
+
unit,
|
|
4195
|
+
step,
|
|
4196
|
+
scaleIndex,
|
|
4197
|
+
dateIndex,
|
|
4198
|
+
key: `${unit}-${cursor.toISOString()}`,
|
|
4199
|
+
title: this.formatUnitLabel(cursor, unit),
|
|
4200
|
+
startDate: new Date(unitStart),
|
|
4201
|
+
endDate: new Date(unitEnd),
|
|
4202
|
+
days: Math.max(1, Math.ceil((unitEnd - unitStart) / (24 * HOUR))),
|
|
4203
|
+
x: this.timeToX(unitStart),
|
|
4204
|
+
width: Math.max(1, this.timeToX(unitEnd) - this.timeToX(unitStart))
|
|
4205
|
+
};
|
|
4206
|
+
info.label = this.formatTimelineLabel(scale, info);
|
|
4207
|
+
units.push(info);
|
|
4208
|
+
dateIndex += 1;
|
|
4209
|
+
}
|
|
4210
|
+
cursor = next;
|
|
4211
|
+
}
|
|
4212
|
+
return units;
|
|
4213
|
+
}
|
|
4214
|
+
formatTimelineLabel(scale, dateInfo) {
|
|
4215
|
+
if (typeof scale.format === 'function') {
|
|
4216
|
+
return scale.format(dateInfo);
|
|
4217
|
+
}
|
|
4218
|
+
return this.formatUnitLabel(dateInfo.startDate, scale.unit);
|
|
4219
|
+
}
|
|
4220
|
+
floorDate(date, unit, startOfWeek = 'monday') {
|
|
4221
|
+
const next = new Date(date);
|
|
4222
|
+
next.setSeconds(0, 0);
|
|
4223
|
+
if (unit !== 'minute') next.setMinutes(0);
|
|
4224
|
+
if (!['minute', 'hour'].includes(unit)) next.setHours(0);
|
|
4225
|
+
if (unit === 'week') {
|
|
4226
|
+
const day = next.getDay() || 7;
|
|
4227
|
+
const offset = startOfWeek === 'sunday' ? next.getDay() : day - 1;
|
|
4228
|
+
next.setDate(next.getDate() - offset);
|
|
4229
|
+
}
|
|
4230
|
+
if (unit === 'month') next.setDate(1);
|
|
4231
|
+
if (unit === 'year') {
|
|
4232
|
+
next.setMonth(0);
|
|
4233
|
+
next.setDate(1);
|
|
4234
|
+
}
|
|
4235
|
+
return next;
|
|
4236
|
+
}
|
|
4237
|
+
addUnit(date, unit, step = 1) {
|
|
4238
|
+
const next = new Date(date);
|
|
4239
|
+
if (unit === 'minute') next.setMinutes(next.getMinutes() + step);else if (unit === 'hour') next.setHours(next.getHours() + step);else if (unit === 'day') next.setDate(next.getDate() + step);else if (unit === 'week') next.setDate(next.getDate() + 7 * step);else if (unit === 'month') next.setMonth(next.getMonth() + step);else if (unit === 'year') next.setFullYear(next.getFullYear() + step);
|
|
4240
|
+
return next;
|
|
4241
|
+
}
|
|
4242
|
+
unitToMs(unit) {
|
|
4243
|
+
if (unit === 'year') return 365 * 24 * HOUR;
|
|
4244
|
+
if (unit === 'month') return 30 * 24 * HOUR;
|
|
4245
|
+
if (unit === 'week') return 7 * 24 * HOUR;
|
|
4246
|
+
if (unit === 'day') return 24 * HOUR;
|
|
4247
|
+
if (unit === 'minute') return 60 * 1000;
|
|
4248
|
+
return HOUR;
|
|
4249
|
+
}
|
|
4250
|
+
formatUnitLabel(date, unit) {
|
|
4251
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
4252
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
4253
|
+
if (unit === 'year') return `${date.getFullYear()}`;
|
|
4254
|
+
if (unit === 'month') return `${date.getFullYear()}-${month}`;
|
|
4255
|
+
if (unit === 'week') return `${month}-${day}周`;
|
|
4256
|
+
if (unit === 'day') return `${month}-${day}`;
|
|
4257
|
+
if (unit === 'minute') return `${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`;
|
|
4258
|
+
return String(date.getHours()).padStart(2, '0');
|
|
4259
|
+
}
|
|
4260
|
+
scaleRowHeight(scale) {
|
|
4261
|
+
return scale.rowHeight || this.options.headerRowHeight;
|
|
4262
|
+
}
|
|
4263
|
+
timelineCellStyle(scale) {
|
|
4264
|
+
const style = {
|
|
4265
|
+
...(this.timelineHeader.style || {}),
|
|
4266
|
+
...(scale.style || {})
|
|
4267
|
+
};
|
|
4268
|
+
if (!style.backgroundColor && this.timelineHeader.backgroundColor) {
|
|
4269
|
+
style.backgroundColor = this.timelineHeader.backgroundColor;
|
|
4270
|
+
}
|
|
4271
|
+
return style;
|
|
4272
|
+
}
|
|
4273
|
+
timelineCustomCellStyle(scale) {
|
|
4274
|
+
return {
|
|
4275
|
+
...(this.timelineHeader.style || {}),
|
|
4276
|
+
...(scale.style || {})
|
|
4277
|
+
};
|
|
4278
|
+
}
|
|
4279
|
+
getDescendantRecordKeys(row) {
|
|
4280
|
+
const ids = [];
|
|
4281
|
+
const walk = children => {
|
|
4282
|
+
children.forEach(child => {
|
|
4283
|
+
ids.push(this.recordKey(child));
|
|
4284
|
+
if (child.children) walk(child.children);
|
|
4285
|
+
});
|
|
4286
|
+
};
|
|
4287
|
+
walk(row.children || []);
|
|
4288
|
+
return ids;
|
|
4289
|
+
}
|
|
4290
|
+
overlapsRange(start, end) {
|
|
4291
|
+
return toTime(end) > this.startTime && toTime(start) < this.endTime;
|
|
4292
|
+
}
|
|
4293
|
+
isPrimaryTask(task) {
|
|
4294
|
+
if (task.logistics) return false;
|
|
4295
|
+
const lane = this.taskLane(task);
|
|
4296
|
+
if (!lane) return true;
|
|
4297
|
+
return lane === 'plan' || String(lane).startsWith('plan-');
|
|
4298
|
+
}
|
|
4299
|
+
isExpandedParentRow(recordKey) {
|
|
4300
|
+
const row = this.rowById[recordKey];
|
|
4301
|
+
return row && row.children && this.isExpanded(row);
|
|
4302
|
+
}
|
|
4303
|
+
aggregateWorkStatus(tasks) {
|
|
4304
|
+
if (tasks.some(task => task.workStatus === 'severe-delay')) return 'severe-delay';
|
|
4305
|
+
if (tasks.some(task => task.workStatus === 'slight-delay')) return 'slight-delay';
|
|
4306
|
+
if (tasks.every(task => task.workStatus === 'not-started')) return 'not-started';
|
|
4307
|
+
return 'progress-normal';
|
|
4308
|
+
}
|
|
4309
|
+
loadColor(load) {
|
|
4310
|
+
if (load >= 90) return '#ff4d5a';
|
|
4311
|
+
if (load >= 70) return '#f7a600';
|
|
4312
|
+
return '#43c51a';
|
|
4313
|
+
}
|
|
4314
|
+
get taskListTable() {
|
|
4315
|
+
return this.options.taskListTable || {};
|
|
4316
|
+
}
|
|
4317
|
+
get timelineHeader() {
|
|
4318
|
+
return this.options.timelineHeader || {};
|
|
4319
|
+
}
|
|
4320
|
+
get taskBar() {
|
|
4321
|
+
return this.options.taskBar || {};
|
|
4322
|
+
}
|
|
4323
|
+
get taskTooltip() {
|
|
4324
|
+
const tooltip = this.taskBar.tooltip;
|
|
4325
|
+
if (tooltip === false || tooltip === undefined || tooltip === null) return null;
|
|
4326
|
+
if (tooltip === true) return DEFAULT_TASK_TOOLTIP;
|
|
4327
|
+
return {
|
|
4328
|
+
...DEFAULT_TASK_TOOLTIP,
|
|
4329
|
+
...tooltip
|
|
4330
|
+
};
|
|
4331
|
+
}
|
|
4332
|
+
get dependency() {
|
|
4333
|
+
return this.options.dependency || {};
|
|
4334
|
+
}
|
|
4335
|
+
get grid() {
|
|
4336
|
+
return this.options.grid || {};
|
|
4337
|
+
}
|
|
4338
|
+
get tableWidth() {
|
|
4339
|
+
if (typeof this.taskListTable.tableWidth === 'number') return this.taskListTable.tableWidth;
|
|
4340
|
+
return this.tableColumns.reduce((total, column) => total + this.columnWidth(column), 0);
|
|
4341
|
+
}
|
|
4342
|
+
get tableColumns() {
|
|
4343
|
+
return this.sourceTableColumns.map(column => ({
|
|
4344
|
+
width: 120,
|
|
4345
|
+
...column
|
|
4346
|
+
}));
|
|
4347
|
+
}
|
|
4348
|
+
get sourceTableColumns() {
|
|
4349
|
+
return this.taskListTable.columns && this.taskListTable.columns.length ? this.taskListTable.columns : DEFAULT_OPTIONS.taskListTable.columns;
|
|
4350
|
+
}
|
|
4351
|
+
get tableGridTemplateColumns() {
|
|
4352
|
+
return this.tableColumns.map((column, index) => {
|
|
4353
|
+
const width = this.columnWidth(column);
|
|
4354
|
+
if (index === this.tableColumns.length - 1) return `minmax(${width}px, 1fr)`;
|
|
4355
|
+
return `${width}px`;
|
|
4356
|
+
}).join(' ');
|
|
4357
|
+
}
|
|
4358
|
+
columnWidth(column) {
|
|
4359
|
+
return Number(column.width || column.minWidth || 120);
|
|
4360
|
+
}
|
|
4361
|
+
get startTime() {
|
|
4362
|
+
const value = this.options.minDate || this.derivedStartTime;
|
|
4363
|
+
return toTime(value);
|
|
4364
|
+
}
|
|
4365
|
+
get endTime() {
|
|
4366
|
+
const value = this.options.maxDate || this.derivedEndTime;
|
|
4367
|
+
return toTime(value);
|
|
4368
|
+
}
|
|
4369
|
+
get derivedStartTime() {
|
|
4370
|
+
const values = this.allTasks.map(task => toTime(this.taskStart(task))).filter(Number.isFinite);
|
|
4371
|
+
return values.length ? Math.min(...values) : Date.now();
|
|
4372
|
+
}
|
|
4373
|
+
get derivedEndTime() {
|
|
4374
|
+
const values = this.allTasks.map(task => toTime(this.taskEnd(task))).filter(Number.isFinite);
|
|
4375
|
+
return values.length ? Math.max(...values) : this.derivedStartTime + 24 * HOUR;
|
|
4376
|
+
}
|
|
4377
|
+
get headerHeight() {
|
|
4378
|
+
return this.timelineScales.reduce((total, scale) => total + this.scaleRowHeight(scale), 0);
|
|
4379
|
+
}
|
|
4380
|
+
get bodyHeight() {
|
|
4381
|
+
return this.visibleRows.reduce((height, row) => height + (row.height || this.options.rowHeight), 0);
|
|
4382
|
+
}
|
|
4383
|
+
get rangeMs() {
|
|
4384
|
+
return Math.max(1, this.endTime - this.startTime);
|
|
4385
|
+
}
|
|
4386
|
+
get baseTimelineScale() {
|
|
4387
|
+
const scales = this.timelineScales;
|
|
4388
|
+
return scales[scales.length - 1] || DEFAULT_OPTIONS.timelineHeader.scales[1];
|
|
4389
|
+
}
|
|
4390
|
+
get scaleMs() {
|
|
4391
|
+
return this.unitToMs(this.baseTimelineScale.unit) * (this.baseTimelineScale.step || 1);
|
|
4392
|
+
}
|
|
4393
|
+
get scalePx() {
|
|
4394
|
+
return this.baseTimelineScale.colWidth || this.timelineHeader.colWidth || DEFAULT_OPTIONS.timelineHeader.colWidth;
|
|
4395
|
+
}
|
|
4396
|
+
get pxPerMs() {
|
|
4397
|
+
return this.scalePx / this.scaleMs;
|
|
4398
|
+
}
|
|
4399
|
+
get chartWidth() {
|
|
4400
|
+
return Math.max(1, Math.ceil(this.rangeMs / this.scaleMs * this.scalePx));
|
|
4401
|
+
}
|
|
4402
|
+
get timelineScales() {
|
|
4403
|
+
return (this.timelineHeader.scales || []).filter(scale => scale.visible !== false);
|
|
4404
|
+
}
|
|
4405
|
+
get timelineUnitsByScale() {
|
|
4406
|
+
return this.timelineScales.map((scale, index) => this.createUnits(scale, index));
|
|
4407
|
+
}
|
|
4408
|
+
get majorUnits() {
|
|
4409
|
+
return this.timelineUnitsByScale[0] || [];
|
|
4410
|
+
}
|
|
4411
|
+
get baseUnits() {
|
|
4412
|
+
const units = this.timelineUnitsByScale;
|
|
4413
|
+
return units[units.length - 1] || [];
|
|
4414
|
+
}
|
|
4415
|
+
get verticalLines() {
|
|
4416
|
+
return this.baseUnits.map(unit => ({
|
|
4417
|
+
key: `line-${unit.key}`,
|
|
4418
|
+
x: unit.x,
|
|
4419
|
+
startDate: unit.startDate
|
|
4420
|
+
}));
|
|
4421
|
+
}
|
|
4422
|
+
get rowLines() {
|
|
4423
|
+
let top = 0;
|
|
4424
|
+
return this.visibleRows.map(row => {
|
|
4425
|
+
top += row.height || this.options.rowHeight;
|
|
4426
|
+
return {
|
|
4427
|
+
key: this.recordKey(row),
|
|
4428
|
+
y: top
|
|
4429
|
+
};
|
|
4430
|
+
});
|
|
4431
|
+
}
|
|
4432
|
+
get backgroundShades() {
|
|
4433
|
+
const fill = this.grid.alternatingBackgroundColor;
|
|
4434
|
+
if (!fill) return [];
|
|
4435
|
+
return this.majorUnits.filter((unit, index) => index % 2 === 0).map(unit => ({
|
|
4436
|
+
key: `shade-${unit.key}`,
|
|
4437
|
+
x: unit.x,
|
|
4438
|
+
width: unit.width,
|
|
4439
|
+
fill
|
|
4440
|
+
}));
|
|
4441
|
+
}
|
|
4442
|
+
get flatRows() {
|
|
4443
|
+
const rows = [];
|
|
4444
|
+
const walk = (items, level = 0) => {
|
|
4445
|
+
items.forEach(record => {
|
|
4446
|
+
rows.push({
|
|
4447
|
+
...record,
|
|
4448
|
+
__recordKey: this.recordKey(record),
|
|
4449
|
+
level
|
|
4450
|
+
});
|
|
4451
|
+
if (record.children) walk(record.children, level + 1);
|
|
4452
|
+
});
|
|
4453
|
+
};
|
|
4454
|
+
walk(this.options.records);
|
|
4455
|
+
return rows;
|
|
4456
|
+
}
|
|
4457
|
+
get visibleRows() {
|
|
4458
|
+
const rows = [];
|
|
4459
|
+
const walk = (items, level = 0) => {
|
|
4460
|
+
items.forEach(record => {
|
|
4461
|
+
const normalized = {
|
|
4462
|
+
...record,
|
|
4463
|
+
__recordKey: this.recordKey(record),
|
|
4464
|
+
level
|
|
4465
|
+
};
|
|
4466
|
+
rows.push(normalized);
|
|
4467
|
+
if (record.children && this.isExpanded(normalized)) {
|
|
4468
|
+
walk(record.children, level + 1);
|
|
4469
|
+
}
|
|
4470
|
+
});
|
|
4471
|
+
};
|
|
4472
|
+
walk(this.options.records);
|
|
4473
|
+
return rows;
|
|
4474
|
+
}
|
|
4475
|
+
get visibleRowIds() {
|
|
4476
|
+
return this.visibleRows.reduce((ids, row) => {
|
|
4477
|
+
ids[this.recordKey(row)] = true;
|
|
4478
|
+
return ids;
|
|
4479
|
+
}, {});
|
|
4480
|
+
}
|
|
4481
|
+
get rowById() {
|
|
4482
|
+
return this.flatRows.reduce((map, row) => {
|
|
4483
|
+
map[this.recordKey(row)] = row;
|
|
4484
|
+
return map;
|
|
4485
|
+
}, {});
|
|
4486
|
+
}
|
|
4487
|
+
get laneByKey() {
|
|
4488
|
+
return (this.taskBar.lanes || []).reduce((map, lane) => {
|
|
4489
|
+
map[lane.key] = lane;
|
|
4490
|
+
return map;
|
|
4491
|
+
}, {});
|
|
4492
|
+
}
|
|
4493
|
+
get allTasks() {
|
|
4494
|
+
const tasks = [];
|
|
4495
|
+
const tasksField = this.taskBar.tasksField;
|
|
4496
|
+
const walk = records => {
|
|
4497
|
+
records.forEach(record => {
|
|
4498
|
+
const recordKey = this.recordKey(record);
|
|
4499
|
+
const rowTasks = Array.isArray(record[tasksField]) ? record[tasksField] : [];
|
|
4500
|
+
rowTasks.forEach(task => {
|
|
4501
|
+
tasks.push({
|
|
4502
|
+
...task,
|
|
4503
|
+
__rowId: recordKey
|
|
4504
|
+
});
|
|
4505
|
+
});
|
|
4506
|
+
if (record.children) walk(record.children);
|
|
4507
|
+
});
|
|
4508
|
+
};
|
|
4509
|
+
walk(this.options.records);
|
|
4510
|
+
return tasks;
|
|
4511
|
+
}
|
|
4512
|
+
get renderTasks() {
|
|
4513
|
+
return [...this.parentTimelineTasks, ...this.visibleTasks];
|
|
4514
|
+
}
|
|
4515
|
+
get stripedTasks() {
|
|
4516
|
+
return this.renderTasks.filter(task => task.striped);
|
|
4517
|
+
}
|
|
4518
|
+
get visibleTasks() {
|
|
4519
|
+
return this.allTasks.filter(task => {
|
|
4520
|
+
const row = this.rowById[task.__rowId];
|
|
4521
|
+
return row && !row.children && this.visibleRowIds[task.__rowId] && this.overlapsRange(this.taskStart(task), this.taskEnd(task));
|
|
4522
|
+
});
|
|
4523
|
+
}
|
|
4524
|
+
get parentTimelineTasks() {
|
|
4525
|
+
const tasks = [];
|
|
4526
|
+
this.visibleRows.forEach(row => {
|
|
4527
|
+
if (!row.children || this.isExpanded(row)) return;
|
|
4528
|
+
const descendantIds = this.getDescendantRecordKeys(row);
|
|
4529
|
+
const childTasks = this.allTasks.filter(task => {
|
|
4530
|
+
return descendantIds.includes(task.__rowId) && this.isPrimaryTask(task) && this.overlapsRange(this.taskStart(task), this.taskEnd(task));
|
|
4531
|
+
});
|
|
4532
|
+
if (!childTasks.length) return;
|
|
4533
|
+
const start = Math.min(...childTasks.map(task => toTime(this.taskStart(task))));
|
|
4534
|
+
const end = Math.max(...childTasks.map(task => toTime(this.taskEnd(task))));
|
|
4535
|
+
const progressTasks = childTasks.filter(task => this.taskProgress(task) !== undefined);
|
|
4536
|
+
const progress = progressTasks.length ? Math.round(progressTasks.reduce((total, task) => total + this.taskProgress(task), 0) / progressTasks.length) : undefined;
|
|
4537
|
+
tasks.push({
|
|
4538
|
+
[this.options.taskKeyField]: `${this.recordKey(row)}__aggregate`,
|
|
4539
|
+
[this.taskBar.startDateField]: start,
|
|
4540
|
+
[this.taskBar.endDateField]: end,
|
|
4541
|
+
[this.taskBar.progressField]: progress,
|
|
4542
|
+
[this.taskBar.statusField]: this.taskStatus(childTasks[0]),
|
|
4543
|
+
title: row.name,
|
|
4544
|
+
subtitle: `${childTasks.length} 个工单`,
|
|
4545
|
+
workStatus: this.aggregateWorkStatus(childTasks),
|
|
4546
|
+
completed: childTasks.every(task => task.completed),
|
|
4547
|
+
predecessorIncomplete: childTasks.some(task => task.predecessorIncomplete),
|
|
4548
|
+
height: Math.max(28, (row.height || this.options.rowHeight) - 12),
|
|
4549
|
+
offsetY: 6,
|
|
4550
|
+
parentAggregate: true,
|
|
4551
|
+
__rowId: this.recordKey(row)
|
|
4552
|
+
});
|
|
4553
|
+
});
|
|
4554
|
+
return tasks;
|
|
4555
|
+
}
|
|
4556
|
+
get visibleBackgroundRanges() {
|
|
4557
|
+
return (this.grid.backgroundRanges || []).filter(range => {
|
|
4558
|
+
return toTime(range.endDate) > this.startTime && toTime(range.startDate) < this.endTime;
|
|
4559
|
+
});
|
|
4560
|
+
}
|
|
4561
|
+
get visibleRowBackgroundRanges() {
|
|
4562
|
+
return (this.grid.rowBackgroundRanges || []).filter(range => {
|
|
4563
|
+
return this.visibleRowIds[range.recordKey] && !this.isExpandedParentRow(range.recordKey) && toTime(range.endDate) > this.startTime && toTime(range.startDate) < this.endTime;
|
|
4564
|
+
});
|
|
4565
|
+
}
|
|
4566
|
+
get markLines() {
|
|
4567
|
+
if (!this.options.markLine || this.options.markLine === true) return [];
|
|
4568
|
+
return Array.isArray(this.options.markLine) ? this.options.markLine : [this.options.markLine];
|
|
4569
|
+
}
|
|
4570
|
+
get taskLayoutByKey() {
|
|
4571
|
+
return this.renderTasks.reduce((map, task) => {
|
|
4572
|
+
const key = this.taskKey(task);
|
|
4573
|
+
if (!key) return map;
|
|
4574
|
+
const y = this.taskY(task);
|
|
4575
|
+
const height = this.taskRenderHeight(task);
|
|
4576
|
+
map[key] = {
|
|
4577
|
+
task,
|
|
4578
|
+
x: this.timeToX(this.taskStart(task)),
|
|
4579
|
+
y,
|
|
4580
|
+
width: this.durationWidth(this.taskStart(task), this.taskEnd(task)),
|
|
4581
|
+
height,
|
|
4582
|
+
centerY: y + height / 2
|
|
4583
|
+
};
|
|
4584
|
+
return map;
|
|
4585
|
+
}, {});
|
|
4586
|
+
}
|
|
4587
|
+
get visibleLinks() {
|
|
4588
|
+
return this.activeNormalizedLinks.filter(link => {
|
|
4589
|
+
return this.taskLayoutByKey[link.from] && this.taskLayoutByKey[link.to];
|
|
4590
|
+
});
|
|
4591
|
+
}
|
|
4592
|
+
get activeNormalizedLinks() {
|
|
4593
|
+
if (this.activeLinkGroupKey) {
|
|
4594
|
+
return this.normalizedLinks.filter(link => link.__groupKey === this.activeLinkGroupKey);
|
|
4595
|
+
}
|
|
4596
|
+
return this.dependency.showLinks === true ? this.normalizedLinks : [];
|
|
4597
|
+
}
|
|
4598
|
+
get normalizedLinks() {
|
|
4599
|
+
const links = [];
|
|
4600
|
+
(this.dependency.links || []).forEach((link, linkIndex) => {
|
|
4601
|
+
const fromKeys = toKeyList(link.from);
|
|
4602
|
+
const toKeys = toKeyList(link.to);
|
|
4603
|
+
const groupKey = link.id === undefined || link.id === null ? `link-${linkIndex}` : String(link.id);
|
|
4604
|
+
fromKeys.forEach(from => {
|
|
4605
|
+
toKeys.forEach(to => {
|
|
4606
|
+
if (from === undefined || from === null || to === undefined || to === null) return;
|
|
4607
|
+
links.push({
|
|
4608
|
+
...link,
|
|
4609
|
+
from,
|
|
4610
|
+
to,
|
|
4611
|
+
__groupKey: groupKey
|
|
4612
|
+
});
|
|
4613
|
+
});
|
|
4614
|
+
});
|
|
4615
|
+
});
|
|
4616
|
+
return links;
|
|
4617
|
+
}
|
|
4618
|
+
firstLinkGroupKeyByTask(taskKey) {
|
|
4619
|
+
if (taskKey === undefined || taskKey === null) return null;
|
|
4620
|
+
const link = this.normalizedLinks.find(item => item.from === taskKey || item.to === taskKey);
|
|
4621
|
+
return link ? link.__groupKey : null;
|
|
4622
|
+
}
|
|
4623
|
+
get connectedTaskKeys() {
|
|
4624
|
+
return this.visibleLinks.reduce((map, link) => {
|
|
4625
|
+
map[link.from] = true;
|
|
4626
|
+
map[link.to] = true;
|
|
4627
|
+
return map;
|
|
4628
|
+
}, {});
|
|
4629
|
+
}
|
|
4630
|
+
get taskMinWidth() {
|
|
4631
|
+
if (typeof this.taskBar.barStyle === 'function') return 4;
|
|
4632
|
+
const style = this.resolveStyle(this.taskBar.barStyle, {});
|
|
4633
|
+
return style.minSize || 4;
|
|
4634
|
+
}
|
|
4635
|
+
}
|
|
4636
|
+
function mergeOptions(base, patch) {
|
|
4637
|
+
const baseTaskBar = base.taskBar || {};
|
|
4638
|
+
const patchTaskBar = patch.taskBar || {};
|
|
4639
|
+
return {
|
|
4640
|
+
...base,
|
|
4641
|
+
...patch,
|
|
4642
|
+
taskListTable: {
|
|
4643
|
+
...(base.taskListTable || {}),
|
|
4644
|
+
...(patch.taskListTable || {})
|
|
4645
|
+
},
|
|
4646
|
+
timelineHeader: {
|
|
4647
|
+
...(base.timelineHeader || {}),
|
|
4648
|
+
...(patch.timelineHeader || {}),
|
|
4649
|
+
scales: patch.timelineHeader && patch.timelineHeader.scales ? patch.timelineHeader.scales : base.timelineHeader && base.timelineHeader.scales || []
|
|
4650
|
+
},
|
|
4651
|
+
taskBar: {
|
|
4652
|
+
...baseTaskBar,
|
|
4653
|
+
...patchTaskBar,
|
|
4654
|
+
tooltip: mergeNestedOption(baseTaskBar.tooltip, patchTaskBar.tooltip),
|
|
4655
|
+
lanes: patchTaskBar.lanes ? patchTaskBar.lanes : baseTaskBar.lanes || []
|
|
4656
|
+
},
|
|
4657
|
+
dependency: {
|
|
4658
|
+
...(base.dependency || {}),
|
|
4659
|
+
...(patch.dependency || {}),
|
|
4660
|
+
links: patch.dependency && patch.dependency.links ? patch.dependency.links : base.dependency && base.dependency.links || []
|
|
4661
|
+
},
|
|
4662
|
+
grid: {
|
|
4663
|
+
...(base.grid || {}),
|
|
4664
|
+
...(patch.grid || {}),
|
|
4665
|
+
backgroundRanges: patch.grid && patch.grid.backgroundRanges ? patch.grid.backgroundRanges : base.grid && base.grid.backgroundRanges || [],
|
|
4666
|
+
rowBackgroundRanges: patch.grid && patch.grid.rowBackgroundRanges ? patch.grid.rowBackgroundRanges : base.grid && base.grid.rowBackgroundRanges || []
|
|
4667
|
+
},
|
|
4668
|
+
records: patch.records || base.records || []
|
|
4669
|
+
};
|
|
4670
|
+
}
|
|
4671
|
+
function mergeNestedOption(base, patch) {
|
|
4672
|
+
if (patch === undefined) return base;
|
|
4673
|
+
if (patch === false || patch === true || patch === null) return patch;
|
|
4674
|
+
if (typeof patch === 'object' && !Array.isArray(patch)) {
|
|
4675
|
+
return {
|
|
4676
|
+
...(typeof base === 'object' && base ? base : {}),
|
|
4677
|
+
...patch
|
|
4678
|
+
};
|
|
4679
|
+
}
|
|
4680
|
+
return patch;
|
|
4681
|
+
}
|
|
4682
|
+
function applyTableHeaderStyle(node, style = {}) {
|
|
4683
|
+
if (!style) return;
|
|
4684
|
+
if (style.backgroundColor) node.style.background = style.backgroundColor;
|
|
4685
|
+
if (style.color) node.style.color = style.color;
|
|
4686
|
+
if (style.fontSize) node.style.fontSize = `${style.fontSize}px`;
|
|
4687
|
+
if (style.fontWeight) node.style.fontWeight = style.fontWeight;
|
|
4688
|
+
}
|
|
4689
|
+
function applyTimelineStyle(node, style = {}) {
|
|
4690
|
+
if (style.backgroundColor) node.style.background = style.backgroundColor;
|
|
4691
|
+
if (style.color) node.style.color = style.color;
|
|
4692
|
+
if (style.fontSize) node.style.fontSize = `${style.fontSize}px`;
|
|
4693
|
+
if (style.fontWeight) node.style.fontWeight = style.fontWeight;
|
|
4694
|
+
if (style.textAlign) node.style.justifyContent = alignToFlex(style.textAlign);
|
|
4695
|
+
}
|
|
4696
|
+
function applyTimelineStyleToContent(content, style = {}) {
|
|
4697
|
+
if (!style || !Object.keys(style).length) return;
|
|
4698
|
+
const target = content.nodeType === 11 ? content.firstElementChild : content;
|
|
4699
|
+
if (target instanceof HTMLElement) {
|
|
4700
|
+
applyTimelineStyle(target, style);
|
|
4701
|
+
}
|
|
4702
|
+
}
|
|
4703
|
+
function alignToFlex(value) {
|
|
4704
|
+
if (value === 'left' || value === 'start') return 'flex-start';
|
|
4705
|
+
if (value === 'right' || value === 'end') return 'flex-end';
|
|
4706
|
+
return 'center';
|
|
4707
|
+
}
|
|
4708
|
+
function toKeyList(value) {
|
|
4709
|
+
if (Array.isArray(value)) return value;
|
|
4710
|
+
if (value === undefined || value === null) return [];
|
|
4711
|
+
return [value];
|
|
4712
|
+
}
|
|
4713
|
+
function el(tag, className = '') {
|
|
4714
|
+
const node = document.createElement(tag);
|
|
4715
|
+
if (className) node.className = className;
|
|
4716
|
+
return node;
|
|
4717
|
+
}
|
|
4718
|
+
function svgEl(tag, className = '') {
|
|
4719
|
+
const node = document.createElementNS(SVG_NS, tag);
|
|
4720
|
+
if (className) node.setAttribute('class', className);
|
|
4721
|
+
return node;
|
|
4722
|
+
}
|
|
4723
|
+
function attrs(node, values) {
|
|
4724
|
+
Object.keys(values).forEach(key => {
|
|
4725
|
+
if (values[key] !== undefined && values[key] !== null) {
|
|
4726
|
+
node.setAttribute(key, values[key]);
|
|
4727
|
+
}
|
|
4728
|
+
});
|
|
4729
|
+
}
|
|
4730
|
+
function toTime(value) {
|
|
4731
|
+
if (typeof value === 'number') return value;
|
|
4732
|
+
if (value instanceof Date) return value.getTime();
|
|
4733
|
+
return new Date(value).getTime();
|
|
4734
|
+
}
|
|
4735
|
+
function formatDateTime(date) {
|
|
4736
|
+
const value = date instanceof Date ? date : new Date(date);
|
|
4737
|
+
const month = String(value.getMonth() + 1).padStart(2, '0');
|
|
4738
|
+
const day = String(value.getDate()).padStart(2, '0');
|
|
4739
|
+
const hour = String(value.getHours()).padStart(2, '0');
|
|
4740
|
+
const minute = String(value.getMinutes()).padStart(2, '0');
|
|
4741
|
+
return `${value.getFullYear()}-${month}-${day} ${hour}:${minute}`;
|
|
4742
|
+
}
|
|
4743
|
+
function formatLocalDateTime(date) {
|
|
4744
|
+
const value = date instanceof Date ? date : new Date(date);
|
|
4745
|
+
const month = String(value.getMonth() + 1).padStart(2, '0');
|
|
4746
|
+
const day = String(value.getDate()).padStart(2, '0');
|
|
4747
|
+
const hour = String(value.getHours()).padStart(2, '0');
|
|
4748
|
+
const minute = String(value.getMinutes()).padStart(2, '0');
|
|
4749
|
+
const second = String(value.getSeconds()).padStart(2, '0');
|
|
4750
|
+
return `${value.getFullYear()}-${month}-${day}T${hour}:${minute}:${second}`;
|
|
4751
|
+
}
|
|
4752
|
+
;// ./packages/gantt/src/index.js
|
|
4753
|
+
|
|
4754
|
+
;// ./node_modules/.pnpm/@vue+cli-service@5.0.9_@vue+compiler-sfc@3.5.38_lodash@4.18.1_vue-template-compiler@2.7_c9972e4047f004f60ec0a5944100d8f4/node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js
|
|
4755
|
+
|
|
4756
|
+
|
|
4757
|
+
|
|
4758
|
+
/******/ return __webpack_exports__;
|
|
4759
|
+
/******/ })()
|
|
4760
|
+
;
|
|
4761
|
+
});
|
|
4762
|
+
//# sourceMappingURL=VanillaGantt.umd.js.map
|