@studio-west/component-sw 0.1.42 → 0.1.44

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
@@ -1,6 +1,124 @@
1
- # Component SW
1
+ Находится в разработке !
2
+ # Component SW - UI компоненты с поддержкой светлой и темной системной темы
2
3
 
4
+ Библиотека компонентов `Component SW` предоставляет набор готовых UI-компонентов для быстрой разработки интерфейсов. Каждый компонент имеет набор свойств, которые можно настраивать для достижения желаемого поведения и внешнего вида. Имеет поддержку светлой и темной системной темы.
3
5
 
4
- This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
6
+ ---
5
7
 
6
- Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://vuejs.org/guide/scaling-up/tooling.html#ide-support).
8
+ # Component SW - UI Components with Light and Dark Theme Support
9
+
10
+ The `Component SW` library provides a set of ready-to-use UI components for rapid interface development. Each component has a set of properties that can be customized to achieve the desired behavior and appearance. It supports both light and dark system themes.
11
+
12
+ ---
13
+
14
+ ## Содержание / Table of Contents
15
+
16
+ - [Install](#установка--install)
17
+ - [SwButton](#swbutton)
18
+ - [SwInput](#swinput)
19
+
20
+ ---
21
+
22
+ ### Установка / Install
23
+ ```bash
24
+ npm install @studio-west/component-sw
25
+ ```
26
+
27
+ ### Глобальное подключение / global add to main.js:
28
+ ```js
29
+ import Library from '@studio-west/component-sw';
30
+ import '@studio-west/component-sw/dist/component-sw.css';
31
+
32
+ app.use(Library)
33
+ ```
34
+ ## SwButton
35
+
36
+ Компонент `SwButton` представляет собой кнопку с различными настраиваемыми параметрами.
37
+
38
+ ### Свойства / Properties
39
+
40
+ | Имя | Тип | Значения/Описание |
41
+ |---------|-----------|--------------------------------------------------------------------------------|
42
+ | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
43
+ | `size` | `String` | Размер кнопки: `'large'`, `'small'`. |
44
+ | `type` | `String` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
45
+ | `round` | `Boolean` | Делает кнопку визуально закругленной. |
46
+ | `text` | `Boolean` | Делает кнопку визуально похожей на текст (без фона). |
47
+ | `link` | `Boolean` | Преобразует кнопку в ссылку. |
48
+ | `href` | `String` | URL, на который будет перенаправлен пользователь при клике (если `link=true`). |
49
+
50
+ ### Пример использования / Example Usage
51
+
52
+ ```html
53
+ <sw-button
54
+ class="custom-class"
55
+ size="large"
56
+ type="primary"
57
+ round
58
+ text
59
+ link
60
+ href="https://example.com"
61
+ >
62
+ Нажми меня / Click Me
63
+ </sw-button>
64
+ ```
65
+
66
+ ---
67
+
68
+ ## SwInput
69
+
70
+ Компонент SwInput представляет собой поле ввода с возможностью настройки внешнего вида и поведения.
71
+
72
+ ### Свойства / Properties
73
+
74
+ | Имя | Тип | Значения/Описание |
75
+ |---------------|-----------|-------------------------------------------------------------|
76
+ | `name` | `String` | Обязателен! нужен для связывания через id input и label. |
77
+ | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
78
+ | `size` | `String` | Размер поля: `'large'`, `'small'`. |
79
+ | `type` | `String` | Тип поля: `'text'`- по умолчанию, `'phone'`- телефон. |
80
+ | `before` | `String` | Название svg в спрайте загружаемое в начале. |
81
+ | `after` | `String` | Название svg в спрайте загружаемое в конце. |
82
+ | `placeholder` | `String` | Текст Placeholder. |
83
+ | `required` | `Boolean` | Признак обязательно ли для заполнения false - по умолчанию. |
84
+ | `label` | `String` | Текст в Label. |
85
+
86
+
87
+ ### Слоты / Slots
88
+
89
+ #prefix - вставка при отсутствии before не обязательно / Insertion when before is not used (optional).
90
+
91
+ #suffix - вставка при отсутствии after не обязательно / Insertion when after is not used (optional).
92
+
93
+ ### События / Events
94
+
95
+ prefix - клик иконке before
96
+
97
+ suffix - клик иконке after
98
+
99
+ ### Пример использования
100
+
101
+ ```html
102
+ <sw-input
103
+ name="input"
104
+ class="custom-class"
105
+ size="large"
106
+ type="phone"
107
+ before="phone"
108
+ after=""
109
+ placeholder="input"
110
+ label="input"
111
+ @prefix="console.log('before')"
112
+ >
113
+ <template #suffix>#</template>
114
+ </sw-input>
115
+ ```
116
+ ---
117
+
118
+ ### Лицензия / License
119
+
120
+ Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE .
121
+ This project is distributed under the MIT License. For details, see the LICENSE file.
122
+ ---
123
+ Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru.
124
+ If you have any questions or suggestions, please create an issue to E-mail info@studiowest.ru.
@@ -0,0 +1,150 @@
1
+ import { createElementBlock as i, openBlock as o, mergeProps as _, createElementVNode as b, mergeModels as h, useModel as D, ref as I, computed as N, watch as M, normalizeClass as A, createBlock as v, renderSlot as x, createCommentVNode as k, withDirectives as P, createTextVNode as K, toDisplayString as O, vModelDynamic as F } from "vue";
2
+ import { i as R } from "./index-gmNtBsqX.js";
3
+ const T = (a, c) => {
4
+ const t = a.__vccOpts || a;
5
+ for (const [e, s] of c)
6
+ t[e] = s;
7
+ return t;
8
+ }, U = {
9
+ name: "SvgIcon",
10
+ props: {
11
+ prefix: {
12
+ type: String,
13
+ default: "icon"
14
+ },
15
+ iconClass: {
16
+ type: String,
17
+ required: !0
18
+ },
19
+ className: {
20
+ type: String,
21
+ default: ""
22
+ }
23
+ },
24
+ computed: {
25
+ isExt() {
26
+ return R(this.iconClass);
27
+ }
28
+ }
29
+ }, j = ["href"];
30
+ function G(a, c, t, e, s, u) {
31
+ return u.isExt ? (o(), i("div", _({
32
+ key: 0,
33
+ style: "mask: url(" + t.iconClass + ") no-repeat 50% 50%;",
34
+ class: "svg-external-icon svg-icon"
35
+ }, a.$attrs), null, 16)) : (o(), i("svg", _({
36
+ key: 1,
37
+ class: "svg-icon " + t.className,
38
+ "aria-hidden": "true"
39
+ }, a.$attrs), [
40
+ b("use", {
41
+ href: "#" + t.prefix + "-" + t.iconClass
42
+ }, null, 8, j)
43
+ ], 16));
44
+ }
45
+ const S = /* @__PURE__ */ T(U, [["render", G]]), H = ["for"], J = {
46
+ key: 0,
47
+ title: "Это поле обязательно для заполнения."
48
+ }, L = ["required", "placeholder", "type", "id", "name"], X = {
49
+ __name: "SwInput",
50
+ props: /* @__PURE__ */ h({
51
+ before: { type: String, default: "" },
52
+ after: { type: String, default: "" },
53
+ placeholder: { type: String, default: "" },
54
+ label: { type: String, default: "" },
55
+ name: { type: String, required: !0 },
56
+ class: { type: String, default: "" },
57
+ size: { type: String, default: "" },
58
+ type: { type: String, default: "text" },
59
+ required: { type: Boolean, default: !1 }
60
+ }, {
61
+ modelValue: {},
62
+ modelModifiers: {}
63
+ }),
64
+ emits: /* @__PURE__ */ h(["suffix", "prefix"], ["update:modelValue"]),
65
+ setup(a, { emit: c }) {
66
+ var y;
67
+ const t = D(a, "modelValue"), e = a, s = I(null), u = c, w = () => {
68
+ s.value !== null && (s.value.style.top = "-.6em"), e.type === "phone" && r();
69
+ }, $ = () => {
70
+ e.type === "phone" && r();
71
+ }, C = () => {
72
+ e.type === "phone" && r();
73
+ }, q = () => {
74
+ e.type === "phone" && r();
75
+ }, V = () => {
76
+ var l;
77
+ ((l = t.value) == null ? void 0 : l.length) === 0 && s.value !== null && s.value.removeAttribute("style"), e.type === "phone" && r();
78
+ };
79
+ ((y = t.value) == null ? void 0 : y.length) > 0 && s.value !== null && (s.value.style.top = "-.6em");
80
+ const E = () => {
81
+ u("suffix");
82
+ }, z = () => {
83
+ u("prefix");
84
+ }, B = N(
85
+ () => {
86
+ let l = ["sw-input"];
87
+ return e.size.length > 0 && l.push("sw-" + e.size), e.class.length > 0 && l.push(e.class), l;
88
+ }
89
+ );
90
+ M(e.type, (l) => {
91
+ l === "phone" && (e.label = "+7 (___) ___-__-__");
92
+ });
93
+ const r = () => {
94
+ const l = "+7 (___) ___-__-__";
95
+ let n = 0;
96
+ const p = l.replace(/\D/g, ""), g = t.value.replace(/\D/g, "");
97
+ let f = l.replace(/[_\d]/g, (m) => n < g.length ? g.charAt(n++) || p.charAt(n) : m);
98
+ n = f.indexOf("_"), n !== -1 && (n = n < 5 ? 3 : n, f = f.slice(0, n));
99
+ let d = l.substr(0, t.value.length).replace(
100
+ /_+/g,
101
+ (m) => `\\d{1,${m.length}}`
102
+ ).replace(/[+()]/g, "\\$&");
103
+ d = new RegExp(`^${d}$`), (!d.test(t.value) || t.value.length < 5) && (t.value = f);
104
+ };
105
+ return (l, n) => (o(), i("div", {
106
+ class: A(B.value)
107
+ }, [
108
+ e.before.length > 0 ? (o(), v(S, {
109
+ key: 0,
110
+ "icon-class": e.before,
111
+ onClick: z
112
+ }, null, 8, ["icon-class"])) : x(l.$slots, "prefix", { key: 1 }),
113
+ e.label.length > 0 ? (o(), i("label", {
114
+ key: 2,
115
+ for: e.name,
116
+ ref_key: "lab",
117
+ ref: s
118
+ }, [
119
+ K(O(e.label), 1),
120
+ a.required ? (o(), i("span", J, "*")) : k("", !0)
121
+ ], 8, H)) : k("", !0),
122
+ P(b("input", {
123
+ "onUpdate:modelValue": n[0] || (n[0] = (p) => t.value = p),
124
+ required: e.required,
125
+ placeholder: e.placeholder,
126
+ type: e.type,
127
+ id: e.name,
128
+ name: e.name,
129
+ size: "60",
130
+ onFocus: w,
131
+ onBlur: V,
132
+ onPaste: C,
133
+ onInput: q,
134
+ onKeydown: $,
135
+ maxlength: "128",
136
+ ref: e.name
137
+ }, null, 40, L), [
138
+ [F, t.value]
139
+ ]),
140
+ e.after.length > 0 ? (o(), v(S, {
141
+ key: 3,
142
+ "icon-class": e.after,
143
+ onClick: E
144
+ }, null, 8, ["icon-class"])) : x(l.$slots, "suffix", { key: 4 })
145
+ ], 2));
146
+ }
147
+ };
148
+ export {
149
+ X as default
150
+ };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- (function(B,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(B=typeof globalThis<"u"?globalThis:B||self,e(B["component-sw"]={},B.vue))})(this,function(B,e){"use strict";const z=Object.assign({"./components/SwButton.vue":()=>Promise.resolve().then(()=>q),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>W),"./components/SwDataPicker.vue":()=>Promise.resolve().then(()=>se),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>re),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>ie),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>ce),"./components/SwInput.vue":()=>Promise.resolve().then(()=>he),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>ye),"./components/SwSection.vue":()=>Promise.resolve().then(()=>_e),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>ke),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>be),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Be),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Ve),"./components/SwTabsNew.vue":()=>Promise.resolve().then(()=>Te),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwTabsPaneNew.vue":()=>Promise.resolve().then(()=>ve)}),T={};for(const a in z){const n=a.split("/").pop().replace(".vue","").replace(/-(\w)/g,(o,l)=>l.toUpperCase());T[n]=e.defineAsyncComponent(()=>z[a]())}const H={install(a){Object.keys(T).forEach(n=>{a.component(n,T[n]),console.log(n)})}},v={__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(a){const n=a,o=()=>{if(n.href.length>0){const t=document.createElement("a");t.setAttribute("href",n.href),t.setAttribute("target","_blank"),t.click()}},l=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,u)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),onClick:o},[e.renderSlot(t.$slots,"default")],2))}},q=Object.freeze(Object.defineProperty({__proto__:null,default:v},Symbol.toStringTag,{value:"Module"})),W=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(a){e.onMounted(()=>{l.value="0px"});const n=e.ref("0px"),o=a,l=e.computed(()=>o.visual?`${n.value.scrollHeight}px`:"0px");return(t,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:o.visual}]),style:e.normalizeStyle({height:l.value}),ref_key:"collapse",ref:n},[e.renderSlot(t.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"}));function U(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 l;typeof a=="object"?l=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),l=new Date(a));const t="ru-RU",u={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(t,{weekday:"short"}).format(l),F:new Intl.DateTimeFormat(t,{month:"long"}).format(l),M:new Intl.DateTimeFormat(t,{month:"short"}).format(l)};return o.replace(/{(dd|[YmdGHisDFM])+}/g,(c,E)=>u[E])}const G={class:"sw-data-picker"},X={class:"month_year"},J={class:"text"},K={class:"week"},Q={class:"month"},Z=["onClick"],ee={key:0},te={class:"month_year"},le={class:"text"},ne={class:"week"},oe={class:"month"},ae=["onClick"],se=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDataPicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:()=>"solid"}},emits:["input"],setup(a,{emit:n}){var I,F,Y,L,R,A;const o=e.ref(new Date),l=e.ref(new Date),t=a,u=n,c=e.ref(new Date().getFullYear()),E=e.ref(new Date().getMonth()),D=e.ref(new Date().getFullYear()),p=e.ref(new Date().getMonth()),d=e.ref([]),m=e.ref(0),y=e.ref(0),g=e.ref(-1),w=e.ref(-1),N=e.ref(navigator.languages||"ru"),S=/en|zh|ja|he/.test(N.value)?0:1,b=t.range==="range"?2:1,$=f=>{const r=f.split(f.match(/\D.*?\D?/));return r[0].length>2?r.join("-")+"T00:00:01":r.reverse().join("-")+"T00:00:01"};typeof((I=t.data)==null?void 0:I.startDate)<"u"&&((F=t.data)==null?void 0:F.startDate)!==null&&(o.value=new Date($(t.data.startDate)),c.value=o.value.getFullYear(),p.value=o.value.getMonth()),typeof((Y=t.data)==null?void 0:Y.endDate)<"u"&&((L=t.data)==null?void 0:L.endDate)!==null&&(l.value=new Date($(t.data.endDate)),D.value=l.value.getFullYear(),E.value=l.value.getMonth());const C=()=>{var s;let f=new Date(c.value,p.value,0);for(let i=f.getDate()-f.getDay()+S;i<=f.getDate()&&f.getDay()!==6+S;i++)m.value++,d.value.push({day:i,month:f.getMonth(),year:f.getFullYear(),class:[]});for(let i=1;i<=new Date(c.value,p.value+1,0).getDate();i++)m.value++,d.value.push({day:i,month:p.value,year:c.value,class:[]});if(t.range==="range"){y.value=new Date(c.value,p.value+2,0);for(let i=1;i<=y.value.getDate();i++)d.value.push({day:i,month:y.value.getMonth(),year:y.value.getFullYear(),class:[]})}let r=new Date(c.value,p.value+b,1);console.log(r.getDay());for(let i=1;i<=(7-r.getDay()+S)%7&&r.getDay()!==S;i++)d.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]});typeof((s=t.data)==null?void 0:s.holiday)<"u"&&t.data.holiday.length!==0&&(t.data.holiday.preholidays.forEach(i=>{let h=i.split("-");const k=d.value.findIndex(_=>_.year==h[0]&&_.month+1==h[1]&&_.day==h[2]);k!==-1&&(d.value[k].class[0]="preholiday")}),t.data.holiday.holidays.forEach(i=>{let h=i.split("-");const k=d.value.findIndex(_=>_.year==h[0]&&_.month+1==h[1]&&_.day==h[2]);k!==-1&&(d.value[k].class[0]="weekend")}),t.data.holiday.holiday.forEach(i=>{let h=i.split("-");const k=d.value.findIndex(_=>_.year==h[0]&&_.month+1==h[1]&&_.day==h[2]);k!==-1&&(d.value[k].class[0]="holiday")}),t.data.holiday.nowork.forEach(i=>{let h=i.split("-");const k=d.value.findIndex(_=>_.year==h[0]&&_.month+1==h[1]&&_.day==h[2]);k!==-1&&(d.value[k].class[0]="nowork")}))},x=(f,r)=>{let s=f-r+1;for(let i=0;i<=f-r;i++)d.value[i+r].class[0]==="holiday"&&s--;return s},O=(f,r)=>{console.log(r);const s=M(new Date(f.year,f.month,f.day),"{dd}.{m}.{Y}");if(t.range==="range")if(console.log(g.value),w.value!==-1){if(w.value<=g.value)for(let i=w.value;i<=g.value;i++)d.value[i].class[1]="";else for(let i=g.value;i<=w.value;i++)d.value[i].class[1]="";g.value=r,w.value=-1,d.value[r].class[1]="active"}else if(g.value!==-1){if(w.value=r,w.value>=g.value)for(let h=g.value+1;h<r;h++)d.value[h].class[1]="select";else for(let h=r+1;h<g.value;h++)d.value[h].class[1]="select";d.value[r].class[1]="active";let i=M(new Date(d.value[g.value].year,d.value[g.value].month,d.value[g.value].day),"{dd}.{m}.{Y}");g.value>r?u("input",{dateStart:s,dateEnd:i,count:x(g.value,r)}):u("input",{dateStart:i,dateEnd:s,count:x(r,g.value)})}else g.value=r,d.value[r].class[1]="active";else g.value!==-1&&(d.value[g.value].class[1]=""),g.value=r,d.value[r].class[1]="active",u("input",{dateStart:s,count:1})};if(C(),typeof((R=t.data)==null?void 0:R.startDate)<"u"&&(g.value=d.value.findIndex(f=>f.day===o.value.getDate()&&f.month===p.value&&f.year===c.value),d.value[g.value].class[1]="active"),typeof((A=t.data)==null?void 0:A.endDate)<"u"&&t.range==="range"){w.value=d.value.findIndex(f=>f.day===l.value.getDate()&&f.month===E.value&&f.year===D.value),d.value[w.value].class[1]="active";for(let f=g.value+1;f<w.value;f++)d.value[f].class[1]="select"}const V=(f,r)=>{Pe(f,r)&&(d.value=[],m.value=0,o.value=new Date(f,r,1),c.value=o.value.getFullYear(),p.value=o.value.getMonth(),C())},Pe=(f,r)=>{if(!t.limitation)return!0;if(t.limitation[0].dateStart){console.log(t.limitation[0].dateStart);let s=t.limitation[0].dateStart.split(t.limitation[0].dateStart.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])>f||parseInt(s[2])===f&&parseInt(s[1])>r+1)return!1}if(t.limitation[t.limitation.length-1].dateEnd){console.log(t.limitation[t.limitation.length-1].dateEnd);let s=t.limitation[t.limitation.length-1].dateEnd.split(t.limitation[t.limitation.length-1].dateEnd.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])<f||parseInt(s[2])===f&&parseInt(s[1])<r+b)return!1}return!0};return(f,r)=>(e.openBlock(),e.createElementBlock("div",G,[e.createElementVNode("div",null,[e.createElementVNode("p",X,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[0]||(r[0]=e.withModifiers(s=>V(c.value-1,p.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:r[1]||(r[1]=e.withModifiers(s=>V(c.value,p.value-1),["prevent"]))},"‹")]),e.createElementVNode("span",J,[e.createElementVNode("button",null,e.toDisplayString(c.value),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(M)(o.value.setMonth(p.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[2]||(r[2]=e.withModifiers(s=>V(c.value,p.value+1),["prevent"]))},"›"),e.createElementVNode("button",{onClick:r[3]||(r[3]=e.withModifiers(s=>V(c.value+1,p.value),["prevent"]))},"»")])]),e.createElementVNode("div",K,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,i)=>e.createElementVNode("button",{key:i,class:"disabled"},e.toDisplayString(e.unref(M)(new Date(1970,1,s+e.unref(S)),"{D}")),1)),64))]),e.createElementVNode("div",Q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(s,i)=>{var h,k;return e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[i<m.value+(7-new Date(c.value,p.value+1,1).getDay()+e.unref(S))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===p.value&&(!t.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date($((h=t.limitation[0])==null?void 0:h.dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date($((k=t.limitation[0])==null?void 0:k.dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===p.value&&O(s,i)}},e.toDisplayString(s.day),11,Z)):e.createCommentVNode("",!0)],64)}),128))])]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",ee,[e.createElementVNode("p",te,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[4]||(r[4]=s=>V(c.value-1,p.value))},"«"),e.createElementVNode("button",{onClick:r[5]||(r[5]=s=>V(c.value,p.value-1))},"‹")]),e.createElementVNode("span",le,[e.createElementVNode("button",null,e.toDisplayString(new Date(c.value,p.value+1).getFullYear()),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(M)(o.value.setMonth(p.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[6]||(r[6]=s=>V(c.value,p.value+1))},"›"),e.createElementVNode("button",{onClick:r[7]||(r[7]=s=>V(c.value+1,p.value))},"»")])]),e.createElementVNode("div",ne,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,i)=>e.createElementVNode("button",{key:i,class:"disabled"},e.toDisplayString(e.unref(M)(new Date(1970,1,s+e.unref(S)),"{D}")),1)),64))]),e.createElementVNode("div",oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[i>=m.value-(7+new Date(c.value,p.value+1,1).getDay()-e.unref(S))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===y.value.getMonth()&&(!t.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date($(t.limitation[0].dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date($(t.limitation[0].dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===y.value.getMonth()&&O(s,i)}},e.toDisplayString(s.day),11,ae)):e.createCommentVNode("",!0)],64))),128))])])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),re=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),l=e.ref(null),t=e.ref(null),u=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(),!t.value)return;l.value.focus(),l.value.addEventListener("blur",()=>o.value=!1);const m=l.value.getBoundingClientRect(),y=window.pageYOffset||document.documentElement.scrollTop,g=window.pageXOffset||document.documentElement.scrollLeft,w=t.value.offsetHeight,N=t.value.offsetWidth;let S=m.left+m.width/2+g,b=m.bottom-m.height/2+y;const[$,C]=n.placement.split("-",2);switch(console.log(n.placement),$){case"bottom":b=b+m.height/2+8;break;case"top":b=b-m.height/2-8-w;break;case"left":S=S-N-m.width/2-10,b=b-w/2;break;case"right":S=S+m.width/2+8,b=b-w/2;break}switch(C){case"left":S=S-N+m.width/2;break;case"right":S=S-m.width/2;break}S<0&&(S=0),b<0&&(b=0),u.value={position:"absolute",top:`${b}px`,left:`${S}px`,maxWidth:n.maxWidth===0?"":`${n.maxWidth}px`}},D=async()=>{o.value=!o.value,o.value&&await E()},p=()=>{o.value&&E()},d=m=>{t.value&&t.value.contains(m.target),console.log(t.value&&!t.value.contains(m.target)),console.log(l.value&&!l.value.contains(m.target))};return e.onMounted(()=>{l.value.addEventListener("click",d,!0),window.addEventListener("resize",p)}),(m,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value),onClick:y[0]||(y[0]=e.withModifiers(g=>D(),["stop"])),ref_key:"dropdownRef",ref:l},[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:t,class:e.normalizeClass(["sw-dropdown-popup",n.class]),style:e.normalizeStyle(u.value),tabindex:"-1"},[e.renderSlot(m.$slots,"dropdown")],6)):e.createCommentVNode("",!0)]))],2))}}},Symbol.toStringTag,{value:"Module"})),ie=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 l=["sw-dropdown-item"];return n.size.length>0&&l.push("sw-"+n.size),n.type.length>0&&l.push("sw-"+n.type),n.class.length>0&&l.push(n.class),l});return(l,t)=>{const u=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(o.value)},[e.createVNode(u,{"icon-class":a.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(a){const n=a,o=e.computed(()=>{let l=["sw-form-item"];return n.type.length>0&&l.push("sw-"+n.type),n.class.length>0&&l.push(n.class),l});return(l,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),de=(a,n)=>{const o=a.__vccOpts||a;for(const[l,t]of n)o[l]=t;return o},pe={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return U(this.iconClass)}}},me=["href"];function fe(a,n,o,l,t,u){return u.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,me)],16))}const P=de(pe,[["render",fe]]),ue=["for"],ge=["placeholder","type","id","name"],he=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 d;const o=e.useModel(a,"modelValue"),l=a,t=e.ref(null),u=n,c=()=>{t.value!==null&&(t.value.style.top="-.6em")},E=()=>{var m;((m=o.value)==null?void 0:m.length)===0&&t.value!==null&&t.value.removeAttribute("style")};((d=o.value)==null?void 0:d.length)>0&&t.value!==null&&(t.value.style.top="-.6em");const D=()=>{u("suffix")},p=e.computed(()=>{let m=["sw-input"];return l.size.length>0&&m.push("sw-"+l.size),l.class.length>0&&m.push(l.class),m});return(m,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(p.value)},[l.before.length>0?(e.openBlock(),e.createBlock(P,{key:0,"icon-class":l.before},null,8,["icon-class"])):e.renderSlot(m.$slots,"prefix",{key:1}),l.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:l.name,ref_key:"lab",ref:t},[e.createTextVNode(e.toDisplayString(l.label),1),y[1]||(y[1]=e.createElementVNode("span",{title:"Это поле обязательно для заполнения."},"*",-1))],8,ue)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=g=>o.value=g),required:"required",placeholder:l.placeholder,type:l.type,id:l.name,name:l.name,size:"60",onFocus:c,onBlur:E,maxlength:"128"},null,40,ge),[[e.vModelDynamic,o.value]]),l.after.length>0?(e.openBlock(),e.createBlock(P,{key:3,"icon-class":l.after,onClick:D},null,8,["icon-class"])):e.renderSlot(m.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),Se={key:0},ye=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,l=e.ref(null);return(t,u)=>{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:l},[o.name.length>0?(e.openBlock(),e.createElementBlock("header",Se,[e.renderSlot(t.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(o.name)+" ",1),e.createVNode(v,{link:"",type:"primary",onClick:u[0]||(u[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(t.$slots,"default",{},()=>[u[1]||(u[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(t.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),_e=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,l)=>{const t=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(t,{"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"})),we={key:0},j={__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 t=["sw-skeleton-item"];return n.size.length>0&&t.push("sw-"+n.size),n.animate&&t.push("sw-animate"),n.class.length>0&&t.push(n.class),t}),l=e.computed(()=>({width:n.width+"%"}));return(t,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),style:e.normalizeStyle(l.value)},[n.animate?(e.openBlock(),e.createElementBlock("div",we)):e.createCommentVNode("",!0)],6))}},be=Object.freeze(Object.defineProperty({__proto__:null,default:j},Symbol.toStringTag,{value:"Module"})),ke=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,l)=>n.visual?e.renderSlot(o.$slots,"default",{key:0},()=>[l[0]||(l[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(j,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),Ee=["name","id"],De=["for","data-onlabel","data-offlabel"],Be=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(a){const n=e.useModel(a,"modelValue"),o=a,l=e.computed(()=>{let t=["sw-switch"];return o.size.length>0&&t.push("sw-"+o.size),o.checkbox&&t.push("sw-checkbox"),o.class.length>0&&t.push(o.class),t});return(t,u)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:o.name,class:"sw-control",id:o.id,"onUpdate:modelValue":u[0]||(u[0]=c=>n.value=c)},null,8,Ee),[[e.vModelCheckbox,n.value]]),e.createElementVNode("label",{for:o.id,class:"sw-label","data-onlabel":o.on,"data-offlabel":o.off},null,8,De),e.renderSlot(t.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),$e=["onClick"],Ve=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([]),l=a,t=e.useModel(a,"modelValue"),u=n;return o.value=e.useSlots().default().filter(c=>c.type.__name==="SwTabsPane"),e.provide("activeTab",t),e.provide("tabs",o),(c,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(D,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:e.normalizeClass([{active:t.value===p}]),onClick:d=>{t.value=p,u("tab-click",p)}},e.toDisplayString(D.props.label||D.props.title),11,$e))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Me=["onClick"],Te=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([]),l=a,t=e.useModel(a,"modelValue"),u=n;return e.provide("activeTab",t),e.provide("tabs",o),e.provide("registerTab",c=>{o.value.push(c)}),(c,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(D,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:e.normalizeClass([{active:t.value===p}]),onClick:d=>{t.value=p,u("tab-click",p)}},e.toDisplayString(D.props.label||D.props.title),11,Me))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ne={key:0,class:"tab-content"},Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(a){const n=a,o=e.inject("activeTab"),l=e.inject("tabs"),t=e.computed(()=>{const u=l.value.findIndex(c=>c.props.title===n.title);return o.value===u});return(u,c)=>t.value?(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(u.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"})),ze={key:0,class:"tab-content"},ve=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 l=e.inject("activeTab");if(!e.inject("tabs"))throw new Error("Tabs array is not provided by SwTabs");const u=e.inject("tabs").value.length-1;return(c,E)=>e.unref(l)===u?(e.openBlock(),e.createElementBlock("div",ze,[e.renderSlot(c.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));B.components=T,B.default=H,Object.defineProperties(B,{__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 x=Object.assign({"./components/SwButton.vue":()=>Promise.resolve().then(()=>H),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>W),"./components/SwDataPicker.vue":()=>Promise.resolve().then(()=>se),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>re),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>ie),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>ce),"./components/SwInput.vue":()=>Promise.resolve().then(()=>_e),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>Se),"./components/SwSection.vue":()=>Promise.resolve().then(()=>we),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>ke),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>$e),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Me),"./components/SwTabsNew.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>ze),"./components/SwTabsPaneNew.vue":()=>Promise.resolve().then(()=>xe)}),v={};for(const a in x){const o=a.split("/").pop().replace(".vue","").replace(/-(\w)/g,(n,l)=>l.toUpperCase());v[o]=e.defineAsyncComponent(()=>x[a]())}const q={install(a){Object.keys(v).forEach(o=>{a.component(o,v[o]),console.log(o)})}},P={__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(a){const o=a,n=()=>{if(o.href.length>0){const t=document.createElement("a");t.setAttribute("href",o.href),t.setAttribute("target","_blank"),t.click()}},l=e.computed(()=>{let t=["sw-button"];return o.size.length>0&&t.push("sw-"+o.size),o.type.length>0&&t.push("sw-"+o.type),o.round&&t.push("sw-round"),o.text&&t.push("sw-text"),o.link&&t.push("sw-link"),o.class.length>0&&t.push(o.class),t});return(t,f)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),onClick:n},[e.renderSlot(t.$slots,"default")],2))}},H=Object.freeze(Object.defineProperty({__proto__:null,default:P},Symbol.toStringTag,{value:"Module"})),W=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(a){e.onMounted(()=>{l.value="0px"});const o=e.ref("0px"),n=a,l=e.computed(()=>n.visual?`${o.value.scrollHeight}px`:"0px");return(t,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:n.visual}]),style:e.normalizeStyle({height:l.value}),ref_key:"collapse",ref:o},[e.renderSlot(t.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"}));function U(a){return/^(https?:|mailto:|tel:)/.test(a)}function N(a,o){if(arguments.length===0||!a)return null;const n=o||"{Y}-{m}-{d} {G}:{i}:{s}";let l;typeof a=="object"?l=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),l=new Date(a));const t="ru-RU",f={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(t,{weekday:"short"}).format(l),F:new Intl.DateTimeFormat(t,{month:"long"}).format(l),M:new Intl.DateTimeFormat(t,{month:"short"}).format(l)};return n.replace(/{(dd|[YmdGHisDFM])+}/g,(c,k)=>f[k])}const G={class:"sw-data-picker"},K={class:"month_year"},X={class:"text"},J={class:"week"},Q={class:"month"},Z=["onClick"],ee={key:0},te={class:"month_year"},le={class:"text"},ne={class:"week"},oe={class:"month"},ae=["onClick"],se=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDataPicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:()=>"solid"}},emits:["input"],setup(a,{emit:o}){var I,F,Y,A,L,R;const n=e.ref(new Date),l=e.ref(new Date),t=a,f=o,c=e.ref(new Date().getFullYear()),k=e.ref(new Date().getMonth()),D=e.ref(new Date().getFullYear()),p=e.ref(new Date().getMonth()),d=e.ref([]),g=e.ref(0),E=e.ref(0),h=e.ref(-1),S=e.ref(-1),M=e.ref(navigator.languages||"ru"),u=/en|zh|ja|he/.test(M.value)?0:1,_=t.range==="range"?2:1,B=m=>{const r=m.split(m.match(/\D.*?\D?/));return r[0].length>2?r.join("-")+"T00:00:01":r.reverse().join("-")+"T00:00:01"};typeof((I=t.data)==null?void 0:I.startDate)<"u"&&((F=t.data)==null?void 0:F.startDate)!==null&&(n.value=new Date(B(t.data.startDate)),c.value=n.value.getFullYear(),p.value=n.value.getMonth()),typeof((Y=t.data)==null?void 0:Y.endDate)<"u"&&((A=t.data)==null?void 0:A.endDate)!==null&&(l.value=new Date(B(t.data.endDate)),D.value=l.value.getFullYear(),k.value=l.value.getMonth());const T=()=>{var s;let m=new Date(c.value,p.value,0);for(let i=m.getDate()-m.getDay()+u;i<=m.getDate()&&m.getDay()!==6+u;i++)g.value++,d.value.push({day:i,month:m.getMonth(),year:m.getFullYear(),class:[]});for(let i=1;i<=new Date(c.value,p.value+1,0).getDate();i++)g.value++,d.value.push({day:i,month:p.value,year:c.value,class:[]});if(t.range==="range"){E.value=new Date(c.value,p.value+2,0);for(let i=1;i<=E.value.getDate();i++)d.value.push({day:i,month:E.value.getMonth(),year:E.value.getFullYear(),class:[]})}let r=new Date(c.value,p.value+_,1);console.log(r.getDay());for(let i=1;i<=(7-r.getDay()+u)%7&&r.getDay()!==u;i++)d.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]});typeof((s=t.data)==null?void 0:s.holiday)<"u"&&t.data.holiday.length!==0&&(t.data.holiday.preholidays.forEach(i=>{let y=i.split("-");const b=d.value.findIndex(w=>w.year==y[0]&&w.month+1==y[1]&&w.day==y[2]);b!==-1&&(d.value[b].class[0]="preholiday")}),t.data.holiday.holidays.forEach(i=>{let y=i.split("-");const b=d.value.findIndex(w=>w.year==y[0]&&w.month+1==y[1]&&w.day==y[2]);b!==-1&&(d.value[b].class[0]="weekend")}),t.data.holiday.holiday.forEach(i=>{let y=i.split("-");const b=d.value.findIndex(w=>w.year==y[0]&&w.month+1==y[1]&&w.day==y[2]);b!==-1&&(d.value[b].class[0]="holiday")}),t.data.holiday.nowork.forEach(i=>{let y=i.split("-");const b=d.value.findIndex(w=>w.year==y[0]&&w.month+1==y[1]&&w.day==y[2]);b!==-1&&(d.value[b].class[0]="nowork")}))},C=(m,r)=>{let s=m-r+1;for(let i=0;i<=m-r;i++)d.value[i+r].class[0]==="holiday"&&s--;return s},z=(m,r)=>{console.log(r);const s=N(new Date(m.year,m.month,m.day),"{dd}.{m}.{Y}");if(t.range==="range")if(console.log(h.value),S.value!==-1){if(S.value<=h.value)for(let i=S.value;i<=h.value;i++)d.value[i].class[1]="";else for(let i=h.value;i<=S.value;i++)d.value[i].class[1]="";h.value=r,S.value=-1,d.value[r].class[1]="active"}else if(h.value!==-1){if(S.value=r,S.value>=h.value)for(let y=h.value+1;y<r;y++)d.value[y].class[1]="select";else for(let y=r+1;y<h.value;y++)d.value[y].class[1]="select";d.value[r].class[1]="active";let i=N(new Date(d.value[h.value].year,d.value[h.value].month,d.value[h.value].day),"{dd}.{m}.{Y}");h.value>r?f("input",{dateStart:s,dateEnd:i,count:C(h.value,r)}):f("input",{dateStart:i,dateEnd:s,count:C(r,h.value)})}else h.value=r,d.value[r].class[1]="active";else h.value!==-1&&(d.value[h.value].class[1]=""),h.value=r,d.value[r].class[1]="active",f("input",{dateStart:s,count:1})};if(T(),typeof((L=t.data)==null?void 0:L.startDate)<"u"&&(h.value=d.value.findIndex(m=>m.day===n.value.getDate()&&m.month===p.value&&m.year===c.value),d.value[h.value].class[1]="active"),typeof((R=t.data)==null?void 0:R.endDate)<"u"&&t.range==="range"){S.value=d.value.findIndex(m=>m.day===l.value.getDate()&&m.month===k.value&&m.year===D.value),d.value[S.value].class[1]="active";for(let m=h.value+1;m<S.value;m++)d.value[m].class[1]="select"}const $=(m,r)=>{Pe(m,r)&&(d.value=[],g.value=0,n.value=new Date(m,r,1),c.value=n.value.getFullYear(),p.value=n.value.getMonth(),T())},Pe=(m,r)=>{if(!t.limitation)return!0;if(t.limitation[0].dateStart){console.log(t.limitation[0].dateStart);let s=t.limitation[0].dateStart.split(t.limitation[0].dateStart.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])>m||parseInt(s[2])===m&&parseInt(s[1])>r+1)return!1}if(t.limitation[t.limitation.length-1].dateEnd){console.log(t.limitation[t.limitation.length-1].dateEnd);let s=t.limitation[t.limitation.length-1].dateEnd.split(t.limitation[t.limitation.length-1].dateEnd.match(/\D.*?\D?/));if(s[0].length>2&&s.reverse(),parseInt(s[2])<m||parseInt(s[2])===m&&parseInt(s[1])<r+_)return!1}return!0};return(m,r)=>(e.openBlock(),e.createElementBlock("div",G,[e.createElementVNode("div",null,[e.createElementVNode("p",K,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[0]||(r[0]=e.withModifiers(s=>$(c.value-1,p.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:r[1]||(r[1]=e.withModifiers(s=>$(c.value,p.value-1),["prevent"]))},"‹")]),e.createElementVNode("span",X,[e.createElementVNode("button",null,e.toDisplayString(c.value),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(N)(n.value.setMonth(p.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[2]||(r[2]=e.withModifiers(s=>$(c.value,p.value+1),["prevent"]))},"›"),e.createElementVNode("button",{onClick:r[3]||(r[3]=e.withModifiers(s=>$(c.value+1,p.value),["prevent"]))},"»")])]),e.createElementVNode("div",J,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,i)=>e.createElementVNode("button",{key:i,class:"disabled"},e.toDisplayString(e.unref(N)(new Date(1970,1,s+e.unref(u)),"{D}")),1)),64))]),e.createElementVNode("div",Q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(s,i)=>{var y,b;return e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[i<g.value+(7-new Date(c.value,p.value+1,1).getDay()+e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===p.value&&(!t.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date(B((y=t.limitation[0])==null?void 0:y.dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date(B((b=t.limitation[0])==null?void 0:b.dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===p.value&&z(s,i)}},e.toDisplayString(s.day),11,Z)):e.createCommentVNode("",!0)],64)}),128))])]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",ee,[e.createElementVNode("p",te,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[4]||(r[4]=s=>$(c.value-1,p.value))},"«"),e.createElementVNode("button",{onClick:r[5]||(r[5]=s=>$(c.value,p.value-1))},"‹")]),e.createElementVNode("span",le,[e.createElementVNode("button",null,e.toDisplayString(new Date(c.value,p.value+1).getFullYear()),1),e.createElementVNode("button",null,e.toDisplayString(e.unref(N)(n.value.setMonth(p.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:r[6]||(r[6]=s=>$(c.value,p.value+1))},"›"),e.createElementVNode("button",{onClick:r[7]||(r[7]=s=>$(c.value+1,p.value))},"»")])]),e.createElementVNode("div",ne,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(s,i)=>e.createElementVNode("button",{key:i,class:"disabled"},e.toDisplayString(e.unref(N)(new Date(1970,1,s+e.unref(u)),"{D}")),1)),64))]),e.createElementVNode("div",oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[i>=g.value-(7+new Date(c.value,p.value+1,1).getDay()-e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(s.month===E.value.getMonth()&&(!t.limitation||new Date(s.year,s.month,s.day+1).getTime()>new Date(B(t.limitation[0].dateStart)).getTime()&&new Date(s.year,s.month,s.day).getTime()<new Date(B(t.limitation[0].dateEnd)).getTime())?s.class:"disabled"),onClick:()=>{s.month===E.value.getMonth()&&z(s,i)}},e.toDisplayString(s.day),11,ae)):e.createCommentVNode("",!0)],64))),128))])])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),re=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 o=a,n=e.ref(!1),l=e.ref(null),t=e.ref(null),f=e.ref({}),c=e.computed(()=>{let g=["sw-dropdown"];return o.size.length>0&&g.push("sw-"+o.size),o.type.length>0&&g.push("sw-"+o.type),g}),k=async()=>{if(await e.nextTick(),!t.value)return;l.value.focus(),l.value.addEventListener("blur",()=>n.value=!1);const g=l.value.getBoundingClientRect(),E=window.pageYOffset||document.documentElement.scrollTop,h=window.pageXOffset||document.documentElement.scrollLeft,S=t.value.offsetHeight,M=t.value.offsetWidth;let u=g.left+g.width/2+h,_=g.bottom-g.height/2+E;const[B,T]=o.placement.split("-",2);switch(console.log(o.placement),B){case"bottom":_=_+g.height/2+8;break;case"top":_=_-g.height/2-8-S;break;case"left":u=u-M-g.width/2-10,_=_-S/2;break;case"right":u=u+g.width/2+8,_=_-S/2;break}switch(T){case"left":u=u-M+g.width/2;break;case"right":u=u-g.width/2;break}u<0&&(u=0),_<0&&(_=0),f.value={position:"absolute",top:`${_}px`,left:`${u}px`,maxWidth:o.maxWidth===0?"":`${o.maxWidth}px`}},D=async()=>{n.value=!n.value,n.value&&await k()},p=()=>{n.value&&k()},d=g=>{t.value&&t.value.contains(g.target),console.log(t.value&&!t.value.contains(g.target)),console.log(l.value&&!l.value.contains(g.target))};return e.onMounted(()=>{l.value.addEventListener("click",d,!0),window.addEventListener("resize",p)}),(g,E)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value),onClick:E[0]||(E[0]=e.withModifiers(h=>D(),["stop"])),ref_key:"dropdownRef",ref:l},[e.renderSlot(g.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:t,class:e.normalizeClass(["sw-dropdown-popup",o.class]),style:e.normalizeStyle(f.value),tabindex:"-1"},[e.renderSlot(g.$slots,"dropdown")],6)):e.createCommentVNode("",!0)]))],2))}}},Symbol.toStringTag,{value:"Module"})),ie=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 o=a,n=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,t)=>{const f=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(n.value)},[e.createVNode(f,{"icon-class":a.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(a){const o=a,n=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,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value)},[e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),de=(a,o)=>{const n=a.__vccOpts||a;for(const[l,t]of o)n[l]=t;return n},pe={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return U(this.iconClass)}}},me=["href"];function fe(a,o,n,l,t,f){return f.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+n.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 "+n.className,"aria-hidden":"true"},a.$attrs),[e.createElementVNode("use",{href:"#"+n.prefix+"-"+n.iconClass},null,8,me)],16))}const j=de(pe,[["render",fe]]),ue=["for"],ge={key:0,title:"Это поле обязательно для заполнения."},he=["required","placeholder","type","id","name"],_e=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}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix","prefix"],["update:modelValue"]),setup(a,{emit:o}){var M;const n=e.useModel(a,"modelValue"),l=a,t=e.ref(null),f=o,c=()=>{t.value!==null&&(t.value.style.top="-.6em"),l.type==="phone"&&S()},k=()=>{l.type==="phone"&&S()},D=()=>{l.type==="phone"&&S()},p=()=>{l.type==="phone"&&S()},d=()=>{var u;((u=n.value)==null?void 0:u.length)===0&&t.value!==null&&t.value.removeAttribute("style"),l.type==="phone"&&S()};((M=n.value)==null?void 0:M.length)>0&&t.value!==null&&(t.value.style.top="-.6em");const g=()=>{f("suffix")},E=()=>{f("prefix")},h=e.computed(()=>{let u=["sw-input"];return l.size.length>0&&u.push("sw-"+l.size),l.class.length>0&&u.push(l.class),u});e.watch(l.type,u=>{u==="phone"&&(l.label="+7 (___) ___-__-__")});const S=()=>{const u="+7 (___) ___-__-__";let _=0;const B=u.replace(/\D/g,""),T=n.value.replace(/\D/g,"");let C=u.replace(/[_\d]/g,$=>_<T.length?T.charAt(_++)||B.charAt(_):$);_=C.indexOf("_"),_!==-1&&(_=_<5?3:_,C=C.slice(0,_));let z=u.substr(0,n.value.length).replace(/_+/g,$=>`\\d{1,${$.length}}`).replace(/[+()]/g,"\\$&");z=new RegExp(`^${z}$`),(!z.test(n.value)||n.value.length<5)&&(n.value=C)};return(u,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(h.value)},[l.before.length>0?(e.openBlock(),e.createBlock(j,{key:0,"icon-class":l.before,onClick:E},null,8,["icon-class"])):e.renderSlot(u.$slots,"prefix",{key:1}),l.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:l.name,ref_key:"lab",ref:t},[e.createTextVNode(e.toDisplayString(l.label),1),a.required?(e.openBlock(),e.createElementBlock("span",ge,"*")):e.createCommentVNode("",!0)],8,ue)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":_[0]||(_[0]=B=>n.value=B),required:l.required,placeholder:l.placeholder,type:l.type,id:l.name,name:l.name,size:"60",onFocus:c,onBlur:d,onPaste:D,onInput:p,onKeydown:k,maxlength:"128",ref:l.name},null,40,he),[[e.vModelDynamic,n.value]]),l.after.length>0?(e.openBlock(),e.createBlock(j,{key:3,"icon-class":l.after,onClick:g},null,8,["icon-class"])):e.renderSlot(u.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),ye={key:0},Se=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 o=e.useModel(a,"modelValue"),n=a,l=e.ref(null);return(t,f)=>{const c=e.resolveComponent("svg-icon");return o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",n.class]),ref_key:"messageRef",ref:l},[n.name.length>0?(e.openBlock(),e.createElementBlock("header",ye,[e.renderSlot(t.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(n.name)+" ",1),e.createVNode(P,{link:"",type:"primary",onClick:f[0]||(f[0]=k=>o.value=!1)},{default:e.withCtx(()=>[e.createVNode(c,{"icon-class":n.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"default",{},()=>[f[1]||(f[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(t.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),we=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 o=a;return(n,l)=>{const t=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(o.class)},[e.createElementVNode("header",null,[e.renderSlot(n.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(o.name)+" ",1),e.createVNode(t,{"icon-class":o.iconAfter},null,8,["icon-class"])])]),e.renderSlot(n.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(n.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),be={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 o=a,n=e.computed(()=>{let t=["sw-skeleton-item"];return o.size.length>0&&t.push("sw-"+o.size),o.animate&&t.push("sw-animate"),o.class.length>0&&t.push(o.class),t}),l=e.computed(()=>({width:o.width+"%"}));return(t,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value),style:e.normalizeStyle(l.value)},[o.animate?(e.openBlock(),e.createElementBlock("div",be)):e.createCommentVNode("",!0)],6))}},ke=Object.freeze(Object.defineProperty({__proto__:null,default:O},Symbol.toStringTag,{value:"Module"})),Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(a){const o=a;return(n,l)=>o.visual?e.renderSlot(n.$slots,"default",{key:0},()=>[l[0]||(l[0]=e.createTextVNode("1"))]):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",o.class])},[e.renderSlot(n.$slots,"skeleton",{},()=>[e.createVNode(O,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),De=["name","id"],Be=["for","data-onlabel","data-offlabel"],$e=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(a){const o=e.useModel(a,"modelValue"),n=a,l=e.computed(()=>{let t=["sw-switch"];return n.size.length>0&&t.push("sw-"+n.size),n.checkbox&&t.push("sw-checkbox"),n.class.length>0&&t.push(n.class),t});return(t,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:n.name,class:"sw-control",id:n.id,"onUpdate:modelValue":f[0]||(f[0]=c=>o.value=c)},null,8,De),[[e.vModelCheckbox,o.value]]),e.createElementVNode("label",{for:n.id,class:"sw-label","data-onlabel":n.on,"data-offlabel":n.off},null,8,Be),e.renderSlot(t.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ve=["onClick"],Me=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:o}){e.ref(0);const n=e.ref([]),l=a,t=e.useModel(a,"modelValue"),f=o;return n.value=e.useSlots().default().filter(c=>c.type.__name==="SwTabsPane"),e.provide("activeTab",t),e.provide("tabs",n),(c,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(D,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:e.normalizeClass([{active:t.value===p}]),onClick:d=>{t.value=p,f("tab-click",p)}},e.toDisplayString(D.props.label||D.props.title),11,Ve))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Te=["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:o}){e.ref(0);const n=e.ref([]),l=a,t=e.useModel(a,"modelValue"),f=o;return e.provide("activeTab",t),e.provide("tabs",n),e.provide("registerTab",c=>{n.value.push(c)}),(c,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+l.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(D,p)=>(e.openBlock(),e.createElementBlock("span",{key:p,class:e.normalizeClass([{active:t.value===p}]),onClick:d=>{t.value=p,f("tab-click",p)}},e.toDisplayString(D.props.label||D.props.title),11,Te))),128))]),e.renderSlot(c.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ne={key:0,class:"tab-content"},ze=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(a){const o=a,n=e.inject("activeTab"),l=e.inject("tabs"),t=e.computed(()=>{const f=l.value.findIndex(c=>c.props.title===o.title);return n.value===f});return(f,c)=>t.value?(e.openBlock(),e.createElementBlock("div",Ne,[e.renderSlot(f.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"})),ve={key:0,class:"tab-content"},xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPaneNew",props:{label:{type:String,required:!0},title:{type:String}},setup(a){const o=a,n=e.inject("registerTab");if(!n)throw new Error("SwTabsPane must be used inside SwTabs");n({props:o});const l=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,k)=>e.unref(l)===f?(e.openBlock(),e.createElementBlock("div",ve,[e.renderSlot(c.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));V.components=v,V.default=q,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-0uPLNlAn.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CjL9dpO-.js"), "./components/SwDataPicker.vue": () => import("./SwDataPicker-Zxy4Lv1v.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-D2W9Glgy.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CfnEis1u.js"), "./components/SwInput.vue": () => import("./SwInput-VZogDySW.js"), "./components/SwMessage.vue": () => import("./SwMessage-BB2yKYsR.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-FMwJbEH7.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 = {};
2
+ const n = /* @__PURE__ */ Object.assign({ "./components/SwButton.vue": () => import("./SwButton-0uPLNlAn.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-CjL9dpO-.js"), "./components/SwDataPicker.vue": () => import("./SwDataPicker-Zxy4Lv1v.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-D2W9Glgy.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CfnEis1u.js"), "./components/SwInput.vue": () => import("./SwInput-CKF2i5Wx.js"), "./components/SwMessage.vue": () => import("./SwMessage-BB2yKYsR.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-FMwJbEH7.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.42",
3
+ "version": "0.1.44",
4
4
  "description": "Vue components of Component SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,118 +0,0 @@
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
- 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;
7
- return t;
8
- }, M = {
9
- name: "SvgIcon",
10
- props: {
11
- prefix: {
12
- type: String,
13
- default: "icon"
14
- },
15
- iconClass: {
16
- type: String,
17
- required: !0
18
- },
19
- className: {
20
- type: String,
21
- default: ""
22
- }
23
- },
24
- computed: {
25
- isExt() {
26
- return w(this.iconClass);
27
- }
28
- }
29
- }, D = ["href"];
30
- function I(n, r, t, e, l, u) {
31
- return u.isExt ? (a(), i("div", d({
32
- key: 0,
33
- style: "mask: url(" + t.iconClass + ") no-repeat 50% 50%;",
34
- class: "svg-external-icon svg-icon"
35
- }, n.$attrs), null, 16)) : (a(), i("svg", d({
36
- key: 1,
37
- class: "svg-icon " + t.className,
38
- "aria-hidden": "true"
39
- }, n.$attrs), [
40
- c("use", {
41
- href: "#" + t.prefix + "-" + t.iconClass
42
- }, null, 8, D)
43
- ], 16));
44
- }
45
- const g = /* @__PURE__ */ B(M, [["render", I]]), A = ["for"], F = ["placeholder", "type", "id", "name"], T = {
46
- __name: "SwInput",
47
- props: /* @__PURE__ */ p({
48
- before: { type: String, default: "" },
49
- after: { type: String, default: "" },
50
- placeholder: { type: String, default: "" },
51
- label: { type: String, default: "" },
52
- name: { type: String, required: !0 },
53
- class: { type: String, default: "" },
54
- size: { type: String, default: "" },
55
- type: { type: String, default: "text" }
56
- }, {
57
- modelValue: {},
58
- modelModifiers: {}
59
- }),
60
- emits: /* @__PURE__ */ p(["suffix"], ["update:modelValue"]),
61
- setup(n, { emit: r }) {
62
- var f;
63
- const t = _(n, "modelValue"), e = n, l = b(null), u = r, v = () => {
64
- l.value !== null && (l.value.style.top = "-.6em");
65
- }, h = () => {
66
- var s;
67
- ((s = t.value) == null ? void 0 : s.length) === 0 && l.value !== null && l.value.removeAttribute("style");
68
- };
69
- ((f = t.value) == null ? void 0 : f.length) > 0 && l.value !== null && (l.value.style.top = "-.6em");
70
- const S = () => {
71
- u("suffix");
72
- }, k = C(
73
- () => {
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;
76
- }
77
- );
78
- return (s, o) => (a(), i("div", {
79
- class: V(k.value)
80
- }, [
81
- e.before.length > 0 ? (a(), m(g, {
82
- key: 0,
83
- "icon-class": e.before
84
- }, null, 8, ["icon-class"])) : y(s.$slots, "prefix", { key: 1 }),
85
- e.label.length > 0 ? (a(), i("label", {
86
- key: 2,
87
- for: e.name,
88
- ref_key: "lab",
89
- ref: l
90
- }, [
91
- N($(e.label), 1),
92
- o[1] || (o[1] = c("span", { title: "Это поле обязательно для заполнения." }, "*", -1))
93
- ], 8, A)) : z("", !0),
94
- E(c("input", {
95
- "onUpdate:modelValue": o[0] || (o[0] = (x) => t.value = x),
96
- required: "required",
97
- placeholder: e.placeholder,
98
- type: e.type,
99
- id: e.name,
100
- name: e.name,
101
- size: "60",
102
- onFocus: v,
103
- onBlur: h,
104
- maxlength: "128"
105
- }, null, 40, F), [
106
- [q, t.value]
107
- ]),
108
- e.after.length > 0 ? (a(), m(g, {
109
- key: 3,
110
- "icon-class": e.after,
111
- onClick: S
112
- }, null, 8, ["icon-class"])) : y(s.$slots, "suffix", { key: 4 })
113
- ], 2));
114
- }
115
- };
116
- export {
117
- T as default
118
- };