@studio-west/component-sw 0.5.14 → 0.5.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -229,9 +229,9 @@ Default - текст описания или модуль / модули
229
229
  class="custom-class"
230
230
  trigger="none"
231
231
  v-model="visual"
232
- maxWidth="o250"
232
+ maxWidth="250"
233
233
  >
234
- <button @cick="visual = true">Описание</button>
234
+ <button @click="visual = true">Описание / Description</button>
235
235
  </sw-dropdown>
236
236
  ```
237
237
  ---
@@ -262,9 +262,9 @@ Default - текст названия или модуль
262
262
  class="custom-class"
263
263
  trigger="none"
264
264
  v-model="visual"
265
- maxWidth="o250"
265
+ maxWidth="250"
266
266
  >
267
- <sw-dropdown-item @cick="visual = true" iconBefore="documents">Описание</sw-dropdown-item>
267
+ <sw-dropdown-item @click="visual = true" iconBefore="documents">Описание / Description</sw-dropdown-item>
268
268
  </sw-dropdown>
269
269
  ```
270
270
  ---
@@ -275,21 +275,22 @@ Default - текст названия или модуль
275
275
 
276
276
  ### Свойства / Properties
277
277
 
278
- | Имя | Тип | Значения/Описание |
279
- |---------------|-----------|-----------------------------------------------------------------------------|
280
- | `name` | `String` | Обязателен! нужен для связывания через id input и label. |
281
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
282
- | `size` | `String` | Размер поля: `'large'`, `'small'`. |
283
- | `type` | `String` | Тип поля: `'text'`- по умолчанию, `'phone'`- телефон, `'password'` - пароль |
284
- | `before` | `String` | Название svg в спрайте загружаемое в начале. |
285
- | `after` | `String` | Название svg в спрайте загружаемое в конце. |
286
- | `placeholder` | `String` | Текст Placeholder. |
287
- | `required` | `Boolean` | Признак обязательно ли для заполнения false - по умолчанию. |
288
- | `label` | `String` | Текст в Label. |
289
- | `maxlength` | `Number` | По умолчанию - 128, параметр атрибута max-length. |
290
- | `minlength` | `Number` | По умолчанию - 1, параметр атрибута min-length. |
291
- | `inputSize` | `Number` | По умолчанию - 60, параметр атрибута size - ширина текстового поля. |
292
- | `autofocus` | `Boolean` | По умолчанию - false, параметр атрибута autofocus. |
278
+ | Имя | Тип | Значения/Описание |
279
+ |---------------|-----------|----------------------------------------------------------------------------------------------------------|
280
+ | `name` | `String` | Обязателен! нужен для связывания через id input и label. |
281
+ | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
282
+ | `size` | `String` | Размер поля: `'large'`, `'small'`. |
283
+ | `type` | `String` | Тип поля: `'text'`- по умолчанию, `'phone'`- телефон, `'password'` - пароль |
284
+ | `before` | `String` | Название svg в спрайте загружаемое в начале. |
285
+ | `after` | `String` | Название svg в спрайте загружаемое в конце. |
286
+ | `placeholder` | `String` | Текст Placeholder. |
287
+ | `required` | `Boolean` | Признак обязательно ли для заполнения false - по умолчанию. |
288
+ | `label` | `String` | Текст в Label. |
289
+ | `maxlength` | `Number` | По умолчанию - 128, параметр атрибута max-length. Минимальное количество символов разрешённых в тексте. |
290
+ | `minlength` | `Number` | По умолчанию - 1, параметр атрибута min-length. Минимальное количество символов разрешённых в тексте. |
291
+ | `inputSize` | `Number` | По умолчанию - 60, параметр атрибута size - ширина текстового поля. |
292
+ | `autofocus` | `Boolean` | По умолчанию - false, Устанавливает фокус в поле формы. |
293
+ | `readonly` | `Boolean` | По умолчанию - false, Устанавливает, что поле не может изменяться пользователем. |
293
294
 
294
295
  ### Слоты / Slots
295
296
 
@@ -315,7 +316,6 @@ focusInput - focus на поле ввода
315
316
  size="large"
316
317
  type="phone"
317
318
  before="phone"
318
- after=""
319
319
  placeholder="input"
320
320
  label="input"
321
321
  @prefix="console.log('before')"
@@ -0,0 +1,287 @@
1
+ import { ref as p, computed as ne, createElementBlock as v, openBlock as i, createElementVNode as r, createCommentVNode as B, withModifiers as D, renderSlot as $, createTextVNode as F, toDisplayString as k, unref as S, Fragment as T, renderList as I, normalizeClass as z } from "vue";
2
+ import { p as j } from "./index-CBg2cNwI.js";
3
+ const se = { class: "sw-data-picker" }, oe = { class: "month_year" }, ue = { class: "text" }, re = {
4
+ key: 0,
5
+ class: "week"
6
+ }, ve = {
7
+ key: 1,
8
+ class: "year"
9
+ }, ie = ["onClick"], de = {
10
+ key: 2,
11
+ class: "month"
12
+ }, ce = ["onClick"], De = { key: 0 }, ge = { class: "month_year" }, fe = { class: "text" }, me = {
13
+ key: 0,
14
+ class: "week"
15
+ }, pe = {
16
+ key: 1,
17
+ class: "year"
18
+ }, we = ["onClick"], he = {
19
+ key: 2,
20
+ class: "month"
21
+ }, ye = ["onClick"], Ce = {
22
+ __name: "SwDatePicker",
23
+ props: {
24
+ data: Object,
25
+ limitation: {
26
+ type: [Boolean, Array],
27
+ default: () => !1
28
+ },
29
+ range: {
30
+ type: String,
31
+ default: "solid"
32
+ }
33
+ },
34
+ emits: ["input"],
35
+ setup(Z, { emit: _ }) {
36
+ var J, Q, U, X;
37
+ const s = Z, V = _, g = p(3), b = p(/* @__PURE__ */ new Date()), x = p(/* @__PURE__ */ new Date()), u = p((/* @__PURE__ */ new Date()).getFullYear()), n = p((/* @__PURE__ */ new Date()).getMonth()), R = p((/* @__PURE__ */ new Date()).getFullYear()), W = p((/* @__PURE__ */ new Date()).getMonth()), A = p(new Date(u.value, n.value + 1, 1).getMonth()), o = p([]), N = p(0), f = p(-1), M = p(-1), q = p(navigator.language || "ru"), Y = /en|zh|ja|he/.test(q.value) ? 0 : 1, G = ne(() => Array.from({ length: 12 }, (t, e) => {
38
+ const a = new Date(2024, e);
39
+ return new Intl.DateTimeFormat(q.value, { month: "long" }).format(a);
40
+ }));
41
+ console.log(Y);
42
+ const h = (t) => {
43
+ let e = t.split(t.match(/\D.*?\D?/));
44
+ return e[0].length > 2 ? e.join("-") + "T00:00:01" : e.reverse().join("-") + "T00:00:01";
45
+ };
46
+ (J = s.data) != null && J.startDate && (b.value = new Date(h(s.data.startDate)), u.value = b.value.getFullYear(), n.value = b.value.getMonth()), (Q = s.data) != null && Q.endDate && s.range === "range" && (x.value = new Date(h(s.data.endDate)), R.value = x.value.getFullYear(), W.value = x.value.getMonth());
47
+ const H = () => {
48
+ o.value = [], N.value = 0;
49
+ const t = new Date(u.value, n.value, 0);
50
+ for (let a = t.getDate() - t.getDay() + Y; a <= t.getDate(); a++)
51
+ t.getDay() !== 6 + Y && (o.value.push({ day: a, month: t.getMonth(), year: t.getFullYear(), class: [] }), N.value++);
52
+ const e = new Date(u.value, n.value + 1, 0).getDate();
53
+ for (let a = 1; a <= e; a++)
54
+ o.value.push({ day: a, month: n.value, year: u.value, class: [] }), N.value++;
55
+ if (s.range === "range") {
56
+ const a = new Date(u.value, n.value + 1, 1), l = new Date(u.value, n.value + 2, 0).getDate();
57
+ for (let m = 1; m <= l; m++)
58
+ o.value.push({ day: m, month: a.getMonth(), year: a.getFullYear(), class: [] });
59
+ }
60
+ K();
61
+ }, K = () => {
62
+ var e;
63
+ if (!((e = s.data) != null && e.holiday)) return;
64
+ const t = (a, l) => {
65
+ a.forEach((m) => {
66
+ const [c, w, C] = m.split("-").map(Number), E = o.value.findIndex((P) => P.year === c && P.month + 1 === w && P.day === C);
67
+ E !== -1 && (o.value[E].class[0] = l);
68
+ });
69
+ };
70
+ t(s.data.holiday.preholidays, "preholiday"), t(s.data.holiday.holidays, "weekend"), t(s.data.holiday.holiday, "holiday"), t(s.data.holiday.nowork, "nowork");
71
+ }, ee = () => {
72
+ if (!s.limitation || s.limitation.length < 2) return !1;
73
+ const t = [...s.limitation].sort(
74
+ (e, a) => new Date(h(e.startDate)).getTime() - new Date(h(a.startDate)).getTime()
75
+ );
76
+ for (let e = 1; e < t.length; e++) {
77
+ const a = new Date(h(t[e - 1].endDate));
78
+ if (new Date(h(t[e].startDate)) <= a)
79
+ return console.warn("Warning: Диапазоны пересекаются:", t[e - 1], t[e]), !0;
80
+ }
81
+ return !1;
82
+ }, L = (t, e, a) => {
83
+ if (!s.limitation || s.limitation.length === 0) return !0;
84
+ const l = new Date(t, e, a).getTime();
85
+ for (let m of s.limitation) {
86
+ const { startDate: c, endDate: w } = m;
87
+ if (!c && w) {
88
+ const C = new Date(h(w)).getTime();
89
+ if (l <= C) return !1;
90
+ }
91
+ if (c && !w) {
92
+ const C = new Date(h(c)).getTime();
93
+ if (l >= C) return !1;
94
+ }
95
+ if (c && w) {
96
+ const C = new Date(h(c)).getTime(), E = new Date(h(w)).getTime();
97
+ if (C <= E) {
98
+ if (l >= C && l <= E) return !1;
99
+ } else if (l >= C || l <= E) return !1;
100
+ }
101
+ }
102
+ return !0;
103
+ }, O = (t, e) => {
104
+ const a = j(new Date(t.year, t.month, t.day), "{dd}.{m}.{Y}");
105
+ s.range === "range" ? M.value !== -1 ? (te(), f.value = e, o.value[e].class[1] = "active") : f.value !== -1 ? (M.value = e, ae(f.value, M.value, a)) : (f.value = e, o.value[e].class[1] = "active") : (f.value !== -1 && (o.value[f.value].class[1] = ""), f.value = e, o.value[e].class[1] = "active", V("input", { dateStart: a, count: 1 }));
106
+ }, te = () => {
107
+ o.value.forEach((t) => t.class[1] = ""), f.value = -1, M.value = -1;
108
+ }, ae = (t, e, a) => {
109
+ let l = j(new Date(o.value[t].year, o.value[t].month, o.value[t].day), "{dd}.{m}.{Y}"), m = le(t, e);
110
+ if (e >= t)
111
+ for (let c = t + 1; c < e; c++)
112
+ o.value[c].class[1] = "select";
113
+ else
114
+ for (let c = e + 1; c < t; c++)
115
+ o.value[c].class[1] = "select";
116
+ o.value[e].class[1] = "active", V("input", { dateStart: l, dateEnd: a, count: m }), Key > key ? V("input", { dateStart: d, dateEnd: l, count: countDay(f.value, key) }) : V("input", { dateStart: l, dateEnd: d, count: countDay(key, f.value) });
117
+ }, le = (t, e) => {
118
+ var c;
119
+ let a = Math.abs(t - e) + 1, [l, m] = [Math.min(t, e), Math.max(t, e)];
120
+ for (let w = l; w <= m; w++)
121
+ ((c = o.value[w]) == null ? void 0 : c.class[0]) === "holiday" && a--;
122
+ return a;
123
+ }, y = (t, e) => {
124
+ L(t, e) && (b.value = new Date(t, e, 1), u.value = b.value.getFullYear(), n.value = b.value.getMonth(), A.value = new Date(t, e + 1, 1).getMonth(), s.range === "year" && g.value === 0 ? O({ year: t, month: e, day: 1 }, 8) : H());
125
+ };
126
+ if (H(), ee(), (U = s.data) != null && U.startDate && (f.value = o.value.findIndex((t) => t.day === b.value.getDate() && t.month === n.value && t.year === u.value), f.value !== -1 && (o.value[f.value].class[1] = "active")), (X = s.data) != null && X.endDate && s.range === "range" && (M.value = o.value.findIndex((t) => t.day === x.value.getDate() && t.month === W.value && t.year === R.value), M.value !== -1)) {
127
+ o.value[M.value].class[1] = "active";
128
+ for (let t = f.value + 1; t < M.value; t++)
129
+ o.value[t].class[1] = "select";
130
+ }
131
+ return (t, e) => (i(), v("div", se, [
132
+ r("div", null, [
133
+ r("p", oe, [
134
+ r("span", null, [
135
+ r("button", {
136
+ onClick: e[0] || (e[0] = D((a) => y(u.value - 1, n.value), ["prevent"]))
137
+ }, [
138
+ $(t.$slots, "double-arrow", {}, () => [
139
+ e[12] || (e[12] = F("«"))
140
+ ])
141
+ ]),
142
+ r("button", {
143
+ onClick: e[1] || (e[1] = D((a) => {
144
+ g.value = 0, y(u.value, n.value - 1);
145
+ }, ["prevent"]))
146
+ }, [
147
+ $(t.$slots, "arrow", {}, () => [
148
+ e[13] || (e[13] = F("‹"))
149
+ ])
150
+ ])
151
+ ]),
152
+ r("span", ue, [
153
+ r("button", {
154
+ onClick: e[2] || (e[2] = D((a) => g.value = 1, ["prevent"]))
155
+ }, k(u.value), 1),
156
+ r("button", {
157
+ onClick: e[3] || (e[3] = D((a) => g.value = 1, ["prevent"]))
158
+ }, k(S(j)(b.value.setMonth(n.value), "{F}")), 1)
159
+ ]),
160
+ r("span", null, [
161
+ r("button", {
162
+ class: "sw-revers",
163
+ onClick: e[4] || (e[4] = D((a) => {
164
+ g.value = 0, y(u.value, n.value + 1);
165
+ }, ["prevent"]))
166
+ }, [
167
+ $(t.$slots, "arrow", {}, () => [
168
+ e[14] || (e[14] = F("‹"))
169
+ ])
170
+ ]),
171
+ r("button", {
172
+ class: "sw-revers",
173
+ onClick: e[5] || (e[5] = D((a) => y(u.value + 1, n.value), ["prevent"]))
174
+ }, [
175
+ $(t.$slots, "double-arrow", {}, () => [
176
+ e[15] || (e[15] = F("«"))
177
+ ])
178
+ ])
179
+ ])
180
+ ]),
181
+ s.range === "year" || g.value === 1 ? B("", !0) : (i(), v("div", re, [
182
+ (i(), v(T, null, I(7, (a, l) => r("button", {
183
+ key: l,
184
+ class: "disabled"
185
+ }, k(S(j)(new Date(1970, 1, a + S(Y)), "{D}")), 1)), 64))
186
+ ])),
187
+ s.range === "year" || g.value === 1 ? (i(), v("div", ve, [
188
+ (i(!0), v(T, null, I(G.value, (a, l) => (i(), v("button", {
189
+ key: l,
190
+ onClick: D((m) => {
191
+ g.value = 0, y(u.value, l);
192
+ }, ["prevent"]),
193
+ class: z(l === n.value ? "active" : "")
194
+ }, k(a), 11, ie))), 128))
195
+ ])) : (i(), v("div", de, [
196
+ (i(!0), v(T, null, I(o.value, (a, l) => (i(), v(T, { key: l }, [
197
+ l < N.value + (7 - new Date(u.value, n.value + 1, 1).getDay() + S(Y)) % 7 ? (i(), v("button", {
198
+ key: 0,
199
+ class: z(a.month === n.value && L(a.year, a.month, a.day) ? a.class : "disabled"),
200
+ onClick: D(() => {
201
+ a.month === n.value && O(a, l);
202
+ }, ["prevent"])
203
+ }, k(a.day), 11, ce)) : B("", !0)
204
+ ], 64))), 128))
205
+ ]))
206
+ ]),
207
+ s.range === "range" ? (i(), v("div", De, [
208
+ r("p", ge, [
209
+ r("span", null, [
210
+ r("button", {
211
+ onClick: e[6] || (e[6] = D((a) => y(u.value - 1, n.value), ["prevent"]))
212
+ }, [
213
+ $(t.$slots, "double-arrow", {}, () => [
214
+ e[16] || (e[16] = F("«"))
215
+ ])
216
+ ]),
217
+ r("button", {
218
+ onClick: e[7] || (e[7] = D((a) => {
219
+ g.value = 0, y(u.value, n.value - 1);
220
+ }, ["prevent"]))
221
+ }, [
222
+ $(t.$slots, "arrow", {}, () => [
223
+ e[17] || (e[17] = F("‹"))
224
+ ])
225
+ ])
226
+ ]),
227
+ r("span", fe, [
228
+ r("button", {
229
+ onClick: e[8] || (e[8] = D((a) => g.value = 2, ["prevent"]))
230
+ }, k(new Date(u.value, n.value + 1).getFullYear()), 1),
231
+ r("button", {
232
+ onClick: e[9] || (e[9] = D((a) => g.value = 2, ["prevent"]))
233
+ }, k(S(j)(b.value.setMonth(n.value + 1), "{F}")), 1)
234
+ ]),
235
+ r("span", null, [
236
+ r("button", {
237
+ class: "sw-revers",
238
+ onClick: e[10] || (e[10] = D((a) => {
239
+ g.value = 0, y(u.value, n.value + 1);
240
+ }, ["prevent"]))
241
+ }, [
242
+ $(t.$slots, "arrow", {}, () => [
243
+ e[18] || (e[18] = F("‹"))
244
+ ])
245
+ ]),
246
+ r("button", {
247
+ class: "sw-revers",
248
+ onClick: e[11] || (e[11] = D((a) => y(u.value + 1, n.value), ["prevent"]))
249
+ }, [
250
+ $(t.$slots, "double-arrow", {}, () => [
251
+ e[19] || (e[19] = F("«"))
252
+ ])
253
+ ])
254
+ ])
255
+ ]),
256
+ g.value !== 2 ? (i(), v("div", me, [
257
+ (i(), v(T, null, I(7, (a, l) => r("button", {
258
+ key: l,
259
+ class: "disabled"
260
+ }, k(S(j)(new Date(1970, 1, a + S(Y)), "{D}")), 1)), 64))
261
+ ])) : B("", !0),
262
+ g.value === 2 ? (i(), v("div", pe, [
263
+ (i(!0), v(T, null, I(G.value, (a, l) => (i(), v("button", {
264
+ key: l,
265
+ onClick: D((m) => {
266
+ g.value = 0, y(u.value, l - 1);
267
+ }, ["prevent"]),
268
+ class: z(l === (n.value + 1) % 12 ? "active" : "")
269
+ }, k(a), 11, we))), 128))
270
+ ])) : (i(), v("div", he, [
271
+ (i(!0), v(T, null, I(o.value, (a, l) => (i(), v(T, { key: l }, [
272
+ l >= N.value - (7 + new Date(u.value, n.value + 1, 1).getDay() - S(Y)) % 7 ? (i(), v("button", {
273
+ key: 0,
274
+ class: z(a.month === A.value && L(a.year, a.month, a.day) ? a.class : "disabled"),
275
+ onClick: D(() => {
276
+ a.month === A.value && O(a, l);
277
+ }, ["prevent"])
278
+ }, k(a.day), 11, ye)) : B("", !0)
279
+ ], 64))), 128))
280
+ ]))
281
+ ])) : B("", !0)
282
+ ]));
283
+ }
284
+ };
285
+ export {
286
+ Ce as default
287
+ };
@@ -1,9 +1,9 @@
1
1
  import { mergeModels as y, useModel as D, ref as V, computed as C, watch as I, createElementBlock as d, openBlock as u, normalizeClass as M, createBlock as v, renderSlot as _, createCommentVNode as x, withDirectives as A, createTextVNode as E, toDisplayString as R, createElementVNode as T, vModelDynamic as F } from "vue";
2
- import { S } from "./index-DWJ1OqC1.js";
2
+ import { S } from "./index-CBg2cNwI.js";
3
3
  const O = ["for"], U = {
4
4
  key: 0,
5
5
  title: "Это поле обязательно для заполнения."
6
- }, j = ["required", "placeholder", "type", "id", "name", "size", "maxlength", "minlength", "autofocus"], J = {
6
+ }, j = ["required", "placeholder", "type", "id", "name", "size", "maxlength", "minlength", "autofocus", "readonly"], J = {
7
7
  __name: "SwInput",
8
8
  props: /* @__PURE__ */ y({
9
9
  before: { type: String, default: "" },
@@ -18,7 +18,8 @@ const O = ["for"], U = {
18
18
  maxlength: { type: Number, default: 128 },
19
19
  minlength: { type: Number, default: 1 },
20
20
  inputSize: { type: Number, default: 60 },
21
- autofocus: { type: Boolean, default: !1 }
21
+ autofocus: { type: Boolean, default: !1 },
22
+ readonly: { type: Boolean, default: !1 }
22
23
  }, {
23
24
  modelValue: {},
24
25
  modelModifiers: {}
@@ -90,7 +91,8 @@ const O = ["for"], U = {
90
91
  onBlur: z,
91
92
  maxlength: e.maxlength,
92
93
  minlength: e.minlength,
93
- autofocus: e.autofocus
94
+ autofocus: e.autofocus,
95
+ readonly: e.readonly
94
96
  }, null, 40, j), [
95
97
  [F, o.value]
96
98
  ]),
@@ -144,7 +144,7 @@ function w(e = {}) {
144
144
  }), t = n.mount(document.createElement("div"));
145
145
  l.appendChild(t.$el);
146
146
  }
147
- const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-85-tKHA7.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CuN3EbT6.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-B-XgBx8l.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-CKg8uOOQ.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-wFMHwJJk.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CaA4jsoa.js"), "./components/SwInput.vue": () => import("./SwInput-C-OwEtcJ.js"), "./components/SwMessage.vue": () => import("./SwMessage-CLIBIKTf.js"), "./components/SwSection.vue": () => import("./SwSection-CQfw3-el.js"), "./components/SwSelect.vue": () => import("./SwSelect-C2RKinez.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-B7ysp8L9.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-FMwJbEH7.js"), "./components/SwTabs.vue": () => import("./SwTabs-DkSI4oAh.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-Dwtj8g7T.js") }), d = {};
147
+ const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-85-tKHA7.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CuN3EbT6.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-6xJs3cOL.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-CKg8uOOQ.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-wFMHwJJk.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CaA4jsoa.js"), "./components/SwInput.vue": () => import("./SwInput-By9BijPi.js"), "./components/SwMessage.vue": () => import("./SwMessage-CLIBIKTf.js"), "./components/SwSection.vue": () => import("./SwSection-CQfw3-el.js"), "./components/SwSelect.vue": () => import("./SwSelect-C2RKinez.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-B7ysp8L9.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-FMwJbEH7.js"), "./components/SwTabs.vue": () => import("./SwTabs-DkSI4oAh.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-Dwtj8g7T.js") }), d = {};
148
148
  for (const e in h) {
149
149
  const n = e.split("/").pop().replace(".vue", "").replace(/-(\w)/g, (t, o) => o.toUpperCase());
150
150
  d[n] = P(() => h[e]());
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- (function(x,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(x=typeof globalThis<"u"?globalThis:x||self,e(x["component-sw"]={},x.vue))})(this,function(x,e){"use strict";function K(s){return/^(https?:|mailto:|tel:)/.test(s)}function O(s,o){if(arguments.length===0||!s)return null;const t=o||"{Y}-{m}-{d} {G}:{i}:{s}";let l;typeof s=="object"?l=s:(typeof s=="string"&&(/^[0-9]+$/.test(s)?s=parseInt(s):s=s.replace(new RegExp(/-/gm),"/")),typeof s=="number"&&s.toString().length===10&&(s=s*1e3),l=new Date(s));const n="ru-RU",d={Y:l.getFullYear(),m:(l.getMonth()+1).toString().padStart(2,"0"),d:l.getDate(),dd:l.getDate().toString().padStart(2,"0"),G:l.getHours(),H:l.getHours().toString().padStart(2,"0"),i:l.getMinutes().toString().padStart(2,"0"),s:l.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(n,{weekday:"short"}).format(l),F:new Intl.DateTimeFormat(n,{month:"long"}).format(l),M:new Intl.DateTimeFormat(n,{month:"short"}).format(l)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(S,p)=>d[p])}const ee=(s,o)=>{const t=s.__vccOpts||s;for(const[l,n]of o)t[l]=n;return t},te={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return K(this.iconClass)}}},le=["href"];function oe(s,o,t,l,n,d){return d.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},s.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},s.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,le)],16))}const I=ee(te,[["render",oe]]),q={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:s=>["success","warning","error","info"].includes(s)}},emits:["closed"],setup(s,{emit:o}){const t=s,l=o,n=e.ref(!1);let d=null;const S=()=>{n.value=!0,M()},p=()=>{n.value=!1,l("closed")},c=()=>{d&&(clearTimeout(d),d=null)},h=()=>{M()},M=()=>{d=setTimeout(p,t.duration)};e.onMounted(()=>{S()}),e.onUnmounted(()=>{d&&clearTimeout(d)});const _=e.computed(()=>{const m=["sw-alert"];return t.size.length>0&&m.push(`sw-${t.size}`),t.type.length>0&&m.push(`sw-${t.type}`),t.class.length>0&&m.push(t.class),m});return(m,y)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(_.value),onMouseenter:c,onMouseleave:h},[t.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(m.$slots,"prefix",{key:1}),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(I,{key:2,"icon-class":t.after,onClick:p},null,8,["icon-class"])):e.renderSlot(m.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},ne=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function L(s={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const o=e.createApp({setup(){return()=>e.h(q,{...s,onClose:()=>{P.removeChild(o._container),o.unmount()}})}}),t=o.mount(document.createElement("div"));P.appendChild(t.$el)}const W=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>ne),"./components/SwButton.vue":()=>Promise.resolve().then(()=>se),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>re),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>$e),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>Me),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwInput.vue":()=>Promise.resolve().then(()=>ze),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>je),"./components/SwSection.vue":()=>Promise.resolve().then(()=>Oe),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Ae),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Re),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ye),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>We),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Xe),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Qe)}),A={};for(const s in W){const o=s.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,l)=>l.toUpperCase());A[o]=e.defineAsyncComponent(()=>W[s]())}const ae={install(s){Object.keys(A).forEach(o=>{s.component(o,A[o]),console.log(o)}),s.config.globalProperties.$Alert=L,s.provide("Alert",L)}},U={__name:"SwButton",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},round:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},href:{type:String,default:""}},setup(s){const o=s,t=()=>{if(o.href.length>0){const n=document.createElement("a");n.setAttribute("href",o.href),n.setAttribute("target","_blank"),n.click()}},l=e.computed(()=>{let n=["sw-button"];return o.size.length>0&&n.push("sw-"+o.size),o.type.length>0&&n.push("sw-"+o.type),o.round&&n.push("sw-round"),o.text&&n.push("sw-text"),o.link&&n.push("sw-link"),o.class.length>0&&n.push(o.class),n});return(n,d)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),onClick:t},[e.renderSlot(n.$slots,"default")],2))}},se=Object.freeze(Object.defineProperty({__proto__:null,default:U},Symbol.toStringTag,{value:"Module"})),re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(s){e.onMounted(()=>{l.value="0px"});const o=e.ref(null),t=s;e.watch(()=>t.visual,()=>n());const l=e.ref("0px"),n=()=>{o.value&&(l.value=t.visual?o.value.scrollHeight+"px":"0px")};let d;return e.onMounted(()=>{n(),o.value&&(d=new ResizeObserver(n),d.observe(o.value))}),e.onBeforeUnmount(()=>{d&&d.disconnect()}),(S,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({maxHeight:l.value}),ref_key:"collapse",ref:o},[e.renderSlot(S.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),ie={class:"sw-data-picker"},ce={class:"month_year"},de={class:"text"},pe={key:0,class:"week"},me={key:1,class:"year"},fe=["onClick"],ue={key:2,class:"month"},ge=["onClick"],he={key:0},ye={class:"month_year"},Se={class:"text"},we={key:0,class:"week"},ke={key:1,class:"year"},_e=["onClick"],be={key:2,class:"month"},Be=["onClick"],$e=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(s,{emit:o}){var X,J,Q,Z;const t=s,l=o,n=e.ref(3),d=e.ref(new Date),S=e.ref(new Date),p=e.ref(new Date().getFullYear()),c=e.ref(new Date().getMonth()),h=e.ref(new Date().getFullYear()),M=e.ref(new Date().getMonth()),_=e.ref(new Date(p.value,c.value+1,1).getMonth()),m=e.ref([]),y=e.ref(0),w=e.ref(-1),g=e.ref(-1),b=e.ref(navigator.languages[1]||"ru"),f=/en|zh|ja|he/.test(b.value)?0:1,v=e.computed(()=>Array.from({length:12},(r,a)=>{const i=new Date(2024,a);return new Intl.DateTimeFormat(b.value,{month:"long"}).format(i)}));console.log(f);const E=r=>{let a=r.split(r.match(/\D.*?\D?/));return a[0].length>2?a.join("-")+"T00:00:01":a.reverse().join("-")+"T00:00:01"};(X=t.data)!=null&&X.startDate&&(d.value=new Date(E(t.data.startDate)),p.value=d.value.getFullYear(),c.value=d.value.getMonth()),(J=t.data)!=null&&J.endDate&&t.range==="range"&&(S.value=new Date(E(t.data.endDate)),h.value=S.value.getFullYear(),M.value=S.value.getMonth());const D=()=>{m.value=[],y.value=0;const r=new Date(p.value,c.value,0);for(let i=r.getDate()-r.getDay()+f;i<=r.getDate();i++)r.getDay()!==6+f&&(m.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]}),y.value++);const a=new Date(p.value,c.value+1,0).getDate();for(let i=1;i<=a;i++)m.value.push({day:i,month:c.value,year:p.value,class:[]}),y.value++;if(t.range==="range"){const i=new Date(p.value,c.value+1,1),u=new Date(p.value,c.value+2,0).getDate();for(let C=1;C<=u;C++)m.value.push({day:C,month:i.getMonth(),year:i.getFullYear(),class:[]})}T()},T=()=>{var a;if(!((a=t.data)!=null&&a.holiday))return;const r=(i,u)=>{i.forEach(C=>{const[$,V,j]=C.split("-").map(Number),F=m.value.findIndex(H=>H.year===$&&H.month+1===V&&H.day===j);F!==-1&&(m.value[F].class[0]=u)})};r(t.data.holiday.preholidays,"preholiday"),r(t.data.holiday.holidays,"weekend"),r(t.data.holiday.holiday,"holiday"),r(t.data.holiday.nowork,"nowork")},k=()=>{if(!t.limitation||t.limitation.length<2)return!1;const r=[...t.limitation].sort((a,i)=>new Date(E(a.startDate)).getTime()-new Date(E(i.startDate)).getTime());for(let a=1;a<r.length;a++){const i=new Date(E(r[a-1].endDate));if(new Date(E(r[a].startDate))<=i)return console.warn("Warning: Диапазоны пересекаются:",r[a-1],r[a]),!0}return!1},B=(r,a,i)=>{if(!t.limitation||t.limitation.length===0)return!0;const u=new Date(r,a,i).getTime();for(let C of t.limitation){const{startDate:$,endDate:V}=C;if(!$&&V){const j=new Date(E(V)).getTime();if(u<=j)return!1}if($&&!V){const j=new Date(E($)).getTime();if(u>=j)return!1}if($&&V){const j=new Date(E($)).getTime(),F=new Date(E(V)).getTime();if(j<=F){if(u>=j&&u<=F)return!1}else if(u>=j||u<=F)return!1}}return!0},N=(r,a)=>{const i=O(new Date(r.year,r.month,r.day),"{dd}.{m}.{Y}");t.range==="range"?g.value!==-1?(Y(),w.value=a,m.value[a].class[1]="active"):w.value!==-1?(g.value=a,R(w.value,g.value,i)):(w.value=a,m.value[a].class[1]="active"):(w.value!==-1&&(m.value[w.value].class[1]=""),w.value=a,m.value[a].class[1]="active",l("input",{dateStart:i,count:1}))},Y=()=>{m.value.forEach(r=>r.class[1]=""),w.value=-1,g.value=-1},R=(r,a,i)=>{let u=O(new Date(m.value[r].year,m.value[r].month,m.value[r].day),"{dd}.{m}.{Y}"),C=Ze(r,a);if(a>=r)for(let $=r+1;$<a;$++)m.value[$].class[1]="select";else for(let $=a+1;$<r;$++)m.value[$].class[1]="select";m.value[a].class[1]="active",l("input",{dateStart:u,dateEnd:i,count:C})},Ze=(r,a)=>{var $;let i=Math.abs(r-a)+1,[u,C]=[Math.min(r,a),Math.max(r,a)];for(let V=u;V<=C;V++)(($=m.value[V])==null?void 0:$.class[0])==="holiday"&&i--;return i},z=(r,a)=>{B(r,a)&&(d.value=new Date(r,a,1),p.value=d.value.getFullYear(),c.value=d.value.getMonth(),_.value=new Date(r,a+1,1).getMonth(),t.range==="year"&&n.value===0?N({year:r,month:a,day:1},8):D())};if(D(),k()&&console.error("Ошибка: Найдены пересекающиеся диапазоны!"),(Q=t.data)!=null&&Q.startDate&&(w.value=m.value.findIndex(r=>r.day===d.value.getDate()&&r.month===c.value&&r.year===p.value),w.value!==-1&&(m.value[w.value].class[1]="active")),(Z=t.data)!=null&&Z.endDate&&t.range==="range"&&(g.value=m.value.findIndex(r=>r.day===S.value.getDate()&&r.month===M.value&&r.year===h.value),g.value!==-1)){m.value[g.value].class[1]="active";for(let r=w.value+1;r<g.value;r++)m.value[r].class[1]="select"}return(r,a)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",null,[e.createElementVNode("p",ce,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e.withModifiers(i=>z(p.value-1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[12]||(a[12]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[1]||(a[1]=e.withModifiers(i=>{n.value=0,z(p.value,c.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[13]||(a[13]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",de,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e.withModifiers(i=>n.value=1,["prevent"]))},e.toDisplayString(p.value),1),e.createElementVNode("button",{onClick:a[3]||(a[3]=e.withModifiers(i=>n.value=1,["prevent"]))},e.toDisplayString(e.unref(O)(d.value.setMonth(c.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[4]||(a[4]=e.withModifiers(i=>{n.value=0,z(p.value,c.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[14]||(a[14]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[5]||(a[5]=e.withModifiers(i=>z(p.value+1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[15]||(a[15]=e.createTextVNode("«"))])])])]),t.range==="year"||n.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",pe,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(f)),"{D}")),1)),64))])),t.range==="year"||n.value===1?(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(C=>{n.value=0,z(p.value,u)},["prevent"]),class:e.normalizeClass(u===c.value?"active":"")},e.toDisplayString(i),11,fe))),128))])):(e.openBlock(),e.createElementBlock("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u<y.value+(7-new Date(p.value,c.value+1,1).getDay()+e.unref(f))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===c.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===c.value&&N(i,u)},["prevent"])},e.toDisplayString(i.day),11,ge)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("p",ye,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[6]||(a[6]=e.withModifiers(i=>z(p.value-1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[16]||(a[16]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[7]||(a[7]=e.withModifiers(i=>{n.value=0,z(p.value,c.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[17]||(a[17]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",Se,[e.createElementVNode("button",{onClick:a[8]||(a[8]=e.withModifiers(i=>n.value=2,["prevent"]))},e.toDisplayString(new Date(p.value,c.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:a[9]||(a[9]=e.withModifiers(i=>n.value=2,["prevent"]))},e.toDisplayString(e.unref(O)(d.value.setMonth(c.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[10]||(a[10]=e.withModifiers(i=>{n.value=0,z(p.value,c.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[18]||(a[18]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[11]||(a[11]=e.withModifiers(i=>z(p.value+1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[19]||(a[19]=e.createTextVNode("«"))])])])]),n.value!==2?(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(f)),"{D}")),1)),64))])):e.createCommentVNode("",!0),n.value===2?(e.openBlock(),e.createElementBlock("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(C=>{n.value=0,z(p.value,u-1)},["prevent"]),class:e.normalizeClass(u===(c.value+1)%12?"active":"")},e.toDisplayString(i),11,_e))),128))])):(e.openBlock(),e.createElementBlock("div",be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>=y.value-(7+new Date(p.value,c.value+1,1).getDay()-e.unref(f))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===_.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===_.value&&N(i,u)},["prevent"])},e.toDisplayString(i.day),11,Be)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),De=["id"],Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},trigger:{type:String,default:"click"},placement:{type:String,default:"bottom-left"},maxWidth:{type:Number,default:0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:o}){const t=s;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const l=e.useModel(s,"modelValue"),n=e.ref(null),d=e.ref(null),S=e.ref({}),p=Math.ceil(Math.random()*1e3),c=e.computed(()=>{let g=["sw-dropdown"];return t.size.length>0&&g.push("sw-"+t.size),t.type.length>0&&g.push("sw-"+t.type),g}),h=async()=>{if(await e.nextTick(),!d.value)return;const g=window.pageYOffset||document.documentElement.scrollTop,b=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${g}px`,document.body.style.left=`-${b}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=g,document.documentElement.scrollLeft=b;const f=n.value.getBoundingClientRect(),v=window.innerWidth,E=window.innerHeight,D=d.value.offsetHeight,T=d.value.offsetWidth;console.log("popupHeight",D),console.log("popupWidth",T);let k=f.left+f.width/2+b,B=f.top+f.height/2+g,N=f.height/2+8;const[Y,R]=t.placement.split("-",2);switch(console.log(t.placement),Y){case"bottom":B=g+E-D-N-8<B?B-N-D:B+N;break;case"top":B=g+D+N+8>B?B+N:B-N-D;break;case"left":k=k-T-f.width/2-8,B=B-D/2;break;case"right":k=k+f.width/2+8,B=B-D/2;break}switch(R){case"left":k=b+v-8>k-f.width/2+T?k-f.width/2:k-T+f.width/2;break;case"right":k=8<k+f.width/2-T?k-T+f.width/2:k-f.width/2;break}k<0&&(k=0),B<0&&(B=0),S.value={position:"absolute",top:`${B}px`,left:`${k}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}};o({positionPopup:h});const M=()=>{t.trigger==="click"&&(l.value=!l.value),l.value&&h()},_=()=>{t.trigger==="hover"&&(l.value=!l.value),l.value&&h()},m=()=>{t.trigger==="context"&&(l.value=!l.value),l.value&&h()},y=()=>{l.value&&h()},w=g=>{!g.target.closest(`[id="${p}"]`)&&n.value&&!n.value.contains(g.target)&&(l.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",y),window.addEventListener("click",w)}),e.onUnmounted(()=>{window.removeEventListener("resize",y),window.removeEventListener("click",w)}),(g,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value),onClick:b[0]||(b[0]=f=>M()),onMouseover:b[1]||(b[1]=e.withModifiers(f=>_(),["stop"])),onMouseleave:b[2]||(b[2]=e.withModifiers(f=>_(),["stop"])),onContextmenu:b[3]||(b[3]=e.withModifiers(f=>m(),["stop"])),ref_key:"dropdownRef",ref:n},[e.renderSlot(g.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[l.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:d,id:e.unref(p),class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(S.value),tabindex:"-1"},[e.renderSlot(g.$slots,"dropdown")],14,De)):e.createCommentVNode("",!0)]))],34))}}},Symbol.toStringTag,{value:"Module"})),Me=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdownItem",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},iconBefore:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let l=["sw-dropdown-item"];return o.size.length>0&&l.push("sw-"+o.size),o.type.length>0&&l.push("sw-"+o.type),o.class.length>0&&l.push(o.class),l});return(l,n)=>{const d=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(d,{"icon-class":s.iconBefore},null,8,["icon-class"]),e.renderSlot(l.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let l=["sw-form-item"];return o.type.length>0&&l.push("sw-"+o.type),o.class.length>0&&l.push(o.class),l});return(l,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Te=["for"],Ve={key:0,title:"Это поле обязательно для заполнения."},Ne=["required","placeholder","type","id","name","size","maxlength","minlength","autofocus"],ze=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwInput",props:e.mergeModels({before:{type:String,default:""},after:{type:String,default:""},placeholder:{type:String,default:""},label:{type:String,default:""},name:{type:String,required:!0},class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:"text"},required:{type:Boolean,default:!1},maxlength:{type:Number,default:128},minlength:{type:Number,default:1},inputSize:{type:Number,default:60},autofocus:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix","prefix","focusInput"],["update:modelValue"]),setup(s,{emit:o}){var m;const t=e.useModel(s,"modelValue"),l=s,n=e.ref(null),d=o,S=y=>{d("focusInput"),y.target.setSelectionRange(t.value.length,t.value.length),n.value!==null&&(n.value.style.top="-.6em")},p=y=>{var w;((w=t.value)==null?void 0:w.length)===0&&n.value!==null&&n.value.removeAttribute("style")};((m=t.value)==null?void 0:m.length)>0&&n.value!==null&&(n.value.style.top="-.6em");const c=()=>{d("suffix")},h=()=>{d("prefix")},M=e.computed(()=>{let y=["sw-input"];return l.size.length>0&&y.push("sw-"+l.size),l.class.length>0&&y.push(l.class),y});e.watch(t,(y,w)=>{l.type==="phone"&&(t.value=_(y,w))});const _=(y,w)=>{if(/^\+[0-9]\s/.test(w)&&y.length===2||/^\+0\s/.test(y))return"";const g=y;if(typeof g>"u"||g.length===0)return g;const b="+0 (___) ___-__-__";let f=0;const v=b.replace(/\D/g,""),E=g.replace(/\D/g,"");let D=b.replace(/[_\d]/g,k=>f<E.length?E.charAt(f++)||v.charAt(f):k);f=D.indexOf("_"),f!==-1&&(f=f<5?3:f,D=D.slice(0,f));let T=b.slice(0,g.length).replace(/_+/g,k=>`\\d{1,${k.length}}`).replace(/[+()]/g,"\\$&");if(T=new RegExp(`^${T}$`),D=D.replace(/[-—]$|(\) )$/g,""),!T.test(g)||g.length<5)return D};return(y,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(M.value)},[l.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":l.before,onClick:h},null,8,["icon-class"])):e.renderSlot(y.$slots,"prefix",{key:1}),l.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:l.name,ref_key:"lab",ref:n},[e.createTextVNode(e.toDisplayString(l.label),1),l.required?(e.openBlock(),e.createElementBlock("span",Ve,"*")):e.createCommentVNode("",!0)],8,Te)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[0]||(w[0]=g=>t.value=g),required:l.required,placeholder:l.required&&l.label.length===0?l.placeholder+"*":l.placeholder,type:l.type,id:l.name,name:l.name,size:l.inputSize,onFocus:S,onBlur:p,maxlength:l.maxlength,minlength:l.minlength,autofocus:l.autofocus},null,40,Ne),[[e.vModelDynamic,t.value]]),l.after.length>0?(e.openBlock(),e.createBlock(I,{key:3,"icon-class":l.after,onClick:c},null,8,["icon-class"])):e.renderSlot(y.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),xe={key:0},je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwMessage",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.useModel(s,"modelValue"),t=s,l=e.ref(null);return(n,d)=>{const S=e.resolveComponent("svg-icon");return o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:l},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",xe,[e.renderSlot(n.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(U,{link:"",type:"primary",onClick:d[0]||(d[0]=p=>o.value=!1)},{default:e.withCtx(()=>[e.createVNode(S,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(n.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),Oe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},emits:["header"],setup(s,{emit:o}){const t=s,l=o,n=()=>{l("header")};return(d,S)=>{const p=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(t.class)},[e.createElementVNode("header",{onClick:n},[e.renderSlot(d.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(p,{"icon-class":t.iconAfter},null,8,["icon-class"])])]),e.renderSlot(d.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(d.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),Pe={class:"popup"},ve={class:"wrapper"},Fe={class:"scrollbar"},Ie=["onClick"],Ae=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:"large"},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.ref({fullText:""}),t=e.ref(!1),l=e.ref([]),n=e.useModel(s,"modelValue"),d=s;e.watch(n.text,c=>{c.length>3&&(o.value.fullText=c)}),e.watch(o.value.fullText,(c,h)=>{t.value=c.length>3&&c.length>h.length,c.length>3&&S()});const S=()=>{let c="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(o.value.fullText),axios.post(c,{query:o.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+d.token}}).then(h=>{console.log(h.data.suggestions),l.value=h.data.suggestions,l.value.length===1&&p(l.value[0])}).catch(h=>{console.log(h)})},p=c=>{o.value.fullText=c.value,t.value=!1;const h={};h.text=c.value,h.coords=[Number(c.data.geo_lat),Number(c.data.geo_lon)],h.suggestion=c.data,n.value=h};return(c,h)=>{const M=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(M,{size:d.size,modelValue:o.value.fullText,"onUpdate:modelValue":h[0]||(h[0]=_=>o.value.fullText=_),placeholder:s.placeholder},null,8,["size","modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",ve,[e.createElementVNode("ul",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(_,m)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:m,onClick:y=>p(_)},e.toDisplayString(_.value),9,Ie))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Le={key:0},G={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let n=["sw-skeleton-item"];return o.size.length>0&&n.push("sw-"+o.size),o.animate&&n.push("sw-animate"),o.class.length>0&&n.push(o.class),n}),l=e.computed(()=>({width:o.width+"%"}));return(n,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(l.value)},[o.animate?(e.openBlock(),e.createElementBlock("div",Le)):e.createCommentVNode("",!0)],6))}},Ye=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),Re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(s){const o=s;return(t,l)=>o.visual?e.renderSlot(t.$slots,"default",{key:0}):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",o.class])},[e.renderSlot(t.$slots,"skeleton",{},()=>[e.createVNode(G,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),He=["name","id"],qe=["for","data-onlabel","data-offlabel"],We=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSwitch",props:e.mergeModels({id:{type:String,default:"checkbox"},class:{type:String,default:""},name:{type:String,default:""},on:{type:String,default:""},off:{type:String,default:""},size:{type:String,default:""},checkbox:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.useModel(s,"modelValue"),t=s,l=e.computed(()=>{let n=["sw-switch"];return t.size.length>0&&n.push("sw-"+t.size),t.checkbox&&n.push("sw-checkbox"),t.class.length>0&&n.push(t.class),n});return(n,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":d[0]||(d[0]=S=>o.value=S)},null,8,He),[[e.vModelCheckbox,o.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,qe),e.renderSlot(n.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ue={key:0},Ge=["onClick"],Xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(s,{emit:o}){e.ref(0);const t=e.ref([]),l=s,n=e.useModel(s,"modelValue"),d=o;function S(c){t.value.push(c)}function p(c){t.value=t.value.filter(h=>h!==c)}return e.provide("registerTab",S),e.provide("unregisterTab",p),e.provide("activeTab",n),e.provide("tabs",t),(c,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[t.value.length!==0?(e.openBlock(),e.createElementBlock("header",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(M,_)=>(e.openBlock(),e.createElementBlock("span",{key:_,class:e.normalizeClass([{active:n.value===_}]),onClick:m=>{n.value=_,d("tab-click",_)}},e.toDisplayString(M.label||M.title),11,Ge))),128))])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Je={key:0,class:"tab-content"},Qe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0},label:{type:String,default:""}},setup(s){const o=s,t=e.inject("registerTab"),l=e.inject("unregisterTab");e.onMounted(()=>{t({title:o.title,label:o.label})}),e.onUnmounted(()=>{l({title:o.title,label:o.label})});const n=e.inject("activeTab"),d=e.inject("tabs"),S=e.computed(()=>d.value.findIndex(c=>c.title===o.title)),p=e.computed(()=>n.value===S.value);return(c,h)=>p.value?(e.openBlock(),e.createElementBlock("div",Je,[e.renderSlot(c.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));x.Alert=L,x.Library=ae,x.components=A,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
1
+ (function(j,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(j=typeof globalThis<"u"?globalThis:j||self,e(j["component-sw"]={},j.vue))})(this,function(j,e){"use strict";function ee(s){return/^(https?:|mailto:|tel:)/.test(s)}function O(s,o){if(arguments.length===0||!s)return null;const t=o||"{Y}-{m}-{d} {G}:{i}:{s}";let l;typeof s=="object"?l=s:(typeof s=="string"&&(/^[0-9]+$/.test(s)?s=parseInt(s):s=s.replace(new RegExp(/-/gm),"/")),typeof s=="number"&&s.toString().length===10&&(s=s*1e3),l=new Date(s));const n="ru-RU",p={Y:l.getFullYear(),m:(l.getMonth()+1).toString().padStart(2,"0"),d:l.getDate(),dd:l.getDate().toString().padStart(2,"0"),G:l.getHours(),H:l.getHours().toString().padStart(2,"0"),i:l.getMinutes().toString().padStart(2,"0"),s:l.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(n,{weekday:"short"}).format(l),F:new Intl.DateTimeFormat(n,{month:"long"}).format(l),M:new Intl.DateTimeFormat(n,{month:"short"}).format(l)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(w,m)=>p[m])}const te=(s,o)=>{const t=s.__vccOpts||s;for(const[l,n]of o)t[l]=n;return t},le={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return ee(this.iconClass)}}},oe=["href"];function ne(s,o,t,l,n,p){return p.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},s.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},s.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,oe)],16))}const A=te(le,[["render",ne]]),W={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:s=>["success","warning","error","info"].includes(s)}},emits:["closed"],setup(s,{emit:o}){const t=s,l=o,n=e.ref(!1);let p=null;const w=()=>{n.value=!0,C()},m=()=>{n.value=!1,l("closed")},c=()=>{p&&(clearTimeout(p),p=null)},y=()=>{C()},C=()=>{p=setTimeout(m,t.duration)};e.onMounted(()=>{w()}),e.onUnmounted(()=>{p&&clearTimeout(p)});const b=e.computed(()=>{const f=["sw-alert"];return t.size.length>0&&f.push(`sw-${t.size}`),t.type.length>0&&f.push(`sw-${t.type}`),t.class.length>0&&f.push(t.class),f});return(f,k)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(b.value),onMouseenter:c,onMouseleave:y},[t.before.length>0?(e.openBlock(),e.createBlock(A,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(f.$slots,"prefix",{key:1}),e.renderSlot(f.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(A,{key:2,"icon-class":t.after,onClick:m},null,8,["icon-class"])):e.renderSlot(f.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},ae=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function Y(s={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const o=e.createApp({setup(){return()=>e.h(W,{...s,onClose:()=>{P.removeChild(o._container),o.unmount()}})}}),t=o.mount(document.createElement("div"));P.appendChild(t.$el)}const U=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>ae),"./components/SwButton.vue":()=>Promise.resolve().then(()=>re),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>ie),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>De),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>Me),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Te),"./components/SwInput.vue":()=>Promise.resolve().then(()=>xe),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>ve),"./components/SwSection.vue":()=>Promise.resolve().then(()=>Oe),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Le),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>He),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Re),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Ue),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Je),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Ze)}),L={};for(const s in U){const o=s.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,l)=>l.toUpperCase());L[o]=e.defineAsyncComponent(()=>U[s]())}const se={install(s){Object.keys(L).forEach(o=>{s.component(o,L[o]),console.log(o)}),s.config.globalProperties.$Alert=Y,s.provide("Alert",Y)}},G={__name:"SwButton",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},round:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},href:{type:String,default:""}},setup(s){const o=s,t=()=>{if(o.href.length>0){const n=document.createElement("a");n.setAttribute("href",o.href),n.setAttribute("target","_blank"),n.click()}},l=e.computed(()=>{let n=["sw-button"];return o.size.length>0&&n.push("sw-"+o.size),o.type.length>0&&n.push("sw-"+o.type),o.round&&n.push("sw-round"),o.text&&n.push("sw-text"),o.link&&n.push("sw-link"),o.class.length>0&&n.push(o.class),n});return(n,p)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),onClick:t},[e.renderSlot(n.$slots,"default")],2))}},re=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),ie=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(s){e.onMounted(()=>{l.value="0px"});const o=e.ref(null),t=s;e.watch(()=>t.visual,()=>n());const l=e.ref("0px"),n=()=>{o.value&&(l.value=t.visual?o.value.scrollHeight+"px":"0px")};let p;return e.onMounted(()=>{n(),o.value&&(p=new ResizeObserver(n),p.observe(o.value))}),e.onBeforeUnmount(()=>{p&&p.disconnect()}),(w,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({maxHeight:l.value}),ref_key:"collapse",ref:o},[e.renderSlot(w.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),ce={class:"sw-data-picker"},de={class:"month_year"},pe={class:"text"},me={key:0,class:"week"},fe={key:1,class:"year"},ue=["onClick"],ge={key:2,class:"month"},he=["onClick"],ye={key:0},Se={class:"month_year"},ke={class:"text"},we={key:0,class:"week"},_e={key:1,class:"year"},be=["onClick"],Be={key:2,class:"month"},$e=["onClick"],De=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(s,{emit:o}){var J,Q,Z,K;const t=s,l=o,n=e.ref(3),p=e.ref(new Date),w=e.ref(new Date),m=e.ref(new Date().getFullYear()),c=e.ref(new Date().getMonth()),y=e.ref(new Date().getFullYear()),C=e.ref(new Date().getMonth()),b=e.ref(new Date(m.value,c.value+1,1).getMonth()),f=e.ref([]),k=e.ref(0),S=e.ref(-1),h=e.ref(-1),B=e.ref(navigator.language||"ru"),g=/en|zh|ja|he/.test(B.value)?0:1,F=e.computed(()=>Array.from({length:12},(r,a)=>{const i=new Date(2024,a);return new Intl.DateTimeFormat(B.value,{month:"long"}).format(i)}));console.log(g);const M=r=>{let a=r.split(r.match(/\D.*?\D?/));return a[0].length>2?a.join("-")+"T00:00:01":a.reverse().join("-")+"T00:00:01"};(J=t.data)!=null&&J.startDate&&(p.value=new Date(M(t.data.startDate)),m.value=p.value.getFullYear(),c.value=p.value.getMonth()),(Q=t.data)!=null&&Q.endDate&&t.range==="range"&&(w.value=new Date(M(t.data.endDate)),y.value=w.value.getFullYear(),C.value=w.value.getMonth());const E=()=>{f.value=[],k.value=0;const r=new Date(m.value,c.value,0);for(let i=r.getDate()-r.getDay()+g;i<=r.getDate();i++)r.getDay()!==6+g&&(f.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]}),k.value++);const a=new Date(m.value,c.value+1,0).getDate();for(let i=1;i<=a;i++)f.value.push({day:i,month:c.value,year:m.value,class:[]}),k.value++;if(t.range==="range"){const i=new Date(m.value,c.value+1,1),u=new Date(m.value,c.value+2,0).getDate();for(let T=1;T<=u;T++)f.value.push({day:T,month:i.getMonth(),year:i.getFullYear(),class:[]})}V()},V=()=>{var a;if(!((a=t.data)!=null&&a.holiday))return;const r=(i,u)=>{i.forEach(T=>{const[D,N,v]=T.split("-").map(Number),I=f.value.findIndex(q=>q.year===D&&q.month+1===N&&q.day===v);I!==-1&&(f.value[I].class[0]=u)})};r(t.data.holiday.preholidays,"preholiday"),r(t.data.holiday.holidays,"weekend"),r(t.data.holiday.holiday,"holiday"),r(t.data.holiday.nowork,"nowork")},_=()=>{if(!t.limitation||t.limitation.length<2)return!1;const r=[...t.limitation].sort((a,i)=>new Date(M(a.startDate)).getTime()-new Date(M(i.startDate)).getTime());for(let a=1;a<r.length;a++){const i=new Date(M(r[a-1].endDate));if(new Date(M(r[a].startDate))<=i)return console.warn("Warning: Диапазоны пересекаются:",r[a-1],r[a]),!0}return!1},$=(r,a,i)=>{if(!t.limitation||t.limitation.length===0)return!0;const u=new Date(r,a,i).getTime();for(let T of t.limitation){const{startDate:D,endDate:N}=T;if(!D&&N){const v=new Date(M(N)).getTime();if(u<=v)return!1}if(D&&!N){const v=new Date(M(D)).getTime();if(u>=v)return!1}if(D&&N){const v=new Date(M(D)).getTime(),I=new Date(M(N)).getTime();if(v<=I){if(u>=v&&u<=I)return!1}else if(u>=v||u<=I)return!1}}return!0},z=(r,a)=>{const i=O(new Date(r.year,r.month,r.day),"{dd}.{m}.{Y}");t.range==="range"?h.value!==-1?(R(),S.value=a,f.value[a].class[1]="active"):S.value!==-1?(h.value=a,H(S.value,h.value,i)):(S.value=a,f.value[a].class[1]="active"):(S.value!==-1&&(f.value[S.value].class[1]=""),S.value=a,f.value[a].class[1]="active",l("input",{dateStart:i,count:1}))},R=()=>{f.value.forEach(r=>r.class[1]=""),S.value=-1,h.value=-1},H=(r,a,i)=>{let u=O(new Date(f.value[r].year,f.value[r].month,f.value[r].day),"{dd}.{m}.{Y}"),T=Ke(r,a);if(a>=r)for(let D=r+1;D<a;D++)f.value[D].class[1]="select";else for(let D=a+1;D<r;D++)f.value[D].class[1]="select";f.value[a].class[1]="active",l("input",{dateStart:u,dateEnd:i,count:T}),Key>key?l("input",{dateStart:d,dateEnd:u,count:countDay(S.value,key)}):l("input",{dateStart:u,dateEnd:d,count:countDay(key,S.value)})},Ke=(r,a)=>{var D;let i=Math.abs(r-a)+1,[u,T]=[Math.min(r,a),Math.max(r,a)];for(let N=u;N<=T;N++)((D=f.value[N])==null?void 0:D.class[0])==="holiday"&&i--;return i},x=(r,a)=>{$(r,a)&&(p.value=new Date(r,a,1),m.value=p.value.getFullYear(),c.value=p.value.getMonth(),b.value=new Date(r,a+1,1).getMonth(),t.range==="year"&&n.value===0?z({year:r,month:a,day:1},8):E())};if(E(),_(),(Z=t.data)!=null&&Z.startDate&&(S.value=f.value.findIndex(r=>r.day===p.value.getDate()&&r.month===c.value&&r.year===m.value),S.value!==-1&&(f.value[S.value].class[1]="active")),(K=t.data)!=null&&K.endDate&&t.range==="range"&&(h.value=f.value.findIndex(r=>r.day===w.value.getDate()&&r.month===C.value&&r.year===y.value),h.value!==-1)){f.value[h.value].class[1]="active";for(let r=S.value+1;r<h.value;r++)f.value[r].class[1]="select"}return(r,a)=>(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("div",null,[e.createElementVNode("p",de,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e.withModifiers(i=>x(m.value-1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[12]||(a[12]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[1]||(a[1]=e.withModifiers(i=>{n.value=0,x(m.value,c.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[13]||(a[13]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",pe,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e.withModifiers(i=>n.value=1,["prevent"]))},e.toDisplayString(m.value),1),e.createElementVNode("button",{onClick:a[3]||(a[3]=e.withModifiers(i=>n.value=1,["prevent"]))},e.toDisplayString(e.unref(O)(p.value.setMonth(c.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[4]||(a[4]=e.withModifiers(i=>{n.value=0,x(m.value,c.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[14]||(a[14]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[5]||(a[5]=e.withModifiers(i=>x(m.value+1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[15]||(a[15]=e.createTextVNode("«"))])])])]),t.range==="year"||n.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(g)),"{D}")),1)),64))])),t.range==="year"||n.value===1?(e.openBlock(),e.createElementBlock("div",fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,(i,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(T=>{n.value=0,x(m.value,u)},["prevent"]),class:e.normalizeClass(u===c.value?"active":"")},e.toDisplayString(i),11,ue))),128))])):(e.openBlock(),e.createElementBlock("div",ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(i,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u<k.value+(7-new Date(m.value,c.value+1,1).getDay()+e.unref(g))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===c.value&&$(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===c.value&&z(i,u)},["prevent"])},e.toDisplayString(i.day),11,he)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("p",Se,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[6]||(a[6]=e.withModifiers(i=>x(m.value-1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[16]||(a[16]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[7]||(a[7]=e.withModifiers(i=>{n.value=0,x(m.value,c.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[17]||(a[17]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",ke,[e.createElementVNode("button",{onClick:a[8]||(a[8]=e.withModifiers(i=>n.value=2,["prevent"]))},e.toDisplayString(new Date(m.value,c.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:a[9]||(a[9]=e.withModifiers(i=>n.value=2,["prevent"]))},e.toDisplayString(e.unref(O)(p.value.setMonth(c.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[10]||(a[10]=e.withModifiers(i=>{n.value=0,x(m.value,c.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[18]||(a[18]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[11]||(a[11]=e.withModifiers(i=>x(m.value+1,c.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[19]||(a[19]=e.createTextVNode("«"))])])])]),n.value!==2?(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(g)),"{D}")),1)),64))])):e.createCommentVNode("",!0),n.value===2?(e.openBlock(),e.createElementBlock("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(F.value,(i,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(T=>{n.value=0,x(m.value,u-1)},["prevent"]),class:e.normalizeClass(u===(c.value+1)%12?"active":"")},e.toDisplayString(i),11,be))),128))])):(e.openBlock(),e.createElementBlock("div",Be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(i,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>=k.value-(7+new Date(m.value,c.value+1,1).getDay()-e.unref(g))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===b.value&&$(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===b.value&&z(i,u)},["prevent"])},e.toDisplayString(i.day),11,$e)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),Ee=["id"],Me=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},trigger:{type:String,default:"click"},placement:{type:String,default:"bottom-left"},maxWidth:{type:Number,default:0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:o}){const t=s;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const l=e.useModel(s,"modelValue"),n=e.ref(null),p=e.ref(null),w=e.ref({}),m=Math.ceil(Math.random()*1e3),c=e.computed(()=>{let h=["sw-dropdown"];return t.size.length>0&&h.push("sw-"+t.size),t.type.length>0&&h.push("sw-"+t.type),h}),y=async()=>{if(await e.nextTick(),!p.value)return;const h=window.pageYOffset||document.documentElement.scrollTop,B=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${h}px`,document.body.style.left=`-${B}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=h,document.documentElement.scrollLeft=B;const g=n.value.getBoundingClientRect(),F=window.innerWidth,M=window.innerHeight,E=p.value.offsetHeight,V=p.value.offsetWidth;console.log("popupHeight",E),console.log("popupWidth",V);let _=g.left+g.width/2+B,$=g.top+g.height/2+h,z=g.height/2+8;const[R,H]=t.placement.split("-",2);switch(console.log(t.placement),R){case"bottom":$=h+M-E-z-8<$?$-z-E:$+z;break;case"top":$=h+E+z+8>$?$+z:$-z-E;break;case"left":_=_-V-g.width/2-8,$=$-E/2;break;case"right":_=_+g.width/2+8,$=$-E/2;break}switch(H){case"left":_=B+F-8>_-g.width/2+V?_-g.width/2:_-V+g.width/2;break;case"right":_=8<_+g.width/2-V?_-V+g.width/2:_-g.width/2;break}_<0&&(_=0),$<0&&($=0),w.value={position:"absolute",top:`${$}px`,left:`${_}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}};o({positionPopup:y});const C=()=>{t.trigger==="click"&&(l.value=!l.value),l.value&&y()},b=()=>{t.trigger==="hover"&&(l.value=!l.value),l.value&&y()},f=()=>{t.trigger==="context"&&(l.value=!l.value),l.value&&y()},k=()=>{l.value&&y()},S=h=>{!h.target.closest(`[id="${m}"]`)&&n.value&&!n.value.contains(h.target)&&(l.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",k),window.addEventListener("click",S)}),e.onUnmounted(()=>{window.removeEventListener("resize",k),window.removeEventListener("click",S)}),(h,B)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value),onClick:B[0]||(B[0]=g=>C()),onMouseover:B[1]||(B[1]=e.withModifiers(g=>b(),["stop"])),onMouseleave:B[2]||(B[2]=e.withModifiers(g=>b(),["stop"])),onContextmenu:B[3]||(B[3]=e.withModifiers(g=>f(),["stop"])),ref_key:"dropdownRef",ref:n},[e.renderSlot(h.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[l.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:p,id:e.unref(m),class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(w.value),tabindex:"-1"},[e.renderSlot(h.$slots,"dropdown")],14,Ee)):e.createCommentVNode("",!0)]))],34))}}},Symbol.toStringTag,{value:"Module"})),Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdownItem",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},iconBefore:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let l=["sw-dropdown-item"];return o.size.length>0&&l.push("sw-"+o.size),o.type.length>0&&l.push("sw-"+o.type),o.class.length>0&&l.push(o.class),l});return(l,n)=>{const p=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(p,{"icon-class":s.iconBefore},null,8,["icon-class"]),e.renderSlot(l.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Te=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let l=["sw-form-item"];return o.type.length>0&&l.push("sw-"+o.type),o.class.length>0&&l.push(o.class),l});return(l,n)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ve=["for"],Ne={key:0,title:"Это поле обязательно для заполнения."},ze=["required","placeholder","type","id","name","size","maxlength","minlength","autofocus","readonly"],xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwInput",props:e.mergeModels({before:{type:String,default:""},after:{type:String,default:""},placeholder:{type:String,default:""},label:{type:String,default:""},name:{type:String,required:!0},class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:"text"},required:{type:Boolean,default:!1},maxlength:{type:Number,default:128},minlength:{type:Number,default:1},inputSize:{type:Number,default:60},autofocus:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix","prefix","focusInput"],["update:modelValue"]),setup(s,{emit:o}){var f;const t=e.useModel(s,"modelValue"),l=s,n=e.ref(null),p=o,w=k=>{p("focusInput"),k.target.setSelectionRange(t.value.length,t.value.length),n.value!==null&&(n.value.style.top="-.6em")},m=k=>{var S;((S=t.value)==null?void 0:S.length)===0&&n.value!==null&&n.value.removeAttribute("style")};((f=t.value)==null?void 0:f.length)>0&&n.value!==null&&(n.value.style.top="-.6em");const c=()=>{p("suffix")},y=()=>{p("prefix")},C=e.computed(()=>{let k=["sw-input"];return l.size.length>0&&k.push("sw-"+l.size),l.class.length>0&&k.push(l.class),k});e.watch(t,(k,S)=>{l.type==="phone"&&(t.value=b(k,S))});const b=(k,S)=>{if(/^\+[0-9]\s/.test(S)&&k.length===2||/^\+0\s/.test(k))return"";const h=k;if(typeof h>"u"||h.length===0)return h;const B="+0 (___) ___-__-__";let g=0;const F=B.replace(/\D/g,""),M=h.replace(/\D/g,"");let E=B.replace(/[_\d]/g,_=>g<M.length?M.charAt(g++)||F.charAt(g):_);g=E.indexOf("_"),g!==-1&&(g=g<5?3:g,E=E.slice(0,g));let V=B.slice(0,h.length).replace(/_+/g,_=>`\\d{1,${_.length}}`).replace(/[+()]/g,"\\$&");if(V=new RegExp(`^${V}$`),E=E.replace(/[-—]$|(\) )$/g,""),!V.test(h)||h.length<5)return E};return(k,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(C.value)},[l.before.length>0?(e.openBlock(),e.createBlock(A,{key:0,"icon-class":l.before,onClick:y},null,8,["icon-class"])):e.renderSlot(k.$slots,"prefix",{key:1}),l.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:l.name,ref_key:"lab",ref:n},[e.createTextVNode(e.toDisplayString(l.label),1),l.required?(e.openBlock(),e.createElementBlock("span",Ne,"*")):e.createCommentVNode("",!0)],8,Ve)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=h=>t.value=h),required:l.required,placeholder:l.required&&l.label.length===0?l.placeholder+"*":l.placeholder,type:l.type,id:l.name,name:l.name,size:l.inputSize,onFocus:w,onBlur:m,maxlength:l.maxlength,minlength:l.minlength,autofocus:l.autofocus,readonly:l.readonly},null,40,ze),[[e.vModelDynamic,t.value]]),l.after.length>0?(e.openBlock(),e.createBlock(A,{key:3,"icon-class":l.after,onClick:c},null,8,["icon-class"])):e.renderSlot(k.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),je={key:0},ve=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwMessage",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.useModel(s,"modelValue"),t=s,l=e.ref(null);return(n,p)=>{const w=e.resolveComponent("svg-icon");return o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:l},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",je,[e.renderSlot(n.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(G,{link:"",type:"primary",onClick:p[0]||(p[0]=m=>o.value=!1)},{default:e.withCtx(()=>[e.createVNode(w,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(n.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),Oe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},emits:["header"],setup(s,{emit:o}){const t=s,l=o,n=()=>{l("header")};return(p,w)=>{const m=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(t.class)},[e.createElementVNode("header",{onClick:n},[e.renderSlot(p.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(m,{"icon-class":t.iconAfter},null,8,["icon-class"])])]),e.renderSlot(p.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(p.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),Pe={class:"popup"},Fe={class:"wrapper"},Ie={class:"scrollbar"},Ae=["onClick"],Le=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:"large"},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.ref({fullText:""}),t=e.ref(!1),l=e.ref([]),n=e.useModel(s,"modelValue"),p=s;e.watch(n.text,c=>{c.length>3&&(o.value.fullText=c)}),e.watch(o.value.fullText,(c,y)=>{t.value=c.length>3&&c.length>y.length,c.length>3&&w()});const w=()=>{let c="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(o.value.fullText),axios.post(c,{query:o.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+p.token}}).then(y=>{console.log(y.data.suggestions),l.value=y.data.suggestions,l.value.length===1&&m(l.value[0])}).catch(y=>{console.log(y)})},m=c=>{o.value.fullText=c.value,t.value=!1;const y={};y.text=c.value,y.coords=[Number(c.data.geo_lat),Number(c.data.geo_lon)],y.suggestion=c.data,n.value=y};return(c,y)=>{const C=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(C,{size:p.size,modelValue:o.value.fullText,"onUpdate:modelValue":y[0]||(y[0]=b=>o.value.fullText=b),placeholder:s.placeholder},null,8,["size","modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",Fe,[e.createElementVNode("ul",Ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(b,f)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:f,onClick:k=>m(b)},e.toDisplayString(b.value),9,Ae))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Ye={key:0},X={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(s){const o=s,t=e.computed(()=>{let n=["sw-skeleton-item"];return o.size.length>0&&n.push("sw-"+o.size),o.animate&&n.push("sw-animate"),o.class.length>0&&n.push(o.class),n}),l=e.computed(()=>({width:o.width+"%"}));return(n,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(l.value)},[o.animate?(e.openBlock(),e.createElementBlock("div",Ye)):e.createCommentVNode("",!0)],6))}},Re=Object.freeze(Object.defineProperty({__proto__:null,default:X},Symbol.toStringTag,{value:"Module"})),He=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(s){const o=s;return(t,l)=>o.visual?e.renderSlot(t.$slots,"default",{key:0}):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",o.class])},[e.renderSlot(t.$slots,"skeleton",{},()=>[e.createVNode(X,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),qe=["name","id"],We=["for","data-onlabel","data-offlabel"],Ue=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSwitch",props:e.mergeModels({id:{type:String,default:"checkbox"},class:{type:String,default:""},name:{type:String,default:""},on:{type:String,default:""},off:{type:String,default:""},size:{type:String,default:""},checkbox:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const o=e.useModel(s,"modelValue"),t=s,l=e.computed(()=>{let n=["sw-switch"];return t.size.length>0&&n.push("sw-"+t.size),t.checkbox&&n.push("sw-checkbox"),t.class.length>0&&n.push(t.class),n});return(n,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":p[0]||(p[0]=w=>o.value=w)},null,8,qe),[[e.vModelCheckbox,o.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,We),e.renderSlot(n.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ge={key:0},Xe=["onClick"],Je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(s,{emit:o}){e.ref(0);const t=e.ref([]),l=s,n=e.useModel(s,"modelValue"),p=o;function w(c){t.value.push(c)}function m(c){t.value=t.value.filter(y=>y!==c)}return e.provide("registerTab",w),e.provide("unregisterTab",m),e.provide("activeTab",n),e.provide("tabs",t),(c,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[t.value.length!==0?(e.openBlock(),e.createElementBlock("header",Ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(C,b)=>(e.openBlock(),e.createElementBlock("span",{key:b,class:e.normalizeClass([{active:n.value===b}]),onClick:f=>{n.value=b,p("tab-click",b)}},e.toDisplayString(C.label||C.title),11,Xe))),128))])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Qe={key:0,class:"tab-content"},Ze=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0},label:{type:String,default:""}},setup(s){const o=s,t=e.inject("registerTab"),l=e.inject("unregisterTab");e.onMounted(()=>{t({title:o.title,label:o.label})}),e.onUnmounted(()=>{l({title:o.title,label:o.label})});const n=e.inject("activeTab"),p=e.inject("tabs"),w=e.computed(()=>p.value.findIndex(c=>c.title===o.title)),m=e.computed(()=>n.value===w.value);return(c,y)=>m.value?(e.openBlock(),e.createElementBlock("div",Qe,[e.renderSlot(c.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));j.Alert=Y,j.Library=se,j.components=L,Object.defineProperty(j,Symbol.toStringTag,{value:"Module"})});
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { A as s, L as t, c as e } from "./index-DWJ1OqC1.js";
2
+ import { A as s, L as t, c as e } from "./index-CBg2cNwI.js";
3
3
  export {
4
4
  s as Alert,
5
5
  t as Library,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.5.14",
3
+ "version": "0.5.16",
4
4
  "description": "Vue components of Component SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,287 +0,0 @@
1
- import { ref as f, computed as le, createElementBlock as v, openBlock as i, createElementVNode as r, createCommentVNode as N, withModifiers as c, renderSlot as M, createTextVNode as $, toDisplayString as k, unref as F, Fragment as T, renderList as E, normalizeClass as V } from "vue";
2
- import { p as I } from "./index-DWJ1OqC1.js";
3
- const ne = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { class: "text" }, ue = {
4
- key: 0,
5
- class: "week"
6
- }, re = {
7
- key: 1,
8
- class: "year"
9
- }, ve = ["onClick"], ie = {
10
- key: 2,
11
- class: "month"
12
- }, de = ["onClick"], ce = { key: 0 }, ge = { class: "month_year" }, De = { class: "text" }, fe = {
13
- key: 0,
14
- class: "week"
15
- }, me = {
16
- key: 1,
17
- class: "year"
18
- }, pe = ["onClick"], we = {
19
- key: 2,
20
- class: "month"
21
- }, he = ["onClick"], be = {
22
- __name: "SwDatePicker",
23
- props: {
24
- data: Object,
25
- limitation: {
26
- type: [Boolean, Array],
27
- default: () => !1
28
- },
29
- range: {
30
- type: String,
31
- default: "solid"
32
- }
33
- },
34
- emits: ["input"],
35
- setup(X, { emit: Z }) {
36
- var H, J, Q, U;
37
- const s = X, O = Z, g = f(3), y = f(/* @__PURE__ */ new Date()), B = f(/* @__PURE__ */ new Date()), u = f((/* @__PURE__ */ new Date()).getFullYear()), n = f((/* @__PURE__ */ new Date()).getMonth()), P = f((/* @__PURE__ */ new Date()).getFullYear()), R = f((/* @__PURE__ */ new Date()).getMonth()), x = f(new Date(u.value, n.value + 1, 1).getMonth()), o = f([]), j = f(0), m = f(-1), C = f(-1), W = f(navigator.languages[1] || "ru"), Y = /en|zh|ja|he/.test(W.value) ? 0 : 1, q = le(() => Array.from({ length: 12 }, (t, e) => {
38
- const a = new Date(2024, e);
39
- return new Intl.DateTimeFormat(W.value, { month: "long" }).format(a);
40
- }));
41
- console.log(Y);
42
- const w = (t) => {
43
- let e = t.split(t.match(/\D.*?\D?/));
44
- return e[0].length > 2 ? e.join("-") + "T00:00:01" : e.reverse().join("-") + "T00:00:01";
45
- };
46
- (H = s.data) != null && H.startDate && (y.value = new Date(w(s.data.startDate)), u.value = y.value.getFullYear(), n.value = y.value.getMonth()), (J = s.data) != null && J.endDate && s.range === "range" && (B.value = new Date(w(s.data.endDate)), P.value = B.value.getFullYear(), R.value = B.value.getMonth());
47
- const G = () => {
48
- o.value = [], j.value = 0;
49
- const t = new Date(u.value, n.value, 0);
50
- for (let a = t.getDate() - t.getDay() + Y; a <= t.getDate(); a++)
51
- t.getDay() !== 6 + Y && (o.value.push({ day: a, month: t.getMonth(), year: t.getFullYear(), class: [] }), j.value++);
52
- const e = new Date(u.value, n.value + 1, 0).getDate();
53
- for (let a = 1; a <= e; a++)
54
- o.value.push({ day: a, month: n.value, year: u.value, class: [] }), j.value++;
55
- if (s.range === "range") {
56
- const a = new Date(u.value, n.value + 1, 1), l = new Date(u.value, n.value + 2, 0).getDate();
57
- for (let D = 1; D <= l; D++)
58
- o.value.push({ day: D, month: a.getMonth(), year: a.getFullYear(), class: [] });
59
- }
60
- _();
61
- }, _ = () => {
62
- var e;
63
- if (!((e = s.data) != null && e.holiday)) return;
64
- const t = (a, l) => {
65
- a.forEach((D) => {
66
- const [d, p, b] = D.split("-").map(Number), S = o.value.findIndex((L) => L.year === d && L.month + 1 === p && L.day === b);
67
- S !== -1 && (o.value[S].class[0] = l);
68
- });
69
- };
70
- t(s.data.holiday.preholidays, "preholiday"), t(s.data.holiday.holidays, "weekend"), t(s.data.holiday.holiday, "holiday"), t(s.data.holiday.nowork, "nowork");
71
- }, K = () => {
72
- if (!s.limitation || s.limitation.length < 2) return !1;
73
- const t = [...s.limitation].sort(
74
- (e, a) => new Date(w(e.startDate)).getTime() - new Date(w(a.startDate)).getTime()
75
- );
76
- for (let e = 1; e < t.length; e++) {
77
- const a = new Date(w(t[e - 1].endDate));
78
- if (new Date(w(t[e].startDate)) <= a)
79
- return console.warn("Warning: Диапазоны пересекаются:", t[e - 1], t[e]), !0;
80
- }
81
- return !1;
82
- }, z = (t, e, a) => {
83
- if (!s.limitation || s.limitation.length === 0) return !0;
84
- const l = new Date(t, e, a).getTime();
85
- for (let D of s.limitation) {
86
- const { startDate: d, endDate: p } = D;
87
- if (!d && p) {
88
- const b = new Date(w(p)).getTime();
89
- if (l <= b) return !1;
90
- }
91
- if (d && !p) {
92
- const b = new Date(w(d)).getTime();
93
- if (l >= b) return !1;
94
- }
95
- if (d && p) {
96
- const b = new Date(w(d)).getTime(), S = new Date(w(p)).getTime();
97
- if (b <= S) {
98
- if (l >= b && l <= S) return !1;
99
- } else if (l >= b || l <= S) return !1;
100
- }
101
- }
102
- return !0;
103
- }, A = (t, e) => {
104
- const a = I(new Date(t.year, t.month, t.day), "{dd}.{m}.{Y}");
105
- s.range === "range" ? C.value !== -1 ? (ee(), m.value = e, o.value[e].class[1] = "active") : m.value !== -1 ? (C.value = e, te(m.value, C.value, a)) : (m.value = e, o.value[e].class[1] = "active") : (m.value !== -1 && (o.value[m.value].class[1] = ""), m.value = e, o.value[e].class[1] = "active", O("input", { dateStart: a, count: 1 }));
106
- }, ee = () => {
107
- o.value.forEach((t) => t.class[1] = ""), m.value = -1, C.value = -1;
108
- }, te = (t, e, a) => {
109
- let l = I(new Date(o.value[t].year, o.value[t].month, o.value[t].day), "{dd}.{m}.{Y}"), D = ae(t, e);
110
- if (e >= t)
111
- for (let d = t + 1; d < e; d++)
112
- o.value[d].class[1] = "select";
113
- else
114
- for (let d = e + 1; d < t; d++)
115
- o.value[d].class[1] = "select";
116
- o.value[e].class[1] = "active", O("input", { dateStart: l, dateEnd: a, count: D });
117
- }, ae = (t, e) => {
118
- var d;
119
- let a = Math.abs(t - e) + 1, [l, D] = [Math.min(t, e), Math.max(t, e)];
120
- for (let p = l; p <= D; p++)
121
- ((d = o.value[p]) == null ? void 0 : d.class[0]) === "holiday" && a--;
122
- return a;
123
- }, h = (t, e) => {
124
- z(t, e) && (y.value = new Date(t, e, 1), u.value = y.value.getFullYear(), n.value = y.value.getMonth(), x.value = new Date(t, e + 1, 1).getMonth(), s.range === "year" && g.value === 0 ? A({ year: t, month: e, day: 1 }, 8) : G());
125
- };
126
- if (G(), K() && console.error("Ошибка: Найдены пересекающиеся диапазоны!"), (Q = s.data) != null && Q.startDate && (m.value = o.value.findIndex((t) => t.day === y.value.getDate() && t.month === n.value && t.year === u.value), m.value !== -1 && (o.value[m.value].class[1] = "active")), (U = s.data) != null && U.endDate && s.range === "range" && (C.value = o.value.findIndex((t) => t.day === B.value.getDate() && t.month === R.value && t.year === P.value), C.value !== -1)) {
127
- o.value[C.value].class[1] = "active";
128
- for (let t = m.value + 1; t < C.value; t++)
129
- o.value[t].class[1] = "select";
130
- }
131
- return (t, e) => (i(), v("div", ne, [
132
- r("div", null, [
133
- r("p", se, [
134
- r("span", null, [
135
- r("button", {
136
- onClick: e[0] || (e[0] = c((a) => h(u.value - 1, n.value), ["prevent"]))
137
- }, [
138
- M(t.$slots, "double-arrow", {}, () => [
139
- e[12] || (e[12] = $("«"))
140
- ])
141
- ]),
142
- r("button", {
143
- onClick: e[1] || (e[1] = c((a) => {
144
- g.value = 0, h(u.value, n.value - 1);
145
- }, ["prevent"]))
146
- }, [
147
- M(t.$slots, "arrow", {}, () => [
148
- e[13] || (e[13] = $("‹"))
149
- ])
150
- ])
151
- ]),
152
- r("span", oe, [
153
- r("button", {
154
- onClick: e[2] || (e[2] = c((a) => g.value = 1, ["prevent"]))
155
- }, k(u.value), 1),
156
- r("button", {
157
- onClick: e[3] || (e[3] = c((a) => g.value = 1, ["prevent"]))
158
- }, k(F(I)(y.value.setMonth(n.value), "{F}")), 1)
159
- ]),
160
- r("span", null, [
161
- r("button", {
162
- class: "sw-revers",
163
- onClick: e[4] || (e[4] = c((a) => {
164
- g.value = 0, h(u.value, n.value + 1);
165
- }, ["prevent"]))
166
- }, [
167
- M(t.$slots, "arrow", {}, () => [
168
- e[14] || (e[14] = $("‹"))
169
- ])
170
- ]),
171
- r("button", {
172
- class: "sw-revers",
173
- onClick: e[5] || (e[5] = c((a) => h(u.value + 1, n.value), ["prevent"]))
174
- }, [
175
- M(t.$slots, "double-arrow", {}, () => [
176
- e[15] || (e[15] = $("«"))
177
- ])
178
- ])
179
- ])
180
- ]),
181
- s.range === "year" || g.value === 1 ? N("", !0) : (i(), v("div", ue, [
182
- (i(), v(T, null, E(7, (a, l) => r("button", {
183
- key: l,
184
- class: "disabled"
185
- }, k(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
186
- ])),
187
- s.range === "year" || g.value === 1 ? (i(), v("div", re, [
188
- (i(!0), v(T, null, E(q.value, (a, l) => (i(), v("button", {
189
- key: l,
190
- onClick: c((D) => {
191
- g.value = 0, h(u.value, l);
192
- }, ["prevent"]),
193
- class: V(l === n.value ? "active" : "")
194
- }, k(a), 11, ve))), 128))
195
- ])) : (i(), v("div", ie, [
196
- (i(!0), v(T, null, E(o.value, (a, l) => (i(), v(T, { key: l }, [
197
- l < j.value + (7 - new Date(u.value, n.value + 1, 1).getDay() + F(Y)) % 7 ? (i(), v("button", {
198
- key: 0,
199
- class: V(a.month === n.value && z(a.year, a.month, a.day) ? a.class : "disabled"),
200
- onClick: c(() => {
201
- a.month === n.value && A(a, l);
202
- }, ["prevent"])
203
- }, k(a.day), 11, de)) : N("", !0)
204
- ], 64))), 128))
205
- ]))
206
- ]),
207
- s.range === "range" ? (i(), v("div", ce, [
208
- r("p", ge, [
209
- r("span", null, [
210
- r("button", {
211
- onClick: e[6] || (e[6] = c((a) => h(u.value - 1, n.value), ["prevent"]))
212
- }, [
213
- M(t.$slots, "double-arrow", {}, () => [
214
- e[16] || (e[16] = $("«"))
215
- ])
216
- ]),
217
- r("button", {
218
- onClick: e[7] || (e[7] = c((a) => {
219
- g.value = 0, h(u.value, n.value - 1);
220
- }, ["prevent"]))
221
- }, [
222
- M(t.$slots, "arrow", {}, () => [
223
- e[17] || (e[17] = $("‹"))
224
- ])
225
- ])
226
- ]),
227
- r("span", De, [
228
- r("button", {
229
- onClick: e[8] || (e[8] = c((a) => g.value = 2, ["prevent"]))
230
- }, k(new Date(u.value, n.value + 1).getFullYear()), 1),
231
- r("button", {
232
- onClick: e[9] || (e[9] = c((a) => g.value = 2, ["prevent"]))
233
- }, k(F(I)(y.value.setMonth(n.value + 1), "{F}")), 1)
234
- ]),
235
- r("span", null, [
236
- r("button", {
237
- class: "sw-revers",
238
- onClick: e[10] || (e[10] = c((a) => {
239
- g.value = 0, h(u.value, n.value + 1);
240
- }, ["prevent"]))
241
- }, [
242
- M(t.$slots, "arrow", {}, () => [
243
- e[18] || (e[18] = $("‹"))
244
- ])
245
- ]),
246
- r("button", {
247
- class: "sw-revers",
248
- onClick: e[11] || (e[11] = c((a) => h(u.value + 1, n.value), ["prevent"]))
249
- }, [
250
- M(t.$slots, "double-arrow", {}, () => [
251
- e[19] || (e[19] = $("«"))
252
- ])
253
- ])
254
- ])
255
- ]),
256
- g.value !== 2 ? (i(), v("div", fe, [
257
- (i(), v(T, null, E(7, (a, l) => r("button", {
258
- key: l,
259
- class: "disabled"
260
- }, k(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
261
- ])) : N("", !0),
262
- g.value === 2 ? (i(), v("div", me, [
263
- (i(!0), v(T, null, E(q.value, (a, l) => (i(), v("button", {
264
- key: l,
265
- onClick: c((D) => {
266
- g.value = 0, h(u.value, l - 1);
267
- }, ["prevent"]),
268
- class: V(l === (n.value + 1) % 12 ? "active" : "")
269
- }, k(a), 11, pe))), 128))
270
- ])) : (i(), v("div", we, [
271
- (i(!0), v(T, null, E(o.value, (a, l) => (i(), v(T, { key: l }, [
272
- l >= j.value - (7 + new Date(u.value, n.value + 1, 1).getDay() - F(Y)) % 7 ? (i(), v("button", {
273
- key: 0,
274
- class: V(a.month === x.value && z(a.year, a.month, a.day) ? a.class : "disabled"),
275
- onClick: c(() => {
276
- a.month === x.value && A(a, l);
277
- }, ["prevent"])
278
- }, k(a.day), 11, he)) : N("", !0)
279
- ], 64))), 128))
280
- ]))
281
- ])) : N("", !0)
282
- ]));
283
- }
284
- };
285
- export {
286
- be as default
287
- };