szdl-utils-kit 0.3.6 → 0.3.8

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/dist/index.js CHANGED
@@ -1,54 +1,54 @@
1
- var _t = Object.defineProperty;
2
- var pt = (N, e, r) => e in N ? _t(N, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : N[e] = r;
3
- var S = (N, e, r) => (pt(N, typeof e != "symbol" ? e + "" : e, r), r), at = (N, e, r) => {
4
- if (!e.has(N))
1
+ var Ot = Object.defineProperty;
2
+ var _t = (_, e, r) => e in _ ? Ot(_, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : _[e] = r;
3
+ var M = (_, e, r) => (_t(_, typeof e != "symbol" ? e + "" : e, r), r), At = (_, e, r) => {
4
+ if (!e.has(_))
5
5
  throw TypeError("Cannot " + r);
6
6
  };
7
- var p = (N, e, r) => (at(N, e, "read from private field"), r ? r.call(N) : e.get(N)), w = (N, e, r) => {
8
- if (e.has(N))
7
+ var E = (_, e, r) => (At(_, e, "read from private field"), r ? r.call(_) : e.get(_)), H = (_, e, r) => {
8
+ if (e.has(_))
9
9
  throw TypeError("Cannot add the same private member more than once");
10
- e instanceof WeakSet ? e.add(N) : e.set(N, r);
11
- }, F = (N, e, r, i) => (at(N, e, "write to private field"), i ? i.call(N, r) : e.set(N, r), r);
12
- var X = (N, e, r) => (at(N, e, "access private method"), r);
10
+ e instanceof WeakSet ? e.add(_) : e.set(_, r);
11
+ }, F = (_, e, r, i) => (At(_, e, "write to private field"), i ? i.call(_, r) : e.set(_, r), r);
12
+ var J = (_, e, r) => (At(_, e, "access private method"), r);
13
13
  var yt = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
14
- function Et(N) {
15
- return N && N.__esModule && Object.prototype.hasOwnProperty.call(N, "default") ? N.default : N;
14
+ function Et(_) {
15
+ return _ && _.__esModule && Object.prototype.hasOwnProperty.call(_, "default") ? _.default : _;
16
16
  }
17
- var lt = { exports: {} };
18
- (function(N, e) {
17
+ var ct = { exports: {} };
18
+ (function(_, e) {
19
19
  (function(r) {
20
20
  Array.prototype.indexOf || (Array.prototype.indexOf = function(t, n) {
21
- var c, f;
22
- for (c = n || 0, f = this.length; c < f; c += 1)
23
- if (this[c] === t)
24
- return c;
21
+ var f, m;
22
+ for (f = n || 0, m = this.length; f < m; f += 1)
23
+ if (this[f] === t)
24
+ return f;
25
25
  return -1;
26
26
  });
27
- var i = this, A = function(t, n) {
28
- for (var c = t.toString(); c.length < n; )
29
- c = "0" + c;
30
- return c;
31
- }, o = function(t, n) {
27
+ var i = this, o = function(t, n) {
28
+ for (var f = t.toString(); f.length < n; )
29
+ f = "0" + f;
30
+ return f;
31
+ }, a = function(t, n) {
32
32
  return n !== r ? (t.year(n.year() || n.year), t.month(n.month() || n.month), t.day(n.day() || n.day), t.hours(n.hours() || n.hours), t.minutes(n.minutes() || n.minutes), t.seconds(n.seconds() || n.seconds), t.milliseconds(n.milliseconds() || n.milliseconds), t) : r;
33
+ }, c = function(t, n) {
34
+ var f, m = "";
35
+ return f = t.slice(n, n + 1), f !== "" && !isNaN(Number(f)) && (m += "%H"), f = t.charAt(n + 2), f !== "" && f === ":" && (m += f), f = t.slice(n + 3, n + 4), f !== "" && !isNaN(Number(f)) && (m += "%M"), f = t.charAt(n + 5), f !== "" && f === ":" && (m += f), f = t.slice(n + 6, n + 7), f !== "" && !isNaN(Number(f)) && (m += "%S"), m;
33
36
  }, h = function(t, n) {
34
- var c, f = "";
35
- return c = t.slice(n, n + 1), c !== "" && !isNaN(Number(c)) && (f += "%H"), c = t.charAt(n + 2), c !== "" && c === ":" && (f += c), c = t.slice(n + 3, n + 4), c !== "" && !isNaN(Number(c)) && (f += "%M"), c = t.charAt(n + 5), c !== "" && c === ":" && (f += c), c = t.slice(n + 6, n + 7), c !== "" && !isNaN(Number(c)) && (f += "%S"), f;
36
- }, m = function(t, n) {
37
- var c, f = [
37
+ var f, m = [
38
38
  t.slice(n, n + 1),
39
39
  t.charAt(n + 2),
40
40
  t.slice(n + 3, n + 4),
41
41
  t.charAt(n + 5),
42
42
  t.slice(n + 6, n + 9)
43
- ], L;
44
- return !isNaN(Number(f[0])) && !isNaN(Number(f[2])) && !isNaN(Number(f[4])) ? (f[1] === "." && f[3] === "." ? c = "%d.%m.%Y" : f[1] === "-" && f[3] === "-" ? c = "%m-%d-%Y" : f[1] === "/" && f[3] === "/" && (c = "%m/%d/%Y"), c) : (L = [
43
+ ], I;
44
+ return !isNaN(Number(m[0])) && !isNaN(Number(m[2])) && !isNaN(Number(m[4])) ? (m[1] === "." && m[3] === "." ? f = "%d.%m.%Y" : m[1] === "-" && m[3] === "-" ? f = "%m-%d-%Y" : m[1] === "/" && m[3] === "/" && (f = "%m/%d/%Y"), f) : (I = [
45
45
  t.slice(n, n + 3),
46
46
  t.charAt(n + 4),
47
47
  t.slice(n + 5, n + 6),
48
48
  t.charAt(n + 7),
49
49
  t.slice(n + 8, n + 9)
50
- ], !isNaN(Number(L[0])) && !isNaN(Number(L[2])) && !isNaN(Number(L[4])) ? (L[1] === "-" && L[3] === "-" && (c = "%Y-%m-%d"), c) : "");
51
- }, l = i.tempus, s, d, g = i.navigator || {}, a = "en", u = {
50
+ ], !isNaN(Number(I[0])) && !isNaN(Number(I[2])) && !isNaN(Number(I[4])) ? (I[1] === "-" && I[3] === "-" && (f = "%Y-%m-%d"), f) : "");
51
+ }, u = i.tempus, s, d, p = i.navigator || {}, l = "en", A = {
52
52
  en: {
53
53
  JANUARY_SHORT: "Jan",
54
54
  FEBRUARY_SHORT: "Feb",
@@ -209,66 +209,66 @@ var lt = { exports: {} };
209
209
  FRIDAY_LONG: "Freitag",
210
210
  SATURDAY_LONG: "Samstag"
211
211
  }
212
- }, y = function() {
212
+ }, g = function() {
213
213
  return [
214
- u[a].JANUARY_LONG,
215
- u[a].FEBRUARY_LONG,
216
- u[a].MARCH_LONG,
217
- u[a].APRIL_LONG,
218
- u[a].MAY_LONG,
219
- u[a].JUNE_LONG,
220
- u[a].JULY_LONG,
221
- u[a].AUGUST_LONG,
222
- u[a].SEPTEMBER_LONG,
223
- u[a].OCTOBER_LONG,
224
- u[a].NOVEMBER_LONG,
225
- u[a].DECEMBER_LONG
214
+ A[l].JANUARY_LONG,
215
+ A[l].FEBRUARY_LONG,
216
+ A[l].MARCH_LONG,
217
+ A[l].APRIL_LONG,
218
+ A[l].MAY_LONG,
219
+ A[l].JUNE_LONG,
220
+ A[l].JULY_LONG,
221
+ A[l].AUGUST_LONG,
222
+ A[l].SEPTEMBER_LONG,
223
+ A[l].OCTOBER_LONG,
224
+ A[l].NOVEMBER_LONG,
225
+ A[l].DECEMBER_LONG
226
226
  ];
227
- }, O = function() {
227
+ }, N = function() {
228
228
  return [
229
- u[a].JANUARY_SHORT,
230
- u[a].FEBRUARY_SHORT,
231
- u[a].MARCH_SHORT,
232
- u[a].APRIL_SHORT,
233
- u[a].MAY_SHORT,
234
- u[a].JUNE_SHORT,
235
- u[a].JULY_SHORT,
236
- u[a].AUGUST_SHORT,
237
- u[a].SEPTEMBER_SHORT,
238
- u[a].OCTOBER_SHORT,
239
- u[a].NOVEMBER_SHORT,
240
- u[a].DECEMBER_SHORT
229
+ A[l].JANUARY_SHORT,
230
+ A[l].FEBRUARY_SHORT,
231
+ A[l].MARCH_SHORT,
232
+ A[l].APRIL_SHORT,
233
+ A[l].MAY_SHORT,
234
+ A[l].JUNE_SHORT,
235
+ A[l].JULY_SHORT,
236
+ A[l].AUGUST_SHORT,
237
+ A[l].SEPTEMBER_SHORT,
238
+ A[l].OCTOBER_SHORT,
239
+ A[l].NOVEMBER_SHORT,
240
+ A[l].DECEMBER_SHORT
241
241
  ];
242
- }, R = function() {
242
+ }, O = function() {
243
243
  return [
244
- u[a].SUNDAY_LONG,
245
- u[a].MONDAY_LONG,
246
- u[a].TUESDAY_LONG,
247
- u[a].WEDNESDAY_LONG,
248
- u[a].THURSDAY_LONG,
249
- u[a].FRIDAY_LONG,
250
- u[a].SATURDAY_LONG
244
+ A[l].SUNDAY_LONG,
245
+ A[l].MONDAY_LONG,
246
+ A[l].TUESDAY_LONG,
247
+ A[l].WEDNESDAY_LONG,
248
+ A[l].THURSDAY_LONG,
249
+ A[l].FRIDAY_LONG,
250
+ A[l].SATURDAY_LONG
251
251
  ];
252
- }, G = function() {
252
+ }, L = function() {
253
253
  return [
254
- u[a].SUNDAY_SHORT,
255
- u[a].MONDAY_SHORT,
256
- u[a].TUESDAY_SHORT,
257
- u[a].WEDNESDAY_SHORT,
258
- u[a].THURSDAY_SHORT,
259
- u[a].FRIDAY_SHORT,
260
- u[a].SATURDAY_SHORT
254
+ A[l].SUNDAY_SHORT,
255
+ A[l].MONDAY_SHORT,
256
+ A[l].TUESDAY_SHORT,
257
+ A[l].WEDNESDAY_SHORT,
258
+ A[l].THURSDAY_SHORT,
259
+ A[l].FRIDAY_SHORT,
260
+ A[l].SATURDAY_SHORT
261
261
  ];
262
- }, P, H, I, M, q = function(t, n, c) {
263
- var f;
264
- i.XMLHttpRequest ? f = new XMLHttpRequest() : f = new ActiveXObject("Microsoft.XMLHTTP"), f.onreadystatechange = function() {
265
- f.readyState === 4 && (f.status === 200 ? n && (i.JSON === r ? alert(`Please, include json2 into your project if you want use old browsers!
266
- https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.parse(f.responseText))) : c && c(f));
267
- }, f.open("GET", t, !1), f.send();
268
- }, B = {
262
+ }, U, P, W, b, k = function(t, n, f) {
263
+ var m;
264
+ i.XMLHttpRequest ? m = new XMLHttpRequest() : m = new ActiveXObject("Microsoft.XMLHTTP"), m.onreadystatechange = function() {
265
+ m.readyState === 4 && (m.status === 200 ? n && (i.JSON === r ? alert(`Please, include json2 into your project if you want use old browsers!
266
+ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.parse(m.responseText))) : f && f(m));
267
+ }, m.open("GET", t, !1), m.send();
268
+ }, S = {
269
269
  "%d": {
270
270
  format: function(t) {
271
- return A(t.day() || s.MIN_DAY, 2);
271
+ return o(t.day() || s.MIN_DAY, 2);
272
272
  },
273
273
  parse: function(t) {
274
274
  var n = Number(t);
@@ -280,7 +280,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
280
280
  },
281
281
  "%m": {
282
282
  format: function(t) {
283
- return A(t.month() || s.MIN_MONTH, 2);
283
+ return o(t.month() || s.MIN_MONTH, 2);
284
284
  },
285
285
  parse: function(t) {
286
286
  var n = Number(t);
@@ -292,7 +292,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
292
292
  },
293
293
  "%Y": {
294
294
  format: function(t) {
295
- return A(t.year() || s.MIN_YEAR, 4);
295
+ return o(t.year() || s.MIN_YEAR, 4);
296
296
  },
297
297
  parse: function(t) {
298
298
  var n = Number(t);
@@ -316,7 +316,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
316
316
  "%a": {
317
317
  format: function(t) {
318
318
  var n = t.dayOfWeek();
319
- return M[n !== r ? n : s.MIN_DAY_OF_WEEK];
319
+ return b[n !== r ? n : s.MIN_DAY_OF_WEEK];
320
320
  },
321
321
  parse: function() {
322
322
  return {};
@@ -328,7 +328,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
328
328
  "%A": {
329
329
  format: function(t) {
330
330
  var n = t.dayOfWeek();
331
- return I[n !== r ? n : s.MIN_DAY_OF_WEEK];
331
+ return W[n !== r ? n : s.MIN_DAY_OF_WEEK];
332
332
  },
333
333
  parse: function() {
334
334
  return {};
@@ -340,7 +340,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
340
340
  "%b": {
341
341
  format: function(t) {
342
342
  var n = s.options("monthFromZero") ? t.month() : t.month() - 1;
343
- return H[n !== r ? n : s.MIN_MONTH];
343
+ return P[n !== r ? n : s.MIN_MONTH];
344
344
  },
345
345
  parse: function(t) {
346
346
  var n = s.monthNames().indexOf(t) + (s.options("monthFromZero") ? 0 : 1);
@@ -353,7 +353,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
353
353
  "%B": {
354
354
  format: function(t) {
355
355
  var n = s.options("monthFromZero") ? t.month() : t.month() - 1;
356
- return P[n !== r ? n : s.MIN_MONTH];
356
+ return U[n !== r ? n : s.MIN_MONTH];
357
357
  },
358
358
  parse: function(t) {
359
359
  var n = s.monthNames(!0).indexOf(t) + (s.options("monthFromZero") ? 0 : 1);
@@ -365,7 +365,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
365
365
  },
366
366
  "%H": {
367
367
  format: function(t) {
368
- return A(t.hours() || s.MIN_HOURS, 2);
368
+ return o(t.hours() || s.MIN_HOURS, 2);
369
369
  },
370
370
  parse: function(t) {
371
371
  var n = Number(t);
@@ -377,7 +377,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
377
377
  },
378
378
  "%M": {
379
379
  format: function(t) {
380
- return A(t.minutes() || s.MIN_MINUTES, 2);
380
+ return o(t.minutes() || s.MIN_MINUTES, 2);
381
381
  },
382
382
  parse: function(t) {
383
383
  var n = Number(t);
@@ -389,7 +389,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
389
389
  },
390
390
  "%S": {
391
391
  format: function(t) {
392
- return A(t.seconds() || s.MIN_SECONDS, 2);
392
+ return o(t.seconds() || s.MIN_SECONDS, 2);
393
393
  },
394
394
  parse: function(t) {
395
395
  var n = Number(t);
@@ -412,14 +412,14 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
412
412
  },
413
413
  "%F": {
414
414
  format: function(t) {
415
- return A(t.year() || s.MIN_YEAR, 4) + "-" + A(t.month() || s.MIN_MONTH, 2) + "-" + A(t.day() || s.MIN_DAY, 2);
415
+ return o(t.year() || s.MIN_YEAR, 4) + "-" + o(t.month() || s.MIN_MONTH, 2) + "-" + o(t.day() || s.MIN_DAY, 2);
416
416
  },
417
417
  parse: function(t) {
418
- var n = Number(t.slice(0, 4)), c = Number(t.slice(5, 7)), f = Number(t.slice(8, 10));
418
+ var n = Number(t.slice(0, 4)), f = Number(t.slice(5, 7)), m = Number(t.slice(8, 10));
419
419
  return {
420
420
  year: n,
421
- month: c,
422
- day: f
421
+ month: f,
422
+ day: m
423
423
  };
424
424
  },
425
425
  minLength: 10,
@@ -428,14 +428,14 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
428
428
  },
429
429
  "%D": {
430
430
  format: function(t) {
431
- return A(t.month() || s.MIN_MONTH, 2) + "/" + A(t.day() || s.MIN_DAY, 2) + "/" + A(t.year() || s.MIN_YEAR, 4);
431
+ return o(t.month() || s.MIN_MONTH, 2) + "/" + o(t.day() || s.MIN_DAY, 2) + "/" + o(t.year() || s.MIN_YEAR, 4);
432
432
  },
433
433
  parse: function(t) {
434
- var n = Number(t.slice(0, 2)), c = Number(t.slice(3, 5)), f = Number(t.slice(6, 10));
434
+ var n = Number(t.slice(0, 2)), f = Number(t.slice(3, 5)), m = Number(t.slice(6, 10));
435
435
  return {
436
- year: f,
436
+ year: m,
437
437
  month: n,
438
- day: c
438
+ day: f
439
439
  };
440
440
  },
441
441
  minLength: 10,
@@ -445,8 +445,8 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
445
445
  }, tt = {
446
446
  useMilliseconds: !1,
447
447
  monthFromZero: !1
448
- }, E;
449
- E = function(t, n, c) {
448
+ }, T;
449
+ T = function(t, n, f) {
450
450
  return this._d = /* @__PURE__ */ new Date(), this._i = {
451
451
  year: !1,
452
452
  month: !1,
@@ -455,56 +455,56 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
455
455
  minutes: !1,
456
456
  seconds: !1,
457
457
  milliseconds: !1
458
- }, t !== r && this.set(t, n, c), this;
459
- }, E.fn = E.prototype, E.fn.dayCount = function() {
458
+ }, t !== r && this.set(t, n, f), this;
459
+ }, T.fn = T.prototype, T.fn.dayCount = function() {
460
460
  var t = this.month(), n = s.MAX_DAY_IN_MONTHS[t - (s.options("monthFromZero") ? 0 : 1)];
461
461
  return this.leapYear() && t === (s.options("monthFromZero") ? 1 : 2) && (n += 1), n;
462
- }, E.fn.year = function(t) {
462
+ }, T.fn.year = function(t) {
463
463
  if (arguments.length !== 0)
464
464
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_YEAR && Number(t) <= s.MAX_YEAR ? (this._d.setFullYear(Number(t)), this._i.year = !1) : this._i.year = Number(t) : (this._d.setFullYear(s.MIN_YEAR), this._i.year = !1);
465
465
  else
466
466
  return this._i.year === !1 ? this._d.getFullYear() : this._i.year;
467
467
  return this;
468
- }, E.fn.month = function(t) {
468
+ }, T.fn.month = function(t) {
469
469
  if (arguments.length !== 0)
470
470
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_MONTH && Number(t) <= s.MAX_MONTH ? (this._d.setMonth(s.options("monthFromZero") ? Number(t) : Number(t) - 1), this._i.month = !1) : this._i.month = Number(t) : (this._d.setMonth(s.options("monthFromZero") ? s.MIN_MONTH : s.MIN_MONTH - 1), this._i.month = !1);
471
471
  else
472
472
  return this._i.month === !1 ? s.options("monthFromZero") ? this._d.getMonth() : this._d.getMonth() + 1 : this._i.month;
473
473
  return this;
474
- }, E.fn.day = function(t) {
474
+ }, T.fn.day = function(t) {
475
475
  if (arguments.length !== 0)
476
476
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_DAY && Number(t) <= this.dayCount() ? (this._d.setDate(Number(t)), this._i.day = !1) : this._i.day = Number(t) : (this._d.setDate(s.MIN_DAY), this._i.day = !1);
477
477
  else
478
478
  return this._i.day === !1 ? this._d.getDate() : this._i.day;
479
479
  return this;
480
- }, E.fn.hours = function(t) {
480
+ }, T.fn.hours = function(t) {
481
481
  if (arguments.length !== 0)
482
482
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_HOURS && Number(t) <= s.MAX_HOURS ? (this._d.setHours(Number(t)), this._i.hours = !1) : this._i.hours = Number(t) : (this._d.setHours(s.MIN_HOURS), this._i.hours = !1);
483
483
  else
484
484
  return this._i.hours === !1 ? this._d.getHours() : this._i.hours;
485
485
  return this;
486
- }, E.fn.minutes = function(t) {
486
+ }, T.fn.minutes = function(t) {
487
487
  if (arguments.length !== 0)
488
488
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_MINUTES && Number(t) <= s.MAX_MINUTES ? (this._d.setMinutes(Number(t)), this._i.minutes = !1) : this._i.minutes = Number(t) : (this._d.setMinutes(s.MIN_MINUTES), this._i.minutes = !1);
489
489
  else
490
490
  return this._i.minutes === !1 ? this._d.getMinutes() : this._i.minutes;
491
491
  return this;
492
- }, E.fn.seconds = function(t) {
492
+ }, T.fn.seconds = function(t) {
493
493
  if (arguments.length !== 0)
494
494
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_SECONDS && Number(t) <= s.MAX_SECONDS ? (this._d.setSeconds(Number(t)), this._i.seconds = !1) : this._i.seconds = Number(t) : (this._d.setSeconds(s.MIN_SECONDS), this._i.seconds = !1);
495
495
  else
496
496
  return this._i.seconds === !1 ? this._d.getSeconds() : this._i.seconds;
497
497
  return this;
498
- }, E.fn.milliseconds = function(t) {
498
+ }, T.fn.milliseconds = function(t) {
499
499
  if (arguments.length !== 0)
500
500
  (typeof t == "number" || typeof t == "string") && !isNaN(Number(t)) ? Number(t) >= s.MIN_MILLISECONDS && Number(t) <= s.MAX_MILLISECONDS ? (this._d.setMilliseconds(Number(t)), this._i.milliseconds = !1) : this._i.milliseconds = Number(t) : (this._d.setMilliseconds(s.MIN_MILLISECONDS), this._i.milliseconds = !1);
501
501
  else
502
502
  return this._i.milliseconds === !1 ? this._d.getMilliseconds() : this._i.milliseconds;
503
503
  return this;
504
- }, E.fn.week = function() {
504
+ }, T.fn.week = function() {
505
505
  var t = new Date(this.year(), 0, 1), n = s(this.utc()).hours(0).minutes(0).seconds(0).milliseconds(0).utc() * 1e3;
506
506
  return Math.ceil(((n - t.getTime()) / 864e5 + t.getDay() + 1) / 7);
507
- }, E.fn.set = function(t, n, c) {
507
+ }, T.fn.set = function(t, n, f) {
508
508
  if (this._i = {
509
509
  year: !1,
510
510
  month: !1,
@@ -520,9 +520,9 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
520
520
  if (typeof t == "number")
521
521
  return this._d = new Date(t * (s.options("useMilliseconds") ? 1 : 1e3)), this;
522
522
  if (typeof t == "object" && (t instanceof Array ? (this.day(s.MIN_DAY), this.year(t[0]), this.month(t[1]), this.day(t[2]), this.hours(t[3]), this.minutes(t[4]), this.seconds(t[5]), this.milliseconds(t[6])) : (this.day(s.MIN_DAY), this.year(t.year), this.month(t.month), this.day(t.day), this.hours(t.hours), this.minutes(t.minutes), this.seconds(t.seconds), this.milliseconds(t.milliseconds))), typeof t == "string") {
523
- var f, L = [], _, T, J = [], Y = 0, U = 0, b, W, D = {}, k;
523
+ var m, I = [], y, R, j = [], C = 0, Y = 0, D, x, B = {}, w;
524
524
  if (t === r)
525
- return _ = o(this, c), _ === r && (this._i = {
525
+ return y = a(this, f), y === r && (this._i = {
526
526
  year: -1,
527
527
  month: -1,
528
528
  day: -1,
@@ -530,26 +530,26 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
530
530
  minutes: -1,
531
531
  seconds: -1,
532
532
  milliseconds: -1
533
- }), _;
534
- for (n === r && (n = s.detectFormat(t)); Y < n.length; ) {
535
- if (n.charAt(Y) === "%") {
536
- if (T = n.charAt(Y) + n.charAt(Y + 1), B[T] !== r) {
537
- switch (b = 0, W = "", B[T].type) {
533
+ }), y;
534
+ for (n === r && (n = s.detectFormat(t)); C < n.length; ) {
535
+ if (n.charAt(C) === "%") {
536
+ if (R = n.charAt(C) + n.charAt(C + 1), S[R] !== r) {
537
+ switch (D = 0, x = "", S[R].type) {
538
538
  case "number":
539
- for (; b < B[T].maxLength && U + b < t.length && !isNaN(Number(t.charAt(U + b))); )
540
- W += t.charAt(U + b), b += 1;
539
+ for (; D < S[R].maxLength && Y + D < t.length && !isNaN(Number(t.charAt(Y + D))); )
540
+ x += t.charAt(Y + D), D += 1;
541
541
  break;
542
542
  case "word":
543
- for (; b < B[T].maxLength && U + b < t.length && /^[\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(t.charAt(U + b)); )
544
- W += t.charAt(U + b), b += 1;
543
+ for (; D < S[R].maxLength && Y + D < t.length && /^[\u00BF-\u1FFF\u2C00-\uD7FF\w]+$/.test(t.charAt(Y + D)); )
544
+ x += t.charAt(Y + D), D += 1;
545
545
  break;
546
546
  case "string":
547
- for (; b < B[T].maxLength && U + b < t.length; )
548
- W += t.charAt(U + b), b += 1;
547
+ for (; D < S[R].maxLength && Y + D < t.length; )
548
+ x += t.charAt(Y + D), D += 1;
549
549
  break;
550
550
  }
551
- if (b < B[T].minLength)
552
- return _ = o(this, c), _ === r && (this._i = {
551
+ if (D < S[R].minLength)
552
+ return y = a(this, f), y === r && (this._i = {
553
553
  year: -1,
554
554
  month: -1,
555
555
  day: -1,
@@ -557,11 +557,11 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
557
557
  minutes: -1,
558
558
  seconds: -1,
559
559
  milliseconds: -1
560
- }), _;
561
- L.push(T), J.push(W), b -= 1, U += b, Y += 1;
560
+ }), y;
561
+ I.push(R), j.push(x), D -= 1, Y += D, C += 1;
562
562
  }
563
- } else if (t.charAt(U) !== n.charAt(Y))
564
- return _ = o(this, c), _ === r && (this._i = {
563
+ } else if (t.charAt(Y) !== n.charAt(C))
564
+ return y = a(this, f), y === r && (this._i = {
565
565
  year: -1,
566
566
  month: -1,
567
567
  day: -1,
@@ -569,33 +569,33 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
569
569
  minutes: -1,
570
570
  seconds: -1,
571
571
  milliseconds: -1
572
- }), _;
573
- Y += 1, U += 1;
572
+ }), y;
573
+ C += 1, Y += 1;
574
574
  }
575
- for (f in L)
576
- L.hasOwnProperty(f) && B.hasOwnProperty(L[f]) && (k = B[L[f]].parse(J[f]), D = {
577
- year: k.year !== r ? k.year : D.year,
578
- month: k.month !== r ? k.month : D.month,
579
- day: k.day !== r ? k.day : D.day,
580
- hours: k.hours !== r ? k.hours : D.hours,
581
- minutes: k.minutes !== r ? k.minutes : D.minutes,
582
- seconds: k.seconds !== r ? k.seconds : D.seconds
575
+ for (m in I)
576
+ I.hasOwnProperty(m) && S.hasOwnProperty(I[m]) && (w = S[I[m]].parse(j[m]), B = {
577
+ year: w.year !== r ? w.year : B.year,
578
+ month: w.month !== r ? w.month : B.month,
579
+ day: w.day !== r ? w.day : B.day,
580
+ hours: w.hours !== r ? w.hours : B.hours,
581
+ minutes: w.minutes !== r ? w.minutes : B.minutes,
582
+ seconds: w.seconds !== r ? w.seconds : B.seconds
583
583
  });
584
- this.day(s.MIN_DAY), this.year(D.year), this.month(D.month), this.day(D.day), this.hours(D.hours), this.minutes(D.minutes), this.seconds(D.seconds), this.milliseconds(D.milliseconds);
584
+ this.day(s.MIN_DAY), this.year(B.year), this.month(B.month), this.day(B.day), this.hours(B.hours), this.minutes(B.minutes), this.seconds(B.seconds), this.milliseconds(B.milliseconds);
585
585
  }
586
586
  return this;
587
- }, E.fn.leapYear = function() {
587
+ }, T.fn.leapYear = function() {
588
588
  var t = this.year();
589
589
  return t % 4 === 0 ? t % 100 === 0 ? t % 400 === 0 : !0 : !1;
590
- }, E.fn.timestamp = function(t) {
590
+ }, T.fn.timestamp = function(t) {
591
591
  return arguments.length !== 0 ? (this._d = new Date(Number(t) * (s.options("useMilliseconds") ? 1 : 1e3) + this._d.getTimezoneOffset() * 6e4), this) : s.options("useMilliseconds") ? this._d.getTime() - this._d.getTimezoneOffset() * 6e4 : Math.floor(this._d.getTime() / 1e3) - this._d.getTimezoneOffset() * 60;
592
- }, E.fn.utc = function(t) {
592
+ }, T.fn.utc = function(t) {
593
593
  return arguments.length !== 0 ? (this._d = new Date(Number(t) * (s.options("useMilliseconds") ? 1 : 1e3)), this) : s.options("useMilliseconds") ? this._d.getTime() : Math.floor(this._d.getTime() / 1e3);
594
- }, E.fn.dayOfWeek = function(t) {
594
+ }, T.fn.dayOfWeek = function(t) {
595
595
  if (t === "long")
596
- return I[this._d.getDay()];
596
+ return W[this._d.getDay()];
597
597
  if (t === "short")
598
- return M[this._d.getDay()];
598
+ return b[this._d.getDay()];
599
599
  if (t === r)
600
600
  return this._d.getDay();
601
601
  if (t === 0 || t === "Sunday")
@@ -612,7 +612,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
612
612
  return this.calc({ day: (this.dayOfWeek() === 0 ? -2 : 5) - this.dayOfWeek() });
613
613
  if (t === 6 || t === "Saturday")
614
614
  return this.calc({ day: (this.dayOfWeek() === 0 ? -1 : 6) - this.dayOfWeek() });
615
- }, E.fn.timezone = function(t) {
615
+ }, T.fn.timezone = function(t) {
616
616
  switch (t) {
617
617
  case "hours":
618
618
  return Math.floor(this._d.getTimezoneOffset() / 60);
@@ -621,7 +621,7 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
621
621
  default:
622
622
  return this._d.getTimezoneOffset() * 60;
623
623
  }
624
- }, E.fn.get = function(t) {
624
+ }, T.fn.get = function(t) {
625
625
  switch (t) {
626
626
  case "Date":
627
627
  return new Date(
@@ -670,36 +670,36 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
670
670
  timestamp: this.timestamp()
671
671
  };
672
672
  }
673
- }, E.fn.format = function(t) {
674
- for (var n = 0, c = "", f; n < t.length; )
675
- t.charAt(n) === "%" ? (f = t.charAt(n) + t.charAt(n + 1), B[f] !== r ? (c += B[f].format(this), n += 1) : c += "%") : c += t.charAt(n), n += 1;
676
- return c;
677
- }, E.fn.valid = function() {
673
+ }, T.fn.format = function(t) {
674
+ for (var n = 0, f = "", m; n < t.length; )
675
+ t.charAt(n) === "%" ? (m = t.charAt(n) + t.charAt(n + 1), S[m] !== r ? (f += S[m].format(this), n += 1) : f += "%") : f += t.charAt(n), n += 1;
676
+ return f;
677
+ }, T.fn.valid = function() {
678
678
  return this._i.year === !1 && this._i.month === !1 && this._i.day === !1 && this._i.hours === !1 && this._i.minutes === !1 && this._i.seconds === !1 && this._i.milliseconds === !1;
679
- }, E.fn.errors = function() {
679
+ }, T.fn.errors = function() {
680
680
  return this._i;
681
- }, E.fn.between = function(t, n) {
682
- var c = this.timestamp(), f = t.timestamp();
681
+ }, T.fn.between = function(t, n) {
682
+ var f = this.timestamp(), m = t.timestamp();
683
683
  switch (n) {
684
684
  case "year":
685
- return Math.floor((f - c) / 31556952);
685
+ return Math.floor((m - f) / 31556952);
686
686
  case "month":
687
- return Math.floor((f - c) / 2629746);
687
+ return Math.floor((m - f) / 2629746);
688
688
  case "day":
689
- return Math.floor((f - c) / 86400);
689
+ return Math.floor((m - f) / 86400);
690
690
  case "hours":
691
- return Math.floor((f - c) / 3600);
691
+ return Math.floor((m - f) / 3600);
692
692
  case "minutes":
693
- return Math.floor((f - c) / 60);
693
+ return Math.floor((m - f) / 60);
694
694
  case "seconds":
695
- return f - c;
695
+ return m - f;
696
696
  default:
697
697
  return r;
698
698
  }
699
- }, E.fn.calc = function(t) {
699
+ }, T.fn.calc = function(t) {
700
700
  return t.year !== r && this._d.setFullYear(this._d.getFullYear() + t.year), t.month !== r && this._d.setMonth(this._d.getMonth() + t.month), t.day !== r && this._d.setDate(this._d.getDate() + t.day), t.hours !== r && this._d.setHours(this._d.getHours() + t.hours), t.minutes !== r && this._d.setMinutes(this._d.getMinutes() + t.minutes), t.seconds !== r && this._d.setSeconds(this._d.getSeconds() + t.seconds), t.milliseconds !== r && this._d.setMilliseconds(this._d.getMilliseconds() + t.milliseconds), this;
701
- }, s = function(t, n, c) {
702
- return new E(t, n, c);
701
+ }, s = function(t, n, f) {
702
+ return new T(t, n, f);
703
703
  }, s.MIN_YEAR = 1e3, s.MAX_YEAR = 3e3, s.MIN_MONTH = 1, s.MAX_MONTH = 12, s.MIN_DAY = 1, s.MAX_DAY_IN_MONTHS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], s.MIN_DAY_OF_WEEK = 0, s.MAX_DAY_OF_WEEK = 6, s.MIN_HOURS = 0, s.MAX_HOURS = 23, s.MIN_MINUTES = 0, s.MAX_MINUTES = 59, s.MIN_SECONDS = 0, s.MAX_SECONDS = 59, s.MIN_MILLISECONDS = 0, s.MAX_MILLISECONDS = 999, s.VERSION = "0.2.18", s.options = function(t, n) {
704
704
  if (t === r)
705
705
  return tt;
@@ -710,108 +710,108 @@ https://github.com/douglascrockford/JSON-js/blob/master/json2.js`) : n(JSON.pars
710
710
  }
711
711
  return r;
712
712
  }, s.noConflict = function() {
713
- return i.tempus = l, s;
713
+ return i.tempus = u, s;
714
714
  }, s.generate = function(t) {
715
- var n, c, f, L, _, T, J, Y;
716
- if (typeof t.dateFrom != "number" && (t.dateFrom instanceof E ? n = t.dateFrom.utc() : n = s(t.dateFrom, t.formatFrom).utc()), typeof t.dateTo != "number" && (t.dateTo instanceof E ? c = t.dateTo.utc() : c = s(t.dateTo, t.formatTo !== r ? t.formatTo : t.formatFrom).utc()), typeof t.period == "number" ? _ = {
715
+ var n, f, m, I, y, R, j, C;
716
+ if (typeof t.dateFrom != "number" && (t.dateFrom instanceof T ? n = t.dateFrom.utc() : n = s(t.dateFrom, t.formatFrom).utc()), typeof t.dateTo != "number" && (t.dateTo instanceof T ? f = t.dateTo.utc() : f = s(t.dateTo, t.formatTo !== r ? t.formatTo : t.formatFrom).utc()), typeof t.period == "number" ? y = {
717
717
  year: 0,
718
718
  month: 0,
719
719
  day: 0,
720
720
  hours: 0,
721
721
  minutes: 0,
722
722
  seconds: t.period
723
- } : typeof t.period == "string" ? _ = {
723
+ } : typeof t.period == "string" ? y = {
724
724
  year: t.period === "year" ? 1 : 0,
725
725
  month: t.period === "month" ? 1 : 0,
726
726
  day: t.period === "day" ? 1 : 0,
727
727
  hours: t.period === "hours" ? 1 : 0,
728
728
  minutes: t.period === "minutes" ? 1 : 0,
729
729
  seconds: t.period === "seconds" ? 1 : 0
730
- } : typeof t.period == "object" && (_ = {
730
+ } : typeof t.period == "object" && (y = {
731
731
  year: t.period.year !== r ? t.period.year : 0,
732
732
  month: t.period.month !== r ? t.period.month : 0,
733
733
  day: t.period.day !== r ? t.period.day : 0,
734
734
  hours: t.period.hours !== r ? t.period.hours : 0,
735
735
  minutes: t.period.minutes !== r ? t.period.minutes : 0,
736
736
  seconds: t.period.seconds !== r ? t.period.seconds : 0
737
- }), t.groupBy === r ? T = t.asObject === !0 ? {} : [] : (T = [], T.push([]), J = s(n).get()[t.groupBy]), Y = function(W, D, k) {
738
- return t.asObject === !0 ? t.format !== r ? W[s(D).format(t.format)] = {} : W[s(D).format("%F %H:%M:%S")] = {} : t.format !== r ? W.push(k ? null : s(D).format(t.format)) : W.push(k ? null : s(D)), W;
737
+ }), t.groupBy === r ? R = t.asObject === !0 ? {} : [] : (R = [], R.push([]), j = s(n).get()[t.groupBy]), C = function(x, B, w) {
738
+ return t.asObject === !0 ? t.format !== r ? x[s(B).format(t.format)] = {} : x[s(B).format("%F %H:%M:%S")] = {} : t.format !== r ? x.push(w ? null : s(B).format(t.format)) : x.push(w ? null : s(B)), x;
739
739
  }, t.groupBy !== r && t.fillNulls) {
740
- var U = {
741
- year: _.year ? -_.year : r,
742
- month: _.month ? -_.month : r,
743
- day: _.day ? -_.day : r,
744
- hours: _.hours ? -_.hours : r,
745
- minutes: _.minutes ? -_.minutes : r,
746
- seconds: _.seconds ? -_.seconds : r,
747
- milliseconds: _.milliseconds ? -_.milliseconds : r
740
+ var Y = {
741
+ year: y.year ? -y.year : r,
742
+ month: y.month ? -y.month : r,
743
+ day: y.day ? -y.day : r,
744
+ hours: y.hours ? -y.hours : r,
745
+ minutes: y.minutes ? -y.minutes : r,
746
+ seconds: y.seconds ? -y.seconds : r,
747
+ milliseconds: y.milliseconds ? -y.milliseconds : r
748
748
  };
749
- for (f = s(n).calc(U).utc(); s(f).get()[t.groupBy] === J; )
750
- Y(T[T.length - 1], f, !0), f = s(f).calc(U).utc();
749
+ for (m = s(n).calc(Y).utc(); s(m).get()[t.groupBy] === j; )
750
+ C(R[R.length - 1], m, !0), m = s(m).calc(Y).utc();
751
751
  if (t.groupBy === "week") {
752
- var b = s(n).dayOfWeek();
753
- for (f = s(n).dayOfWeek(0).utc(); T[0].length < b && f < n; )
754
- Y(T[T.length - 1], f, !0), f = s(f).calc(_).utc();
752
+ var D = s(n).dayOfWeek();
753
+ for (m = s(n).dayOfWeek(0).utc(); R[0].length < D && m < n; )
754
+ C(R[R.length - 1], m, !0), m = s(m).calc(y).utc();
755
755
  }
756
756
  }
757
- for (; n <= c; )
758
- t.groupBy === r ? Y(T, n) : s(n).get()[t.groupBy] === J ? Y(T[T.length - 1], n) : (T.push([]), Y(T[T.length - 1], n), J = s(n).get()[t.groupBy]), n = s(n).calc(_).utc();
757
+ for (; n <= f; )
758
+ t.groupBy === r ? C(R, n) : s(n).get()[t.groupBy] === j ? C(R[R.length - 1], n) : (R.push([]), C(R[R.length - 1], n), j = s(n).get()[t.groupBy]), n = s(n).calc(y).utc();
759
759
  if (t.groupBy !== r && t.fillNulls)
760
- for (L = s(c).calc(_).utc(); s(L).get()[t.groupBy] === J; )
761
- Y(T[T.length - 1], L, !0), L = s(L).calc(_).utc();
762
- return T;
760
+ for (I = s(f).calc(y).utc(); s(I).get()[t.groupBy] === j; )
761
+ C(R[R.length - 1], I, !0), I = s(I).calc(y).utc();
762
+ return R;
763
763
  }, s.monthNames = function(t) {
764
764
  switch (t) {
765
765
  case "long":
766
- return P;
766
+ return U;
767
767
  default:
768
- return H;
768
+ return P;
769
769
  }
770
770
  }, s.dayNames = function(t) {
771
771
  switch (t) {
772
772
  case "long":
773
- return I;
773
+ return W;
774
774
  default:
775
- return M;
775
+ return b;
776
776
  }
777
777
  }, s.lang = function(t) {
778
778
  if (t !== r)
779
- a = t, u[a] === r && (a = "en"), P = y(), H = O(), I = R(), M = G();
779
+ l = t, A[l] === r && (l = "en"), U = g(), P = N(), W = O(), b = L();
780
780
  else
781
- return a;
781
+ return l;
782
782
  return r;
783
783
  }, s.availableLangs = function() {
784
- return Object.keys(u);
785
- }, s.registerFormat = function(t, n, c, f, L, _) {
786
- B[t] = {
784
+ return Object.keys(A);
785
+ }, s.registerFormat = function(t, n, f, m, I, y) {
786
+ S[t] = {
787
787
  format: n,
788
- parse: c,
789
- minLength: f,
790
- maxLength: L,
791
- type: _
788
+ parse: f,
789
+ minLength: m,
790
+ maxLength: I,
791
+ type: y
792
792
  };
793
793
  }, s.unregisterFormat = function(t) {
794
- delete B[t];
794
+ delete S[t];
795
795
  }, s.detectFormat = function(t) {
796
- var n, c, f;
797
- return n = m(t, 0), n !== "" && (f = 10), c = t.charAt(f), (c === "T" || c === " ") && (n += c, f += 1), n += h(t, f), n;
796
+ var n, f, m;
797
+ return n = h(t, 0), n !== "" && (m = 10), f = t.charAt(m), (f === "T" || f === " ") && (n += f, m += 1), n += c(t, m), n;
798
798
  }, d = {
799
- TempusDate: E
799
+ TempusDate: T
800
800
  }, s.classes = function(t, n) {
801
801
  if (n === r)
802
802
  return d[t];
803
803
  d[t] = n;
804
804
  }, s.loadTranslations = function(t) {
805
- typeof t == "object" ? u = t : typeof t == "string" && q(t, function(n) {
806
- u = n;
805
+ typeof t == "object" ? A = t : typeof t == "string" && k(t, function(n) {
806
+ A = n;
807
807
  }, function(n) {
808
808
  });
809
- }, a = (g.language || g.systemLanguage || g.userLanguage || "en").substr(0, 2).toLowerCase(), u[a] === r && (a = "en"), P = y(), H = O(), I = R(), M = G(), N.exports && (e = N.exports = s), e.tempus = s;
809
+ }, l = (p.language || p.systemLanguage || p.userLanguage || "en").substr(0, 2).toLowerCase(), A[l] === r && (l = "en"), U = g(), P = N(), W = O(), b = L(), _.exports && (e = _.exports = s), e.tempus = s;
810
810
  }).call(yt);
811
- })(lt, lt.exports);
812
- var Tt = lt.exports;
811
+ })(ct, ct.exports);
812
+ var Tt = ct.exports;
813
813
  const et = /* @__PURE__ */ Et(Tt);
814
- class j {
814
+ class v {
815
815
  constructor(e) {
816
816
  this.callBatch = e, this.result = {}, this.errors = {}, this.limit = 50, this.canContinue = !0, this.progressCall = "", this.limitCall = "", this.progressData = "", this.progressTimer = "", this.progressDelay = 100, this.oldPercent = "no", this.chunkRate = 1, this.totalProgress = 0, this.skipList = /* @__PURE__ */ new Set();
817
817
  }
@@ -832,9 +832,9 @@ class j {
832
832
  if (!this.progressData)
833
833
  return { percent: Math.round(e), allCount: 0, allTotal: 0 };
834
834
  let r = 0, i = 0;
835
- return Object.values(this.progressData).forEach((A) => {
836
- const { total: o, count: h } = A;
837
- r += o ?? 0, i += h ?? 0;
835
+ return Object.values(this.progressData).forEach((o) => {
836
+ const { total: a, count: c } = o;
837
+ r += a ?? 0, i += c ?? 0;
838
838
  }), r ? e = i / r * 100 * this.chunkRate + this.totalProgress : i === 0 && r === 0 ? e = 100 * this.chunkRate + this.totalProgress : e = 100, { percent: Math.round(e), allCount: i, allTotal: r };
839
839
  }
840
840
  /**
@@ -845,18 +845,18 @@ class j {
845
845
  * @param {string} params.type - Тип обработки ('count' или undefined)
846
846
  */
847
847
  setProgressData({ key: e, value: r, type: i }) {
848
- const A = this.getData(r.data()), o = Array.isArray(A) ? A.length : 0;
849
- let h = r.total() || o;
850
- i === "count" && (h = o);
851
- let m = 1;
852
- A && (m = o), this.progressCall && (this.progressData || (this.progressData = {}), this.progressData[e] && this.progressData[e].count && (m += this.progressData[e].count), this.progressData[e] ? this.progressData[e].count = m : this.progressData[e] = { total: h, count: m }, this.progressTimer || (this.progressTimer = setInterval(() => {
853
- const { percent: l, allCount: s, allTotal: d } = this.progressPercent;
848
+ const o = this.getData(r.data()), a = Array.isArray(o) ? o.length : 0;
849
+ let c = r.total() || a;
850
+ i === "count" && (c = a);
851
+ let h = 1;
852
+ o && (h = a), this.progressCall && (this.progressData || (this.progressData = {}), this.progressData[e] && this.progressData[e].count && (h += this.progressData[e].count), this.progressData[e] ? this.progressData[e].count = h : this.progressData[e] = { total: c, count: h }, this.progressTimer || (this.progressTimer = setInterval(() => {
853
+ const { percent: u, allCount: s, allTotal: d } = this.progressPercent;
854
854
  (this.oldPercent === "no" || this.oldPercent < this.progressPercent.percent) && (this.progressCall({
855
855
  data: this.progressData,
856
- percent: l,
856
+ percent: u,
857
857
  allCount: s,
858
858
  allTotal: d
859
- }), this.oldPercent = this.progressPercent.percent), l >= 100 && this.clearProgressData();
859
+ }), this.oldPercent = this.progressPercent.percent), u >= 100 && this.clearProgressData();
860
860
  }, this.progressDelay)));
861
861
  }
862
862
  /**
@@ -866,6 +866,70 @@ class j {
866
866
  delay() {
867
867
  return new Promise((e) => setTimeout(e, 500));
868
868
  }
869
+ /**
870
+ * Обертка над callBatch с таймаутом для предотвращения зависаний
871
+ * При ошибках CORS или 503 Service Unavailable callBatch может зависнуть,
872
+ * поэтому добавляем таймаут в 30 секунд
873
+ * @param {Object} chunk - Объект с методами для выполнения
874
+ * @param {Function} callback - Callback функция для обработки результата
875
+ * @returns {Promise<void>}
876
+ */
877
+ callBatchWithTimeout(e, r) {
878
+ return new Promise((i, o) => {
879
+ let a = !1;
880
+ const c = 3e4;
881
+ let h = !1, u = !1, s = !1, d = null, p = null;
882
+ const l = async (N, O) => {
883
+ if (!a) {
884
+ a = !0, d && clearTimeout(d), p && clearTimeout(p);
885
+ try {
886
+ await Promise.resolve(r(N)), i();
887
+ } catch (L) {
888
+ console.error(`Error in callBatch callback (attempt ${O}):`, L), o(L);
889
+ }
890
+ }
891
+ }, A = async () => {
892
+ if (!a) {
893
+ a = !0, d && clearTimeout(d), p && clearTimeout(p), console.warn(
894
+ `Batch request timeout after ${c}ms on both attempts. This may indicate a CORS or network error.`
895
+ );
896
+ const N = {};
897
+ Object.keys(e).forEach((O) => {
898
+ N[O] = {
899
+ error: () => ({
900
+ ex: {
901
+ error: "TIMEOUT",
902
+ error_description: "Request timeout after 30 seconds. Possible CORS or network error."
903
+ }
904
+ }),
905
+ data: () => [],
906
+ total: () => 0
907
+ };
908
+ });
909
+ try {
910
+ await Promise.resolve(r(N)), i();
911
+ } catch (O) {
912
+ console.error("Error in timeout callback:", O), i();
913
+ }
914
+ }
915
+ }, g = (N) => {
916
+ try {
917
+ this.callBatch(e, async (O) => {
918
+ N === 1 && !h && !a ? (h = !0, await l(O, 1)) : N === 2 && !s && !a && (s = !0, await l(O, 2));
919
+ });
920
+ } catch (O) {
921
+ a || console.error(`Error calling callBatch (attempt ${N}):`, O);
922
+ }
923
+ };
924
+ g(1), d = setTimeout(async () => {
925
+ !h && !a && !u && (console.warn(
926
+ `First batch request attempt timeout after ${c}ms. Starting second attempt...`
927
+ ), u = !0, g(2), p = setTimeout(async () => {
928
+ !h && !s && !a && await A();
929
+ }, c));
930
+ }, c);
931
+ });
932
+ }
869
933
  /**
870
934
  * Остановка выполнения batch запросов
871
935
  */
@@ -885,24 +949,24 @@ class j {
885
949
  */
886
950
  async batch(e, r, i) {
887
951
  this.progressTimer && this.clearProgressData(), r && (this.progressCall = r), i && (this.limitCall = i), this.canContinue = !0, this.result = {}, this.errors = {};
888
- const A = {};
952
+ const o = {};
889
953
  this.chunkRate = (1 / Math.ceil(Object.keys(e).length / this.limit)).toFixed(5);
890
- let o = {}, h = 0;
891
- for (const [m, l] of Object.entries(e)) {
954
+ let a = {}, c = 0;
955
+ for (const [h, u] of Object.entries(e)) {
892
956
  if (!this.canContinue)
893
957
  break;
894
- const s = this.arrayChunk(l);
958
+ const s = this.arrayChunk(u);
895
959
  if (!s) {
896
- h++;
960
+ c++;
897
961
  continue;
898
962
  }
899
- o[m] = s, (Object.keys(o).length >= 50 || h + 1 === Object.keys(e).length) && (await this.batchChunk(o), Object.entries(this.result).forEach(([d, g]) => {
900
- A[d] = g;
963
+ a[h] = s, (Object.keys(a).length >= 50 || c + 1 === Object.keys(e).length) && (await this.batchChunk(a), Object.entries(this.result).forEach(([d, p]) => {
964
+ o[d] = p;
901
965
  }), this.totalProgress = Math.round(
902
- h / Object.keys(e).length * 100
903
- ), o = {}), h++;
966
+ c / Object.keys(e).length * 100
967
+ ), a = {}), c++;
904
968
  }
905
- return Object.entries(this.errors).length && (A.errorsList = this.errors), r && r({ percent: 100 }), Promise.resolve(A);
969
+ return Object.entries(this.errors).length && (o.errorsList = this.errors), r && r({ percent: 100 }), Promise.resolve(o);
906
970
  }
907
971
  /**
908
972
  * Аналогично this.batch, но возвращает количество элементов
@@ -916,24 +980,24 @@ class j {
916
980
  */
917
981
  async batchTotalCount(e, r, i) {
918
982
  this.progressTimer && this.clearProgressData(), r && (this.progressCall = r), i && (this.limitCall = i), this.canContinue = !0, this.result = {}, this.errors = {};
919
- const A = {};
983
+ const o = {};
920
984
  this.chunkRate = (1 / Math.ceil(Object.keys(e).length / this.limit)).toFixed(5);
921
- let o = {}, h = 0;
922
- for (const [m, l] of Object.entries(e)) {
985
+ let a = {}, c = 0;
986
+ for (const [h, u] of Object.entries(e)) {
923
987
  if (!this.canContinue)
924
988
  break;
925
- const s = this.arrayChunk(l);
989
+ const s = this.arrayChunk(u);
926
990
  if (!s) {
927
- h++;
991
+ c++;
928
992
  continue;
929
993
  }
930
- o[m] = s, (Object.keys(o).length >= 50 || h + 1 === Object.keys(e).length) && (await this.batchChunk(o, "count"), Object.entries(this.result).forEach(([d, g]) => {
931
- A[d] = g;
994
+ a[h] = s, (Object.keys(a).length >= 50 || c + 1 === Object.keys(e).length) && (await this.batchChunk(a, "count"), Object.entries(this.result).forEach(([d, p]) => {
995
+ o[d] = p;
932
996
  }), this.totalProgress = Math.round(
933
- h / Object.keys(e).length * 100
934
- ), o = {}), h++;
997
+ c / Object.keys(e).length * 100
998
+ ), a = {}), c++;
935
999
  }
936
- return Object.entries(this.errors).length && (A.errorsList = this.errors), r && r({ percent: 100 }), Promise.resolve(A);
1000
+ return Object.entries(this.errors).length && (o.errorsList = this.errors), r && r({ percent: 100 }), Promise.resolve(o);
937
1001
  }
938
1002
  /** Валидация запросов
939
1003
  * Чтобы не перегружать Битрикс сервера запросами с start - добавляем нужные поля в параметры
@@ -951,9 +1015,9 @@ class j {
951
1015
  };
952
1016
  else {
953
1017
  r === "tasks.task.list" ? (i.order || (i.order = {}), i.order.ID = "asc") : r === "user.get" ? (i.sort || (i.sort = "ID"), i.order || (i.order = "ASC")) : i.order = { ID: "ASC", id: "ASC" }, Array.isArray(i.select) && !i.select.includes("ID") && i.select.push("ID");
954
- const A = r === "user.get" ? i.FILTER : i.filter;
955
- typeof A == "object" && A !== null && !Array.isArray(A) && Object.entries(A).forEach(([o, h]) => {
956
- (i.start === void 0 || i.start !== -1) && ["id", "ID"].includes(o) && (typeof h == "string" || Array.isArray(h) && h.length <= 50) && (i.start = -1);
1018
+ const o = r === "user.get" ? i.FILTER : i.filter;
1019
+ typeof o == "object" && o !== null && !Array.isArray(o) && Object.entries(o).forEach(([a, c]) => {
1020
+ (i.start === void 0 || i.start !== -1) && ["id", "ID"].includes(a) && (typeof c == "string" || Array.isArray(c) && c.length <= 50) && (i.start = -1);
957
1021
  });
958
1022
  }
959
1023
  r === "crm.type.list" && i.order && delete i.order.ID;
@@ -963,8 +1027,8 @@ class j {
963
1027
  i = [{ ID: "ASC" }, [""], [""], ["ID"]];
964
1028
  else {
965
1029
  Array.isArray(i[0]) && (i[0] = {});
966
- const [A, o, h, m] = i;
967
- A.ID = "ASC", m[0] !== "" && m.includes("ID") || m.push("ID");
1030
+ const [o, a, c, h] = i;
1031
+ o.ID = "ASC", h[0] !== "" && h.includes("ID") || h.push("ID");
968
1032
  }
969
1033
  return { method: r, params: i };
970
1034
  }
@@ -976,41 +1040,42 @@ class j {
976
1040
  */
977
1041
  async batchChunk(e, r) {
978
1042
  return new Promise((i) => {
979
- const A = [];
980
- let o;
981
- this.callBatch(e, async (h) => {
982
- var m, l, s, d, g, a, u;
983
- for (const [y, O] of Object.entries(h)) {
1043
+ const o = [];
1044
+ let a;
1045
+ this.callBatchWithTimeout(e, async (c) => {
1046
+ var h, u, s, d, p, l, A;
1047
+ for (const [g, N] of Object.entries(c)) {
984
1048
  if (!this.canContinue)
985
1049
  return;
986
- if (O.error())
987
- switch (this.errors[y] = ((l = (m = O.error()) == null ? void 0 : m.ex) == null ? void 0 : l.error) ?? ((d = (s = O.error()) == null ? void 0 : s.ex) == null ? void 0 : d.error_description) ?? ((g = O.error()) == null ? void 0 : g.toString()) ?? "Неизвестная ошибка", o = !0, ((u = (a = O.error()) == null ? void 0 : a.ex) == null ? void 0 : u.error) ?? "") {
1050
+ if (N.error())
1051
+ switch (this.errors[g] = ((u = (h = N.error()) == null ? void 0 : h.ex) == null ? void 0 : u.error) ?? ((d = (s = N.error()) == null ? void 0 : s.ex) == null ? void 0 : d.error_description) ?? ((p = N.error()) == null ? void 0 : p.toString()) ?? "Неизвестная ошибка", a = !0, ((A = (l = N.error()) == null ? void 0 : l.ex) == null ? void 0 : A.error) ?? "") {
988
1052
  case "OPERATION_TIME_LIMIT":
989
- this.skipList.add(e[y].method), this.limitCall && this.limitCall(y);
990
- break;
991
- case "QUERY_LIMIT_EXCEEDED":
992
- this.canContinue = !1;
1053
+ this.skipList.add(e[g].method), this.limitCall && this.limitCall(g);
993
1054
  break;
994
1055
  case "ACCESS_DENIED":
995
- this.skipList.add(e[y].method);
1056
+ this.skipList.add(e[g].method);
1057
+ break;
1058
+ case "TIMEOUT":
1059
+ let k = e[g], S = "";
1060
+ Array.isArray(k) ? [S] = k : k != null && k.method && (S = k.method), S && this.skipList.add(S), this.limitCall && this.limitCall(g);
996
1061
  break;
997
1062
  }
998
- const R = this.getData(O.data()), G = Array.isArray(R) ? R.length : 0, P = typeof O.total == "function" && O.total() !== void 0, H = P ? O.total() : G;
999
- r === "count" ? this.result[y] ? this.result[y] += G : this.result[y] = H : this.result[y] = R, this.setProgressData({ key: y, value: O, type: r });
1000
- const I = r === "count" ? !P && G === this.limit : H > this.limit && H > G;
1001
- if (!this.canContinue || I) {
1002
- let M = e[y];
1003
- if (Array.isArray(M)) {
1004
- const [q, B = {}] = M;
1005
- M = [q, B];
1063
+ const O = this.getData(N.data()), L = Array.isArray(O) ? O.length : 0, U = typeof N.total == "function" && N.total() !== void 0, P = U ? N.total() : L;
1064
+ r === "count" ? this.result[g] ? this.result[g] += L : this.result[g] = P : this.result[g] = O, this.setProgressData({ key: g, value: N, type: r });
1065
+ const W = r === "count" ? !U && L === this.limit : P > this.limit && P > L;
1066
+ if (!this.canContinue || W) {
1067
+ let b = e[g];
1068
+ if (Array.isArray(b)) {
1069
+ const [k, S = {}] = b;
1070
+ b = [k, S];
1006
1071
  } else {
1007
- const { method: q, params: B = {} } = M;
1008
- M = [q, B];
1072
+ const { method: k, params: S = {} } = b;
1073
+ b = [k, S];
1009
1074
  }
1010
- A.push([y, M, H]);
1075
+ o.push([g, b, P]);
1011
1076
  }
1012
1077
  }
1013
- o > 0 && this.errorLogger(), A.length ? await this.batchPayload(A, r).then(
1078
+ a > 0 && this.errorLogger(), o.length ? await this.batchPayload(o, r).then(
1014
1079
  () => i(this.result)
1015
1080
  ) : i(this.result);
1016
1081
  });
@@ -1021,83 +1086,81 @@ class j {
1021
1086
  * @param {String} type - Тип обработки результатов ('count' или undefined)
1022
1087
  */
1023
1088
  async batchPayload(e, r) {
1024
- const i = /* @__PURE__ */ new Map(), A = (l, s, d, g) => {
1025
- let a = "ID";
1026
- this.result[l][this.result[l].length - 1].ID || (a = "id");
1027
- let u = `${a}`;
1028
- if (JSON.stringify(g[1]).toLocaleLowerCase().includes('"id":"desc"') ? u = "<" + u : u = ">" + u, s === 1 || d.length === 0)
1089
+ const i = /* @__PURE__ */ new Map(), o = (u, s, d, p) => {
1090
+ let l = "ID";
1091
+ this.result[u][this.result[u].length - 1].ID || (l = "id");
1092
+ let A = `${l}`;
1093
+ if (JSON.stringify(p[1]).toLocaleLowerCase().includes('"id":"desc"') ? A = "<" + A : A = ">" + A, s === 1 || d.length === 0)
1029
1094
  return {
1030
- field: u,
1031
- id: this.result[l][this.result[l].length - 1][a]
1095
+ field: A,
1096
+ id: this.result[u][this.result[u].length - 1][l]
1032
1097
  };
1033
- let O = "";
1034
- const [R, G] = g;
1035
- return (R === "tasks.task.list" || R === "task.item.list") && (O = "[tasks]"), ["crm.item.list", "crm.stagehistory.list"].includes(R) && (O = "[items]"), R === "crm.type.list" && (O = "[types]"), R === "socialnetwork.api.workgroup.list" && (O = "[workgroups]"), {
1036
- field: u,
1037
- id: `$result[${[l, s - 1].join("__")}]${O}[49][${a}]`
1098
+ let N = "";
1099
+ const [O, L] = p;
1100
+ return (O === "tasks.task.list" || O === "task.item.list") && (N = "[tasks]"), ["crm.item.list", "crm.stagehistory.list"].includes(O) && (N = "[items]"), O === "crm.type.list" && (N = "[types]"), O === "socialnetwork.api.workgroup.list" && (N = "[workgroups]"), {
1101
+ field: A,
1102
+ id: `$result[${[u, s - 1].join("__")}]${N}[49][${l}]`
1038
1103
  };
1039
- }, o = (l, s) => {
1040
- const [d, g] = l;
1041
- let a = JSON.parse(JSON.stringify(g)), u;
1104
+ }, a = (u, s) => {
1105
+ const [d, p] = u;
1106
+ let l = JSON.parse(JSON.stringify(p)), A;
1042
1107
  if (d === "task.item.list") {
1043
- a = [...a];
1044
- const [y, O, R, G] = a;
1045
- return O[s.field] = s.id, [d, a];
1108
+ l = [...l];
1109
+ const [g, N, O, L] = l;
1110
+ return N[s.field] = s.id, [d, l];
1046
1111
  }
1047
- return ["user.get"].includes(d) || a.FILTER ? (a.FILTER || (a.FILTER = {}), u = a.FILTER) : (a.filter || (a.filter = {}), u = a.filter), [
1112
+ return ["user.get"].includes(d) || l.FILTER ? (l.FILTER || (l.FILTER = {}), A = l.FILTER) : (l.filter || (l.filter = {}), A = l.filter), [
1048
1113
  "socialnetwork.api.workgroup.list",
1049
1114
  "tasks.task.list"
1050
- ].includes(d) ? u[">ID"] = s.id : u[s.field] = s.id, [d, { ...a, start: -1 }];
1051
- }, h = (l) => {
1052
- Object.entries(l).forEach(([s, d]) => {
1053
- var u, y, O, R, G, P, H;
1054
- const [g] = s.split("__"), a = this.getData(d.data());
1055
- if (Array.isArray(a) && (r === "count" ? this.result[g] += a.length : this.result[g].push(...a)), d.error()) {
1056
- this.errors[g] = ((y = (u = d.error()) == null ? void 0 : u.ex) == null ? void 0 : y.error) ?? ((R = (O = d.error()) == null ? void 0 : O.ex) == null ? void 0 : R.error_description) ?? ((G = d.error()) == null ? void 0 : G.toString()) ?? "Неизвестная ошибка";
1057
- const I = ((H = (P = d.error()) == null ? void 0 : P.ex) == null ? void 0 : H.error) ?? "";
1058
- if (I === "OPERATION_TIME_LIMIT") {
1059
- this.limitCall && this.limitCall(g);
1060
- const M = i.get(g);
1061
- switch (I) {
1062
- case "OPERATION_TIME_LIMIT":
1063
- M && (this.skipList.add(M), this.limitCall && this.limitCall(g));
1064
- break;
1065
- case "QUERY_LIMIT_EXCEEDED":
1066
- this.canContinue = !1;
1067
- break;
1068
- case "ACCESS_DENIED":
1069
- this.skipList.add(M);
1070
- break;
1071
- }
1115
+ ].includes(d) ? A[">ID"] = s.id : A[s.field] = s.id, [d, { ...l, start: -1 }];
1116
+ }, c = (u) => {
1117
+ Object.entries(u).forEach(([s, d]) => {
1118
+ var A, g, N, O, L, U, P;
1119
+ const [p] = s.split("__"), l = this.getData(d.data());
1120
+ if (Array.isArray(l) && (r === "count" ? this.result[p] += l.length : this.result[p].push(...l)), d.error()) {
1121
+ this.errors[p] = ((g = (A = d.error()) == null ? void 0 : A.ex) == null ? void 0 : g.error) ?? ((O = (N = d.error()) == null ? void 0 : N.ex) == null ? void 0 : O.error_description) ?? ((L = d.error()) == null ? void 0 : L.toString()) ?? "Неизвестная ошибка";
1122
+ const W = ((P = (U = d.error()) == null ? void 0 : U.ex) == null ? void 0 : P.error) ?? "", b = i.get(p);
1123
+ switch (W) {
1124
+ case "OPERATION_TIME_LIMIT":
1125
+ b && (this.skipList.add(b), this.limitCall && this.limitCall(p));
1126
+ break;
1127
+ case "QUERY_LIMIT_EXCEEDED":
1128
+ this.canContinue = !1;
1129
+ break;
1130
+ case "ACCESS_DENIED":
1131
+ b && this.skipList.add(b);
1132
+ break;
1133
+ case "TIMEOUT":
1134
+ b && (this.skipList.add(b), this.limitCall && this.limitCall(p));
1135
+ break;
1072
1136
  }
1073
1137
  }
1074
- this.setProgressData({ key: g, value: d, type: r });
1138
+ this.setProgressData({ key: p, value: d, type: r });
1075
1139
  });
1076
1140
  };
1077
- let m = [];
1078
- for await (const [l, s, d] of e) {
1141
+ let h = [];
1142
+ for await (const [u, s, d] of e) {
1079
1143
  if (!this.canContinue)
1080
1144
  return;
1081
- const [g] = s;
1082
- if (i.set(l, g), this.skipList.has(g))
1145
+ const [p] = s;
1146
+ if (i.set(u, p), this.skipList.has(p))
1083
1147
  continue;
1084
- let a = 1;
1085
- for (; d > a * 50 && !this.skipList.has(g); ) {
1086
- const u = [l, a].join("__"), y = A(l, a, m, s);
1087
- m.push([u, o(s, y)]), m.length % 50 === 0 && (await new Promise(
1088
- (O) => this.callBatch(
1089
- Object.fromEntries(m),
1090
- (R) => {
1091
- h(R), O();
1092
- }
1093
- )
1094
- ), m = [], await this.delay()), a++;
1148
+ let l = 1;
1149
+ for (; d > l * 50 && !this.skipList.has(p); ) {
1150
+ const A = [u, l].join("__"), g = o(u, l, h, s);
1151
+ h.push([A, a(s, g)]), h.length % 50 === 0 && (await this.callBatchWithTimeout(
1152
+ Object.fromEntries(h),
1153
+ (N) => {
1154
+ c(N);
1155
+ }
1156
+ ), h = [], await this.delay()), l++;
1095
1157
  }
1096
1158
  }
1097
- m.length && (await new Promise(
1098
- (l) => this.callBatch(Object.fromEntries(m), (s) => {
1099
- h(s), l();
1100
- })
1159
+ h.length && (await this.callBatchWithTimeout(
1160
+ Object.fromEntries(h),
1161
+ (u) => {
1162
+ c(u);
1163
+ }
1101
1164
  ), await this.delay());
1102
1165
  }
1103
1166
  /**
@@ -1109,10 +1172,10 @@ class j {
1109
1172
  }), console.groupEnd();
1110
1173
  }
1111
1174
  }
1112
- var v;
1175
+ var K;
1113
1176
  class ut {
1114
1177
  constructor() {
1115
- w(this, v, {});
1178
+ H(this, K, {});
1116
1179
  }
1117
1180
  /**
1118
1181
  * Получить случайный хеш-код длиной 8 символов
@@ -1129,7 +1192,7 @@ class ut {
1129
1192
  createHash(e) {
1130
1193
  let r = "abcdefghijklmnopqrstuvwxyz0123456789", i = "";
1131
1194
  e = e || 6;
1132
- for (let A = 0; A < e; A++)
1195
+ for (let o = 0; o < e; o++)
1133
1196
  i += r.charAt(Math.floor(Math.random() * r.length));
1134
1197
  return i;
1135
1198
  }
@@ -1141,7 +1204,7 @@ class ut {
1141
1204
  * @param {Function} params.action - Функция для выполнения
1142
1205
  */
1143
1206
  actionFilter({ keyTimer: e, duration: r = 10, action: i }) {
1144
- p(this, v)[e] && (clearTimeout(p(this, v)[e]), p(this, v)[e] = null), i && (p(this, v)[e] = setTimeout(() => {
1207
+ E(this, K)[e] && (clearTimeout(E(this, K)[e]), E(this, K)[e] = null), i && (E(this, K)[e] = setTimeout(() => {
1145
1208
  i();
1146
1209
  }, r));
1147
1210
  }
@@ -1173,63 +1236,63 @@ class ut {
1173
1236
  * @param {string} filename - Имя файла без расширения
1174
1237
  */
1175
1238
  downloadFileJson(e, r) {
1176
- let i = new Blob([JSON.stringify(e)], { type: "application/json" }), A = URL.createObjectURL(i), o = document.createElement("a");
1177
- o.style.display = "none", o.href = A, o.download = `${r}.json`, document.body.appendChild(o), o.click(), setTimeout(() => {
1178
- document.body.removeChild(o), URL.revokeObjectURL(A);
1239
+ let i = new Blob([JSON.stringify(e)], { type: "application/json" }), o = URL.createObjectURL(i), a = document.createElement("a");
1240
+ a.style.display = "none", a.href = o, a.download = `${r}.json`, document.body.appendChild(a), a.click(), setTimeout(() => {
1241
+ document.body.removeChild(a), URL.revokeObjectURL(o);
1179
1242
  }, 200);
1180
1243
  }
1181
1244
  }
1182
- v = new WeakMap();
1183
- const ht = new ut();
1184
- var x, Q, Z, z, C, V, K, rt, ft, $, ct, st, mt, it, dt, nt, gt;
1245
+ K = new WeakMap();
1246
+ const lt = new ut();
1247
+ var X, Q, Z, z, G, V, q, rt, ft, $, ht, st, mt, it, dt, nt, gt;
1185
1248
  class Rt {
1186
1249
  constructor() {
1187
- w(this, rt);
1250
+ H(this, rt);
1188
1251
  /** Вывод ошибок логера
1189
1252
  * @param {'entity'} type - тип ошибки
1190
1253
  */
1191
- w(this, $);
1192
- w(this, st);
1193
- w(this, it);
1194
- w(this, nt);
1195
- w(this, x, "logger");
1196
- w(this, Q, !1);
1197
- w(this, Z, /* @__PURE__ */ new Map());
1198
- w(this, z, {});
1199
- w(this, C, null);
1200
- w(this, V, !1);
1201
- w(this, K, !1);
1254
+ H(this, $);
1255
+ H(this, st);
1256
+ H(this, it);
1257
+ H(this, nt);
1258
+ H(this, X, "logger");
1259
+ H(this, Q, !1);
1260
+ H(this, Z, /* @__PURE__ */ new Map());
1261
+ H(this, z, {});
1262
+ H(this, G, null);
1263
+ H(this, V, !1);
1264
+ H(this, q, !1);
1202
1265
  /** Очистка хранилища элементов старше 'N' месяцев */
1203
- S(this, "periodClear", 3);
1204
- X(this, rt, ft).call(this);
1266
+ M(this, "periodClear", 3);
1267
+ J(this, rt, ft).call(this);
1205
1268
  }
1206
1269
  /** Инициализация логера */
1207
1270
  async init() {
1208
1271
  try {
1209
- let e = new j(BX24.callBatch), { entityList: r } = await e.batch({
1272
+ let e = new v(BX24.callBatch), { entityList: r } = await e.batch({
1210
1273
  entityList: { method: "entity.get" }
1211
1274
  });
1212
1275
  if (r && Array.isArray(r))
1213
1276
  if (r.find(
1214
- (A) => A.ENTITY == p(this, x)
1277
+ (o) => o.ENTITY == E(this, X)
1215
1278
  ))
1216
1279
  F(this, Q, !0);
1217
1280
  else {
1218
- let { entityAdd: A } = await e.batch({
1281
+ let { entityAdd: o } = await e.batch({
1219
1282
  entityAdd: {
1220
1283
  method: "entity.add",
1221
1284
  params: {
1222
- ENTITY: p(this, x),
1223
- NAME: p(this, x),
1285
+ ENTITY: E(this, X),
1286
+ NAME: E(this, X),
1224
1287
  ACCESS: { AU: "X" }
1225
1288
  }
1226
1289
  }
1227
1290
  });
1228
- A && F(this, Q, !0);
1291
+ o && F(this, Q, !0);
1229
1292
  }
1230
- return X(this, it, dt).call(this).catch((i) => {
1293
+ return J(this, it, dt).call(this).catch((i) => {
1231
1294
  console.error("Ошибка при проверке периода очистки:", i);
1232
- }), p(this, Q);
1295
+ }), E(this, Q);
1233
1296
  } catch (e) {
1234
1297
  return console.error("Ошибка при инициализации логера:", e), !1;
1235
1298
  }
@@ -1244,20 +1307,20 @@ class Rt {
1244
1307
  * @returns {string|null}
1245
1308
  */
1246
1309
  start({ type: e, data: r }) {
1247
- if (!p(this, Q))
1248
- return X(this, $, ct).call(this, "entity"), null;
1310
+ if (!E(this, Q))
1311
+ return J(this, $, ht).call(this, "entity"), null;
1249
1312
  if (!e || !r)
1250
1313
  return console.error("Невалидные данные для логирования:", { type: e, data: r }), null;
1251
- const i = ht.hash, A = {
1314
+ const i = lt.hash, o = {
1252
1315
  type: e,
1253
1316
  data: r,
1254
- userInfo: p(this, z),
1317
+ userInfo: E(this, z),
1255
1318
  errorList: {},
1256
1319
  status: "",
1257
1320
  answer: null,
1258
1321
  date: (/* @__PURE__ */ new Date()).getTime()
1259
1322
  };
1260
- return p(this, Z).set(i, A), F(this, K, !0), i;
1323
+ return E(this, Z).set(i, o), F(this, q, !0), i;
1261
1324
  }
1262
1325
  /**
1263
1326
  * @param {{
@@ -1266,20 +1329,20 @@ class Rt {
1266
1329
  * status: 'success'|'fail'|'fail-runtime',
1267
1330
  * answer: { [key]: unknown } }}
1268
1331
  */
1269
- async stop({ key: e, errorList: r, status: i, answer: A }) {
1270
- var h;
1271
- if (!p(this, K))
1332
+ async stop({ key: e, errorList: r, status: i, answer: o }) {
1333
+ var c;
1334
+ if (!E(this, q))
1272
1335
  return;
1273
- if (!p(this, Q)) {
1274
- X(this, $, ct).call(this, "entity");
1336
+ if (!E(this, Q)) {
1337
+ J(this, $, ht).call(this, "entity");
1275
1338
  return;
1276
1339
  }
1277
- let o = p(this, Z).get(e);
1278
- if (!o) {
1340
+ let a = E(this, Z).get(e);
1341
+ if (!a) {
1279
1342
  console.error(`Не найдены данные логирования для ключа: ${e}`);
1280
1343
  return;
1281
1344
  }
1282
- r && (o.errorList = r), i && (o.status = i), A && (o.answer = A), await X(this, st, mt).call(this), (h = o == null ? void 0 : o.data) != null && h.updateList && F(this, V, !0), F(this, K, !1);
1345
+ r && (a.errorList = r), i && (a.status = i), o && (a.answer = o), await J(this, st, mt).call(this), (c = a == null ? void 0 : a.data) != null && c.updateList && F(this, V, !0), F(this, q, !1);
1283
1346
  }
1284
1347
  /**
1285
1348
  * @param { ({percent}:{percent:number})=>{} } progressCall - коллбэк
@@ -1287,35 +1350,35 @@ class Rt {
1287
1350
  async getEntityList(e) {
1288
1351
  var r;
1289
1352
  try {
1290
- if ((r = p(this, C)) != null && r.length && !p(this, V))
1291
- return p(this, C);
1292
- let i = new j(BX24.callBatch), { entityList: A } = await i.batch(
1353
+ if ((r = E(this, G)) != null && r.length && !E(this, V))
1354
+ return E(this, G);
1355
+ let i = new v(BX24.callBatch), { entityList: o } = await i.batch(
1293
1356
  {
1294
1357
  entityList: {
1295
1358
  method: "entity.item.get",
1296
1359
  params: {
1297
- ENTITY: p(this, x),
1360
+ ENTITY: E(this, X),
1298
1361
  SORT: { ID: "DESC" }
1299
1362
  }
1300
1363
  }
1301
1364
  },
1302
1365
  e
1303
1366
  );
1304
- return !A || !Array.isArray(A) ? (console.warn("Получен невалидный список записей"), []) : (A = A.map((o) => {
1367
+ return !o || !Array.isArray(o) ? (console.warn("Получен невалидный список записей"), []) : (o = o.map((a) => {
1305
1368
  try {
1306
- const { ID: h, DATE_CREATE: m, DETAIL_TEXT: l } = o;
1369
+ const { ID: c, DATE_CREATE: h, DETAIL_TEXT: u } = a;
1307
1370
  return {
1308
- ...JSON.parse(l),
1309
- id: h,
1310
- dateCreate: m
1371
+ ...JSON.parse(u),
1372
+ id: c,
1373
+ dateCreate: h
1311
1374
  };
1312
- } catch (h) {
1375
+ } catch (c) {
1313
1376
  return console.error(
1314
- `Ошибка парсинга записи ${o.ID}:`,
1315
- h
1377
+ `Ошибка парсинга записи ${a.ID}:`,
1378
+ c
1316
1379
  ), null;
1317
1380
  }
1318
- }).filter((o) => o !== null), F(this, V, !1), F(this, C, A), A);
1381
+ }).filter((a) => a !== null), F(this, V, !1), F(this, G, o), o);
1319
1382
  } catch (i) {
1320
1383
  return console.error("Ошибка при получении списка записей:", i), [];
1321
1384
  }
@@ -1323,11 +1386,11 @@ class Rt {
1323
1386
  /** Выгрузка всех данных из хранилища в JSON-файл */
1324
1387
  async downAllEntityJson() {
1325
1388
  try {
1326
- if (p(this, C) || await this.getEntityList(), !p(this, C) || p(this, C).length === 0)
1389
+ if (E(this, G) || await this.getEntityList(), !E(this, G) || E(this, G).length === 0)
1327
1390
  return console.warn("Нет данных для выгрузки"), !1;
1328
1391
  let e = et().format("%Y-%m-%d");
1329
- return ht.downloadFileJson(
1330
- p(this, C),
1392
+ return lt.downloadFileJson(
1393
+ E(this, G),
1331
1394
  `sdklogger-entity-data__${e}`
1332
1395
  ), !0;
1333
1396
  } catch (e) {
@@ -1335,9 +1398,9 @@ class Rt {
1335
1398
  }
1336
1399
  }
1337
1400
  }
1338
- x = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), C = new WeakMap(), V = new WeakMap(), K = new WeakMap(), rt = new WeakSet(), ft = async function() {
1401
+ X = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), G = new WeakMap(), V = new WeakMap(), q = new WeakMap(), rt = new WeakSet(), ft = async function() {
1339
1402
  try {
1340
- const e = new j(BX24.callBatch), r = BX24.isAdmin(), { curUser: i } = await e.batch({
1403
+ const e = new v(BX24.callBatch), r = BX24.isAdmin(), { curUser: i } = await e.batch({
1341
1404
  curUser: { method: "user.current" }
1342
1405
  });
1343
1406
  F(this, z, { isAdmin: r, curUser: i });
@@ -1347,8 +1410,8 @@ x = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), C =
1347
1410
  e
1348
1411
  ), F(this, z, { isAdmin: !1, curUser: null });
1349
1412
  }
1350
- }, $ = new WeakSet(), ct = function(e) {
1351
- e == "entity" && ht.actionFilter({
1413
+ }, $ = new WeakSet(), ht = function(e) {
1414
+ e == "entity" && lt.actionFilter({
1352
1415
  keyTimer: "error.logger.entity",
1353
1416
  duration: 500,
1354
1417
  action: () => {
@@ -1357,23 +1420,23 @@ x = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), C =
1357
1420
  });
1358
1421
  }, st = new WeakSet(), mt = async function() {
1359
1422
  try {
1360
- let e = {}, r = new j(BX24.callBatch);
1361
- for (let [i, A] of p(this, Z).entries())
1362
- if (A.status) {
1363
- const o = JSON.stringify(A);
1423
+ let e = {}, r = new v(BX24.callBatch);
1424
+ for (let [i, o] of E(this, Z).entries())
1425
+ if (o.status) {
1426
+ const a = JSON.stringify(o);
1364
1427
  e[i] = {
1365
1428
  method: "entity.item.add",
1366
1429
  params: {
1367
- ENTITY: p(this, x),
1368
- NAME: p(this, x),
1369
- DETAIL_TEXT: o
1430
+ ENTITY: E(this, X),
1431
+ NAME: E(this, X),
1432
+ DETAIL_TEXT: a
1370
1433
  }
1371
1434
  };
1372
1435
  }
1373
1436
  if (Object.keys(e).length) {
1374
- let i = await r.batch(e), { errors: A } = r;
1375
- for (let [o, h] of Object.entries({ ...i, ...A }))
1376
- p(this, Z).delete(o);
1437
+ let i = await r.batch(e), { errors: o } = r;
1438
+ for (let [a, c] of Object.entries({ ...i, ...o }))
1439
+ E(this, Z).delete(a);
1377
1440
  return !0;
1378
1441
  }
1379
1442
  return !1;
@@ -1382,29 +1445,29 @@ x = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), C =
1382
1445
  }
1383
1446
  }, it = new WeakSet(), dt = async function() {
1384
1447
  try {
1385
- let e = new j(BX24.callBatch), { serverTime: r } = await e.batch({
1448
+ let e = new v(BX24.callBatch), { serverTime: r } = await e.batch({
1386
1449
  serverTime: { method: "server.time" }
1387
1450
  });
1388
1451
  if (!r) {
1389
1452
  console.error("Не удалось получить время сервера");
1390
1453
  return;
1391
1454
  }
1392
- if (p(this, C) || await this.getEntityList(), !p(this, C) || p(this, C).length === 0)
1455
+ if (E(this, G) || await this.getEntityList(), !E(this, G) || E(this, G).length === 0)
1393
1456
  return;
1394
- let i = p(this, C).filter((A) => {
1457
+ let i = E(this, G).filter((o) => {
1395
1458
  try {
1396
- let { dateCreate: o } = A;
1397
- return o ? et(new Date(o)).between(
1459
+ let { dateCreate: a } = o;
1460
+ return a ? et(new Date(a)).between(
1398
1461
  et(new Date(r)),
1399
1462
  "month"
1400
1463
  ) >= this.periodClear : !1;
1401
- } catch (o) {
1402
- return console.error("Ошибка при проверке даты записи:", o), !1;
1464
+ } catch (a) {
1465
+ return console.error("Ошибка при проверке даты записи:", a), !1;
1403
1466
  }
1404
1467
  });
1405
1468
  i.length > 0 && (console.log(
1406
1469
  `Найдено ${i.length} записей для очистки (старше ${this.periodClear} месяцев)`
1407
- ), await X(this, nt, gt).call(this, i));
1470
+ ), await J(this, nt, gt).call(this, i));
1408
1471
  } catch (e) {
1409
1472
  console.error("Ошибка при проверке периода очистки:", e);
1410
1473
  }
@@ -1412,26 +1475,26 @@ x = new WeakMap(), Q = new WeakMap(), Z = new WeakMap(), z = new WeakMap(), C =
1412
1475
  try {
1413
1476
  if (!e || e.length === 0)
1414
1477
  return !1;
1415
- let r = new j(BX24.callBatch), i = e.filter((o) => o && o.id).map((o) => {
1416
- let { id: h } = o;
1478
+ let r = new v(BX24.callBatch), i = e.filter((a) => a && a.id).map((a) => {
1479
+ let { id: c } = a;
1417
1480
  return {
1418
1481
  method: "entity.item.delete",
1419
1482
  params: {
1420
- ENTITY: p(this, x),
1421
- ID: h
1483
+ ENTITY: E(this, X),
1484
+ ID: c
1422
1485
  }
1423
1486
  };
1424
1487
  });
1425
1488
  if (i.length === 0)
1426
1489
  return !1;
1427
- const A = await r.batch(i);
1428
- return console.log(`Успешно удалено ${i.length} записей`), F(this, V, !0), A;
1490
+ const o = await r.batch(i);
1491
+ return console.log(`Успешно удалено ${i.length} записей`), F(this, V, !0), o;
1429
1492
  } catch (r) {
1430
1493
  return console.error("Ошибка при очистке устаревших записей:", r), !1;
1431
1494
  }
1432
1495
  };
1433
- var At, Nt, ot, Ot;
1434
- class bt {
1496
+ var ot, Nt, at, pt;
1497
+ class Lt {
1435
1498
  /**
1436
1499
  * @param {Object} appConst - Константы приложения
1437
1500
  * @param {string} appConst.appName - Название приложения
@@ -1439,17 +1502,17 @@ class bt {
1439
1502
  */
1440
1503
  constructor(e) {
1441
1504
  /** Запрос данных о приложении */
1442
- w(this, At);
1505
+ H(this, ot);
1443
1506
  /** Запрос данных о текущем пользователе */
1444
- w(this, ot);
1445
- S(this, "domain", "");
1446
- S(this, "isAdmin", !1);
1447
- S(this, "appInfo", null);
1448
- S(this, "appConst", null);
1449
- S(this, "userInfo", null);
1450
- S(this, "placeData", null);
1451
- S(this, "placeInfo", null);
1452
- S(this, "logger", !1);
1507
+ H(this, at);
1508
+ M(this, "domain", "");
1509
+ M(this, "isAdmin", !1);
1510
+ M(this, "appInfo", null);
1511
+ M(this, "appConst", null);
1512
+ M(this, "userInfo", null);
1513
+ M(this, "placeData", null);
1514
+ M(this, "placeInfo", null);
1515
+ M(this, "logger", !1);
1453
1516
  this.appConst = e;
1454
1517
  }
1455
1518
  /**
@@ -1459,9 +1522,9 @@ class bt {
1459
1522
  */
1460
1523
  init() {
1461
1524
  return new Promise((e, r) => {
1462
- let A = setInterval(() => {
1525
+ let o = setInterval(() => {
1463
1526
  window.BX24 && BX24.init(async () => {
1464
- console.info("init BX24"), clearInterval(A), clearTimeout(o), this.domain = BX24.getDomain(), this.isAdmin = BX24.isAdmin(), this.placeInfo = BX24.placement.info(), this.logger ? (this.logger = new Rt(), await this.logger.init()) : this.logger = {
1527
+ console.info("init BX24"), clearInterval(o), clearTimeout(a), this.domain = BX24.getDomain(), this.isAdmin = BX24.isAdmin(), this.placeInfo = BX24.placement.info(), this.logger ? (this.logger = new Rt(), await this.logger.init()) : this.logger = {
1465
1528
  start: () => {
1466
1529
  },
1467
1530
  stop: () => {
@@ -1469,14 +1532,14 @@ class bt {
1469
1532
  getEntityList: () => {
1470
1533
  }
1471
1534
  };
1472
- const [h, m] = await Promise.all([
1473
- X(this, At, Nt).call(this),
1474
- X(this, ot, Ot).call(this)
1535
+ const [c, h] = await Promise.all([
1536
+ J(this, ot, Nt).call(this),
1537
+ J(this, at, pt).call(this)
1475
1538
  ]);
1476
- this.appInfo = h, this.userInfo = m;
1477
- let l = new ut();
1539
+ this.appInfo = c, this.userInfo = h;
1540
+ let u = new ut();
1478
1541
  try {
1479
- l.noSleep();
1542
+ u.noSleep();
1480
1543
  } catch (s) {
1481
1544
  console.warn(
1482
1545
  "Failed to initialize noSleep:",
@@ -1486,12 +1549,12 @@ class bt {
1486
1549
  e(!0);
1487
1550
  });
1488
1551
  }, 100);
1489
- const o = setTimeout(() => {
1490
- clearInterval(A);
1491
- const h = new Error(
1552
+ const a = setTimeout(() => {
1553
+ clearInterval(o);
1554
+ const c = new Error(
1492
1555
  "BX24 initialization timeout: BX24 object not found within 30 seconds"
1493
1556
  );
1494
- console.error(h), r(h);
1557
+ console.error(c), r(c);
1495
1558
  }, 3e4);
1496
1559
  });
1497
1560
  }
@@ -1538,47 +1601,47 @@ class bt {
1538
1601
  * }[]
1539
1602
  */
1540
1603
  async call({ method: e, params: r, updateList: i }) {
1541
- let A;
1542
- if (i && (A = this.logger.start({
1604
+ let o;
1605
+ if (i && (o = this.logger.start({
1543
1606
  type: "call",
1544
1607
  data: { method: e, params: r, updateList: i }
1545
1608
  })), r || (r = {}), typeof BX24 > "u" || !BX24.callMethod) {
1546
- const o = new Error("BX24 is not initialized");
1547
- throw console.error(o), o;
1609
+ const a = new Error("BX24 is not initialized");
1610
+ throw console.error(a), a;
1548
1611
  }
1549
- return new Promise((o, h) => {
1550
- BX24.callMethod(e, r, async (m) => {
1551
- let l = {};
1552
- if (m != null && m.answer)
1553
- for (let [s, d] of Object.entries(m.answer))
1554
- s !== "result" && d && (l[s] = d);
1555
- if (m.error()) {
1556
- let s = m.error();
1557
- if (console.error(s), A)
1612
+ return new Promise((a, c) => {
1613
+ BX24.callMethod(e, r, async (h) => {
1614
+ let u = {};
1615
+ if (h != null && h.answer)
1616
+ for (let [s, d] of Object.entries(h.answer))
1617
+ s !== "result" && d && (u[s] = d);
1618
+ if (h.error()) {
1619
+ let s = h.error();
1620
+ if (console.error(s), o)
1558
1621
  try {
1559
1622
  await this.logger.stop({
1560
- answer: l,
1561
- key: A,
1623
+ answer: u,
1624
+ key: o,
1562
1625
  status: "fail",
1563
1626
  errorList: { 0: s.toString() }
1564
1627
  });
1565
1628
  } catch (d) {
1566
1629
  console.error("Logger error:", d);
1567
1630
  }
1568
- o(!1);
1631
+ a(!1);
1569
1632
  } else {
1570
- let s = m.data();
1571
- if (s != null && s.items && (s = s.items), A)
1633
+ let s = h.data();
1634
+ if (s != null && s.items && (s = s.items), o)
1572
1635
  try {
1573
1636
  await this.logger.stop({
1574
- answer: l,
1575
- key: A,
1637
+ answer: u,
1638
+ key: o,
1576
1639
  status: "success"
1577
1640
  });
1578
1641
  } catch (d) {
1579
1642
  console.error("Logger error:", d);
1580
1643
  }
1581
- o(s);
1644
+ a(s);
1582
1645
  }
1583
1646
  });
1584
1647
  });
@@ -1602,39 +1665,39 @@ class bt {
1602
1665
  * }[]
1603
1666
  * }}
1604
1667
  */
1605
- async batch(e, r, { errorCall: i, limitCommandSerial: A, updateList: o, limitCall: h } = {}) {
1668
+ async batch(e, r, { errorCall: i, limitCommandSerial: o, updateList: a, limitCall: c } = {}) {
1606
1669
  if (typeof BX24 > "u" || !BX24.callBatch) {
1607
1670
  const s = new Error("BX24 is not initialized");
1608
1671
  return console.error(s), !1;
1609
1672
  }
1610
- let m = new j(BX24.callBatch), l;
1611
- o && (l = this.logger.start({
1673
+ let h = new v(BX24.callBatch), u;
1674
+ a && (u = this.logger.start({
1612
1675
  type: "batch",
1613
- data: { commandList: e, updateList: o }
1614
- })), A && console.warn(
1676
+ data: { commandList: e, updateList: a }
1677
+ })), o && console.warn(
1615
1678
  "limitCommandSerial is deprecated and not used in current Batch implementation"
1616
1679
  );
1617
1680
  try {
1618
- let s = await m.batch(
1681
+ let s = await h.batch(
1619
1682
  e,
1620
1683
  r,
1621
- h
1684
+ c
1622
1685
  );
1623
- if (Object.keys(m.errors).length) {
1624
- if (i && i(m.errors), l)
1686
+ if (Object.keys(h.errors).length) {
1687
+ if (i && i(h.errors), u)
1625
1688
  try {
1626
1689
  await this.logger.stop({
1627
- key: l,
1690
+ key: u,
1628
1691
  status: "fail",
1629
- errorList: m.errors
1692
+ errorList: h.errors
1630
1693
  });
1631
1694
  } catch (d) {
1632
1695
  console.error("Logger error:", d);
1633
1696
  }
1634
- } else if (l)
1697
+ } else if (u)
1635
1698
  try {
1636
1699
  await this.logger.stop({
1637
- key: l,
1700
+ key: u,
1638
1701
  status: "success"
1639
1702
  });
1640
1703
  } catch (d) {
@@ -1642,10 +1705,10 @@ class bt {
1642
1705
  }
1643
1706
  return s;
1644
1707
  } catch (s) {
1645
- if (l)
1708
+ if (u)
1646
1709
  try {
1647
1710
  await this.logger.stop({
1648
- key: l,
1711
+ key: u,
1649
1712
  status: "fail-runtime",
1650
1713
  errorList: { 0: s == null ? void 0 : s.toString() }
1651
1714
  });
@@ -1678,55 +1741,55 @@ class bt {
1678
1741
  * }}
1679
1742
  * @returns {Promise<Object|false>}
1680
1743
  */
1681
- async batchTotalCount(e, r, { errorCall: i, updateList: A, limitCall: o } = {}) {
1744
+ async batchTotalCount(e, r, { errorCall: i, updateList: o, limitCall: a } = {}) {
1682
1745
  if (typeof BX24 > "u" || !BX24.callBatch) {
1683
- const l = new Error("BX24 is not initialized");
1684
- return console.error(l), !1;
1746
+ const u = new Error("BX24 is not initialized");
1747
+ return console.error(u), !1;
1685
1748
  }
1686
- let h = new j(BX24.callBatch), m;
1687
- A && (m = this.logger.start({
1749
+ let c = new v(BX24.callBatch), h;
1750
+ o && (h = this.logger.start({
1688
1751
  type: "batch-total-count",
1689
1752
  data: { commandList: e }
1690
1753
  }));
1691
1754
  try {
1692
- let l = await h.batchTotalCount(
1755
+ let u = await c.batchTotalCount(
1693
1756
  e,
1694
1757
  r,
1695
- o
1758
+ a
1696
1759
  );
1697
- if (Object.keys(h.errors).length) {
1698
- if (i && i(h.errors), m)
1760
+ if (Object.keys(c.errors).length) {
1761
+ if (i && i(c.errors), h)
1699
1762
  try {
1700
1763
  await this.logger.stop({
1701
- key: m,
1764
+ key: h,
1702
1765
  status: "fail",
1703
- errorList: h.errors
1766
+ errorList: c.errors
1704
1767
  });
1705
1768
  } catch (s) {
1706
1769
  console.error("Logger error:", s);
1707
1770
  }
1708
- } else if (m)
1771
+ } else if (h)
1709
1772
  try {
1710
1773
  await this.logger.stop({
1711
- key: m,
1774
+ key: h,
1712
1775
  status: "success"
1713
1776
  });
1714
1777
  } catch (s) {
1715
1778
  console.error("Logger error:", s);
1716
1779
  }
1717
- return l;
1718
- } catch (l) {
1719
- if (m)
1780
+ return u;
1781
+ } catch (u) {
1782
+ if (h)
1720
1783
  try {
1721
1784
  await this.logger.stop({
1722
- key: m,
1785
+ key: h,
1723
1786
  status: "fail-runtime",
1724
- errorList: { 0: l == null ? void 0 : l.toString() }
1787
+ errorList: { 0: u == null ? void 0 : u.toString() }
1725
1788
  });
1726
1789
  } catch (s) {
1727
1790
  console.error("Logger error:", s);
1728
1791
  }
1729
- return console.error(l), !1;
1792
+ return console.error(u), !1;
1730
1793
  }
1731
1794
  }
1732
1795
  /** Запрос данных о местах встройки приложения */
@@ -1735,72 +1798,99 @@ class bt {
1735
1798
  }
1736
1799
  /** Встройка приложения в place */
1737
1800
  async placementBind(e, r = !0) {
1738
- var d;
1801
+ var p, l;
1739
1802
  if (!this.isAdmin)
1740
1803
  return;
1741
1804
  r && await this.placementCheck();
1742
1805
  let i = [];
1743
- if (Array.isArray(e) ? i = e.map((g) => typeof g == "string" ? { placement: g } : g) : typeof e == "string" ? i = [{ placement: e }] : i = [e], this.placeData = await this.getPlacement(), !this.placeData)
1806
+ if (Array.isArray(e) ? i = e.map((A) => typeof A == "string" ? { placement: A } : A) : typeof e == "string" ? i = [{ placement: e }] : i = [e], this.placeData = await this.getPlacement(), !this.placeData)
1744
1807
  return;
1745
- const { appName: A, pathApp: o } = this.appConst;
1746
- let h = A;
1747
- this.domain === "szdl.bitrix24.ru" && ((d = this.appInfo) != null && d.ID) && (h = `${A}: #${this.appInfo.ID}`);
1748
- const m = h.replace(" CRM", ""), l = {}, s = [];
1749
- for (let g = 0; g < i.length; g++) {
1750
- const a = i[g], u = a.placement, y = a.userId;
1751
- let O = o, R = u;
1752
- if (u === "PAGE_BACKGROUND_WORKER") {
1753
- if (!y) {
1754
- console.warn(`placementBind: userId is required for PAGE_BACKGROUND_WORKER, skipping ${u}`);
1808
+ const { appName: o, pathApp: a } = this.appConst;
1809
+ let c = o;
1810
+ this.domain === "szdl.bitrix24.ru" && ((p = this.appInfo) != null && p.ID) && (c = `${o}: #${this.appInfo.ID}`);
1811
+ const h = c.replace(" CRM", ""), u = {}, s = [];
1812
+ let d = !1;
1813
+ for (let A = 0; A < i.length; A++)
1814
+ i[A].placement === "PAGE_BACKGROUND_WORKER_ALL" && (d = !0);
1815
+ if (d && ((l = this.userInfo) != null && l.ID)) {
1816
+ const A = this.userInfo.ID, g = `${a}?USER_ID=${A}/`;
1817
+ if (!this.placeData.find(
1818
+ (O) => O.placement === "PAGE_BACKGROUND_WORKER" && O.handler === g
1819
+ )) {
1820
+ const O = {
1821
+ PLACEMENT: "PAGE_BACKGROUND_WORKER",
1822
+ HANDLER: g,
1823
+ LANG_ALL: {
1824
+ ru: {
1825
+ TITLE: c
1826
+ }
1827
+ },
1828
+ OPTIONS: {
1829
+ errorHandlerUrl: g
1830
+ },
1831
+ USER_ID: A
1832
+ };
1833
+ u[`bind_user_${A}`] = {
1834
+ method: "placement.bind",
1835
+ params: O
1836
+ }, console.log(`placementBind: Добавлено индивидуальное размещение для пользователя ${A} перед общим`);
1837
+ }
1838
+ }
1839
+ for (let A = 0; A < i.length; A++) {
1840
+ const g = i[A], N = g.placement, O = g.userId;
1841
+ let L = a, U = N;
1842
+ if (N === "PAGE_BACKGROUND_WORKER") {
1843
+ if (!O) {
1844
+ console.warn(`placementBind: userId is required for PAGE_BACKGROUND_WORKER, skipping ${N}`);
1755
1845
  continue;
1756
1846
  }
1757
- O = `${o}?USER_ID=${y}/`;
1847
+ L = `${a}?USER_ID=${O}/`;
1758
1848
  }
1759
- if (u === "PAGE_BACKGROUND_WORKER_ALL" && (R = "PAGE_BACKGROUND_WORKER"), this.placeData.find(
1760
- (I) => I.placement === R && I.handler === O
1849
+ if (N === "PAGE_BACKGROUND_WORKER_ALL" && (U = "PAGE_BACKGROUND_WORKER"), this.placeData.find(
1850
+ (k) => k.placement === U && k.handler === L
1761
1851
  ))
1762
1852
  continue;
1763
- let P = this.placeData.find(
1764
- (I) => I.placement === R && I.handler !== O
1853
+ let W = this.placeData.find(
1854
+ (k) => k.placement === U && k.handler !== L
1765
1855
  );
1766
- P && s.push({ placement: R, handler: P.handler });
1767
- const H = {
1768
- PLACEMENT: R,
1769
- HANDLER: O,
1856
+ W && s.push({ placement: U, handler: W.handler });
1857
+ const b = {
1858
+ PLACEMENT: U,
1859
+ HANDLER: L,
1770
1860
  LANG_ALL: {
1771
1861
  ru: {
1772
- TITLE: R === "USER_PROFILE_TOOLBAR" ? m : h
1862
+ TITLE: U === "USER_PROFILE_TOOLBAR" ? h : c
1773
1863
  }
1774
1864
  },
1775
1865
  OPTIONS: {
1776
- errorHandlerUrl: O
1866
+ errorHandlerUrl: L
1777
1867
  }
1778
1868
  };
1779
- u === "PAGE_BACKGROUND_WORKER" && y && (H.USER_ID = y), l[`bind_${g}`] = {
1869
+ N === "PAGE_BACKGROUND_WORKER" && O && (b.USER_ID = O), u[`bind_${A}`] = {
1780
1870
  method: "placement.bind",
1781
- params: H
1871
+ params: b
1782
1872
  };
1783
1873
  }
1784
- s.length > 0 && await this.placementUnBind(s), Object.keys(l).length > 0 && await this.batch(l), Object.keys(l).length > 0 && (this.placeData = await this.getPlacement(), Object.values(l).forEach((g) => {
1785
- console.log("Приложение успешно встроено в", g.params.PLACEMENT);
1874
+ s.length > 0 && await this.placementUnBind(s), Object.keys(u).length > 0 && await this.batch(u), Object.keys(u).length > 0 && (this.placeData = await this.getPlacement(), Object.values(u).forEach((A) => {
1875
+ console.log("Приложение успешно встроено в", A.params.PLACEMENT);
1786
1876
  }));
1787
1877
  }
1788
1878
  /* Отвязка встройки из place */
1789
1879
  async placementUnBind(e) {
1790
1880
  let r = [];
1791
- Array.isArray(e) ? r = e.map((A) => typeof A == "string" ? { placement: A } : A) : typeof e == "string" ? r = [{ placement: e }] : r = [e];
1881
+ Array.isArray(e) ? r = e.map((o) => typeof o == "string" ? { placement: o } : o) : typeof e == "string" ? r = [{ placement: e }] : r = [e];
1792
1882
  const i = {};
1793
- for (let A = 0; A < r.length; A++) {
1794
- const o = r[A], h = o.placement, m = o.handler, l = {
1795
- PLACEMENT: h
1883
+ for (let o = 0; o < r.length; o++) {
1884
+ const a = r[o], c = a.placement, h = a.handler, u = {
1885
+ PLACEMENT: c
1796
1886
  };
1797
- m && (l.HANDLER = m), i[`unbind_${A}`] = {
1887
+ h && (u.HANDLER = h), i[`unbind_${o}`] = {
1798
1888
  method: "placement.unbind",
1799
- params: l
1889
+ params: u
1800
1890
  };
1801
1891
  }
1802
- Object.keys(i).length > 0 && (await this.batch(i), r.forEach((A) => {
1803
- console.log("Встройка отвязана", A.placement);
1892
+ Object.keys(i).length > 0 && (await this.batch(i), r.forEach((o) => {
1893
+ console.log("Встройка отвязана", o.placement);
1804
1894
  }));
1805
1895
  }
1806
1896
  /** Удаляем фоновые обработчики прошлых версий и создаем новые */
@@ -1808,11 +1898,11 @@ class bt {
1808
1898
  if (this.placeData = await this.getPlacement(), !this.placeData)
1809
1899
  return;
1810
1900
  const { pathApp: e } = this.appConst, r = [], i = [];
1811
- for (const A of this.placeData) {
1812
- if (!A.handler || A.handler.includes(e))
1901
+ for (const o of this.placeData) {
1902
+ if (!o.handler || o.handler.includes(e))
1813
1903
  continue;
1814
- const { placement: o, handler: h, userId: m } = A;
1815
- r.push({ placement: o, handler: h }), i.push({ placement: o, userId: m });
1904
+ const { placement: a, handler: c, userId: h } = o;
1905
+ r.push({ placement: a, handler: c }), i.push({ placement: a, userId: h });
1816
1906
  }
1817
1907
  r.length > 0 && await this.placementUnBind(r), i.length > 0 && await this.placementBind(i, !1);
1818
1908
  }
@@ -1829,7 +1919,7 @@ class bt {
1829
1919
  }
1830
1920
  /* регистрация бота */
1831
1921
  regBot({ code: e, type: r, name: i }) {
1832
- const { appName: A, pathApp: o, chatBotLogo: h } = this.appConst, m = this.appInfo.ID;
1922
+ const { appName: o, pathApp: a, chatBotLogo: c } = this.appConst, h = this.appInfo.ID;
1833
1923
  return this.call({
1834
1924
  method: "imbot.register",
1835
1925
  params: {
@@ -1837,7 +1927,7 @@ class bt {
1837
1927
  // Строковой идентификатор бота, уникальный в рамках вашего приложения (обяз.)
1838
1928
  TYPE: r ?? "O",
1839
1929
  // Тип бота, B - чат-бот, ответы поступают сразу, H - человек, ответы поступают с задержкой от 2-х до 10 секунд, O - чат-бот для Открытых линий, S - чат-бот с повышенными привилегиями (supervisor)
1840
- EVENT_HANDLER: o,
1930
+ EVENT_HANDLER: a,
1841
1931
  // Ссылка на обработчик событий, поступивших от сервера - см. Обработчики событий ниже (обяз).
1842
1932
  OPENLINE: "Y",
1843
1933
  // Включение режима поддержки Открытых линий, можно не указывать, если TYPE = 'O'
@@ -1845,7 +1935,7 @@ class bt {
1845
1935
  // строковый идентификатор чат-бота, используется только в режиме Вебхуков
1846
1936
  PROPERTIES: {
1847
1937
  // Личные данные чат-бота (обяз.)
1848
- NAME: `${i ?? A} - бот #${m}`,
1938
+ NAME: `${i ?? o} - бот #${h}`,
1849
1939
  // Имя чат-бота (обязательное одно из полей NAME или LAST_NAME)
1850
1940
  LAST_NAME: "",
1851
1941
  // Фамилия чат-бота (обязательное одно из полей NAME или LAST_NAME)
@@ -1861,11 +1951,11 @@ class bt {
1861
1951
  // Ссылка на сайт
1862
1952
  PERSONAL_GENDER: "M",
1863
1953
  // Пол чат-бота, допустимые значения M - мужской, F - женский, пусто, если не требуется указывать
1864
- PERSONAL_PHOTO: h ?? ""
1954
+ PERSONAL_PHOTO: c ?? ""
1865
1955
  // Аватар чат-бота - base64
1866
1956
  }
1867
1957
  }
1868
- }).then((l) => (console.log("Чат-бот добавлен", l), l));
1958
+ }).then((u) => (console.log("Чат-бот добавлен", u), u));
1869
1959
  }
1870
1960
  /* Убрать регистрацию бота */
1871
1961
  unRegBot(e) {
@@ -1881,29 +1971,29 @@ class bt {
1881
1971
  return this.logger.getEntityList(e);
1882
1972
  }
1883
1973
  }
1884
- At = new WeakSet(), Nt = function() {
1974
+ ot = new WeakSet(), Nt = function() {
1885
1975
  return this.call({ method: "app.info" });
1886
- }, ot = new WeakSet(), Ot = function() {
1976
+ }, at = new WeakSet(), pt = function() {
1887
1977
  return this.call({ method: "user.current" });
1888
1978
  };
1889
1979
  class St {
1890
1980
  constructor(e) {
1891
- S(this, "entityName", "tabs");
1892
- S(this, "maxTabs", 5);
1893
- S(this, "interval");
1894
- S(this, "id", 0);
1895
- S(this, "tabList", []);
1896
- S(this, "random", this.getRandomNum());
1897
- S(this, "continueCondition");
1898
- S(this, "defaultContinueBackground", () => !0);
1899
- S(this, "activeMaxPause", 60 * 1e3 * 5 + this.random);
1900
- S(this, "activeMinPause", 60 * 1e3 * 3 + this.random);
1981
+ M(this, "entityName", "tabs");
1982
+ M(this, "maxTabs", 5);
1983
+ M(this, "interval");
1984
+ M(this, "id", 0);
1985
+ M(this, "tabList", []);
1986
+ M(this, "random", this.getRandomNum());
1987
+ M(this, "continueCondition");
1988
+ M(this, "defaultContinueBackground", () => !0);
1989
+ M(this, "activeMaxPause", 60 * 1e3 * 5 + this.random);
1990
+ M(this, "activeMinPause", 60 * 1e3 * 3 + this.random);
1901
1991
  if (!e) {
1902
1992
  console.error("В бек-воркер не переданы настройки, отмена вызова"), console.log("BackgroundWorker: Отмена конструктора - отсутствуют опции");
1903
1993
  return;
1904
1994
  }
1905
- const { appFunc: r, bx: i, users: A, continueBackground: o } = e;
1906
- this.bx = i, this.appPath = i.appConst.pathApp ?? "", this.appName = i.appConst.appName ?? "", this.appInit = r, this.users = A, this.start = /* @__PURE__ */ new Date(), this.continueCondition = typeof o == "function" ? o : this.defaultContinueBackground;
1995
+ const { appFunc: r, bx: i, users: o, continueBackground: a } = e;
1996
+ this.bx = i, this.appPath = i.appConst.pathApp ?? "", this.appName = i.appConst.appName ?? "", this.appInit = r, this.users = o, this.start = /* @__PURE__ */ new Date(), this.continueCondition = typeof a == "function" ? a : this.defaultContinueBackground;
1907
1997
  }
1908
1998
  async init() {
1909
1999
  if (!this.appInit) {
@@ -1914,6 +2004,10 @@ class St {
1914
2004
  console.error("Не передан экземпляр bxBoot"), console.log("BackgroundWorker: Отмена init - отсутствует bx");
1915
2005
  return;
1916
2006
  }
2007
+ if (!await this.checkPlacementType()) {
2008
+ console.log("BackgroundWorker: Отмена init - общая встройка обнаружена при наличии индивидуальной");
2009
+ return;
2010
+ }
1917
2011
  if (await this.bx.placementBind(["PAGE_BACKGROUND_WORKER"]), !await this.continueBackground()) {
1918
2012
  console.log("BackgroundWorker: Отмена init - условие запуска не выполнено");
1919
2013
  return;
@@ -1927,7 +2021,7 @@ class St {
1927
2021
  async checkEntity() {
1928
2022
  var i;
1929
2023
  const e = await this.bx.call({ method: "entity.get" });
1930
- ((i = e == null ? void 0 : e.find) == null ? void 0 : i.call(e, (A) => A.ENTITY === this.entityName)) || await this.bx.call({
2024
+ ((i = e == null ? void 0 : e.find) == null ? void 0 : i.call(e, (o) => o.ENTITY === this.entityName)) || await this.bx.call({
1931
2025
  method: "entity.add",
1932
2026
  params: {
1933
2027
  ENTITY: this.entityName,
@@ -1955,8 +2049,8 @@ class St {
1955
2049
  return { id: void 0, data: void 0 };
1956
2050
  try {
1957
2051
  return { id: i.ID, data: { ...JSON.parse(i.DETAIL_TEXT) } };
1958
- } catch (A) {
1959
- return console.log(A), { id: i.ID, data: void 0 };
2052
+ } catch (o) {
2053
+ return console.log(o), { id: i.ID, data: void 0 };
1960
2054
  }
1961
2055
  }) : [];
1962
2056
  }
@@ -2006,6 +2100,46 @@ class St {
2006
2100
  const e = Math.round(Number(Math.random().toFixed(2)) * 30);
2007
2101
  return Math.round(Math.random()) ? e : -e;
2008
2102
  }
2103
+ async checkPlacementType() {
2104
+ var e, r, i, o;
2105
+ try {
2106
+ const a = await this.bx.getPlacement();
2107
+ if (!a || !Array.isArray(a))
2108
+ return console.log("BackgroundWorker: Не удалось получить список размещений, продолжаем выполнение"), !0;
2109
+ const c = +(((e = this.bx.userInfo) == null ? void 0 : e.ID) ?? 0);
2110
+ if (!c)
2111
+ return console.log("BackgroundWorker: Не удалось определить ID текущего пользователя, продолжаем выполнение"), !0;
2112
+ let h = "";
2113
+ if (typeof BX24 < "u" && BX24.placement && BX24.placement.info) {
2114
+ const A = BX24.placement.info();
2115
+ h = ((r = A == null ? void 0 : A.options) == null ? void 0 : r.handler) || "";
2116
+ }
2117
+ !h && this.bx.placeInfo && (h = ((o = (i = this.bx.placeInfo) == null ? void 0 : i.options) == null ? void 0 : o.handler) || "");
2118
+ const u = [];
2119
+ let s = !1, d = !1, p = !1, l = !1;
2120
+ for (const A of a)
2121
+ if (A.placement === "PAGE_BACKGROUND_WORKER")
2122
+ if (A.userId || A.handler && A.handler.includes("USER_ID=")) {
2123
+ u.push(A);
2124
+ const N = A.userId || (A.handler ? this.extractUserIdFromHandler(A.handler) : null);
2125
+ N && +N === c && (l = !0), h && A.handler && h === A.handler && (d = !0);
2126
+ } else
2127
+ s = !0, h && A.handler && h === A.handler && (p = !0);
2128
+ if (!d && !p && h && (d = h.includes("USER_ID="), p = !d, d)) {
2129
+ const A = this.extractUserIdFromHandler(h);
2130
+ A && +A === c && (l = !0);
2131
+ }
2132
+ return d ? (console.log("BackgroundWorker: Обнаружена индивидуальная встройка, продолжаем выполнение"), !0) : p && l ? (console.log(`BackgroundWorker: Обнаружена общая встройка при наличии индивидуальной для текущего пользователя (ID: ${c}), прекращаем выполнение`), !1) : (console.log("BackgroundWorker: Проверка типа встройки пройдена, продолжаем выполнение"), !0);
2133
+ } catch (a) {
2134
+ return console.error("BackgroundWorker: Ошибка при проверке типа встройки", a), !0;
2135
+ }
2136
+ }
2137
+ extractUserIdFromHandler(e) {
2138
+ if (!e || typeof e != "string")
2139
+ return null;
2140
+ const r = e.match(/USER_ID=(\d+)/);
2141
+ return r ? r[1] : null;
2142
+ }
2009
2143
  async continueBackground() {
2010
2144
  try {
2011
2145
  const r = !!await Promise.resolve(this.continueCondition(this));
@@ -2016,12 +2150,12 @@ class St {
2016
2150
  }
2017
2151
  async getFilteredTabList() {
2018
2152
  const e = [], r = [], i = await this.getTabs();
2019
- for (const A of i) {
2020
- if (!(A != null && A.data)) {
2021
- e.push(A);
2153
+ for (const o of i) {
2154
+ if (!(o != null && o.data)) {
2155
+ e.push(o);
2022
2156
  continue;
2023
2157
  }
2024
- (/* @__PURE__ */ new Date()).getTime() - new Date(A.data.lastActive).getTime() > this.activeMaxPause ? e.push(A) : r.push(A);
2158
+ (/* @__PURE__ */ new Date()).getTime() - new Date(o.data.lastActive).getTime() > this.activeMaxPause ? e.push(o) : r.push(o);
2025
2159
  }
2026
2160
  return await this.deleteTabs(e), r;
2027
2161
  }
@@ -2038,16 +2172,16 @@ class St {
2038
2172
  e && (await this.pause(Math.round(Number(Math.random().toFixed(2)) * 1e4)), this.tabList = await this.getFilteredTabList(), e = this.checkOtherTabs(), e && await this.startBackground());
2039
2173
  }
2040
2174
  checkOtherTabs() {
2041
- var A, o;
2175
+ var o, a;
2042
2176
  let e = !1, r = (/* @__PURE__ */ new Date()).getTime() - new Date(this.start).getTime();
2043
- for (const h of this.tabList)
2044
- if (+h.id !== this.id && ((A = h.data) != null && A.start && (e = !0), ((o = h.data) == null ? void 0 : o.duration) > r)) {
2177
+ for (const c of this.tabList)
2178
+ if (+c.id !== this.id && ((o = c.data) != null && o.start && (e = !0), ((a = c.data) == null ? void 0 : a.duration) > r)) {
2045
2179
  r = !1;
2046
2180
  break;
2047
2181
  }
2048
2182
  const i = !e && !!r;
2049
- return this.updateTab(i).catch((h) => {
2050
- console.error("BackgroundWorker: updateTab failed", h);
2183
+ return this.updateTab(i).catch((c) => {
2184
+ console.error("BackgroundWorker: updateTab failed", c);
2051
2185
  }), console.log(`BackgroundWorker: Проверка вкладок - можно запускать приложение? ${i}`), i;
2052
2186
  }
2053
2187
  async startBackground() {
@@ -2058,86 +2192,93 @@ class St {
2058
2192
  }, this.activeMinPause), await this.appInit(), this.interval && (clearInterval(this.interval), this.interval = void 0), this.id && (await this.deleteTabs([{ id: this.id }]), this.id = 0);
2059
2193
  }
2060
2194
  async setBackgroundWorkerAll() {
2061
- var d, g;
2062
- if (!((d = this.bx) != null && d.isAdmin)) {
2195
+ var l, A;
2196
+ if (!((l = this.bx) != null && l.isAdmin)) {
2063
2197
  console.log("BackgroundWorker: Отмена setBackgroundWorkerAll - пользователь не админ");
2064
2198
  return;
2065
2199
  }
2066
- (g = this.users) != null && g.length || await this.getEntityData();
2200
+ (A = this.users) != null && A.length || await this.getEntityData();
2067
2201
  const e = await this.bx.getPlacement(), r = /* @__PURE__ */ new Map();
2068
2202
  let i = null;
2069
- e.forEach((a) => {
2070
- a.placement === "PAGE_BACKGROUND_WORKER" && (a.userId ? r.set(+a.userId, a) : i = a);
2203
+ e.forEach((g) => {
2204
+ g.placement === "PAGE_BACKGROUND_WORKER" && (g.userId ? r.set(+g.userId, g) : i = g);
2071
2205
  }), console.log(`setBackgroundWorkerAll: Найдено ${r.size} индивидуальных и ${i ? 1 : 0} общих привязок PAGE_BACKGROUND_WORKER`);
2072
- const A = await this.updateAdminsList(), o = await this.getEligibleUsersForBackgroundWorker(A);
2073
- o.sort((a, u) => {
2074
- const y = a.LAST_LOGIN ? new Date(a.LAST_LOGIN) : /* @__PURE__ */ new Date(0);
2075
- return (u.LAST_LOGIN ? new Date(u.LAST_LOGIN) : /* @__PURE__ */ new Date(0)) - y;
2076
- }), console.log(`setBackgroundWorkerAll: Найдено ${o.length} подходящих пользователей (админы и руководители)`);
2077
- const h = [];
2078
- !i && this.appPath && (h.push({
2079
- method: "placement.bind",
2080
- params: {
2081
- PLACEMENT: "PAGE_BACKGROUND_WORKER",
2082
- HANDLER: `${this.appPath}/`,
2083
- LANG_ALL: {
2084
- ru: {
2085
- TITLE: this.appName
2086
- }
2087
- },
2088
- OPTIONS: {
2089
- errorHandlerUrl: `${this.appPath}/`
2090
- }
2091
- }
2092
- }), console.log("setBackgroundWorkerAll: Добавлен в очередь создание общего бэк-воркера"));
2093
- const m = 10, l = o.slice(0, m), s = [];
2094
- for (const [a] of r)
2095
- o.find((y) => +y.ID === a) || s.push(a);
2096
- for (const a of s)
2097
- this.appPath && (h.push({
2206
+ const o = await this.updateAdminsList(), a = await this.getEligibleUsersForBackgroundWorker(o);
2207
+ a.sort((g, N) => {
2208
+ const O = g.LAST_LOGIN ? new Date(g.LAST_LOGIN) : /* @__PURE__ */ new Date(0);
2209
+ return (N.LAST_LOGIN ? new Date(N.LAST_LOGIN) : /* @__PURE__ */ new Date(0)) - O;
2210
+ }), console.log(`setBackgroundWorkerAll: Найдено ${a.length} подходящих пользователей (админы и руководители)`);
2211
+ const c = [], h = 10, s = a.slice(0, h).filter(
2212
+ (g) => !r.has(+g.ID)
2213
+ ), d = i && s.length > 0, p = [];
2214
+ for (const [g] of r)
2215
+ a.find((O) => +O.ID === g) || p.push(g);
2216
+ for (const g of p)
2217
+ this.appPath && (c.push({
2098
2218
  method: "placement.unbind",
2099
2219
  params: {
2100
2220
  PLACEMENT: "PAGE_BACKGROUND_WORKER",
2101
- HANDLER: `${this.appPath}?USER_ID=${a}/`
2221
+ HANDLER: `${this.appPath}?USER_ID=${g}/`
2102
2222
  }
2103
- }), console.log(`setBackgroundWorkerAll: Добавлена в очередь отвязка бэк-воркера от пользователя ${a}`));
2104
- for (const a of l)
2105
- r.has(+a.ID) || !this.appPath || h.push({
2223
+ }), console.log(`setBackgroundWorkerAll: Добавлена в очередь отвязка бэк-воркера от пользователя ${g}`));
2224
+ d && this.appPath && (c.push({
2225
+ method: "placement.unbind",
2226
+ params: {
2227
+ PLACEMENT: "PAGE_BACKGROUND_WORKER",
2228
+ HANDLER: i.handler || `${this.appPath}/`
2229
+ }
2230
+ }), console.log("setBackgroundWorkerAll: Добавлена в очередь отвязка общего бэк-воркера (для создания индивидуальных)"));
2231
+ for (const g of s)
2232
+ this.appPath && c.push({
2106
2233
  method: "placement.bind",
2107
2234
  params: {
2108
2235
  PLACEMENT: "PAGE_BACKGROUND_WORKER",
2109
- HANDLER: `${this.appPath}?USER_ID=${a.ID}/`,
2236
+ HANDLER: `${this.appPath}?USER_ID=${g.ID}/`,
2110
2237
  LANG_ALL: {
2111
2238
  ru: {
2112
2239
  TITLE: this.appName
2113
2240
  }
2114
2241
  },
2115
2242
  OPTIONS: {
2116
- errorHandlerUrl: `${this.appPath}?USER_ID=${a.ID}/`
2243
+ errorHandlerUrl: `${this.appPath}?USER_ID=${g.ID}/`
2117
2244
  },
2118
- USER_ID: a.ID
2245
+ USER_ID: g.ID
2119
2246
  }
2120
2247
  });
2121
- h.length ? (console.log(`setBackgroundWorkerAll: Выполняем ${h.length} операций через batch`), await this.bx.batch(h), console.log("setBackgroundWorkerAll: Все операции batch выполнены успешно")) : console.log("setBackgroundWorkerAll: Нет операций для выполнения");
2248
+ (!i || d) && this.appPath && (c.push({
2249
+ method: "placement.bind",
2250
+ params: {
2251
+ PLACEMENT: "PAGE_BACKGROUND_WORKER",
2252
+ HANDLER: `${this.appPath}/`,
2253
+ LANG_ALL: {
2254
+ ru: {
2255
+ TITLE: this.appName
2256
+ }
2257
+ },
2258
+ OPTIONS: {
2259
+ errorHandlerUrl: `${this.appPath}/`
2260
+ }
2261
+ }
2262
+ }), console.log("setBackgroundWorkerAll: Добавлен в очередь создание общего бэк-воркера (после индивидуальных)")), c.length ? (console.log(`setBackgroundWorkerAll: Выполняем ${c.length} операций через batch`), await this.bx.batch(c), console.log("setBackgroundWorkerAll: Все операции batch выполнены успешно")) : console.log("setBackgroundWorkerAll: Нет операций для выполнения");
2122
2263
  }
2123
2264
  async getEligibleUsersForBackgroundWorker(e = []) {
2124
2265
  return (this.users ?? []).filter((i) => i.ACTIVE === "Y" || i.ACTIVE === !0).filter((i) => {
2125
- const A = +i.ID;
2126
- return e.includes(A);
2266
+ const o = +i.ID;
2267
+ return e.includes(o);
2127
2268
  });
2128
2269
  }
2129
2270
  async updateAdminsList() {
2130
2271
  var e, r, i;
2131
2272
  try {
2132
- let A = await this.getAdminsList();
2133
- const o = +(((e = this.bx.userInfo) == null ? void 0 : e.ID) ?? 0);
2134
- (r = this.bx) != null && r.isAdmin && o && !A.includes(o) && (A.push(o), console.log(`updateAdminsList: Добавлен новый админ ${o}`)), !((i = this.bx) != null && i.isAdmin) && o && A.includes(o) && (A = A.filter((l) => l !== o), console.log(`updateAdminsList: Удален из списка админов пользователь ${o} (больше не админ)`));
2135
- const h = new Set(
2136
- (this.users ?? []).filter((l) => l.ACTIVE === "Y" || l.ACTIVE === !0).map((l) => +l.ID)
2137
- ), m = A.filter((l) => h.has(l));
2138
- return m.length !== A.length && (console.log(`updateAdminsList: Удалено ${A.length - m.length} неактивных админов`), A = m), BX24.appOption.set("adminsList", JSON.stringify(A)), console.log(`BackgroundWorker: Список админов обновлен: ${A.length} админов`), A;
2139
- } catch (A) {
2140
- return console.error("BackgroundWorker: Ошибка при обновлении списка админов:", A), [];
2273
+ let o = await this.getAdminsList();
2274
+ const a = +(((e = this.bx.userInfo) == null ? void 0 : e.ID) ?? 0);
2275
+ (r = this.bx) != null && r.isAdmin && a && !o.includes(a) && (o.push(a), console.log(`updateAdminsList: Добавлен новый админ ${a}`)), !((i = this.bx) != null && i.isAdmin) && a && o.includes(a) && (o = o.filter((u) => u !== a), console.log(`updateAdminsList: Удален из списка админов пользователь ${a} (больше не админ)`));
2276
+ const c = new Set(
2277
+ (this.users ?? []).filter((u) => u.ACTIVE === "Y" || u.ACTIVE === !0).map((u) => +u.ID)
2278
+ ), h = o.filter((u) => c.has(u));
2279
+ return h.length !== o.length && (console.log(`updateAdminsList: Удалено ${o.length - h.length} неактивных админов`), o = h), BX24.appOption.set("adminsList", JSON.stringify(o)), console.log(`BackgroundWorker: Список админов обновлен: ${o.length} админов`), o;
2280
+ } catch (o) {
2281
+ return console.error("BackgroundWorker: Ошибка при обновлении списка админов:", o), [];
2141
2282
  }
2142
2283
  }
2143
2284
  async getAdminsList() {
@@ -2164,8 +2305,8 @@ class St {
2164
2305
  }
2165
2306
  export {
2166
2307
  St as BackgroundWorker,
2167
- j as Batch,
2168
- bt as BxBoot,
2308
+ v as Batch,
2309
+ Lt as BxBoot,
2169
2310
  ut as BxHelper,
2170
2311
  Rt as BxLogger,
2171
2312
  et as tempus