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