@studio-west/component-sw 0.1.4 → 0.1.6

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.
@@ -0,0 +1,186 @@
1
+ import { ref as m, createElementBlock as D, openBlock as p, createElementVNode as o, createCommentVNode as T, toDisplayString as M, unref as _, Fragment as E, renderList as F, normalizeClass as H } from "vue";
2
+ import { p as I } from "./index-gmNtBsqX.js";
3
+ const U = { class: "sw-data-picker" }, W = { class: "month_year" }, X = { class: "text" }, Z = { class: "week" }, ee = { class: "month" }, te = ["onClick"], ae = { key: 0 }, le = { class: "month_year" }, ne = { class: "text" }, ue = { class: "week" }, oe = { class: "month" }, se = ["onClick"], re = {
4
+ __name: "SwDataPicker",
5
+ props: {
6
+ data: Object,
7
+ limitation: { type: [Boolean, Array], default: () => !1 },
8
+ // {dateEnd:"30.12.2024",dateStart:"30.11.2024"}
9
+ range: { type: String, default: () => "solid" }
10
+ // range | solid
11
+ },
12
+ emits: ["init"],
13
+ setup(J, { emit: K }) {
14
+ var A, L, O, P;
15
+ const w = m(/* @__PURE__ */ new Date()), k = m(/* @__PURE__ */ new Date()), l = J, S = K, r = m((/* @__PURE__ */ new Date()).getFullYear()), $ = m((/* @__PURE__ */ new Date()).getMonth()), j = m((/* @__PURE__ */ new Date()).getFullYear()), s = m((/* @__PURE__ */ new Date()).getMonth()), n = m([]), Y = m(0), x = m(0), v = m(-1), h = m(-1), Q = m(navigator.languages || "ru"), y = /en|zh|ja|he/.test(Q.value) ? 0 : 1, B = l.range === "range" ? 2 : 1, C = (a) => {
16
+ const t = a.split(a.match(/\D.*?\D?/));
17
+ return t[0].length > 2 ? t.join("-") + "T00:00:01" : t.reverse().join("-") + "T00:00:01";
18
+ };
19
+ typeof ((A = l.data) == null ? void 0 : A.startDate) < "u" && (w.value = new Date(C(l.data.startDate)), r.value = w.value.getFullYear(), s.value = w.value.getMonth()), typeof ((L = l.data) == null ? void 0 : L.endDate) < "u" && (k.value = new Date(C(l.data.endDate)), j.value = k.value.getFullYear(), $.value = k.value.getMonth());
20
+ const z = () => {
21
+ var e, u, f, q, G;
22
+ let a = new Date(r.value, s.value, 0);
23
+ for (let i = a.getDate() - a.getDay() + y; i <= a.getDate() && a.getDay() !== 6 + y; i++)
24
+ Y.value++, n.value.push({ day: i, month: a.getMonth(), year: a.getFullYear(), class: [] });
25
+ for (let i = 1; i <= new Date(r.value, s.value + 1, 0).getDate(); i++)
26
+ Y.value++, n.value.push({ day: i, month: s.value, year: r.value, class: [] });
27
+ if (l.range === "range") {
28
+ x.value = new Date(r.value, s.value + 2, 0);
29
+ for (let i = 1; i <= x.value.getDate(); i++)
30
+ n.value.push({ day: i, month: x.value.getMonth(), year: x.value.getFullYear(), class: [] });
31
+ }
32
+ let t = new Date(r.value, s.value + B, 1);
33
+ console.log(t.getDay());
34
+ for (let i = 1; i <= (7 - t.getDay() + y) % 7 && t.getDay() !== y; i++)
35
+ n.value.push({ day: i, month: t.getMonth(), year: t.getFullYear(), class: [] });
36
+ ((e = l.data) == null ? void 0 : e.holiday.length) !== 0 && ((u = l.data) == null || u.holiday.preholidays.forEach((i) => {
37
+ let d = i.split("-");
38
+ const g = n.value.findIndex((c) => c.year == d[0] && c.month + 1 == d[1] && c.day == d[2]);
39
+ g !== -1 && (n.value[g].class[0] = "preholiday");
40
+ }), (f = l.data) == null || f.holiday.holidays.forEach((i) => {
41
+ let d = i.split("-");
42
+ const g = n.value.findIndex((c) => c.year == d[0] && c.month + 1 == d[1] && c.day == d[2]);
43
+ g !== -1 && (n.value[g].class[0] = "weekend");
44
+ }), (q = l.data) == null || q.holiday.holiday.forEach((i) => {
45
+ let d = i.split("-");
46
+ const g = n.value.findIndex((c) => c.year == d[0] && c.month + 1 == d[1] && c.day == d[2]);
47
+ g !== -1 && (n.value[g].class[0] = "holiday");
48
+ }), (G = l.data) == null || G.holiday.nowork.forEach((i) => {
49
+ let d = i.split("-");
50
+ const g = n.value.findIndex((c) => c.year == d[0] && c.month + 1 == d[1] && c.day == d[2]);
51
+ g !== -1 && (n.value[g].class[0] = "nowork");
52
+ }));
53
+ }, N = (a, t) => {
54
+ let e = a - t + 1;
55
+ for (let u = 0; u <= a - t; u++)
56
+ n.value[u + t].class[0] === "holiday" && e--;
57
+ return e;
58
+ }, V = (a, t) => {
59
+ const e = I(new Date(a.year, a.month, a.day), "{dd}.{m}.{Y}");
60
+ if (l.range === "range")
61
+ if (console.log(v.value), h.value !== -1) {
62
+ if (h.value <= v.value)
63
+ for (let u = h.value; u <= v.value; u++) n.value[u].class[1] = "";
64
+ else for (let u = v.value; u <= h.value; u++) n.value[u].class[1] = "";
65
+ v.value = t, h.value = -1, n.value[t].class[1] = "active";
66
+ } else if (v.value !== -1) {
67
+ if (h.value = t, h.value >= v.value)
68
+ for (let f = v.value + 1; f < t; f++) n.value[f].class[1] = "select";
69
+ else for (let f = t + 1; f < v.value; f++) n.value[f].class[1] = "select";
70
+ n.value[t].class[1] = "active";
71
+ let u = I(new Date(n.value[v.value].year, n.value[v.value].month, n.value[v.value].day), "{dd}.{m}.{Y}");
72
+ v.value > t ? S("input", { dateStart: e, dateEnd: u, count: N(v.value, t) }) : S("input", { dateStart: u, dateEnd: e, count: N(t, v.value) });
73
+ } else
74
+ v.value = t, n.value[t].class[1] = "active";
75
+ else
76
+ n.value[v.value].class[1] = "", v.value = t, n.value[t].class[1] = "active", S("input", { dateStart: e, count: 1 });
77
+ };
78
+ if (z(), typeof ((O = l.data) == null ? void 0 : O.startDate) < "u" && (v.value = n.value.findIndex((a) => a.day === w.value.getDate() && a.month === s.value && a.year === r.value), n.value[v.value].class[1] = "active"), typeof ((P = l.data) == null ? void 0 : P.endDate) < "u" && l.range === "range") {
79
+ h.value = n.value.findIndex((a) => a.day === k.value.getDate() && a.month === $.value && a.year === j.value), n.value[h.value].class[1] = "active";
80
+ for (let a = v.value + 1; a < h.value; a++) n.value[a].class[1] = "select";
81
+ }
82
+ const b = (a, t) => {
83
+ R(a, t) && (n.value = [], Y.value = 0, w.value = new Date(a, t, 1), r.value = w.value.getFullYear(), s.value = w.value.getMonth(), z());
84
+ }, R = (a, t) => {
85
+ if (!l.limitation) return !0;
86
+ if (l.limitation[0].dateStart) {
87
+ console.log(l.limitation[0].dateStart);
88
+ let e = l.limitation[0].dateStart.split(l.limitation[0].dateStart.match(/\D.*?\D?/));
89
+ if (e[0].length > 2 && e.reverse(), parseInt(e[2]) > a || parseInt(e[2]) === a && parseInt(e[1]) > t + 1) return !1;
90
+ }
91
+ if (l.limitation[l.limitation.length - 1].dateEnd) {
92
+ console.log(l.limitation[l.limitation.length - 1].dateEnd);
93
+ let e = l.limitation[l.limitation.length - 1].dateEnd.split(l.limitation[l.limitation.length - 1].dateEnd.match(/\D.*?\D?/));
94
+ if (e[0].length > 2 && e.reverse(), parseInt(e[2]) < a || parseInt(e[2]) === a && parseInt(e[1]) < t + B) return !1;
95
+ }
96
+ return !0;
97
+ };
98
+ return (a, t) => (p(), D("div", U, [
99
+ o("div", null, [
100
+ o("p", W, [
101
+ o("span", null, [
102
+ o("button", {
103
+ onClick: t[0] || (t[0] = (e) => b(r.value - 1, s.value))
104
+ }, "«"),
105
+ o("button", {
106
+ onClick: t[1] || (t[1] = (e) => b(r.value, s.value - 1))
107
+ }, "‹")
108
+ ]),
109
+ o("span", X, [
110
+ o("button", null, M(r.value), 1),
111
+ o("button", null, M(_(I)(w.value.setMonth(s.value), "{F}")), 1)
112
+ ]),
113
+ o("span", null, [
114
+ o("button", {
115
+ onClick: t[2] || (t[2] = (e) => b(r.value, s.value + 1))
116
+ }, "›"),
117
+ o("button", {
118
+ onClick: t[3] || (t[3] = (e) => b(r.value + 1, s.value))
119
+ }, "»")
120
+ ])
121
+ ]),
122
+ o("div", Z, [
123
+ (p(), D(E, null, F(7, (e, u) => o("button", {
124
+ key: u,
125
+ class: "disabled"
126
+ }, M(_(I)(new Date(1970, 1, e + _(y)), "{D}")), 1)), 64))
127
+ ]),
128
+ o("div", ee, [
129
+ (p(!0), D(E, null, F(n.value, (e, u) => (p(), D(E, { key: u }, [
130
+ u < Y.value + (7 - new Date(r.value, s.value + 1, 1).getDay() + _(y)) % 7 ? (p(), D("button", {
131
+ key: 0,
132
+ class: H(e.month === s.value && (!l.limitation || new Date(e.year, e.month, e.day + 1).getTime() > new Date(C(l.limitation[0].dateStart)).getTime() && new Date(e.year, e.month, e.day).getTime() < new Date(C(l.limitation[0].dateEnd)).getTime()) ? e.class : "disabled"),
133
+ onClick: () => {
134
+ e.month === s.value && V(e, u);
135
+ }
136
+ }, M(e.day), 11, te)) : T("", !0)
137
+ ], 64))), 128))
138
+ ])
139
+ ]),
140
+ l.range === "range" ? (p(), D("div", ae, [
141
+ o("p", le, [
142
+ o("span", null, [
143
+ o("button", {
144
+ onClick: t[4] || (t[4] = (e) => b(r.value - 1, s.value))
145
+ }, "«"),
146
+ o("button", {
147
+ onClick: t[5] || (t[5] = (e) => b(r.value, s.value - 1))
148
+ }, "‹")
149
+ ]),
150
+ o("span", ne, [
151
+ o("button", null, M(new Date(r.value, s.value + 1).getFullYear()), 1),
152
+ o("button", null, M(_(I)(w.value.setMonth(s.value + 1), "{F}")), 1)
153
+ ]),
154
+ o("span", null, [
155
+ o("button", {
156
+ onClick: t[6] || (t[6] = (e) => b(r.value, s.value + 1))
157
+ }, "›"),
158
+ o("button", {
159
+ onClick: t[7] || (t[7] = (e) => b(r.value + 1, s.value))
160
+ }, "»")
161
+ ])
162
+ ]),
163
+ o("div", ue, [
164
+ (p(), D(E, null, F(7, (e, u) => o("button", {
165
+ key: u,
166
+ class: "disabled"
167
+ }, M(_(I)(new Date(1970, 1, e + _(y)), "{D}")), 1)), 64))
168
+ ]),
169
+ o("div", oe, [
170
+ (p(!0), D(E, null, F(n.value, (e, u) => (p(), D(E, { key: u }, [
171
+ u >= Y.value - (7 + new Date(r.value, s.value + 1, 1).getDay() - _(y)) % 7 ? (p(), D("button", {
172
+ key: 0,
173
+ class: H(e.month === x.value.getMonth() && (!l.limitation || new Date(e.year, e.month, e.day + 1).getTime() > new Date(C(l.limitation[0].dateStart)).getTime() && new Date(e.year, e.month, e.day).getTime() < new Date(C(l.limitation[0].dateEnd)).getTime()) ? e.class : "disabled"),
174
+ onClick: () => {
175
+ e.month === x.value.getMonth() && V(e, u);
176
+ }
177
+ }, M(e.day), 11, se)) : T("", !0)
178
+ ], 64))), 128))
179
+ ])
180
+ ])) : T("", !0)
181
+ ]));
182
+ }
183
+ };
184
+ export {
185
+ re as default
186
+ };
@@ -1,11 +1,9 @@
1
1
  import { createElementBlock as i, openBlock as a, mergeProps as d, createElementVNode as c, mergeModels as p, useModel as _, ref as b, computed as C, normalizeClass as V, createBlock as m, renderSlot as y, createCommentVNode as z, withDirectives as E, createTextVNode as N, toDisplayString as $, vModelDynamic as q } from "vue";
2
- function w(l) {
3
- return /^(https?:|mailto:|tel:)/.test(l);
4
- }
5
- const B = (l, r) => {
6
- const t = l.__vccOpts || l;
7
- for (const [e, s] of r)
8
- t[e] = s;
2
+ import { i as w } from "./index-gmNtBsqX.js";
3
+ const B = (n, r) => {
4
+ const t = n.__vccOpts || n;
5
+ for (const [e, l] of r)
6
+ t[e] = l;
9
7
  return t;
10
8
  }, M = {
11
9
  name: "SvgIcon",
@@ -29,22 +27,22 @@ const B = (l, r) => {
29
27
  }
30
28
  }
31
29
  }, D = ["href"];
32
- function I(l, r, t, e, s, u) {
30
+ function I(n, r, t, e, l, u) {
33
31
  return u.isExt ? (a(), i("div", d({
34
32
  key: 0,
35
33
  style: "mask: url(" + t.iconClass + ") no-repeat 50% 50%;",
36
34
  class: "svg-external-icon svg-icon"
37
- }, l.$attrs), null, 16)) : (a(), i("svg", d({
35
+ }, n.$attrs), null, 16)) : (a(), i("svg", d({
38
36
  key: 1,
39
37
  class: "svg-icon " + t.className,
40
38
  "aria-hidden": "true"
41
- }, l.$attrs), [
39
+ }, n.$attrs), [
42
40
  c("use", {
43
41
  href: "#" + t.prefix + "-" + t.iconClass
44
42
  }, null, 8, D)
45
43
  ], 16));
46
44
  }
47
- const g = /* @__PURE__ */ B(M, [["render", I]]), A = ["for"], F = ["placeholder", "type", "id", "name"], P = {
45
+ const g = /* @__PURE__ */ B(M, [["render", I]]), A = ["for"], F = ["placeholder", "type", "id", "name"], T = {
48
46
  __name: "SwInput",
49
47
  props: /* @__PURE__ */ p({
50
48
  before: { type: String, default: "" },
@@ -60,35 +58,35 @@ const g = /* @__PURE__ */ B(M, [["render", I]]), A = ["for"], F = ["placeholder"
60
58
  modelModifiers: {}
61
59
  }),
62
60
  emits: /* @__PURE__ */ p(["suffix"], ["update:modelValue"]),
63
- setup(l, { emit: r }) {
61
+ setup(n, { emit: r }) {
64
62
  var f;
65
- const t = _(l, "modelValue"), e = l, s = b(null), u = r, v = () => {
66
- s.value !== null && (s.value.style.top = "-.6em");
63
+ const t = _(n, "modelValue"), e = n, l = b(null), u = r, v = () => {
64
+ l.value !== null && (l.value.style.top = "-.6em");
67
65
  }, h = () => {
68
- var n;
69
- ((n = t.value) == null ? void 0 : n.length) == 0 && s.value !== null && s.value.removeAttribute("style");
66
+ var s;
67
+ ((s = t.value) == null ? void 0 : s.length) == 0 && l.value !== null && l.value.removeAttribute("style");
70
68
  };
71
- ((f = t.value) == null ? void 0 : f.length) > 0 && s.value !== null && (s.value.style.top = "-.6em");
69
+ ((f = t.value) == null ? void 0 : f.length) > 0 && l.value !== null && (l.value.style.top = "-.6em");
72
70
  const S = () => {
73
71
  u("suffix");
74
72
  }, k = C(
75
73
  () => {
76
- let n = ["sw-input"];
77
- return e.size.length > 0 && n.push("sw-" + e.size), e.class.length > 0 && n.push(e.class), n;
74
+ let s = ["sw-input"];
75
+ return e.size.length > 0 && s.push("sw-" + e.size), e.class.length > 0 && s.push(e.class), s;
78
76
  }
79
77
  );
80
- return (n, o) => (a(), i("div", {
78
+ return (s, o) => (a(), i("div", {
81
79
  class: V(k.value)
82
80
  }, [
83
81
  e.before.length > 0 ? (a(), m(g, {
84
82
  key: 0,
85
83
  "icon-class": e.before
86
- }, null, 8, ["icon-class"])) : y(n.$slots, "prefix", { key: 1 }),
84
+ }, null, 8, ["icon-class"])) : y(s.$slots, "prefix", { key: 1 }),
87
85
  e.label.length > 0 ? (a(), i("label", {
88
86
  key: 2,
89
87
  for: e.name,
90
88
  ref_key: "lab",
91
- ref: s
89
+ ref: l
92
90
  }, [
93
91
  N($(e.label), 1),
94
92
  o[1] || (o[1] = c("span", { title: "Это поле обязательно для заполнения." }, "*", -1))
@@ -111,10 +109,10 @@ const g = /* @__PURE__ */ B(M, [["render", I]]), A = ["for"], F = ["placeholder"
111
109
  key: 3,
112
110
  "icon-class": e.after,
113
111
  onClick: S
114
- }, null, 8, ["icon-class"])) : y(n.$slots, "suffix", { key: 4 })
112
+ }, null, 8, ["icon-class"])) : y(s.$slots, "suffix", { key: 4 })
115
113
  ], 2));
116
114
  }
117
115
  };
118
116
  export {
119
- P as default
117
+ T as default
120
118
  };
@@ -0,0 +1,33 @@
1
+ import { mergeModels as c, ref as i, useModel as v, useSlots as b, provide as u, createElementBlock as s, openBlock as o, normalizeClass as m, createElementVNode as k, renderSlot as S, Fragment as _, renderList as g, toDisplayString as y } from "vue";
2
+ const V = ["onClick"], M = {
3
+ __name: "SwTabs",
4
+ props: /* @__PURE__ */ c({
5
+ name: { type: String },
6
+ class: { type: String, default: "" }
7
+ }, {
8
+ modelValue: {},
9
+ modelModifiers: {}
10
+ }),
11
+ emits: /* @__PURE__ */ c(["tab-click"], ["update:modelValue"]),
12
+ setup(r, { emit: d }) {
13
+ i(0);
14
+ const t = i([]), p = r, l = v(r, "modelValue"), f = d;
15
+ return t.value = b().default().filter((a) => a.type.__name === "SwTabsPane"), u("activeTab", l), u("tabs", t), (a, h) => (o(), s("div", {
16
+ class: m("sw-tabs " + p.class)
17
+ }, [
18
+ k("header", null, [
19
+ (o(!0), s(_, null, g(t.value, (n, e) => (o(), s("span", {
20
+ key: e,
21
+ class: m([{ active: l.value === e }]),
22
+ onClick: (w) => {
23
+ l.value = e, f("tab-click", e);
24
+ }
25
+ }, y(n.props.label || n.props.title), 11, V))), 128))
26
+ ]),
27
+ S(a.$slots, "default")
28
+ ], 2));
29
+ }
30
+ };
31
+ export {
32
+ M as default
33
+ };
@@ -0,0 +1,35 @@
1
+ import { mergeModels as i, ref as u, useModel as b, provide as a, createElementBlock as o, openBlock as r, normalizeClass as m, createElementVNode as f, renderSlot as k, Fragment as g, renderList as S, toDisplayString as _ } from "vue";
2
+ const h = ["onClick"], C = {
3
+ __name: "SwTabsNew",
4
+ props: /* @__PURE__ */ i({
5
+ name: { type: String },
6
+ class: { type: String, default: "" }
7
+ }, {
8
+ modelValue: {},
9
+ modelModifiers: {}
10
+ }),
11
+ emits: /* @__PURE__ */ i(["tab-click"], ["update:modelValue"]),
12
+ setup(c, { emit: p }) {
13
+ u(0);
14
+ const t = u([]), d = c, l = b(c, "modelValue"), v = p;
15
+ return a("activeTab", l), a("tabs", t), a("registerTab", (s) => {
16
+ t.value.push(s);
17
+ }), (s, y) => (r(), o("div", {
18
+ class: m("sw-tabs " + d.class)
19
+ }, [
20
+ f("header", null, [
21
+ (r(!0), o(g, null, S(t.value, (n, e) => (r(), o("span", {
22
+ key: e,
23
+ class: m([{ active: l.value === e }]),
24
+ onClick: (V) => {
25
+ l.value = e, v("tab-click", e);
26
+ }
27
+ }, _(n.props.label || n.props.title), 11, h))), 128))
28
+ ]),
29
+ k(s.$slots, "default")
30
+ ], 2));
31
+ }
32
+ };
33
+ export {
34
+ C as default
35
+ };
@@ -0,0 +1,29 @@
1
+ import { inject as e, createElementBlock as i, createCommentVNode as c, unref as b, openBlock as l, renderSlot as d } from "vue";
2
+ const u = {
3
+ key: 0,
4
+ class: "tab-content"
5
+ }, m = {
6
+ __name: "SwTabsPaneNew",
7
+ props: {
8
+ label: { type: String, required: !0 },
9
+ // Текст вкладки
10
+ title: { type: String }
11
+ // Альтернативный текст (если label не задан)
12
+ },
13
+ setup(r) {
14
+ const s = r, t = e("registerTab");
15
+ if (!t)
16
+ throw new Error("SwTabsPane must be used inside SwTabs");
17
+ t({ props: s });
18
+ const a = e("activeTab");
19
+ if (!e("tabs"))
20
+ throw new Error("Tabs array is not provided by SwTabs");
21
+ const n = e("tabs").value.length - 1;
22
+ return (o, w) => b(a) === n ? (l(), i("div", u, [
23
+ d(o.$slots, "default")
24
+ ])) : c("", !0);
25
+ }
26
+ };
27
+ export {
28
+ m as default
29
+ };
@@ -1 +1 @@
1
- :root{--sw-color-default: #DFDFDF;--sw-color-primary: #3EAF4E;--sw-color-success: #FFE603;--sw-color-info: #C0C0C0;--sw-color-warning: #FF7A00;--sw-color-danger: #CC2D4A;--sw-text-color-primary: #333333;--sw-text-color-secondary: #4C4C4C;--sw-text-color-third: #818181;--sw-text-color-revers: white;--sw-bg-color: #f4f4f4;--sw-bg-color-page: white;--sw-bg-color-second: #FAFAFA;--sw-border-color: #D6D6D6;--sw-border-color-input: #CECECE;--sw-font-size: 1rem;--sw-font-size-small: .875rem;--sw-font-size-large: 1.125rem;--sw-font-size-big: 2.8rem;--sw-border-radius: .625rem;--sw-border-round: 3.625rem;--sw-component-size-base: 3rem;--sw-component-size-small: 1.625rem;--sw-component-size-large: 3.5rem;font-family:Montserrat,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{--sw-color-default: #4E4E4E;--sw-color-primary: #38A151;--sw-color-success: #FFE603;--sw-color-info: #808185;--sw-color-warning: #FF7A00;--sw-color-danger: #CC2D4A;--sw-text-color-primary: white;--sw-text-color-secondary: #FAFAFA;--sw-text-color-third: #FAFAFA;--sw-text-color-revers: white;--sw-bg-color: #182127;--sw-bg-color-page: #323741;--sw-bg-color-second: #232832;--sw-border-color: #4E4E4E;--sw-border-color-input: #5C5E63;--sw-shadow: 0 100px 80px rgba(0, 0, 0, .03), 0 41.7776px 33.4221px rgba(0, 0, 0, .0215656), 0 22.3363px 17.869px rgba(0, 0, 0, .0178832), 0 12.5216px 10.0172px rgba(0, 0, 0, .015), 0 6.6501px 5.32008px rgba(0, 0, 0, .0121168), 0 2.76726px 2.21381px rgba(0, 0, 0, .00843437)}}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{display:flex;border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);font-weight:400;margin-bottom:1.25rem;transition:all .6s ease-out}.sw-tabs>header span{position:relative;top:2px;border-radius:0;padding:5px;cursor:pointer;border:none;background:none;outline:none}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{display:flex;align-items:center;position:relative;gap:0 1.75rem;padding:0 1.2em;border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius)}.sw-input input{line-height:var(--sw-component-size-base);border:none;width:100%;font-size:var(--sw-font-size-large);background:none;outline:none}.sw-input .svg-icon{font-size:20px;color:var(--sw-text-color-third)}.sw-input>svg+label{left:4rem}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:1rem;border:1px solid var(--sw-color-default);padding:0 1.2em;min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);font-weight:500;cursor:pointer;transition:border-color .25s;background-color:var(--sw-color-default);color:var(--sw-text-color-revers)}.sw-form-item{display:flex;justify-content:space-between;font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);gap:1rem}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-dropdown{position:relative;display:inline-block}.sw-dropdown-popup{z-index:3;padding:8px;min-width:200px;margin:0;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-item{display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{transition:all .3s ease-out;overflow:hidden;box-sizing:border-box;margin:0}.sw-switch{display:inline-flex;align-items:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);left:.5rem;right:auto}.sw-switch>input:checked+label:after{background:#f7f7f7;left:2.125rem}.sw-switch>label{background-color:var(--sw-color-info);border-radius:1rem;cursor:pointer;flex:0 0 4rem;height:1.75rem;margin:.5rem;position:relative;transition:all .3s;width:4rem}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);display:block;font-size:1rem;position:absolute;right:.5rem;transition:all .3s}.sw-switch>label:after{background:var(--sw-text-color-revers);border:1px solid var(--sw-color-info);border-radius:50%;content:"";height:2rem;left:-.125rem;position:absolute;top:-.125rem;transition:all .3s;width:2rem}.sw-skeleton{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end}.sw-skeleton-item{min-height:var(--sw-component-size-base);width:100%;background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;overflow:hidden;position:relative}.sw-skeleton-item>div{height:100%;width:10px;background:var(--sw-border-color-input);display:inline-block;animation:sw-skeleton 3s linear infinite normal;position:absolute;transform:skew(-20deg);box-shadow:0 0 20px 20px var(--sw-border-color-input)}.sw-message{position:fixed;z-index:3;background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);padding:1.875rem;box-sizing:border-box;top:50%;left:50%;transform:translateY(-50%),translate(-50%);max-width:28.75rem}.sw-message>header{display:flex;justify-content:space-between}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-text{color:var(--sw-color-default);background:none}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{background:none;border:none;padding:0;color:var(--sw-text-color-secondary);min-height:1em}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}
1
+ :root{--sw-color-default: #DFDFDF;--sw-color-primary: #3EAF4E;--sw-color-success: #FFE603;--sw-color-info: #C0C0C0;--sw-color-warning: #FF7A00;--sw-color-danger: #CC2D4A;--sw-color-preholiday: #FFE78070;--sw-color-weekend: #ff808070;--sw-color-select: #007bff70;--sw-color-holiday: #ff0000;--sw-color-nowork: #ff0000;--sw-color-active: #007bff;--sw-text-color-primary: #333333;--sw-text-color-secondary: #4C4C4C;--sw-text-color-third: #818181;--sw-text-color-revers: white;--sw-bg-color: #f4f4f4;--sw-bg-color-page: white;--sw-bg-color-second: #FAFAFA;--sw-border-color: #D6D6D6;--sw-border-color-input: #CECECE;--sw-font-size: 1rem;--sw-font-size-small: .875rem;--sw-font-size-large: 1.125rem;--sw-font-size-big: 2.8rem;--sw-border-radius: .625rem;--sw-border-round: 3.625rem;--sw-component-size-base: 3rem;--sw-component-size-small: 1.625rem;--sw-component-size-large: 3.5rem;font-family:Montserrat,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{--sw-color-default: #4E4E4E;--sw-color-primary: #38A151;--sw-color-success: #FFE603;--sw-color-info: #808185;--sw-color-warning: #FF7A00;--sw-color-danger: #CC2D4A;--sw-text-color-primary: white;--sw-text-color-secondary: #FAFAFA;--sw-text-color-third: #FAFAFA;--sw-text-color-revers: white;--sw-bg-color: #182127;--sw-bg-color-page: #323741;--sw-bg-color-second: #232832;--sw-border-color: #4E4E4E;--sw-border-color-input: #5C5E63;--sw-shadow: 0 100px 80px rgba(0, 0, 0, .03), 0 41.7776px 33.4221px rgba(0, 0, 0, .0215656), 0 22.3363px 17.869px rgba(0, 0, 0, .0178832), 0 12.5216px 10.0172px rgba(0, 0, 0, .015), 0 6.6501px 5.32008px rgba(0, 0, 0, .0121168), 0 2.76726px 2.21381px rgba(0, 0, 0, .00843437)}}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{display:flex;border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);font-weight:400;margin-bottom:1.25rem;transition:all .6s ease-out}.sw-tabs>header span{position:relative;top:2px;border-radius:0;padding:5px;cursor:pointer;border:none;background:none;outline:none}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{display:flex;align-items:center;position:relative;gap:0 1.75rem;padding:0 1.2em;border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius)}.sw-input input{line-height:var(--sw-component-size-base);border:none;width:100%;font-size:var(--sw-font-size-large);background:none;outline:none}.sw-input .svg-icon{font-size:20px;color:var(--sw-text-color-third)}.sw-input>svg+label{left:4rem}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:1rem;border:1px solid var(--sw-color-default);padding:0 1.2em;min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);font-weight:500;cursor:pointer;transition:border-color .25s;background-color:var(--sw-color-default);color:var(--sw-text-color-revers)}.sw-form-item{display:flex;justify-content:space-between;font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);gap:1rem}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-dropdown{position:relative;display:inline-block}.sw-dropdown-popup{z-index:3;padding:8px;min-width:200px;margin:0;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-item{display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{transition:all .3s ease-out;overflow:hidden;box-sizing:border-box;margin:0}.sw-switch{display:inline-flex;align-items:center;box-sizing:border-box;-webkit-user-select:none;user-select:none}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);left:.5rem;right:auto}.sw-switch>input:checked+label:after{background:#f7f7f7;left:2.125rem}.sw-switch>label{background-color:var(--sw-color-info);border-radius:1rem;cursor:pointer;flex:0 0 4rem;height:1.75rem;margin:.5rem;position:relative;transition:all .3s;width:4rem}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);display:block;font-size:1rem;position:absolute;right:.5rem;transition:all .3s}.sw-switch>label:after{background:var(--sw-text-color-revers);border:1px solid var(--sw-color-info);border-radius:50%;content:"";height:2rem;left:-.125rem;position:absolute;top:-.125rem;transition:all .3s;width:2rem}.sw-skeleton{display:flex;gap:.5rem;flex-wrap:wrap;align-items:flex-end}.sw-skeleton-item{min-height:var(--sw-component-size-base);width:100%;background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;overflow:hidden;position:relative}.sw-skeleton-item>div{height:100%;width:10px;background:var(--sw-border-color-input);display:inline-block;animation:sw-skeleton 3s linear infinite normal;position:absolute;transform:skew(-20deg);box-shadow:0 0 20px 20px var(--sw-border-color-input)}.sw-message{position:fixed;z-index:3;background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);padding:1.875rem;box-sizing:border-box;top:50%;left:50%;transform:translateY(-50%),translate(-50%);max-width:28.75rem}.sw-message>header{display:flex;justify-content:space-between}.sw-data-picker{display:flex}.sw-data-picker .month_year{display:flex;justify-content:space-around;align-items:center}.sw-data-picker .month_year span:not(.text) button{font-size:1.3em}.sw-data-picker>div:not(:first-child){margin-left:2rem}.sw-data-picker button{height:30px;text-align:center;line-height:30px;cursor:pointer;background:none;border:none;border-radius:.2rem;transition:all .3s ease}.sw-data-picker button:hover:not(.disabled):not(.active){color:var(--sw-color-primary)}.sw-data-picker .week{border-bottom:1px solid var(--sw-color-info);margin-bottom:.5rem}.sw-data-picker .month,.sw-data-picker .week{width:250px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:.2rem}.sw-data-picker .month>button,.sw-data-picker .week>button{width:30px}.sw-data-picker .month>button.disabled,.sw-data-picker .week>button.disabled{color:var(--el-color-info);cursor:not-allowed}.sw-data-picker .month>button.preholiday,.sw-data-picker .week>button.preholiday{background-color:var(--sw-color-preholiday)}.sw-data-picker .month>button.weekend,.sw-data-picker .week>button.weekend{background-color:var(--sw-color-weekend)}.sw-data-picker .month>button.select,.sw-data-picker .week>button.select{background-color:var(--sw-color-select)}.sw-data-picker .month>button.holiday,.sw-data-picker .week>button.holiday{background-color:var(--sw-color-holiday)}.sw-data-picker .month>button.nowork,.sw-data-picker .week>button.nowork{background-color:var(--sw-color-nowork)}.sw-data-picker .month>button.active,.sw-data-picker .week>button.active{background-color:var(--sw-color-active)}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-text{color:var(--sw-color-default);background:none}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{background:none;border:none;padding:0;color:var(--sw-text-color-secondary);min-height:1em}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}
@@ -0,0 +1,28 @@
1
+ function l(t) {
2
+ return /^(https?:|mailto:|tel:)/.test(t);
3
+ }
4
+ function p(t, n) {
5
+ if (arguments.length === 0 || !t)
6
+ return null;
7
+ const a = n || "{Y}-{m}-{d} {G}:{i}:{s}";
8
+ let e;
9
+ typeof t == "object" ? e = t : (typeof t == "string" && (/^[0-9]+$/.test(t) ? t = parseInt(t) : t = t.replace(new RegExp(/-/gm), "/")), typeof t == "number" && t.toString().length === 10 && (t = t * 1e3), e = new Date(t));
10
+ const r = "ru-RU", o = {
11
+ Y: e.getFullYear(),
12
+ m: (e.getMonth() + 1).toString().padStart(2, "0"),
13
+ d: e.getDate(),
14
+ dd: e.getDate().toString().padStart(2, "0"),
15
+ G: e.getHours(),
16
+ H: e.getHours().toString().padStart(2, "0"),
17
+ i: e.getMinutes().toString().padStart(2, "0"),
18
+ s: e.getSeconds().toString().padStart(2, "0"),
19
+ D: new Intl.DateTimeFormat(r, { weekday: "short" }).format(e),
20
+ F: new Intl.DateTimeFormat(r, { month: "long" }).format(e),
21
+ M: new Intl.DateTimeFormat(r, { month: "short" }).format(e)
22
+ };
23
+ return a.replace(/{(dd|[YmdGHisDFM])+}/g, (g, s) => o[s]);
24
+ }
25
+ export {
26
+ l as i,
27
+ p
28
+ };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- (function(m,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(m=typeof globalThis<"u"?globalThis:m||self,e(m["component-sw"]={},m.vue))})(this,function(m,e){"use strict";const w=Object.assign({"./components/SwButton.vue":()=>Promise.resolve().then(()=>C),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>E),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>V),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>M),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>P),"./components/SwInput.vue":()=>Promise.resolve().then(()=>R),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>A),"./components/SwSection.vue":()=>Promise.resolve().then(()=>q),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>H),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>F),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Y),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>J),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Q)}),g={};for(const n in w){const t=n.split("/").pop().replace(".vue","").replace(/-(\w)/g,(l,o)=>o.toUpperCase());g[t]=e.defineAsyncComponent(()=>w[n]())}const z={install(n){Object.keys(g).forEach(t=>{n.component(t,g[t]),console.log(t)})}},k={__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}},setup(n){const t=n,l=e.computed(()=>{let o=["sw-button"];return t.size.length>0&&o.push("sw-"+t.size),t.type.length>0&&o.push("sw-"+t.type),t.round&&o.push("sw-round"),t.text&&o.push("sw-text"),t.link&&o.push("sw-link"),t.class.length>0&&o.push(t.class),o});return(o,s)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value)},[e.renderSlot(o.$slots,"default")],2))}},C=Object.freeze(Object.defineProperty({__proto__:null,default:k},Symbol.toStringTag,{value:"Module"})),E=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(n){e.onMounted(()=>{o.value="0px"});const t=e.ref("0px"),l=n,o=e.computed(()=>l.visual?`${t.value.scrollHeight}px`:"0px");return(s,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:l.visual}]),style:e.normalizeStyle({height:o.value}),ref_key:"collapse",ref:t},[e.renderSlot(s.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),V=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:{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}},setup(n){const t=n,l=e.ref(!1),o=e.ref(null),s=e.ref(null),r=e.ref({}),p=e.computed(()=>{let a=["sw-dropdown"];return t.size.length>0&&a.push("sw-"+t.size),t.type.length>0&&a.push("sw-"+t.type),a}),f=async()=>{if(await e.nextTick(),!s.value)return;const a=o.value.getBoundingClientRect(),d=window.pageYOffset||document.documentElement.scrollTop,y=window.pageXOffset||document.documentElement.scrollLeft,h=s.value.offsetHeight,$=s.value.offsetWidth;let c=a.left+a.width/2+y,i=a.bottom-a.height/2+d;const[Z,v]=t.placement.split("-",2);switch(console.log(t.placement),Z){case"bottom":i=i+a.height/2+8;break;case"top":i=i-a.height/2-8-h;break;case"left":c=c-$-a.width/2-10,i=i-h/2;break;case"right":c=c+a.width/2+8,i=i-h/2;break}switch(v){case"left":c=c-$+a.width/2;break;case"right":c=c-a.width/2;break}c<0&&(c=0),i<0&&(i=0),r.value={position:"absolute",top:`${i}px`,left:`${c}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}},u=async()=>{l.value=!l.value,l.value&&await f()},_=()=>{l.value&&f()},S=a=>{o.value&&!o.value.contains(a.target)&&(l.value=!1)};return e.onMounted(()=>{document.addEventListener("click",S),window.addEventListener("resize",_)}),e.onUnmounted(()=>{document.removeEventListener("click",S),window.removeEventListener("resize",_)}),(a,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(p.value),onClick:d[0]||(d[0]=y=>u()),ref_key:"dropdownRef",ref:o},[e.renderSlot(a.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[l.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:s,class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(r.value)},[e.renderSlot(a.$slots,"dropdown")],6)):e.createCommentVNode("",!0)]))],2))}}},Symbol.toStringTag,{value:"Module"})),M=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(n){const t=n,l=e.computed(()=>{let o=["sw-dropdown-item"];return t.size.length>0&&o.push("sw-"+t.size),t.type.length>0&&o.push("sw-"+t.type),t.class.length>0&&o.push(t.class),o});return(o,s)=>{const r=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(l.value)},[e.createVNode(r,{"icon-class":n.iconBefore},null,8,["icon-class"]),e.renderSlot(o.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),P=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(n){const t=n,l=e.computed(()=>{let o=["sw-form-item"];return t.type.length>0&&o.push("sw-"+t.type),t.class.length>0&&o.push(t.class),o});return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"}));function T(n){return/^(https?:|mailto:|tel:)/.test(n)}const O=(n,t)=>{const l=n.__vccOpts||n;for(const[o,s]of t)l[o]=s;return l},j={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return T(this.iconClass)}}},x=["href"];function N(n,t,l,o,s,r){return r.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+l.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},n.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+l.className,"aria-hidden":"true"},n.$attrs),[e.createElementVNode("use",{href:"#"+l.prefix+"-"+l.iconClass},null,8,x)],16))}const b=O(j,[["render",N]]),I=["for"],D=["placeholder","type","id","name"],R=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"}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix"],["update:modelValue"]),setup(n,{emit:t}){var S;const l=e.useModel(n,"modelValue"),o=n,s=e.ref(null),r=t,p=()=>{s.value!==null&&(s.value.style.top="-.6em")},f=()=>{var a;((a=l.value)==null?void 0:a.length)==0&&s.value!==null&&s.value.removeAttribute("style")};((S=l.value)==null?void 0:S.length)>0&&s.value!==null&&(s.value.style.top="-.6em");const u=()=>{r("suffix")},_=e.computed(()=>{let a=["sw-input"];return o.size.length>0&&a.push("sw-"+o.size),o.class.length>0&&a.push(o.class),a});return(a,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(_.value)},[o.before.length>0?(e.openBlock(),e.createBlock(b,{key:0,"icon-class":o.before},null,8,["icon-class"])):e.renderSlot(a.$slots,"prefix",{key:1}),o.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:o.name,ref_key:"lab",ref:s},[e.createTextVNode(e.toDisplayString(o.label),1),d[1]||(d[1]=e.createElementVNode("span",{title:"Это поле обязательно для заполнения."},"*",-1))],8,I)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=y=>l.value=y),required:"required",placeholder:o.placeholder,type:o.type,id:o.name,name:o.name,size:"60",onFocus:p,onBlur:f,maxlength:"128"},null,40,D),[[e.vModelDynamic,l.value]]),o.after.length>0?(e.openBlock(),e.createBlock(b,{key:3,"icon-class":o.after,onClick:u},null,8,["icon-class"])):e.renderSlot(a.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),L={key:0},A=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(n){const t=e.useModel(n,"modelValue"),l=n,o=e.ref(null);return(s,r)=>{const p=e.resolveComponent("svg-icon");return t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",l.class]),ref_key:"messageRef",ref:o},[l.name.length>0?(e.openBlock(),e.createElementBlock("header",L,[e.renderSlot(s.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(l.name)+" ",1),e.createVNode(k,{link:"",type:"primary",onClick:r[0]||(r[0]=f=>t.value=!1)},{default:e.withCtx(()=>[e.createVNode(p,{"icon-class":l.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",{},()=>[r[1]||(r[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(s.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),q=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},setup(n){const t=n;return(l,o)=>{const s=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(t.class)},[e.createElementVNode("header",null,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(s,{"icon-class":t.iconAfter},null,8,["icon-class"])])]),e.renderSlot(l.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(l.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),W={key:0},B={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(n){const t=n,l=e.computed(()=>{let s=["sw-skeleton-item"];return t.size.length>0&&s.push("sw-"+t.size),t.animate&&s.push("sw-animate"),t.class.length>0&&s.push(t.class),s}),o=e.computed(()=>({width:t.width+"%"}));return(s,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value),style:e.normalizeStyle(o.value)},[t.animate?(e.openBlock(),e.createElementBlock("div",W)):e.createCommentVNode("",!0)],6))}},F=Object.freeze(Object.defineProperty({__proto__:null,default:B},Symbol.toStringTag,{value:"Module"})),H=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(n){const t=n;return(l,o)=>t.visual?e.renderSlot(l.$slots,"default",{key:0},()=>[o[0]||(o[0]=e.createTextVNode("1"))]):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",t.class])},[e.renderSlot(l.$slots,"skeleton",{},()=>[e.createVNode(B,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),U=["name","id"],X=["for","data-onlabel","data-offlabel"],Y=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:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=e.useModel(n,"modelValue"),l=n;return(o,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-switch",l.class])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:l.name,class:"sw-control",id:l.id,"onUpdate:modelValue":s[0]||(s[0]=r=>t.value=r)},null,8,U),[[e.vModelCheckbox,t.value]]),e.createElementVNode("label",{for:l.id,class:"sw-label","data-onlabel":l.on,"data-offlabel":l.off},null,8,X),e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),G=["onClick"],J=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({name:{type:String},class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(n,{emit:t}){e.ref(0);const l=e.ref([]),o=n,s=e.useModel(n,"modelValue");return l.value=e.useSlots().default().filter(r=>r.type.__name==="SwTabsPane"),e.provide("activeTab",s),e.provide("tabs",l),(r,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+o.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(f,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,class:e.normalizeClass([{active:s.value===u}]),onClick:_=>s.value=u},e.toDisplayString(f.props.label||f.props.title),11,G))),128))]),e.renderSlot(r.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),K={key:0,class:"tab-content"},Q=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(n){const t=n,l=e.inject("activeTab"),o=e.inject("tabs"),s=e.computed(()=>{const r=o.value.findIndex(p=>p.props.title===t.title);return l.value===r});return(r,p)=>s.value?(e.openBlock(),e.createElementBlock("div",K,[e.renderSlot(r.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));m.components=g,m.default=z,Object.defineProperties(m,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(V,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(V=typeof globalThis<"u"?globalThis:V||self,e(V["component-sw"]={},V.vue))})(this,function(V,e){"use strict";const P=Object.assign({"./components/SwButton.vue":()=>Promise.resolve().then(()=>U),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>G),"./components/SwDataPicker.vue":()=>Promise.resolve().then(()=>ie),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>ce),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>de),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>pe),"./components/SwInput.vue":()=>Promise.resolve().then(()=>ye),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>we),"./components/SwSection.vue":()=>Promise.resolve().then(()=>be),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>De),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Ve),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Ne),"./components/SwTabsNew.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>ve),"./components/SwTabsPaneNew.vue":()=>Promise.resolve().then(()=>je)}),C={};for(const a in P){const n=a.split("/").pop().replace(".vue","").replace(/-(\w)/g,(o,t)=>t.toUpperCase());C[n]=e.defineAsyncComponent(()=>P[a]())}const W={install(a){Object.keys(C).forEach(n=>{a.component(n,C[n]),console.log(n)})}},j={__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}},setup(a){const n=a,o=e.computed(()=>{let t=["sw-button"];return n.size.length>0&&t.push("sw-"+n.size),n.type.length>0&&t.push("sw-"+n.type),n.round&&t.push("sw-round"),n.text&&t.push("sw-text"),n.link&&t.push("sw-link"),n.class.length>0&&t.push(n.class),t});return(t,l)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(o.value)},[e.renderSlot(t.$slots,"default")],2))}},U=Object.freeze(Object.defineProperty({__proto__:null,default:j},Symbol.toStringTag,{value:"Module"})),G=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(a){e.onMounted(()=>{t.value="0px"});const n=e.ref("0px"),o=a,t=e.computed(()=>o.visual?`${n.value.scrollHeight}px`:"0px");return(l,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:o.visual}]),style:e.normalizeStyle({height:t.value}),ref_key:"collapse",ref:n},[e.renderSlot(l.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"}));function X(a){return/^(https?:|mailto:|tel:)/.test(a)}function M(a,n){if(arguments.length===0||!a)return null;const o=n||"{Y}-{m}-{d} {G}:{i}:{s}";let t;typeof a=="object"?t=a:(typeof a=="string"&&(/^[0-9]+$/.test(a)?a=parseInt(a):a=a.replace(new RegExp(/-/gm),"/")),typeof a=="number"&&a.toString().length===10&&(a=a*1e3),t=new Date(a));const l="ru-RU",f={Y:t.getFullYear(),m:(t.getMonth()+1).toString().padStart(2,"0"),d:t.getDate(),dd:t.getDate().toString().padStart(2,"0"),G:t.getHours(),H:t.getHours().toString().padStart(2,"0"),i:t.getMinutes().toString().padStart(2,"0"),s:t.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(l,{weekday:"short"}).format(t),F:new Intl.DateTimeFormat(l,{month:"long"}).format(t),M:new Intl.DateTimeFormat(l,{month:"short"}).format(t)};return o.replace(/{(dd|[YmdGHisDFM])+}/g,(c,E)=>f[E])}const J={class:"sw-data-picker"},K={class:"month_year"},Q={class:"text"},Z={class:"week"},ee={class:"month"},te=["onClick"],le={key:0},ne={class:"month_year"},oe={class:"text"},ae={class:"week"},se={class:"month"},re=["onClick"],ie=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDataPicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:()=>"solid"}},emits:["init"],setup(a,{emit:n}){var Y,L,R,A;const o=e.ref(new Date),t=e.ref(new Date),l=a,f=n,c=e.ref(new Date().getFullYear()),E=e.ref(new Date().getMonth()),D=e.ref(new Date().getFullYear()),d=e.ref(new Date().getMonth()),i=e.ref([]),m=e.ref(0),y=e.ref(0),g=e.ref(-1),b=e.ref(-1),z=e.ref(navigator.languages||"ru"),S=/en|zh|ja|he/.test(z.value)?0:1,k=l.range==="range"?2:1,T=p=>{const r=p.split(p.match(/\D.*?\D?/));return r[0].length>2?r.join("-")+"T00:00:01":r.reverse().join("-")+"T00:00:01"};typeof((Y=l.data)==null?void 0:Y.startDate)<"u"&&(o.value=new Date(T(l.data.startDate)),c.value=o.value.getFullYear(),d.value=o.value.getMonth()),typeof((L=l.data)==null?void 0:L.endDate)<"u"&&(t.value=new Date(T(l.data.endDate)),D.value=t.value.getFullYear(),E.value=t.value.getMonth());const v=()=>{var s,u,$,H,q;let p=new Date(c.value,d.value,0);for(let h=p.getDate()-p.getDay()+S;h<=p.getDate()&&p.getDay()!==6+S;h++)m.value++,i.value.push({day:h,month:p.getMonth(),year:p.getFullYear(),class:[]});for(let h=1;h<=new Date(c.value,d.value+1,0).getDate();h++)m.value++,i.value.push({day:h,month:d.value,year:c.value,class:[]});if(l.range==="range"){y.value=new Date(c.value,d.value+2,0);for(let h=1;h<=y.value.getDate();h++)i.value.push({day:h,month:y.value.getMonth(),year:y.value.getFullYear(),class:[]})}let r=new Date(c.value,d.value+k,1);console.log(r.getDay());for(let h=1;h<=(7-r.getDay()+S)%7&&r.getDay()!==S;h++)i.value.push({day:h,month:r.getMonth(),year:r.getFullYear(),class:[]});((s=l.data)==null?void 0:s.holiday.length)!==0&&((u=l.data)==null||u.holiday.preholidays.forEach(h=>{let _=h.split("-");const B=i.value.findIndex(w=>w.year==_[0]&&w.month+1==_[1]&&w.day==_[2]);B!==-1&&(i.value[B].class[0]="preholiday")}),($=l.data)==null||$.holiday.holidays.forEach(h=>{let _=h.split("-");const B=i.value.findIndex(w=>w.year==_[0]&&w.month+1==_[1]&&w.day==_[2]);B!==-1&&(i.value[B].class[0]="weekend")}),(H=l.data)==null||H.holiday.holiday.forEach(h=>{let _=h.split("-");const B=i.value.findIndex(w=>w.year==_[0]&&w.month+1==_[1]&&w.day==_[2]);B!==-1&&(i.value[B].class[0]="holiday")}),(q=l.data)==null||q.holiday.nowork.forEach(h=>{let _=h.split("-");const B=i.value.findIndex(w=>w.year==_[0]&&w.month+1==_[1]&&w.day==_[2]);B!==-1&&(i.value[B].class[0]="nowork")}))},I=(p,r)=>{let s=p-r+1;for(let u=0;u<=p-r;u++)i.value[u+r].class[0]==="holiday"&&s--;return s},F=(p,r)=>{const s=M(new Date(p.year,p.month,p.day),"{dd}.{m}.{Y}");if(l.range==="range")if(console.log(g.value),b.value!==-1){if(b.value<=g.value)for(let u=b.value;u<=g.value;u++)i.value[u].class[1]="";else for(let u=g.value;u<=b.value;u++)i.value[u].class[1]="";g.value=r,b.value=-1,i.value[r].class[1]="active"}else if(g.value!==-1){if(b.value=r,b.value>=g.value)for(let $=g.value+1;$<r;$++)i.value[$].class[1]="select";else for(let $=r+1;$<g.value;$++)i.value[$].class[1]="select";i.value[r].class[1]="active";let u=M(new Date(i.value[g.value].year,i.value[g.value].month,i.value[g.value].day),"{dd}.{m}.{Y}");g.value>r?f("input",{dateStart:s,dateEnd:u,count:I(g.value,r)}):f("input",{dateStart:u,dateEnd:s,count:I(r,g.value)})}else g.value=r,i.value[r].class[1]="active";else i.value[g.value].class[1]="",g.value=r,i.value[r].class[1]="active",f("input",{dateStart:s,count:1})};if(v(),typeof((R=l.data)==null?void 0:R.startDate)<"u"&&(g.value=i.value.findIndex(p=>p.day===o.value.getDate()&&p.month===d.value&&p.year===c.value),i.value[g.value].class[1]="active"),typeof((A=l.data)==null?void 0:A.endDate)<"u"&&l.range==="range"){b.value=i.value.findIndex(p=>p.day===t.value.getDate()&&p.month===E.value&&p.year===D.value),i.value[b.value].class[1]="active";for(let p=g.value+1;p<b.value;p++)i.value[p].class[1]="select"}const N=(p,r)=>{xe(p,r)&&(i.value=[],m.value=0,o.value=new Date(p,r,1),c.value=o.value.getFullYear(),d.value=o.value.getMonth(),v())},xe=(p,r)=>{if(!l.limitation)return!0;if(l.limitation[0].dateStart){console.log(l.limitation[0].dateStart);let s=l.limitation[0].dateStart.split(l.limitation[0].dateStart.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])>p||parseInt(s[2])===p&&parseInt(s[1])>r+1)return!1}if(l.limitation[l.limitation.length-1].dateEnd){console.log(l.limitation[l.limitation.length-1].dateEnd);let s=l.limitation[l.limitation.length-1].dateEnd.split(l.limitation[l.limitation.length-1].dateEnd.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])<p||parseInt(s[2])===p&&parseInt(s[1])<r+k)return!1}return!0};return(p,r)=>(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("div",null,[e.createElementVNode("p",K,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[0]||(r[0]=s=>N(c.value-1,d.value))},"«"),e.createElementVNode("button",{onClick:r[1]||(r[1]=s=>N(c.value,d.value-1))},"‹")]),e.createElementVNode("span",Q,[e.createElementVNode("button",null,e.toDisplayString(c.value),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(M)(o.value.setMonth(d.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[2]||(r[2]=s=>N(c.value,d.value+1))},"›"),e.createElementVNode("button",{onClick:r[3]||(r[3]=s=>N(c.value+1,d.value))},"»")])]),e.createElementVNode("div",Z,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(M)(new Date(1970,1,s+e.unref(S)),"{D}")),1)),64))]),e.createElementVNode("div",ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u<m.value+(7-new Date(c.value,d.value+1,1).getDay()+e.unref(S))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===d.value&&(!l.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date(T(l.limitation[0].dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date(T(l.limitation[0].dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===d.value&&F(s,u)}},e.toDisplayString(s.day),11,te)):e.createCommentVNode("",!0)],64))),128))])]),l.range==="range"?(e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("p",ne,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[4]||(r[4]=s=>N(c.value-1,d.value))},"«"),e.createElementVNode("button",{onClick:r[5]||(r[5]=s=>N(c.value,d.value-1))},"‹")]),e.createElementVNode("span",oe,[e.createElementVNode("button",null,e.toDisplayString(new Date(c.value,d.value+1).getFullYear()),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(M)(o.value.setMonth(d.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[6]||(r[6]=s=>N(c.value,d.value+1))},"›"),e.createElementVNode("button",{onClick:r[7]||(r[7]=s=>N(c.value+1,d.value))},"»")])]),e.createElementVNode("div",ae,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(M)(new Date(1970,1,s+e.unref(S)),"{D}")),1)),64))]),e.createElementVNode("div",se,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>=m.value-(7+new Date(c.value,d.value+1,1).getDay()-e.unref(S))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===y.value.getMonth()&&(!l.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date(T(l.limitation[0].dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date(T(l.limitation[0].dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===y.value.getMonth()&&F(s,u)}},e.toDisplayString(s.day),11,re)):e.createCommentVNode("",!0)],64))),128))])])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:{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}},setup(a){const n=a,o=e.ref(!1),t=e.ref(null),l=e.ref(null),f=e.ref({}),c=e.computed(()=>{let m=["sw-dropdown"];return n.size.length>0&&m.push("sw-"+n.size),n.type.length>0&&m.push("sw-"+n.type),m}),E=async()=>{if(await e.nextTick(),!l.value)return;const m=t.value.getBoundingClientRect(),y=window.pageYOffset||document.documentElement.scrollTop,g=window.pageXOffset||document.documentElement.scrollLeft,b=l.value.offsetHeight,z=l.value.offsetWidth;let S=m.left+m.width/2+g,k=m.bottom-m.height/2+y;const[T,v]=n.placement.split("-",2);switch(console.log(n.placement),T){case"bottom":k=k+m.height/2+8;break;case"top":k=k-m.height/2-8-b;break;case"left":S=S-z-m.width/2-10,k=k-b/2;break;case"right":S=S+m.width/2+8,k=k-b/2;break}switch(v){case"left":S=S-z+m.width/2;break;case"right":S=S-m.width/2;break}S<0&&(S=0),k<0&&(k=0),f.value={position:"absolute",top:`${k}px`,left:`${S}px`,maxWidth:n.maxWidth===0?"":`${n.maxWidth}px`}},D=async()=>{o.value=!o.value,o.value&&await E()},d=()=>{o.value&&E()},i=m=>{t.value&&!t.value.contains(m.target)&&(o.value=!1)};return e.onMounted(()=>{document.addEventListener("click",i),window.addEventListener("resize",d)}),e.onUnmounted(()=>{document.removeEventListener("click",i),window.removeEventListener("resize",d)}),(m,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value),onClick:y[0]||(y[0]=g=>D()),ref_key:"dropdownRef",ref:t},[e.renderSlot(m.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:l,class:e.normalizeClass(["sw-dropdown-popup",n.class]),style:e.normalizeStyle(f.value)},[e.renderSlot(m.$slots,"dropdown")],6)):e.createCommentVNode("",!0)]))],2))}}},Symbol.toStringTag,{value:"Module"})),de=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(a){const n=a,o=e.computed(()=>{let t=["sw-dropdown-item"];return n.size.length>0&&t.push("sw-"+n.size),n.type.length>0&&t.push("sw-"+n.type),n.class.length>0&&t.push(n.class),t});return(t,l)=>{const f=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(o.value)},[e.createVNode(f,{"icon-class":a.iconBefore},null,8,["icon-class"]),e.renderSlot(t.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),pe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(a){const n=a,o=e.computed(()=>{let t=["sw-form-item"];return n.type.length>0&&t.push("sw-"+n.type),n.class.length>0&&t.push(n.class),t});return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.renderSlot(t.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),me=(a,n)=>{const o=a.__vccOpts||a;for(const[t,l]of n)o[t]=l;return o},fe={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return X(this.iconClass)}}},ue=["href"];function ge(a,n,o,t,l,f){return f.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+o.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},a.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+o.className,"aria-hidden":"true"},a.$attrs),[e.createElementVNode("use",{href:"#"+o.prefix+"-"+o.iconClass},null,8,ue)],16))}const x=me(fe,[["render",ge]]),he=["for"],Se=["placeholder","type","id","name"],ye=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"}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix"],["update:modelValue"]),setup(a,{emit:n}){var i;const o=e.useModel(a,"modelValue"),t=a,l=e.ref(null),f=n,c=()=>{l.value!==null&&(l.value.style.top="-.6em")},E=()=>{var m;((m=o.value)==null?void 0:m.length)==0&&l.value!==null&&l.value.removeAttribute("style")};((i=o.value)==null?void 0:i.length)>0&&l.value!==null&&(l.value.style.top="-.6em");const D=()=>{f("suffix")},d=e.computed(()=>{let m=["sw-input"];return t.size.length>0&&m.push("sw-"+t.size),t.class.length>0&&m.push(t.class),m});return(m,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[t.before.length>0?(e.openBlock(),e.createBlock(x,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(m.$slots,"prefix",{key:1}),t.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:t.name,ref_key:"lab",ref:l},[e.createTextVNode(e.toDisplayString(t.label),1),y[1]||(y[1]=e.createElementVNode("span",{title:"Это поле обязательно для заполнения."},"*",-1))],8,he)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=g=>o.value=g),required:"required",placeholder:t.placeholder,type:t.type,id:t.name,name:t.name,size:"60",onFocus:c,onBlur:E,maxlength:"128"},null,40,Se),[[e.vModelDynamic,o.value]]),t.after.length>0?(e.openBlock(),e.createBlock(x,{key:3,"icon-class":t.after,onClick:D},null,8,["icon-class"])):e.renderSlot(m.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),_e={key:0},we=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(a){const n=e.useModel(a,"modelValue"),o=a,t=e.ref(null);return(l,f)=>{const c=e.resolveComponent("svg-icon");return n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",o.class]),ref_key:"messageRef",ref:t},[o.name.length>0?(e.openBlock(),e.createElementBlock("header",_e,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(o.name)+" ",1),e.createVNode(j,{link:"",type:"primary",onClick:f[0]||(f[0]=E=>n.value=!1)},{default:e.withCtx(()=>[e.createVNode(c,{"icon-class":o.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default",{},()=>[f[1]||(f[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(l.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),be=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},setup(a){const n=a;return(o,t)=>{const l=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(n.class)},[e.createElementVNode("header",null,[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(n.name)+" ",1),e.createVNode(l,{"icon-class":n.iconAfter},null,8,["icon-class"])])]),e.renderSlot(o.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(o.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),ke={key:0},O={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(a){const n=a,o=e.computed(()=>{let l=["sw-skeleton-item"];return n.size.length>0&&l.push("sw-"+n.size),n.animate&&l.push("sw-animate"),n.class.length>0&&l.push(n.class),l}),t=e.computed(()=>({width:n.width+"%"}));return(l,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),style:e.normalizeStyle(t.value)},[n.animate?(e.openBlock(),e.createElementBlock("div",ke)):e.createCommentVNode("",!0)],6))}},Ee=Object.freeze(Object.defineProperty({__proto__:null,default:O},Symbol.toStringTag,{value:"Module"})),De=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(a){const n=a;return(o,t)=>n.visual?e.renderSlot(o.$slots,"default",{key:0},()=>[t[0]||(t[0]=e.createTextVNode("1"))]):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",n.class])},[e.renderSlot(o.$slots,"skeleton",{},()=>[e.createVNode(O,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),Be=["name","id"],$e=["for","data-onlabel","data-offlabel"],Ve=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:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(a){const n=e.useModel(a,"modelValue"),o=a;return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-switch",o.class])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:o.name,class:"sw-control",id:o.id,"onUpdate:modelValue":l[0]||(l[0]=f=>n.value=f)},null,8,Be),[[e.vModelCheckbox,n.value]]),e.createElementVNode("label",{for:o.id,class:"sw-label","data-onlabel":o.on,"data-offlabel":o.off},null,8,$e),e.renderSlot(t.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Te=["onClick"],Ne=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({name:{type:String},class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(a,{emit:n}){e.ref(0);const o=e.ref([]),t=a,l=e.useModel(a,"modelValue"),f=n;return o.value=e.useSlots().default().filter(c=>c.type.__name==="SwTabsPane"),e.provide("activeTab",l),e.provide("tabs",o),(c,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+t.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(D,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:e.normalizeClass([{active:l.value===d}]),onClick:i=>{l.value=d,f("tab-click",d)}},e.toDisplayString(D.props.label||D.props.title),11,Te))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Me=["onClick"],Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsNew",props:e.mergeModels({name:{type:String},class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(a,{emit:n}){e.ref(0);const o=e.ref([]),t=a,l=e.useModel(a,"modelValue"),f=n;return e.provide("activeTab",l),e.provide("tabs",o),e.provide("registerTab",c=>{o.value.push(c)}),(c,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+t.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(D,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:e.normalizeClass([{active:l.value===d}]),onClick:i=>{l.value=d,f("tab-click",d)}},e.toDisplayString(D.props.label||D.props.title),11,Me))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),ze={key:0,class:"tab-content"},ve=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(a){const n=a,o=e.inject("activeTab"),t=e.inject("tabs"),l=e.computed(()=>{const f=t.value.findIndex(c=>c.props.title===n.title);return o.value===f});return(f,c)=>l.value?(e.openBlock(),e.createElementBlock("div",ze,[e.renderSlot(f.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"})),Pe={key:0,class:"tab-content"},je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPaneNew",props:{label:{type:String,required:!0},title:{type:String}},setup(a){const n=a,o=e.inject("registerTab");if(!o)throw new Error("SwTabsPane must be used inside SwTabs");o({props:n});const t=e.inject("activeTab");if(!e.inject("tabs"))throw new Error("Tabs array is not provided by SwTabs");const f=e.inject("tabs").value.length-1;return(c,E)=>e.unref(t)===f?(e.openBlock(),e.createElementBlock("div",Pe,[e.renderSlot(c.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));V.components=C,V.default=W,Object.defineProperties(V,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineAsyncComponent as m } from "vue";
2
- const n = /* @__PURE__ */ Object.assign({ "./components/SwButton.vue": () => import("./SwButton-CQh1Mtze.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CjL9dpO-.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-CngCMKee.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CgahR93o.js"), "./components/SwInput.vue": () => import("./SwInput-DpflrHQm.js"), "./components/SwMessage.vue": () => import("./SwMessage-BGIOC-zp.js"), "./components/SwSection.vue": () => import("./SwSection-CaY8OFmf.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-DWILNFfF.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-375THfdW.js"), "./components/SwTabs.vue": () => import("./SwTabs-BBUJ5wnR.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-BUUmFjh7.js") }), t = {};
2
+ const n = /* @__PURE__ */ Object.assign({ "./components/SwButton.vue": () => import("./SwButton-CQh1Mtze.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CjL9dpO-.js"), "./components/SwDataPicker.vue": () => import("./SwDataPicker-Dj2SHmez.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-CngCMKee.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CgahR93o.js"), "./components/SwInput.vue": () => import("./SwInput-BjacwiyF.js"), "./components/SwMessage.vue": () => import("./SwMessage-BGIOC-zp.js"), "./components/SwSection.vue": () => import("./SwSection-CaY8OFmf.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-DWILNFfF.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-375THfdW.js"), "./components/SwTabs.vue": () => import("./SwTabs-DgvDpw7u.js"), "./components/SwTabsNew.vue": () => import("./SwTabsNew-Dr5Vyz6M.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-BUUmFjh7.js"), "./components/SwTabsPaneNew.vue": () => import("./SwTabsPaneNew-DFPu-sRT.js") }), t = {};
3
3
  for (const e in n) {
4
4
  const o = e.split("/").pop().replace(".vue", "").replace(/-(\w)/g, (s, p) => p.toUpperCase());
5
5
  t[o] = m(() => n[e]());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Vue components of Component SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,31 +0,0 @@
1
- import { mergeModels as c, ref as i, useModel as p, useSlots as f, provide as u, createElementBlock as s, openBlock as o, normalizeClass as m, createElementVNode as v, renderSlot as _, Fragment as b, renderList as S, toDisplayString as k } from "vue";
2
- const g = ["onClick"], C = {
3
- __name: "SwTabs",
4
- props: /* @__PURE__ */ c({
5
- name: { type: String },
6
- class: { type: String, default: "" }
7
- }, {
8
- modelValue: {},
9
- modelModifiers: {}
10
- }),
11
- emits: /* @__PURE__ */ c(["tab-click"], ["update:modelValue"]),
12
- setup(r, { emit: y }) {
13
- i(0);
14
- const e = i([]), d = r, t = p(r, "modelValue");
15
- return e.value = f().default().filter((l) => l.type.__name === "SwTabsPane"), u("activeTab", t), u("tabs", e), (l, V) => (o(), s("div", {
16
- class: m("sw-tabs " + d.class)
17
- }, [
18
- v("header", null, [
19
- (o(!0), s(b, null, S(e.value, (n, a) => (o(), s("span", {
20
- key: a,
21
- class: m([{ active: t.value === a }]),
22
- onClick: (h) => t.value = a
23
- }, k(n.props.label || n.props.title), 11, g))), 128))
24
- ]),
25
- _(l.$slots, "default")
26
- ], 2));
27
- }
28
- };
29
- export {
30
- C as default
31
- };