@boobooking/dashboard-ui-components 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,12 +1,124 @@
1
- import { Fragment as e, Transition as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, mergeProps as s, normalizeClass as c, openBlock as l, renderList as u, renderSlot as d, resolveComponent as f, toDisplayString as p, useId as m, vModelText as h, vShow as g, withCtx as _, withDirectives as v, withKeys as y, withModifiers as b } from "vue";
2
- import ee from "pikaday";
3
- import te from "imask";
4
- //#region \0plugin-vue:export-helper
5
- var x = (e, t) => {
1
+ import { Fragment as e, Transition as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createTextVNode as o, createVNode as s, mergeProps as c, normalizeClass as l, openBlock as u, renderList as d, renderSlot as f, resolveComponent as p, toDisplayString as m, useId as h, vModelText as g, vShow as _, withCtx as v, withDirectives as y, withKeys as b, withModifiers as x } from "vue";
2
+ import S from "pikaday";
3
+ import ee from "imask";
4
+ //#region src/i18n.js
5
+ var C = ["ru", "en"];
6
+ function w(e) {
7
+ return C.includes(e);
8
+ }
9
+ var te = {
10
+ ru: {
11
+ cancel: "Отмена",
12
+ download: "Скачать",
13
+ openMenu: "Открыть меню",
14
+ previousMonth: "Предыдущий месяц",
15
+ nextMonth: "Следующий месяц",
16
+ months: [
17
+ "Январь",
18
+ "Февраль",
19
+ "Март",
20
+ "Апрель",
21
+ "Май",
22
+ "Июнь",
23
+ "Июль",
24
+ "Август",
25
+ "Сентябрь",
26
+ "Октябрь",
27
+ "Ноябрь",
28
+ "Декабрь"
29
+ ],
30
+ weekdays: [
31
+ "Воскресенье",
32
+ "Понедельник",
33
+ "Вторник",
34
+ "Среда",
35
+ "Четверг",
36
+ "Пятница",
37
+ "Суббота"
38
+ ],
39
+ weekdaysShort: [
40
+ "Вс",
41
+ "Пн",
42
+ "Вт",
43
+ "Ср",
44
+ "Чт",
45
+ "Пт",
46
+ "Сб"
47
+ ],
48
+ dateFrom: "от",
49
+ dateTo: "до",
50
+ previousPage: "Предыдущая",
51
+ nextPage: "Следующая",
52
+ resultsBefore: "Показаны результаты",
53
+ resultsOf: "из",
54
+ resultsAfter: ""
55
+ },
56
+ en: {
57
+ cancel: "Cancel",
58
+ download: "Download",
59
+ openMenu: "Open menu",
60
+ previousMonth: "Previous month",
61
+ nextMonth: "Next month",
62
+ months: [
63
+ "January",
64
+ "February",
65
+ "March",
66
+ "April",
67
+ "May",
68
+ "June",
69
+ "July",
70
+ "August",
71
+ "September",
72
+ "October",
73
+ "November",
74
+ "December"
75
+ ],
76
+ weekdays: [
77
+ "Sunday",
78
+ "Monday",
79
+ "Tuesday",
80
+ "Wednesday",
81
+ "Thursday",
82
+ "Friday",
83
+ "Saturday"
84
+ ],
85
+ weekdaysShort: [
86
+ "Sun",
87
+ "Mon",
88
+ "Tue",
89
+ "Wed",
90
+ "Thu",
91
+ "Fri",
92
+ "Sat"
93
+ ],
94
+ dateFrom: "from",
95
+ dateTo: "to",
96
+ previousPage: "Previous",
97
+ nextPage: "Next",
98
+ resultsBefore: "Showing",
99
+ resultsOf: "of",
100
+ resultsAfter: "results"
101
+ }
102
+ }, T = Symbol("dashboardUi"), E = Object.freeze({
103
+ lang: "ru",
104
+ navigate: null
105
+ }), D = { uiSettings: {
106
+ from: T,
107
+ default: () => E
108
+ } }, O = { install(e, t) {
109
+ let n = t ?? {}, r = Object.hasOwn(n, "lang") ? n.lang : "ru";
110
+ if (!w(r)) throw Error(`dashboardUi: неизвестный lang «${r}», допустимы: ${C.join(", ")}`);
111
+ let i = Object.hasOwn(n, "navigate"), a = i ? n.navigate : null;
112
+ if (i && typeof a != "function") throw Error("dashboardUi: navigate должен быть функцией (href) => …");
113
+ e.provide(T, Object.freeze({
114
+ lang: r,
115
+ navigate: a
116
+ }));
117
+ } }, k = (e, t) => {
6
118
  let n = e.__vccOpts || e;
7
119
  for (let [e, r] of t) n[e] = r;
8
120
  return n;
9
- }, S = {
121
+ }, ne = {
10
122
  props: {
11
123
  isOpen: {
12
124
  type: Boolean,
@@ -33,21 +145,21 @@ var x = (e, t) => {
33
145
  document.removeEventListener("keydown", this.handleEscape);
34
146
  }
35
147
  };
36
- function C(e, t, n, r, a, o) {
37
- return v((l(), i("button", {
148
+ function re(e, t, n, r, a, o) {
149
+ return y((u(), i("button", {
38
150
  tabindex: "-1",
39
- onClick: t[0] ||= b((...e) => o.closeOverlay && o.closeOverlay(...e), ["prevent"]),
40
- class: c(["bb:fixed bb:inset-0 bb:w-full bb:h-full bb:cursor-default bb:flex bb:items-start", {
151
+ onClick: t[0] ||= x((...e) => o.closeOverlay && o.closeOverlay(...e), ["prevent"]),
152
+ class: l(["bb:fixed bb:inset-0 bb:w-full bb:h-full bb:cursor-default bb:flex bb:items-start", {
41
153
  "bb:z-20": n.isOpen,
42
154
  "bb:bg-transparent": n.isTransparent,
43
155
  "bb:bg-gray-900 bb:opacity-75": !n.isTransparent
44
156
  }])
45
- }, null, 2)), [[g, n.isOpen]]);
157
+ }, null, 2)), [[_, n.isOpen]]);
46
158
  }
47
159
  //#endregion
48
160
  //#region src/components/Popup.vue
49
- var w = {
50
- components: { Overlay: /* @__PURE__ */ x(S, [["render", C]]) },
161
+ var ie = {
162
+ components: { Overlay: /* @__PURE__ */ k(ne, [["render", re]]) },
51
163
  inheritAttrs: !1,
52
164
  emits: ["update:modelValue"],
53
165
  props: {
@@ -80,13 +192,13 @@ var w = {
80
192
  return this.align === "right";
81
193
  }
82
194
  }
83
- }, T = { class: "bb-dashboard-ui bb:relative" };
84
- function E(e, n, r, c, u, p) {
85
- let m = f("overlay");
86
- return l(), i("div", T, [o(m, {
87
- "is-open": u.overlayIsOpen,
88
- "onUpdate:isOpen": n[0] ||= (e) => u.overlayIsOpen = e
89
- }, null, 8, ["is-open"]), o(t, {
195
+ }, ae = { class: "bb-dashboard-ui bb:relative" };
196
+ function oe(e, n, r, o, l, d) {
197
+ let m = p("overlay");
198
+ return u(), i("div", ae, [s(m, {
199
+ "is-open": l.overlayIsOpen,
200
+ "onUpdate:isOpen": n[0] ||= (e) => l.overlayIsOpen = e
201
+ }, null, 8, ["is-open"]), s(t, {
90
202
  "enter-active-class": "bb:transition bb:ease-out bb:duration-100",
91
203
  "enter-from-class": "bb:opacity-0 bb:scale-95",
92
204
  "enter-to-class": "bb:opacity-100 bb:scale-100",
@@ -94,14 +206,14 @@ function E(e, n, r, c, u, p) {
94
206
  "leave-from-class": "bb:opacity-100 bb:scale-100",
95
207
  "leave-to-class": "bb:opacity-0 bb:scale-95"
96
208
  }, {
97
- default: _(() => [v(a("div", s(e.$attrs, { class: ["bb:absolute bb:z-20", {
98
- "bb:left-0": p.alignLeft,
99
- "bb:right-0": p.alignRight
100
- }] }), [d(e.$slots, "default")], 16), [[g, r.modelValue]])]),
209
+ default: v(() => [y(a("div", c(e.$attrs, { class: ["bb:absolute bb:z-20", {
210
+ "bb:left-0": d.alignLeft,
211
+ "bb:right-0": d.alignRight
212
+ }] }), [f(e.$slots, "default")], 16), [[_, r.modelValue]])]),
101
213
  _: 3
102
214
  })]);
103
215
  }
104
- var D = /*#__PURE__*/ x(w, [["render", E]]), ne = {
216
+ var A = /*#__PURE__*/ k(ie, [["render", oe]]), se = {
105
217
  props: {
106
218
  withPulse: {
107
219
  type: Boolean,
@@ -122,8 +234,8 @@ var D = /*#__PURE__*/ x(w, [["render", E]]), ne = {
122
234
  }
123
235
  }
124
236
  };
125
- function re(e, t, n, r, o, s) {
126
- return l(), i("div", { class: c(["bb-dashboard-ui bb:flex bb:h-full bb:items-center bb:leading-none bb:text-4xl", {
237
+ function ce(e, t, n, r, o, s) {
238
+ return u(), i("div", { class: l(["bb-dashboard-ui bb:flex bb:h-full bb:items-center bb:leading-none bb:text-4xl", {
127
239
  "bb:text-red-500": s.isRed,
128
240
  "bb:text-green-500": s.isGreen,
129
241
  "bb:animate-pulse": n.withPulse
@@ -136,13 +248,13 @@ function re(e, t, n, r, o, s) {
136
248
  r: "45"
137
249
  })], -1)]], 2);
138
250
  }
139
- var O = /*#__PURE__*/ x(ne, [["render", re]]), k = {}, A = {
251
+ var j = /*#__PURE__*/ k(se, [["render", ce]]), M = {}, N = {
140
252
  type: "button",
141
253
  tabindex: "-1",
142
254
  class: "bb:absolute bb:right-0 bb:top-0 bb:flex bb:items-center bb:justify-center bb:bg-transparent bb:cursor-pointer bb:text-gray-300 bb:hover:text-gray-400 bb:focus:outline-hidden"
143
255
  };
144
- function j(e, t, n, r, o, s) {
145
- return l(), i("button", A, [...t[0] ||= [a("svg", {
256
+ function P(e, t, n, r, o, s) {
257
+ return u(), i("button", N, [...t[0] ||= [a("svg", {
146
258
  class: "bb:w-6 bb:h-6 bb:stroke-current",
147
259
  fill: "none",
148
260
  viewBox: "0 0 24 24"
@@ -153,25 +265,41 @@ function j(e, t, n, r, o, s) {
153
265
  d: "M6 18L18 6M6 6l12 12"
154
266
  })], -1)]]);
155
267
  }
156
- var M = /*#__PURE__*/ x(k, [["render", j]]);
268
+ var F = /*#__PURE__*/ k(M, [["render", P]]);
157
269
  //#endregion
158
270
  //#region src/date.js
159
- function N(e) {
271
+ function I(e) {
160
272
  return `${String(e.getDate()).padStart(2, "0")}.${String(e.getMonth() + 1).padStart(2, "0")}.${String(e.getFullYear()).padStart(4, "0")}`;
161
273
  }
162
- function P(e) {
274
+ function L(e) {
163
275
  let t = /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/.exec(e);
164
276
  if (t === null) return null;
165
277
  let [, n, r, i] = t.map(Number), a = /* @__PURE__ */ new Date(0);
166
278
  return a.setFullYear(i, r - 1, n), a.setHours(0, 0, 0, 0), a.getDate() !== n || a.getMonth() !== r - 1 || a.getFullYear() !== i ? null : a;
167
279
  }
168
280
  //#endregion
169
- //#region src/components/PickDay.vue
170
- var F = {
281
+ //#region src/lang.js
282
+ var R = {
283
+ inject: D,
284
+ props: { lang: {
285
+ type: String,
286
+ default: null,
287
+ validator: (e) => e === null || w(e)
288
+ } },
289
+ computed: {
290
+ resolvedLang() {
291
+ return w(this.lang) ? this.lang : this.uiSettings.lang;
292
+ },
293
+ texts() {
294
+ return te[this.resolvedLang];
295
+ }
296
+ }
297
+ }, z = {
171
298
  components: {
172
- Popup: D,
173
- Eraser: M
299
+ Popup: A,
300
+ Eraser: F
174
301
  },
302
+ mixins: [R],
175
303
  emits: ["update:modelValue", "changed"],
176
304
  props: {
177
305
  modelValue: {
@@ -191,52 +319,23 @@ var F = {
191
319
  this.picker = null;
192
320
  },
193
321
  mounted() {
194
- this.picker = new ee({
322
+ this.picker = new S({
195
323
  field: this.$refs.field,
196
324
  container: this.$refs.container,
197
325
  keyboardInput: !1,
198
326
  bound: !1,
199
327
  firstDay: 1,
200
- parse: (e) => P(e),
201
- toString: (e) => N(e),
328
+ parse: (e) => L(e),
329
+ toString: (e) => I(e),
202
330
  i18n: {
203
- previousMonth: "Предыдущий месяц",
204
- nextMonth: "Следующий месяц",
205
- months: [
206
- "Январь",
207
- "Февраль",
208
- "Март",
209
- "Апрель",
210
- "Май",
211
- "Июнь",
212
- "Июль",
213
- "Август",
214
- "Сентябрь",
215
- "Октябрь",
216
- "Ноябрь",
217
- "Декабрь"
218
- ],
219
- weekdays: [
220
- "Воскресенье",
221
- "Понедельник",
222
- "Вторник",
223
- "Среда",
224
- "Четверг",
225
- "Пятница",
226
- "Суббота"
227
- ],
228
- weekdaysShort: [
229
- "Вс",
230
- "Пн",
231
- "Вт",
232
- "Ср",
233
- "Чт",
234
- "Пт",
235
- "Сб"
236
- ]
331
+ previousMonth: this.texts.previousMonth,
332
+ nextMonth: this.texts.nextMonth,
333
+ months: this.texts.months,
334
+ weekdays: this.texts.weekdays,
335
+ weekdaysShort: this.texts.weekdaysShort
237
336
  },
238
337
  onSelect: (e) => {
239
- this.popupIsOpen = !1, this.$emit("update:modelValue", N(e)), this.$emit("changed");
338
+ this.popupIsOpen = !1, this.$emit("update:modelValue", I(e)), this.$emit("changed");
240
339
  }
241
340
  });
242
341
  },
@@ -255,7 +354,7 @@ var F = {
255
354
  } },
256
355
  methods: {
257
356
  syncPicker(e) {
258
- let t = P(e);
357
+ let t = L(e);
259
358
  if (t === null) {
260
359
  this.picker.clear();
261
360
  return;
@@ -274,42 +373,42 @@ var F = {
274
373
  return !this.withEraser || this.popupIsOpen ? !1 : this.hasValue;
275
374
  }
276
375
  }
277
- }, I = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, L = { class: "bb:relative bb:flex bb:h-full bb:cursor-pointer bb:leading-none" }, R = { class: "bb:min-w-24 bb:w-full bb:h-full" }, z = [
376
+ }, B = { class: "bb-dashboard-ui bb:flex bb:flex-col" }, V = { class: "bb:relative bb:flex bb:h-full bb:cursor-pointer bb:leading-none" }, H = { class: "bb:min-w-24 bb:w-full bb:h-full" }, U = [
278
377
  "disabled",
279
378
  "value",
280
379
  "placeholder"
281
- ], B = {
380
+ ], W = {
282
381
  ref: "container",
283
382
  class: "bb:flex bb:mt-1 bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg"
284
383
  };
285
- function V(e, t, s, u, d, p) {
286
- let m = f("eraser"), h = f("popup");
287
- return l(), i("div", I, [a("div", L, [a("button", {
384
+ function G(e, t, o, c, d, f) {
385
+ let m = p("eraser"), h = p("popup");
386
+ return u(), i("div", B, [a("div", V, [a("button", {
288
387
  ref: "trigger",
289
388
  type: "button",
290
- class: c(["bb:flex bb:w-full bb:items-center bb:focus:outline-hidden", { "bb:z-20": d.popupIsOpen }]),
389
+ class: l(["bb:flex bb:w-full bb:items-center bb:focus:outline-hidden", { "bb:z-20": d.popupIsOpen }]),
291
390
  onClick: t[0] ||= (e) => d.popupIsOpen = !d.popupIsOpen
292
- }, [a("label", R, [a("input", {
391
+ }, [a("label", H, [a("input", {
293
392
  disabled: d.popupIsOpen,
294
393
  ref: "field",
295
394
  type: "text",
296
395
  value: d.dayValue,
297
- placeholder: s.placeholderText,
396
+ placeholder: o.placeholderText,
298
397
  class: "bb:w-full bb:h-full bb:py-2 bb:pr-3 bb:leading-none bb:border bb:border-transparent bb:whitespace-nowrap bb:bg-transparent bb:placeholder:text-sm bb:placeholder-gray-300 bb:cursor-pointer bb:focus:outline-hidden"
299
- }, null, 8, z)])], 2), p.needsEraser ? (l(), n(m, {
398
+ }, null, 8, U)])], 2), f.needsEraser ? (u(), n(m, {
300
399
  key: 0,
301
- onClick: p.clearPicker,
400
+ onClick: f.clearPicker,
302
401
  class: "bb:z-10 bb:h-full bb:pr-2"
303
- }, null, 8, ["onClick"])) : r("", !0)]), o(h, {
402
+ }, null, 8, ["onClick"])) : r("", !0)]), s(h, {
304
403
  modelValue: d.popupIsOpen,
305
404
  "onUpdate:modelValue": t[1] ||= (e) => d.popupIsOpen = e
306
405
  }, {
307
- default: _(() => [a("div", B, null, 512)]),
406
+ default: v(() => [a("div", W, null, 512)]),
308
407
  _: 1
309
408
  }, 8, ["modelValue"])]);
310
409
  }
311
- var H = /*#__PURE__*/ x(F, [["render", V]]), U = {
312
- components: { Dot: O },
410
+ var K = /*#__PURE__*/ k(z, [["render", G]]), le = {
411
+ components: { Dot: j },
313
412
  props: {
314
413
  text: {
315
414
  type: String,
@@ -324,43 +423,43 @@ var H = /*#__PURE__*/ x(F, [["render", V]]), U = {
324
423
  default: !1
325
424
  }
326
425
  }
327
- }, W = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, G = ["textContent"];
328
- function K(e, t, n, r, s, c) {
329
- let u = f("dot");
330
- return l(), i("div", W, [
426
+ }, ue = { class: "bb:flex bb:h-6 bb:px-3 bb:bg-white bb:items-center bb:justify-between" }, de = ["textContent"];
427
+ function fe(e, t, n, r, o, c) {
428
+ let l = p("dot");
429
+ return u(), i("div", ue, [
331
430
  a("div", {
332
431
  class: "bb:flex bb:flex-1 bb:h-full bb:items-center bb:text-xs bb:text-gray-500 bb:whitespace-nowrap bb:truncate bb:leading-tight bb:select-none",
333
- textContent: p(n.text)
334
- }, null, 8, G),
335
- v(o(u, {
432
+ textContent: m(n.text)
433
+ }, null, 8, de),
434
+ y(s(l, {
336
435
  color: "red",
337
436
  "with-pulse": !0,
338
437
  class: "bb:ml-3"
339
- }, null, 512), [[g, n.isLoading]]),
340
- v(o(u, {
438
+ }, null, 512), [[_, n.isLoading]]),
439
+ y(s(l, {
341
440
  color: "red",
342
441
  class: "bb:ml-3"
343
- }, null, 512), [[g, n.isRequired]])
442
+ }, null, 512), [[_, n.isRequired]])
344
443
  ]);
345
444
  }
346
- var q = /*#__PURE__*/ x(U, [["render", K]]), J = 10;
347
- function Y(e) {
445
+ var q = /*#__PURE__*/ k(le, [["render", fe]]), pe = 10;
446
+ function me(e) {
348
447
  let t = e.replace(/\D/g, "");
349
- return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, J);
448
+ return (t.startsWith("7") || t.startsWith("8")) && t[1] === "9" && (t = t.slice(1)), t.slice(0, pe);
350
449
  }
351
- function X(e) {
450
+ function J(e) {
352
451
  return e === "" ? "" : `7${e}`;
353
452
  }
354
- function Z(e) {
453
+ function Y(e) {
355
454
  let t = e ?? "", n = t.startsWith("+") ? t.slice(1) : t;
356
455
  return n.startsWith("7") ? n.slice(1) : n;
357
456
  }
358
457
  //#endregion
359
458
  //#region src/components/RussianMobileFilter.vue
360
- var ie = 400, ae = 3, oe = {
459
+ var he = 400, ge = 3, _e = {
361
460
  components: {
362
461
  ElementHeader: q,
363
- Eraser: M
462
+ Eraser: F
364
463
  },
365
464
  emits: ["update:modelValue", "changed"],
366
465
  props: {
@@ -382,32 +481,32 @@ var ie = 400, ae = 3, oe = {
382
481
  }
383
482
  },
384
483
  data() {
385
- return { digits: Z(this.modelValue) };
484
+ return { digits: Y(this.modelValue) };
386
485
  },
387
486
  created() {
388
- this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = Z(this.modelValue);
487
+ this.mask = null, this.debounceTimer = null, this.isWritingProgrammatically = !1, this.lastCommitted = Y(this.modelValue);
389
488
  },
390
489
  mounted() {
391
- this.mask = te(this.$refs.input, {
490
+ this.mask = ee(this.$refs.input, {
392
491
  mask: "+7 (000) 000 00 00",
393
492
  lazy: !0,
394
493
  prepare: (e, t) => t.unmaskedValue === "" && (e === "7" || e === "8") ? "" : e
395
494
  }), this.mask.on("accept", () => {
396
- this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", X(this.digits)), this.scheduleCommit());
495
+ this.isWritingProgrammatically || (this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", J(this.digits)), this.scheduleCommit());
397
496
  }), this.syncFromModelValue(this.modelValue);
398
497
  },
399
498
  beforeUnmount() {
400
499
  clearTimeout(this.debounceTimer), this.mask?.destroy();
401
500
  },
402
501
  watch: { modelValue(e) {
403
- e !== X(this.digits) && this.syncFromModelValue(e);
502
+ e !== J(this.digits) && this.syncFromModelValue(e);
404
503
  } },
405
504
  methods: {
406
505
  syncFromModelValue(e) {
407
- this.writeToMask(Z(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
506
+ this.writeToMask(Y(e)), this.digits = this.mask.unmaskedValue, this.lastCommitted = this.digits;
408
507
  },
409
508
  applyUserDigits(e) {
410
- this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", X(this.digits));
509
+ this.writeToMask(e), this.digits = this.mask.unmaskedValue, this.$emit("update:modelValue", J(this.digits));
411
510
  },
412
511
  writeToMask(e) {
413
512
  if (this.isWritingProgrammatically = !0, e === "") this.mask.value = "";
@@ -430,7 +529,7 @@ var ie = 400, ae = 3, oe = {
430
529
  this.setLazy(!0), this.digits === "" && this.writeToMask(""), this.commit();
431
530
  },
432
531
  onPaste(e) {
433
- this.applyUserDigits(Y(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
532
+ this.applyUserDigits(me(e.clipboardData?.getData("text") ?? "")), this.scheduleCommit();
434
533
  },
435
534
  clear() {
436
535
  this.applyUserDigits(""), this.commit();
@@ -440,16 +539,16 @@ var ie = 400, ae = 3, oe = {
440
539
  this.commit();
441
540
  return;
442
541
  }
443
- this.digits.length < ae || (this.debounceTimer = setTimeout(() => this.commit(), ie));
542
+ this.digits.length < ge || (this.debounceTimer = setTimeout(() => this.commit(), he));
444
543
  },
445
544
  commit() {
446
545
  clearTimeout(this.debounceTimer), this.digits !== this.lastCommitted && (this.lastCommitted = this.digits, this.$emit("changed"));
447
546
  }
448
547
  }
449
- }, se = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, ce = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, le = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, ue = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
450
- function de(e, t, n, r, s, c) {
451
- let u = f("element-header"), d = f("eraser");
452
- return l(), i("div", se, [a("div", ce, [o(u, {
548
+ }, ve = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, ye = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, be = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, xe = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
549
+ function Se(e, t, n, r, o, c) {
550
+ let l = p("element-header"), d = p("eraser");
551
+ return u(), i("div", ve, [a("div", ye, [s(l, {
453
552
  text: n.header,
454
553
  "is-required": n.isRequired,
455
554
  "is-loading": n.isLoading
@@ -457,7 +556,7 @@ function de(e, t, n, r, s, c) {
457
556
  "text",
458
557
  "is-required",
459
558
  "is-loading"
460
- ]), a("div", le, [a("label", ue, [a("input", {
559
+ ]), a("div", be, [a("label", xe, [a("input", {
461
560
  ref: "input",
462
561
  type: "tel",
463
562
  inputmode: "tel",
@@ -465,18 +564,18 @@ function de(e, t, n, r, s, c) {
465
564
  class: "bb:flex bb:w-phone bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:outline-hidden bb:border-none",
466
565
  onFocus: t[0] ||= (...e) => c.onFocus && c.onFocus(...e),
467
566
  onBlur: t[1] ||= (...e) => c.onBlur && c.onBlur(...e),
468
- onKeydown: t[2] ||= y((...e) => c.commit && c.commit(...e), ["enter"]),
469
- onPaste: t[3] ||= b((...e) => c.onPaste && c.onPaste(...e), ["prevent"])
470
- }, null, 544), v(o(d, {
471
- onMousedown: t[4] ||= b(() => {}, ["prevent"]),
567
+ onKeydown: t[2] ||= b((...e) => c.commit && c.commit(...e), ["enter"]),
568
+ onPaste: t[3] ||= x((...e) => c.onPaste && c.onPaste(...e), ["prevent"])
569
+ }, null, 544), y(s(d, {
570
+ onMousedown: t[4] ||= x(() => {}, ["prevent"]),
472
571
  onClick: c.clear,
473
572
  class: "bb:pr-2 bb:h-full"
474
- }, null, 8, ["onClick"]), [[g, s.digits.length > 0]])])])])]);
573
+ }, null, 8, ["onClick"]), [[_, o.digits.length > 0]])])])])]);
475
574
  }
476
- var fe = /*#__PURE__*/ x(oe, [["render", de]]), pe = {
575
+ var Ce = /*#__PURE__*/ k(_e, [["render", Se]]), we = {
477
576
  components: {
478
577
  ElementHeader: q,
479
- Eraser: M
578
+ Eraser: F
480
579
  },
481
580
  emits: ["update:modelValue", "changed"],
482
581
  props: {
@@ -514,10 +613,10 @@ var fe = /*#__PURE__*/ x(oe, [["render", de]]), pe = {
514
613
  this.$emit("update:modelValue", this.search), this.$emit("changed");
515
614
  }
516
615
  }
517
- }, me = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, he = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, ge = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, _e = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
518
- function ve(e, t, n, r, s, c) {
519
- let u = f("element-header"), d = f("eraser");
520
- return l(), i("div", me, [a("div", he, [o(u, {
616
+ }, Te = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Ee = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, De = { class: "bb:relative bb:flex bb:h-full bb:w-full" }, Oe = { class: "bb:flex bb:w-full bb:h-full bb:items-center bb:justify-center" };
617
+ function ke(e, t, n, r, o, c) {
618
+ let l = p("element-header"), d = p("eraser");
619
+ return u(), i("div", Te, [a("div", Ee, [s(l, {
521
620
  text: n.header,
522
621
  "is-required": n.isRequired,
523
622
  "is-loading": n.isLoading
@@ -525,25 +624,26 @@ function ve(e, t, n, r, s, c) {
525
624
  "text",
526
625
  "is-required",
527
626
  "is-loading"
528
- ]), a("div", ge, [a("label", _e, [v(a("input", {
627
+ ]), a("div", De, [a("label", Oe, [y(a("input", {
529
628
  class: "bb:flex bb:w-full bb:h-full bb:px-3 bb:py-2 bb:cursor-pointer bb:truncate bb:focus:outline-hidden bb:border-none",
530
- "onUpdate:modelValue": t[0] ||= (e) => s.search = e,
629
+ "onUpdate:modelValue": t[0] ||= (e) => o.search = e,
531
630
  onInput: t[1] ||= (...e) => c.startSearch && c.startSearch(...e)
532
631
  }, null, 544), [[
533
- h,
534
- s.search,
632
+ g,
633
+ o.search,
535
634
  void 0,
536
635
  { trim: !0 }
537
- ]]), v(o(d, {
636
+ ]]), y(s(d, {
538
637
  onClick: c.clearInput,
539
638
  class: "bb:pr-2 bb:h-full"
540
- }, null, 8, ["onClick"]), [[g, c.inputNeedsEraser]])])])])]);
639
+ }, null, 8, ["onClick"]), [[_, c.inputNeedsEraser]])])])])]);
541
640
  }
542
- var ye = /*#__PURE__*/ x(pe, [["render", ve]]), be = {
641
+ var Ae = /*#__PURE__*/ k(we, [["render", ke]]), je = {
543
642
  components: {
544
643
  ElementHeader: q,
545
- PickDay: H
644
+ PickDay: K
546
645
  },
646
+ mixins: [R],
547
647
  emits: [
548
648
  "update:dateFrom",
549
649
  "update:dateTo",
@@ -591,10 +691,10 @@ var ye = /*#__PURE__*/ x(pe, [["render", ve]]), be = {
591
691
  this.$emit("update:dateTo", e), this.dateTo !== e && this.$emit("changed");
592
692
  }
593
693
  }
594
- }, xe = { class: "bb-dashboard-ui bb:flex" }, Se = { class: "bb:flex bb:border bb:border-white" }, Ce = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, we = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
595
- function Te(e, t, n, r, s, c) {
596
- let u = f("element-header"), d = f("pick-day");
597
- return l(), i("div", xe, [a("div", Se, [a("div", Ce, [o(u, {
694
+ }, Me = { class: "bb-dashboard-ui bb:flex" }, Ne = { class: "bb:flex bb:border bb:border-white" }, Pe = { class: "bb:flex bb:flex-col bb:min-w-72 bb:w-72 bb:bg-white bb:h-full" }, Fe = { class: "bb:flex bb:h-full bb:divide-x bb:divide-gray-200" };
695
+ function Ie(e, t, n, r, o, c) {
696
+ let l = p("element-header"), d = p("pick-day");
697
+ return u(), i("div", Me, [a("div", Ne, [a("div", Pe, [s(l, {
598
698
  text: n.header,
599
699
  "is-required": n.isRequired,
600
700
  "is-loading": n.isLoading
@@ -602,22 +702,32 @@ function Te(e, t, n, r, s, c) {
602
702
  "text",
603
703
  "is-required",
604
704
  "is-loading"
605
- ]), a("div", we, [o(d, {
606
- modelValue: s.userDateFrom,
607
- "onUpdate:modelValue": t[0] ||= (e) => s.userDateFrom = e,
705
+ ]), a("div", Fe, [s(d, {
706
+ modelValue: o.userDateFrom,
707
+ "onUpdate:modelValue": t[0] ||= (e) => o.userDateFrom = e,
608
708
  class: "bb:flex-1 bb:min-w-36 bb:pl-3",
609
- "placeholder-text": "от"
610
- }, null, 8, ["modelValue"]), o(d, {
611
- modelValue: s.userDateTo,
612
- "onUpdate:modelValue": t[1] ||= (e) => s.userDateTo = e,
709
+ "placeholder-text": e.texts.dateFrom,
710
+ lang: e.resolvedLang
711
+ }, null, 8, [
712
+ "modelValue",
713
+ "placeholder-text",
714
+ "lang"
715
+ ]), s(d, {
716
+ modelValue: o.userDateTo,
717
+ "onUpdate:modelValue": t[1] ||= (e) => o.userDateTo = e,
613
718
  class: "bb:flex-1 bb:min-w-36 bb:pl-3",
614
- "placeholder-text": "до"
615
- }, null, 8, ["modelValue"])])])])]);
719
+ "placeholder-text": e.texts.dateTo,
720
+ lang: e.resolvedLang
721
+ }, null, 8, [
722
+ "modelValue",
723
+ "placeholder-text",
724
+ "lang"
725
+ ])])])])]);
616
726
  }
617
- var Ee = /*#__PURE__*/ x(be, [["render", Te]]), De = {
727
+ var Le = /*#__PURE__*/ k(je, [["render", Ie]]), Re = {
618
728
  components: {
619
- Popup: D,
620
- Eraser: M
729
+ Popup: A,
730
+ Eraser: F
621
731
  },
622
732
  emits: ["update:isOpen", "erased"],
623
733
  props: {
@@ -648,29 +758,29 @@ var Ee = /*#__PURE__*/ x(be, [["render", Te]]), De = {
648
758
  computed: { needsEraser() {
649
759
  return !this.isOpen && this.hasValue;
650
760
  } }
651
- }, Oe = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, ke = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, Ae = ["textContent"];
652
- function je(e, t, s, u, m, h) {
653
- let g = f("eraser"), v = f("popup");
654
- return l(), i("div", Oe, [a("div", ke, [a("button", {
761
+ }, ze = { class: "bb:flex bb:flex-col bb:grow bb:bg-white" }, Be = { class: "bb:relative bb:flex bb:w-full bb:h-full" }, Ve = ["textContent"];
762
+ function He(e, t, o, c, d, h) {
763
+ let g = p("eraser"), _ = p("popup");
764
+ return u(), i("div", ze, [a("div", Be, [a("button", {
655
765
  type: "button",
656
- class: c(["bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer", { "bb:z-20": s.isOpen }]),
657
- onClick: t[0] ||= b((t) => e.$emit("update:isOpen", !s.isOpen), ["prevent"])
766
+ class: l(["bb:flex bb:w-full bb:h-full bb:items-center bb:focus:outline-hidden bb:cursor-pointer", { "bb:z-20": o.isOpen }]),
767
+ onClick: t[0] ||= x((t) => e.$emit("update:isOpen", !o.isOpen), ["prevent"])
658
768
  }, [a("span", {
659
769
  class: "bb:flex bb:w-full bb:h-full bb:pl-3 bb:pr-12 bb:py-2 bb:items-center bb:whitespace-nowrap bb:leading-none",
660
- textContent: p(s.title)
661
- }, null, 8, Ae)], 2), h.needsEraser ? (l(), n(g, {
770
+ textContent: m(o.title)
771
+ }, null, 8, Ve)], 2), h.needsEraser ? (u(), n(g, {
662
772
  key: 0,
663
773
  onClick: t[1] ||= (t) => e.$emit("erased"),
664
774
  class: "bb:pr-2 bb:h-full"
665
- })) : r("", !0)]), o(v, {
666
- modelValue: m.popupIsOpen,
667
- "onUpdate:modelValue": t[2] ||= (e) => m.popupIsOpen = e
775
+ })) : r("", !0)]), s(_, {
776
+ modelValue: d.popupIsOpen,
777
+ "onUpdate:modelValue": t[2] ||= (e) => d.popupIsOpen = e
668
778
  }, {
669
- default: _(() => [d(e.$slots, "default")]),
779
+ default: v(() => [f(e.$slots, "default")]),
670
780
  _: 3
671
781
  }, 8, ["modelValue"])]);
672
782
  }
673
- var Me = /*#__PURE__*/ x(De, [["render", je]]), Ne = {
783
+ var Ue = /*#__PURE__*/ k(Re, [["render", He]]), We = {
674
784
  props: {
675
785
  isChecked: {
676
786
  type: Boolean,
@@ -682,31 +792,31 @@ var Me = /*#__PURE__*/ x(De, [["render", je]]), Ne = {
682
792
  methods: { toggle() {
683
793
  this.$emit("clicked");
684
794
  } }
685
- }, Pe = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center" }, Fe = {
795
+ }, Ge = { class: "bb:flex bb:w-9 bb:h-9 bb:items-center bb:justify-center" }, Ke = {
686
796
  class: "bb:w-5 bb:h-5 bb:fill-current bb:text-green-300",
687
797
  viewBox: "0 0 20 20"
688
- }, Ie = ["textContent"];
689
- function Le(e, t, n, r, o, s) {
690
- return l(), i("button", {
798
+ }, qe = ["textContent"];
799
+ function Je(e, t, n, r, o, s) {
800
+ return u(), i("button", {
691
801
  type: "button",
692
- onClick: t[0] ||= b((...e) => s.toggle && s.toggle(...e), ["prevent"]),
802
+ onClick: t[0] ||= x((...e) => s.toggle && s.toggle(...e), ["prevent"]),
693
803
  class: "bb:flex bb:w-full bb:bg-white bb:hover:bg-indigo-100 bb:cursor-pointer bb:focus:outline-hidden bb:focus:ring-3 bb:focus:z-10 bb:focus:ring-blue-500/50"
694
- }, [a("span", Pe, [v((l(), i("svg", Fe, [...t[1] ||= [a("path", {
804
+ }, [a("span", Ge, [y((u(), i("svg", Ke, [...t[1] ||= [a("path", {
695
805
  d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
696
806
  "clip-rule": "evenodd",
697
807
  "fill-rule": "evenodd"
698
- }, null, -1)]], 512)), [[g, n.isChecked]])]), a("span", {
808
+ }, null, -1)]], 512)), [[_, n.isChecked]])]), a("span", {
699
809
  class: "bb:flex bb:h-9 bb:justify-center bb:items-center bb:pr-6 bb:whitespace-nowrap bb:select-none",
700
- textContent: p(n.name)
701
- }, null, 8, Ie)]);
810
+ textContent: m(n.name)
811
+ }, null, 8, qe)]);
702
812
  }
703
813
  //#endregion
704
814
  //#region src/components/SelectSingle.vue
705
- var Re = {
815
+ var Ye = {
706
816
  components: {
707
817
  ElementHeader: q,
708
- DropdownButton: Me,
709
- ListElement: /* @__PURE__ */ x(Ne, [["render", Le]])
818
+ DropdownButton: Ue,
819
+ ListElement: /* @__PURE__ */ k(We, [["render", Je]])
710
820
  },
711
821
  emits: ["update:modelValue", "changed"],
712
822
  props: {
@@ -759,10 +869,10 @@ var Re = {
759
869
  this.$emit("update:modelValue", null), this.$emit("changed");
760
870
  }
761
871
  }
762
- }, ze = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Be = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Ve = { class: "bb:flex bb:flex-col bb:py-1 bb:mt-1 bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg bb:divide-y bb:divide-gray-200 bb:divide-dashed" };
763
- function He(t, s, c, d, p, m) {
764
- let h = f("element-header"), g = f("list-element"), v = f("dropdown-button");
765
- return l(), i("div", ze, [a("div", Be, [o(h, {
872
+ }, Xe = { class: "bb-dashboard-ui bb:flex bb:flex-none" }, Ze = { class: "bb:flex bb:w-full bb:flex-col bb:border bb:border-white bb:bg-white" }, Qe = { class: "bb:flex bb:flex-col bb:py-1 bb:mt-1 bb:bg-white bb:border bb:border-gray-200 bb:rounded-md bb:shadow-lg bb:divide-y bb:divide-gray-200 bb:divide-dashed" };
873
+ function $e(t, o, c, l, f, m) {
874
+ let h = p("element-header"), g = p("list-element"), _ = p("dropdown-button");
875
+ return u(), i("div", Xe, [a("div", Ze, [s(h, {
766
876
  text: c.header,
767
877
  "is-required": c.isRequired,
768
878
  "is-loading": c.isLoading
@@ -770,15 +880,15 @@ function He(t, s, c, d, p, m) {
770
880
  "text",
771
881
  "is-required",
772
882
  "is-loading"
773
- ]), m.hasItems ? (l(), n(v, {
883
+ ]), m.hasItems ? (u(), n(_, {
774
884
  key: 0,
775
885
  title: m.activeItemName,
776
- "is-open": p.isOpen,
777
- "onUpdate:isOpen": s[0] ||= (e) => p.isOpen = e,
886
+ "is-open": f.isOpen,
887
+ "onUpdate:isOpen": o[0] ||= (e) => f.isOpen = e,
778
888
  "has-value": m.hasValue,
779
889
  onErased: m.clear
780
890
  }, {
781
- default: _(() => [a("div", Ve, [(l(!0), i(e, null, u(m.itemList, (e) => (l(), n(g, {
891
+ default: v(() => [a("div", Qe, [(u(!0), i(e, null, d(m.itemList, (e) => (u(), n(g, {
782
892
  name: e.name,
783
893
  key: e.id,
784
894
  "is-checked": e.id === c.modelValue,
@@ -796,7 +906,7 @@ function He(t, s, c, d, p, m) {
796
906
  "onErased"
797
907
  ])) : r("", !0)])]);
798
908
  }
799
- var Ue = /*#__PURE__*/ x(Re, [["render", He]]), We = {
909
+ var et = /*#__PURE__*/ k(Ye, [["render", $e]]), tt = {
800
910
  props: {
801
911
  text: {
802
912
  type: String,
@@ -835,10 +945,10 @@ var Ue = /*#__PURE__*/ x(Re, [["render", He]]), We = {
835
945
  return this.color === "yellow";
836
946
  }
837
947
  }
838
- }, Ge = ["textContent"];
839
- function Ke(e, t, n, r, a, o) {
840
- return l(), i("span", {
841
- class: c(["bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-2 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:whitespace-nowrap", {
948
+ }, nt = ["textContent"];
949
+ function rt(e, t, n, r, a, o) {
950
+ return u(), i("span", {
951
+ class: l(["bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-2 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:whitespace-nowrap", {
842
952
  "bb:bg-green-50 bb:text-gray-700": o.isGreen,
843
953
  "bb:bg-indigo-100 bb:text-gray-700": o.isIndigo,
844
954
  "bb:bg-gray-200 bb:text-gray-700": o.isGray,
@@ -846,10 +956,10 @@ function Ke(e, t, n, r, a, o) {
846
956
  "bb:bg-red-100 bb:text-red-800": o.isRed,
847
957
  "bb:bg-yellow-100 bb:text-yellow-800": o.isYellow
848
958
  }]),
849
- textContent: p(n.text)
850
- }, null, 10, Ge);
959
+ textContent: m(n.text)
960
+ }, null, 10, nt);
851
961
  }
852
- var qe = /*#__PURE__*/ x(We, [["render", Ke]]), Je = {
962
+ var it = /*#__PURE__*/ k(tt, [["render", rt]]), at = {
853
963
  props: {
854
964
  messages: {
855
965
  type: [Object, Array],
@@ -869,32 +979,32 @@ var qe = /*#__PURE__*/ x(We, [["render", Ke]]), Je = {
869
979
  return this.type === "dangerous";
870
980
  }
871
981
  }
872
- }, Ye = { class: "bb:flex" }, Xe = { class: "bb:shrink-0" }, Ze = { class: "bb:ml-3" }, Qe = ["textContent"];
873
- function $e(t, n, o, s, d, f) {
874
- return f.hasErrors ? (l(), i("div", {
982
+ }, ot = { class: "bb:flex" }, st = { class: "bb:shrink-0" }, ct = { class: "bb:ml-3" }, lt = ["textContent"];
983
+ function ut(t, n, o, s, c, f) {
984
+ return f.hasErrors ? (u(), i("div", {
875
985
  key: 0,
876
- class: c(["bb-dashboard-ui bb:border-l-4 bb:p-4", f.isDangerous ? "bb:bg-red-50 bb:border-red-400" : "bb:bg-yellow-50 bb:border-yellow-400"])
877
- }, [a("div", Ye, [a("div", Xe, [(l(), i("svg", {
878
- class: c(["bb:h-5 bb:w-5", f.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
986
+ class: l(["bb-dashboard-ui bb:border-l-4 bb:p-4", f.isDangerous ? "bb:bg-red-50 bb:border-red-400" : "bb:bg-yellow-50 bb:border-yellow-400"])
987
+ }, [a("div", ot, [a("div", st, [(u(), i("svg", {
988
+ class: l(["bb:h-5 bb:w-5", f.isDangerous ? "bb:text-red-400" : "bb:text-yellow-400"]),
879
989
  viewBox: "0 0 20 20",
880
990
  fill: "currentColor"
881
991
  }, [...n[0] ||= [a("path", {
882
992
  "fill-rule": "evenodd",
883
993
  d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
884
994
  "clip-rule": "evenodd"
885
- }, null, -1)]], 2))]), a("div", Ze, [(l(!0), i(e, null, u(o.messages, (e, t) => (l(), i("p", {
886
- class: c(["bb:text-sm bb:leading-5", f.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
995
+ }, null, -1)]], 2))]), a("div", ct, [(u(!0), i(e, null, d(o.messages, (e, t) => (u(), i("p", {
996
+ class: l(["bb:text-sm bb:leading-5", f.isDangerous ? "bb:text-red-700" : "bb:text-yellow-700"]),
887
997
  key: t,
888
- textContent: p(e)
889
- }, null, 10, Qe))), 128))])])], 2)) : r("", !0);
998
+ textContent: m(e)
999
+ }, null, 10, lt))), 128))])])], 2)) : r("", !0);
890
1000
  }
891
- var et = /*#__PURE__*/ x(Je, [["render", $e]]), tt = { emits: ["clicked"] };
892
- function nt(e, t, n, r, o, s) {
893
- return l(), i("button", {
1001
+ var dt = /*#__PURE__*/ k(at, [["render", ut]]), ft = { emits: ["clicked"] };
1002
+ function pt(e, t, n, r, o, s) {
1003
+ return u(), i("button", {
894
1004
  type: "button",
895
1005
  tabindex: "-1",
896
1006
  class: "bb-dashboard-ui bb:flex bb:items-center bb:justify-center bb:bg-transparent bb:cursor-pointer bb:text-gray-400 bb:focus:outline-hidden bb:hover:text-gray-600",
897
- onClick: t[0] ||= b((t) => e.$emit("clicked"), ["prevent"])
1007
+ onClick: t[0] ||= x((t) => e.$emit("clicked"), ["prevent"])
898
1008
  }, [...t[1] ||= [a("svg", {
899
1009
  class: "bb:w-full bb:h-full bb:stroke-current",
900
1010
  fill: "none",
@@ -906,15 +1016,15 @@ function nt(e, t, n, r, o, s) {
906
1016
  d: "M6 18L18 6M6 6l12 12"
907
1017
  })], -1)]]);
908
1018
  }
909
- var rt = /*#__PURE__*/ x(tt, [["render", nt]]), it = {}, at = {
1019
+ var mt = /*#__PURE__*/ k(ft, [["render", pt]]), ht = {}, gt = {
910
1020
  class: "bb:w-4 bb:h-4",
911
1021
  fill: "none",
912
1022
  stroke: "currentColor",
913
1023
  viewBox: "0 0 24 24",
914
1024
  xmlns: "http://www.w3.org/2000/svg"
915
1025
  };
916
- function ot(e, t, n, r, o, s) {
917
- return l(), i("svg", at, [...t[0] ||= [a("path", {
1026
+ function _t(e, t, n, r, o, s) {
1027
+ return u(), i("svg", gt, [...t[0] ||= [a("path", {
918
1028
  "stroke-linecap": "round",
919
1029
  "stroke-linejoin": "round",
920
1030
  "stroke-width": "2",
@@ -923,8 +1033,9 @@ function ot(e, t, n, r, o, s) {
923
1033
  }
924
1034
  //#endregion
925
1035
  //#region src/components/DownloadLink.vue
926
- var st = {
927
- components: { "download-icon": /* @__PURE__ */ x(it, [["render", ot]]) },
1036
+ var vt = {
1037
+ components: { "download-icon": /* @__PURE__ */ k(ht, [["render", _t]]) },
1038
+ mixins: [R],
928
1039
  props: {
929
1040
  url: {
930
1041
  type: String,
@@ -932,19 +1043,22 @@ var st = {
932
1043
  },
933
1044
  title: {
934
1045
  type: String,
935
- default: "Скачать"
1046
+ default: null
936
1047
  }
937
- }
938
- }, ct = ["href", "title"], lt = { class: "bb:ml-1" };
939
- function ut(e, t, n, r, s, c) {
940
- let u = f("download-icon");
941
- return l(), i("a", {
1048
+ },
1049
+ computed: { label() {
1050
+ return this.title ?? this.texts.download;
1051
+ } }
1052
+ }, yt = ["href", "title"], bt = { class: "bb:ml-1" };
1053
+ function xt(e, t, n, r, o, c) {
1054
+ let l = p("download-icon");
1055
+ return u(), i("a", {
942
1056
  href: n.url,
943
- title: n.title,
1057
+ title: c.label,
944
1058
  class: "bb-dashboard-ui bb:inline-flex bb:items-center bb:px-3 bb:py-1.5 bb:rounded-full bb:text-xs bb:font-medium bb:leading-none bb:select-none bb:bg-purple-100 bb:text-purple-800 bb:hover:text-purple-600"
945
- }, [o(u), a("span", lt, p(n.title), 1)], 8, ct);
1059
+ }, [s(l), a("span", bt, m(c.label), 1)], 8, yt);
946
1060
  }
947
- var dt = /*#__PURE__*/ x(st, [["render", ut]]), ft = { props: {
1061
+ var St = /*#__PURE__*/ k(vt, [["render", xt]]), Ct = { props: {
948
1062
  isOpen: {
949
1063
  type: Boolean,
950
1064
  default: !1
@@ -953,10 +1067,10 @@ var dt = /*#__PURE__*/ x(st, [["render", ut]]), ft = { props: {
953
1067
  type: String,
954
1068
  required: !0
955
1069
  }
956
- } }, pt = { class: "bb:flex bb:items-end bb:justify-center bb:min-h-screen bb:pt-4 bb:px-4 bb:pb-20 bb:text-center bb:sm:block bb:sm:p-0" }, mt = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, ht = ["aria-labelledby"];
957
- function gt(e, n, r, s, u, f) {
958
- return l(), i("div", { class: c(["bb-dashboard-ui bb:fixed bb:inset-0 bb:overflow-y-auto bb:z-20", { "bb:pointer-events-none": !r.isOpen }]) }, [a("div", pt, [
959
- o(t, {
1070
+ } }, wt = { class: "bb:flex bb:items-end bb:justify-center bb:min-h-screen bb:pt-4 bb:px-4 bb:pb-20 bb:text-center bb:sm:block bb:sm:p-0" }, Tt = { class: "bb:fixed bb:inset-0 bb:transition-opacity" }, Et = ["aria-labelledby"];
1071
+ function Dt(e, n, r, o, c, d) {
1072
+ return u(), i("div", { class: l(["bb-dashboard-ui bb:fixed bb:inset-0 bb:overflow-y-auto bb:z-20", { "bb:pointer-events-none": !r.isOpen }]) }, [a("div", wt, [
1073
+ s(t, {
960
1074
  "enter-active-class": "bb:ease-out bb:duration-300",
961
1075
  "enter-from-class": "bb:opacity-0",
962
1076
  "enter-to-class": "bb:opacity-100",
@@ -964,11 +1078,11 @@ function gt(e, n, r, s, u, f) {
964
1078
  "leave-from-class": "bb:opacity-100",
965
1079
  "leave-to-class": "bb:opacity-0"
966
1080
  }, {
967
- default: _(() => [v(a("div", mt, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[g, r.isOpen]])]),
1081
+ default: v(() => [y(a("div", Tt, [...n[0] ||= [a("div", { class: "bb:absolute bb:inset-0 bb:bg-gray-500 bb:opacity-75" }, null, -1)]], 512), [[_, r.isOpen]])]),
968
1082
  _: 1
969
1083
  }),
970
1084
  n[1] ||= a("span", { class: "bb:hidden bb:sm:inline-block bb:sm:align-middle bb:sm:h-screen" }, null, -1),
971
- o(t, {
1085
+ s(t, {
972
1086
  "enter-active-class": "bb:ease-out bb:duration-300",
973
1087
  "enter-from-class": "bb:opacity-0 bb:translate-y-4 bb:sm:translate-y-0 bb:sm:scale-95",
974
1088
  "enter-to-class": "bb:opacity-100 bb:translate-y-0 bb:sm:scale-100",
@@ -976,17 +1090,17 @@ function gt(e, n, r, s, u, f) {
976
1090
  "leave-from-class": "bb:opacity-100 bb:translate-y-0 bb:sm:scale-100",
977
1091
  "leave-to-class": "bb:opacity-0 bb:translate-y-4 bb:sm:translate-y-0 bb:sm:scale-95"
978
1092
  }, {
979
- default: _(() => [v(a("div", {
1093
+ default: v(() => [y(a("div", {
980
1094
  class: "bb:relative bb:inline-block bb:align-bottom bb:bg-white bb:rounded-lg bb:text-left bb:overflow-visible bb:shadow-xl bb:transition-all bb:sm:my-8 bb:sm:align-middle bb:sm:max-w-lg bb:sm:w-full",
981
1095
  role: "dialog",
982
1096
  "aria-modal": "true",
983
1097
  "aria-labelledby": r.headingId
984
- }, [d(e.$slots, "default")], 8, ht), [[g, r.isOpen]])]),
1098
+ }, [f(e.$slots, "default")], 8, Et), [[_, r.isOpen]])]),
985
1099
  _: 3
986
1100
  })
987
1101
  ])], 2);
988
1102
  }
989
- var Q = /*#__PURE__*/ x(ft, [["render", gt]]), _t = {}, vt = {
1103
+ var X = /*#__PURE__*/ k(Ct, [["render", Dt]]), Ot = {}, kt = {
990
1104
  class: "bb:h-7 bb:w-7 bb:text-red-600",
991
1105
  xmlns: "http://www.w3.org/2000/svg",
992
1106
  fill: "none",
@@ -994,23 +1108,23 @@ var Q = /*#__PURE__*/ x(ft, [["render", gt]]), _t = {}, vt = {
994
1108
  stroke: "currentColor",
995
1109
  "aria-hidden": "true"
996
1110
  };
997
- function yt(e, t, n, r, o, s) {
998
- return l(), i("svg", vt, [...t[0] ||= [a("path", {
1111
+ function At(e, t, n, r, o, s) {
1112
+ return u(), i("svg", kt, [...t[0] ||= [a("path", {
999
1113
  "stroke-linecap": "round",
1000
1114
  "stroke-linejoin": "round",
1001
1115
  "stroke-width": "2",
1002
1116
  d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
1003
1117
  }, null, -1)]]);
1004
1118
  }
1005
- var bt = /*#__PURE__*/ x(_t, [["render", yt]]), xt = {}, St = {
1119
+ var jt = /*#__PURE__*/ k(Ot, [["render", At]]), Mt = {}, Nt = {
1006
1120
  class: "bb:h-7 bb:w-7 bb:text-yellow-400",
1007
1121
  xmlns: "http://www.w3.org/2000/svg",
1008
1122
  viewBox: "0 0 20 20",
1009
1123
  fill: "currentColor",
1010
1124
  "aria-hidden": "true"
1011
1125
  };
1012
- function Ct(e, t, n, r, o, s) {
1013
- return l(), i("svg", St, [...t[0] ||= [a("path", {
1126
+ function Pt(e, t, n, r, o, s) {
1127
+ return u(), i("svg", Nt, [...t[0] ||= [a("path", {
1014
1128
  "fill-rule": "evenodd",
1015
1129
  d: "M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",
1016
1130
  "clip-rule": "evenodd"
@@ -1018,12 +1132,13 @@ function Ct(e, t, n, r, o, s) {
1018
1132
  }
1019
1133
  //#endregion
1020
1134
  //#region src/components/ConfirmationModal.vue
1021
- var wt = {
1135
+ var Ft = {
1022
1136
  components: {
1023
- Modal: Q,
1024
- Dangerous: bt,
1025
- Warning: /* @__PURE__ */ x(xt, [["render", Ct]])
1137
+ Modal: X,
1138
+ Dangerous: jt,
1139
+ Warning: /* @__PURE__ */ k(Mt, [["render", Pt]])
1026
1140
  },
1141
+ mixins: [R],
1027
1142
  emits: ["actionConfirmed", "actionCanceled"],
1028
1143
  props: {
1029
1144
  isOpen: {
@@ -1045,7 +1160,7 @@ var wt = {
1045
1160
  },
1046
1161
  cancelButtonText: {
1047
1162
  type: String,
1048
- default: "Отмена"
1163
+ default: null
1049
1164
  },
1050
1165
  actionButtonText: {
1051
1166
  type: String,
@@ -1053,7 +1168,7 @@ var wt = {
1053
1168
  }
1054
1169
  },
1055
1170
  setup() {
1056
- return { headingId: m() };
1171
+ return { headingId: h() };
1057
1172
  },
1058
1173
  computed: {
1059
1174
  isDangerous() {
@@ -1063,43 +1178,44 @@ var wt = {
1063
1178
  return this.type === "warning";
1064
1179
  }
1065
1180
  }
1066
- }, Tt = { class: "bb:flex bb:bg-white bb:px-4 bb:pt-5 bb:pb-4 bb:sm:p-6 bb:sm:pb-4" }, Et = { class: "bb:sm:flex bb:sm:items-start" }, $ = { class: "bb:mt-3 bb:text-center bb:sm:mt-0 bb:sm:ml-4 bb:sm:text-left" }, Dt = ["id"], Ot = { class: "bb:mt-2" }, kt = { class: "bb:text-sm bb:text-gray-500" }, At = { class: "bb:bg-gray-50 bb:px-4 bb:py-3 bb:sm:px-6 bb:sm:flex bb:sm:flex-row-reverse" };
1067
- function jt(e, t, i, o, s, u) {
1068
- let d = f("warning"), m = f("dangerous"), h = f("modal");
1069
- return l(), n(h, {
1181
+ }, It = { class: "bb:flex bb:bg-white bb:rounded-t-lg bb:px-4 bb:pt-5 bb:pb-4 bb:sm:p-6 bb:sm:pb-4" }, Lt = { class: "bb:sm:flex bb:sm:items-start" }, Rt = { class: "bb:mt-3 bb:text-center bb:sm:mt-0 bb:sm:ml-4 bb:sm:text-left" }, zt = ["id"], Bt = { class: "bb:mt-2" }, Vt = { class: "bb:text-sm bb:text-gray-500" }, Ht = { class: "bb:bg-gray-50 bb:rounded-b-lg bb:px-4 bb:py-3 bb:sm:px-6 bb:sm:flex bb:sm:flex-row-reverse" };
1182
+ function Ut(e, t, i, o, s, c) {
1183
+ let d = p("warning"), f = p("dangerous"), h = p("modal");
1184
+ return u(), n(h, {
1070
1185
  "is-open": i.isOpen,
1071
1186
  "heading-id": o.headingId
1072
1187
  }, {
1073
- default: _(() => [a("div", Tt, [a("div", Et, [a("div", { class: c(["bb:mx-auto bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-12 bb:w-12 bb:rounded-full bb:sm:mx-0 bb:sm:h-10 bb:sm:w-10", {
1074
- "bb:bg-red-100": u.isDangerous,
1075
- "bb:bg-yellow-100": u.isWarning
1076
- }]) }, [u.isWarning ? (l(), n(d, { key: 0 })) : r("", !0), u.isDangerous ? (l(), n(m, { key: 1 })) : r("", !0)], 2), a("div", $, [a("h3", {
1188
+ default: v(() => [a("div", It, [a("div", Lt, [a("div", { class: l(["bb:mx-auto bb:shrink-0 bb:flex bb:items-center bb:justify-center bb:h-12 bb:w-12 bb:rounded-full bb:sm:mx-0 bb:sm:h-10 bb:sm:w-10", {
1189
+ "bb:bg-red-100": c.isDangerous,
1190
+ "bb:bg-yellow-100": c.isWarning
1191
+ }]) }, [c.isWarning ? (u(), n(d, { key: 0 })) : r("", !0), c.isDangerous ? (u(), n(f, { key: 1 })) : r("", !0)], 2), a("div", Rt, [a("h3", {
1077
1192
  class: "bb:text-lg bb:leading-6 bb:font-medium bb:text-gray-900",
1078
1193
  id: o.headingId
1079
- }, p(i.confirmationHeading), 9, Dt), a("div", Ot, [a("p", kt, p(i.confirmationText), 1)])])])]), a("div", At, [a("button", {
1194
+ }, m(i.confirmationHeading), 9, zt), a("div", Bt, [a("p", Vt, m(i.confirmationText), 1)])])])]), a("div", Ht, [a("button", {
1080
1195
  type: "button",
1081
- class: c(["bb:w-full bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-transparent bb:shadow-xs bb:px-4 bb:py-2 bb:text-base bb:font-medium bb:text-white bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:sm:ml-3 bb:sm:w-auto bb:sm:text-sm", {
1082
- "bb:bg-red-600 bb:hover:bg-red-700 bb:focus:ring-red-500": u.isDangerous,
1083
- "bb:bg-yellow-400 bb:hover:bg-yellow-500 bb:focus:ring-yellow-300": u.isWarning
1196
+ class: l(["bb:w-full bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-transparent bb:shadow-xs bb:px-4 bb:py-2 bb:text-base bb:font-medium bb:text-white bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:sm:ml-3 bb:sm:w-auto bb:sm:text-sm", {
1197
+ "bb:bg-red-600 bb:hover:bg-red-700 bb:focus:ring-red-500": c.isDangerous,
1198
+ "bb:bg-yellow-400 bb:hover:bg-yellow-500 bb:focus:ring-yellow-300": c.isWarning
1084
1199
  }]),
1085
- onClick: t[0] ||= b((t) => e.$emit("actionConfirmed"), ["prevent"])
1086
- }, p(i.actionButtonText), 3), a("button", {
1200
+ onClick: t[0] ||= x((t) => e.$emit("actionConfirmed"), ["prevent"])
1201
+ }, m(i.actionButtonText), 3), a("button", {
1087
1202
  type: "button",
1088
1203
  class: "bb:mt-3 bb:w-full bb:inline-flex bb:justify-center bb:rounded-md bb:border bb:border-gray-300 bb:shadow-xs bb:px-4 bb:py-2 bb:bg-white bb:text-base bb:font-medium bb:text-gray-700 bb:hover:bg-gray-50 bb:focus:outline-hidden bb:focus:ring-2 bb:focus:ring-offset-2 bb:focus:ring-indigo-500 bb:sm:mt-0 bb:sm:ml-3 bb:sm:w-auto bb:sm:text-sm",
1089
- onClick: t[1] ||= b((t) => e.$emit("actionCanceled"), ["prevent"])
1090
- }, p(i.cancelButtonText), 1)])]),
1204
+ onClick: t[1] ||= x((t) => e.$emit("actionCanceled"), ["prevent"])
1205
+ }, m(i.cancelButtonText ?? e.texts.cancel), 1)])]),
1091
1206
  _: 1
1092
1207
  }, 8, ["is-open", "heading-id"]);
1093
1208
  }
1094
- var Mt = /*#__PURE__*/ x(wt, [["render", jt]]), Nt = {
1095
- components: { Popup: D },
1209
+ var Wt = /*#__PURE__*/ k(Ft, [["render", Ut]]), Gt = {
1210
+ components: { Popup: A },
1211
+ mixins: [R],
1096
1212
  emits: ["update:modelValue"],
1097
1213
  props: { modelValue: {
1098
1214
  type: Boolean,
1099
1215
  default: !1
1100
1216
  } },
1101
1217
  setup() {
1102
- return { menuButtonId: m() };
1218
+ return { menuButtonId: h() };
1103
1219
  },
1104
1220
  data() {
1105
1221
  return { popupIsOpen: this.modelValue };
@@ -1110,21 +1226,21 @@ var Mt = /*#__PURE__*/ x(wt, [["render", jt]]), Nt = {
1110
1226
  methods: { setOpen(e) {
1111
1227
  e !== this.popupIsOpen && (this.popupIsOpen = e, this.$emit("update:modelValue", e));
1112
1228
  } }
1113
- }, Pt = { class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md" }, Ft = {
1229
+ }, Kt = { class: "bb-dashboard-ui bb:relative bb:inline-flex bb:shadow-xs bb:rounded-md" }, qt = {
1114
1230
  key: 0,
1115
1231
  class: "bb:-ml-px bb:relative bb:block"
1116
- }, It = ["id"], Lt = ["aria-labelledby"];
1117
- function Rt(e, t, n, s, u, p) {
1118
- let m = f("popup");
1119
- return l(), i("span", Pt, [a("button", {
1232
+ }, Jt = ["id"], Yt = { class: "bb:sr-only" }, Xt = ["aria-labelledby"];
1233
+ function Zt(e, t, n, o, c, d) {
1234
+ let h = p("popup");
1235
+ return u(), i("span", Kt, [a("button", {
1120
1236
  type: "button",
1121
- class: c(["bb:relative bb:inline-flex bb:items-center bb:rounded-l-md bb:border bb:border-gray-300 bb:bg-white bb:hover:bg-gray-50 bb:focus:outline-hidden", { "bb:rounded-r-md": !e.$slots.actions }])
1122
- }, [d(e.$slots, "button")], 2), e.$slots.actions ? (l(), i("span", Ft, [a("button", {
1123
- onClick: t[0] ||= b((e) => p.setOpen(!u.popupIsOpen), ["prevent"]),
1124
- id: s.menuButtonId,
1237
+ class: l(["bb:relative bb:inline-flex bb:items-center bb:rounded-l-md bb:border bb:border-gray-300 bb:bg-white bb:hover:bg-gray-50 bb:focus:outline-hidden", { "bb:rounded-r-md": !e.$slots.actions }])
1238
+ }, [f(e.$slots, "button")], 2), e.$slots.actions ? (u(), i("span", qt, [a("button", {
1239
+ onClick: t[0] ||= x((e) => d.setOpen(!c.popupIsOpen), ["prevent"]),
1240
+ id: o.menuButtonId,
1125
1241
  type: "button",
1126
1242
  class: "bb:relative bb:inline-flex bb:items-center bb:px-2 bb:py-2 bb:rounded-r-md bb:border bb:border-gray-300 bb:bg-white bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:bg-gray-50 bb:focus:z-10 bb:focus:outline-hidden bb:focus:ring-1 bb:focus:ring-indigo-500 bb:focus:border-indigo-500"
1127
- }, [...t[1] ||= [a("span", { class: "bb:sr-only" }, "Открыть меню", -1), a("svg", {
1243
+ }, [a("span", Yt, m(e.texts.openMenu), 1), t[1] ||= a("svg", {
1128
1244
  class: "bb:h-5 bb:w-5",
1129
1245
  xmlns: "http://www.w3.org/2000/svg",
1130
1246
  viewBox: "0 0 20 20",
@@ -1134,21 +1250,161 @@ function Rt(e, t, n, s, u, p) {
1134
1250
  "fill-rule": "evenodd",
1135
1251
  d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",
1136
1252
  "clip-rule": "evenodd"
1137
- })], -1)]], 8, It), o(m, {
1253
+ })], -1)], 8, Jt), s(h, {
1138
1254
  class: "bb:origin-top-right bb:right-0",
1139
- "model-value": u.popupIsOpen,
1255
+ "model-value": c.popupIsOpen,
1140
1256
  align: "right",
1141
- "onUpdate:modelValue": p.setOpen
1257
+ "onUpdate:modelValue": d.setOpen
1142
1258
  }, {
1143
- default: _(() => [a("div", {
1259
+ default: v(() => [a("div", {
1144
1260
  class: "bb:mt-1 bb:w-56 bb:rounded-md bb:shadow-lg bb:bg-white bb:ring-1 bb:ring-black/5",
1145
1261
  role: "menu",
1146
1262
  "aria-orientation": "vertical",
1147
- "aria-labelledby": s.menuButtonId
1148
- }, [d(e.$slots, "actions")], 8, Lt)]),
1263
+ "aria-labelledby": o.menuButtonId
1264
+ }, [f(e.$slots, "actions")], 8, Xt)]),
1149
1265
  _: 3
1150
1266
  }, 8, ["model-value", "onUpdate:modelValue"])])) : r("", !0)]);
1151
1267
  }
1152
- var zt = /*#__PURE__*/ x(Nt, [["render", Rt]]);
1268
+ var Qt = /*#__PURE__*/ k(Gt, [["render", Zt]]), $t = {}, en = {
1269
+ xmlns: "http://www.w3.org/2000/svg",
1270
+ viewBox: "0 0 20 20",
1271
+ fill: "currentColor",
1272
+ "aria-hidden": "true"
1273
+ };
1274
+ function tn(e, t, n, r, o, s) {
1275
+ return u(), i("svg", en, [...t[0] ||= [a("path", {
1276
+ "fill-rule": "evenodd",
1277
+ "clip-rule": "evenodd",
1278
+ d: "M7.707 14.707a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l2.293 2.293a1 1 0 010 1.414z"
1279
+ }, null, -1)]]);
1280
+ }
1281
+ var nn = /*#__PURE__*/ k($t, [["render", tn]]), rn = {}, an = {
1282
+ xmlns: "http://www.w3.org/2000/svg",
1283
+ viewBox: "0 0 20 20",
1284
+ fill: "currentColor",
1285
+ "aria-hidden": "true"
1286
+ };
1287
+ function on(e, t, n, r, o, s) {
1288
+ return u(), i("svg", an, [...t[0] ||= [a("path", {
1289
+ "fill-rule": "evenodd",
1290
+ "clip-rule": "evenodd",
1291
+ d: "M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z"
1292
+ }, null, -1)]]);
1293
+ }
1294
+ var sn = /*#__PURE__*/ k(rn, [["render", on]]);
1295
+ //#endregion
1296
+ //#region src/navigation.js
1297
+ function cn(e) {
1298
+ let t = e.currentTarget?.target ?? "";
1299
+ return !(e.defaultPrevented || e.target?.isContentEditable === !0 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || t !== "" && t !== "_self" || e.button !== 0);
1300
+ }
1301
+ var Z = {
1302
+ inject: D,
1303
+ methods: { followLink(e, t) {
1304
+ let n = this.uiSettings.navigate;
1305
+ n !== null && cn(e) && (e.preventDefault(), n(t));
1306
+ } }
1307
+ };
1308
+ //#endregion
1309
+ //#region src/components/Pagination.vue
1310
+ function Q(e) {
1311
+ return typeof e == "string" && e !== "" ? e : null;
1312
+ }
1313
+ var $ = {
1314
+ components: {
1315
+ ArrowNarrowLeft: nn,
1316
+ ArrowNarrowRight: sn
1317
+ },
1318
+ mixins: [R, Z],
1319
+ props: {
1320
+ links: {
1321
+ type: Object,
1322
+ required: !0
1323
+ },
1324
+ meta: {
1325
+ type: Object,
1326
+ required: !0
1327
+ }
1328
+ },
1329
+ computed: {
1330
+ from() {
1331
+ return this.meta?.from;
1332
+ },
1333
+ to() {
1334
+ return this.meta?.to;
1335
+ },
1336
+ total() {
1337
+ return this.meta?.total;
1338
+ },
1339
+ hasResults() {
1340
+ return typeof this.total == "number" && this.total > 0;
1341
+ },
1342
+ hasRange() {
1343
+ return typeof this.from == "number" && typeof this.to == "number";
1344
+ },
1345
+ previousPageUrl() {
1346
+ return Q(this.links?.prev);
1347
+ },
1348
+ nextPageUrl() {
1349
+ return Q(this.links?.next);
1350
+ }
1351
+ }
1352
+ }, ln = {
1353
+ key: 0,
1354
+ class: "bb-dashboard-ui bb:px-4 bb:flex bb:items-center bb:justify-between bb:sm:px-0"
1355
+ }, un = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex" }, dn = ["href"], fn = {
1356
+ key: 0,
1357
+ class: "bb:hidden bb:md:-mt-px bb:md:flex bb:text-gray-400 bb:text-sm bb:leading-5"
1358
+ }, pn = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, mn = { class: "bb:font-medium bb:text-gray-900 bb:mx-1" }, hn = { class: "bb:-mt-px bb:w-0 bb:flex-1 bb:flex bb:justify-end" }, gn = ["href"];
1359
+ function _n(e, t, n, c, l, d) {
1360
+ let f = p("arrow-narrow-left"), h = p("arrow-narrow-right");
1361
+ return d.hasResults ? (u(), i("nav", ln, [
1362
+ a("div", un, [d.previousPageUrl === null ? r("", !0) : (u(), i("a", {
1363
+ key: 0,
1364
+ href: d.previousPageUrl,
1365
+ class: "bb:border-t-2 bb:border-transparent bb:pt-4 bb:pr-1 bb:inline-flex bb:items-center bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:text-gray-700 bb:hover:border-indigo-700",
1366
+ onClick: t[0] ||= (t) => e.followLink(t, d.previousPageUrl)
1367
+ }, [s(f, { class: "bb:mr-3 bb:h-5 bb:w-5 bb:text-gray-400" }), o(" " + m(e.texts.previousPage), 1)], 8, dn))]),
1368
+ d.hasRange ? (u(), i("div", fn, [
1369
+ o(m(e.texts.resultsBefore) + " ", 1),
1370
+ a("span", pn, m(d.from) + " - " + m(d.to), 1),
1371
+ o(" " + m(e.texts.resultsOf) + " ", 1),
1372
+ a("span", mn, m(d.total), 1),
1373
+ o(" " + m(e.texts.resultsAfter), 1)
1374
+ ])) : r("", !0),
1375
+ a("div", hn, [d.nextPageUrl === null ? r("", !0) : (u(), i("a", {
1376
+ key: 0,
1377
+ href: d.nextPageUrl,
1378
+ class: "bb:border-t-2 bb:border-transparent bb:pt-4 bb:pl-1 bb:inline-flex bb:items-center bb:text-sm bb:font-medium bb:text-gray-500 bb:hover:text-gray-700 bb:hover:border-indigo-700",
1379
+ onClick: t[1] ||= (t) => e.followLink(t, d.nextPageUrl)
1380
+ }, [o(m(e.texts.nextPage) + " ", 1), s(h, { class: "bb:ml-3 bb:h-5 bb:w-5 bb:text-gray-400" })], 8, gn))])
1381
+ ])) : r("", !0);
1382
+ }
1383
+ var vn = /*#__PURE__*/ k($, [["render", _n]]), yn = {
1384
+ mixins: [Z],
1385
+ props: {
1386
+ url: {
1387
+ type: String,
1388
+ required: !0
1389
+ },
1390
+ name: {
1391
+ type: String,
1392
+ required: !0
1393
+ },
1394
+ isActive: {
1395
+ type: Boolean,
1396
+ default: !1
1397
+ }
1398
+ }
1399
+ }, bn = ["href", "textContent"];
1400
+ function xn(e, t, n, r, a, o) {
1401
+ return u(), i("a", {
1402
+ href: n.url,
1403
+ class: l([n.isActive ? "bb:border-indigo-400 bb:text-gray-600 bb:focus:border-indigo-700" : "bb:border-transparent bb:text-gray-500 bb:hover:text-gray-600 bb:hover:border-gray-300 bb:focus:text-gray-700 bb:focus:border-gray-300", "bb-dashboard-ui bb:inline-flex bb:items-center bb:px-1 bb:pt-1 bb:border-b-2 bb:text-sm bb:font-medium bb:leading-5 bb:focus:outline-hidden bb:transition bb:duration-150 bb:ease-in-out"]),
1404
+ onClick: t[0] ||= (t) => e.followLink(t, n.url),
1405
+ textContent: m(n.name)
1406
+ }, null, 10, bn);
1407
+ }
1408
+ var Sn = /*#__PURE__*/ k(yn, [["render", xn]]);
1153
1409
  //#endregion
1154
- export { rt as Closer, Mt as ConfirmationModal, O as Dot, dt as DownloadLink, zt as DropdownButtonWithAction, et as ErrorMessages, Q as Modal, H as PickDay, D as Popup, fe as RussianMobileFilter, ye as Search, Ee as SelectDateInterval, Ue as SelectSingle, qe as SmallBadge };
1410
+ export { mt as Closer, Wt as ConfirmationModal, j as Dot, St as DownloadLink, Qt as DropdownButtonWithAction, dt as ErrorMessages, X as Modal, Sn as NavigationMenuElement, vn as Pagination, K as PickDay, A as Popup, Ce as RussianMobileFilter, Ae as Search, Le as SelectDateInterval, et as SelectSingle, it as SmallBadge, O as dashboardUi };