@studio-west/component-sw 0.3.53 → 0.3.54

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
@@ -185,7 +185,6 @@ input - событие выбора с данными {dateStart: "11.11.2011",
185
185
  | `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
186
186
  | `trigger` | `String` | `'click'` - по умолчанию, `'hover'`, `'context'`,`'none'`. |
187
187
  | `placement` | `String` | Относительное место всплытия `'bottom-left'` - по умолчанию, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
188
- | `manual` | `Boolean` | Ручное управление показом по умолчанию `false`. |
189
188
  | `maxWidth` | `Number` | Максимальная ширина меню в пикселях. |
190
189
 
191
190
 
@@ -196,7 +195,7 @@ input - событие выбора с данными {dateStart: "11.11.2011",
196
195
  <sw-dropdown
197
196
  class="custom-class"
198
197
  trigger="none"
199
- :manual="visual"
198
+ v-model="visual"
200
199
  maxWidth="o250"
201
200
  >
202
201
  <button @cick="visual = true">Описание</button>
@@ -1,5 +1,5 @@
1
1
  import { ref as f, computed as te, createElementBlock as v, openBlock as i, createElementVNode as s, createCommentVNode as S, withModifiers as d, toDisplayString as k, unref as M, Fragment as _, renderList as Y, normalizeClass as H } from "vue";
2
- import { p as x } from "./index-6H83EyTM.js";
2
+ import { p as x } from "./index-D4A-407M.js";
3
3
  const ae = { class: "sw-data-picker" }, ne = { class: "month_year" }, le = { class: "text" }, oe = {
4
4
  key: 0,
5
5
  class: "week"
@@ -0,0 +1,105 @@
1
+ import { mergeModels as W, computed as k, useModel as T, ref as c, onMounted as B, onUnmounted as H, createElementBlock as x, openBlock as f, withModifiers as m, normalizeClass as $, renderSlot as S, createBlock as O, Teleport as V, createCommentVNode as P, normalizeStyle as N, unref as q, nextTick as A } from "vue";
2
+ const D = ["id"], X = {
3
+ __name: "SwDropdown",
4
+ props: /* @__PURE__ */ W({
5
+ class: { type: String, default: "" },
6
+ size: { type: String, default: "" },
7
+ type: { type: String, default: "" },
8
+ trigger: { type: String, default: "click" },
9
+ placement: { type: String, default: "bottom-left" },
10
+ maxWidth: { type: Number, default: 0 }
11
+ }, {
12
+ modelValue: {},
13
+ modelModifiers: {}
14
+ }),
15
+ emits: ["update:modelValue"],
16
+ setup(g, { expose: E }) {
17
+ const o = g;
18
+ k(() => "dropdown" + Array.from(document.body.children).indexOf(document.querySelector("ul")));
19
+ const l = T(g, "modelValue"), r = c(null), u = c(null), v = c({}), w = Math.ceil(Math.random() * 1e3), M = k(
20
+ () => {
21
+ let t = ["sw-dropdown"];
22
+ return o.size.length > 0 && t.push("sw-" + o.size), o.type.length > 0 && t.push("sw-" + o.type), t;
23
+ }
24
+ ), d = async () => {
25
+ if (await A(), !u.value) return;
26
+ const t = window.pageYOffset || document.documentElement.scrollTop, n = window.pageXOffset || document.documentElement.scrollLeft;
27
+ document.body.style.position = "fixed", document.body.style.top = `-${t}px`, document.body.style.left = `-${n}px`, document.body.style.position = "", document.body.style.top = "", document.body.style.left = "", document.documentElement.scrollTop = t, document.documentElement.scrollLeft = n;
28
+ const e = r.value.getBoundingClientRect(), a = u.value.offsetHeight, p = u.value.offsetWidth;
29
+ console.log("popupHeight", a), console.log("popupWidth", p);
30
+ let s = e.left + e.width / 2 + n, i = e.top + e.height / 2 + t;
31
+ const [L, R] = o.placement.split("-", 2);
32
+ switch (console.log(o.placement), L) {
33
+ case "bottom":
34
+ i = i + e.height / 2 + 8;
35
+ break;
36
+ case "top":
37
+ i = i - e.height / 2 - 8 - a;
38
+ break;
39
+ case "left":
40
+ s = s - p - e.width / 2 - 8, i = i - a / 2;
41
+ break;
42
+ case "right":
43
+ s = s + e.width / 2 + 8, i = i - a / 2;
44
+ break;
45
+ }
46
+ switch (R) {
47
+ case "left":
48
+ s = s - e.width / 2;
49
+ break;
50
+ case "right":
51
+ s = s - p + e.width / 2;
52
+ break;
53
+ }
54
+ s < 0 && (s = 0), i < 0 && (i = 0), v.value = {
55
+ position: "absolute",
56
+ top: `${i}px`,
57
+ left: `${s}px`,
58
+ maxWidth: o.maxWidth === 0 ? "" : `${o.maxWidth}px`
59
+ };
60
+ };
61
+ E({ positionPopup: d });
62
+ const z = () => {
63
+ o.trigger === "click" && (l.value = !l.value), l.value && d();
64
+ }, y = () => {
65
+ o.trigger === "hover" && (l.value = !l.value), l.value && d();
66
+ }, C = () => {
67
+ o.trigger === "context" && (l.value = !l.value), l.value && d();
68
+ }, h = () => {
69
+ l.value && d();
70
+ }, b = (t) => {
71
+ !t.target.closest(`[id="${w}"]`) && r.value && !r.value.contains(t.target) && (l.value = !1);
72
+ };
73
+ return B(() => {
74
+ window.addEventListener("resize", h), window.addEventListener("click", b);
75
+ }), H(() => {
76
+ window.removeEventListener("resize", h), window.removeEventListener("click", b);
77
+ }), (t, n) => (f(), x("div", {
78
+ class: $(M.value),
79
+ onClick: n[0] || (n[0] = (e) => z()),
80
+ onMouseover: n[1] || (n[1] = m((e) => y(), ["stop"])),
81
+ onMouseleave: n[2] || (n[2] = m((e) => y(), ["stop"])),
82
+ onContextmenu: n[3] || (n[3] = m((e) => C(), ["stop"])),
83
+ ref_key: "dropdownRef",
84
+ ref: r
85
+ }, [
86
+ S(t.$slots, "default"),
87
+ (f(), O(V, { to: "body" }, [
88
+ l.value ? (f(), x("ul", {
89
+ key: 0,
90
+ ref_key: "popupRef",
91
+ ref: u,
92
+ id: q(w),
93
+ class: $(["sw-dropdown-popup", o.class]),
94
+ style: N(v.value),
95
+ tabindex: "-1"
96
+ }, [
97
+ S(t.$slots, "dropdown")
98
+ ], 14, D)) : P("", !0)
99
+ ]))
100
+ ], 34));
101
+ }
102
+ };
103
+ export {
104
+ X as default
105
+ };
@@ -1,5 +1,5 @@
1
1
  import { mergeModels as y, useModel as V, ref as C, computed as I, watch as M, createElementBlock as d, openBlock as i, normalizeClass as A, createBlock as v, renderSlot as _, createCommentVNode as x, withDirectives as E, createTextVNode as N, toDisplayString as R, createElementVNode as T, vModelDynamic as F } from "vue";
2
- import { S } from "./index-6H83EyTM.js";
2
+ import { S } from "./index-D4A-407M.js";
3
3
  const O = ["for"], U = {
4
4
  key: 0,
5
5
  title: "Это поле обязательно для заполнения."
@@ -148,7 +148,7 @@ function w(e = {}) {
148
148
  }), t = n.mount(document.createElement("div"));
149
149
  l.appendChild(t.$el);
150
150
  }
151
- const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-0uPLNlAn.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-DxAVOWF1.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-BO4bBfZ_.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-BQwvEVfc.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CfnEis1u.js"), "./components/SwInput.vue": () => import("./SwInput-B565EsCg.js"), "./components/SwMessage.vue": () => import("./SwMessage-BB2yKYsR.js"), "./components/SwSection.vue": () => import("./SwSection-CaY8OFmf.js"), "./components/SwSelect.vue": () => import("./SwSelect-0vcmQ8qv.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-DWILNFfF.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-BxSLWRTx.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") }), d = {};
151
+ const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-0uPLNlAn.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-DxAVOWF1.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-Bj_fsymp.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-DT-3bTwS.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-C3_wJ1DL.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CfnEis1u.js"), "./components/SwInput.vue": () => import("./SwInput-D_gYMtj4.js"), "./components/SwMessage.vue": () => import("./SwMessage-BB2yKYsR.js"), "./components/SwSection.vue": () => import("./SwSection-CaY8OFmf.js"), "./components/SwSelect.vue": () => import("./SwSelect-0vcmQ8qv.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-DWILNFfF.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-BxSLWRTx.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") }), d = {};
152
152
  for (const e in h) {
153
153
  const n = e.split("/").pop().replace(".vue", "").replace(/-(\w)/g, (t, o) => o.toUpperCase());
154
154
  d[n] = O(() => h[e]());
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- (function(T,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(T=typeof globalThis<"u"?globalThis:T||self,e(T["component-sw"]={},T.vue))})(this,function(T,e){"use strict";function Q(a){return/^(https?:|mailto:|tel:)/.test(a)}function j(a,l){if(arguments.length===0||!a)return null;const t=l||"{Y}-{m}-{d} {G}:{i}:{s}";let n;typeof a=="object"?n=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),n=new Date(a));const o="ru-RU",d={Y:n.getFullYear(),m:(n.getMonth()+1).toString().padStart(2,"0"),d:n.getDate(),dd:n.getDate().toString().padStart(2,"0"),G:n.getHours(),H:n.getHours().toString().padStart(2,"0"),i:n.getMinutes().toString().padStart(2,"0"),s:n.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(o,{weekday:"short"}).format(n),F:new Intl.DateTimeFormat(o,{month:"long"}).format(n),M:new Intl.DateTimeFormat(o,{month:"short"}).format(n)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(h,m)=>d[m])}const Z=(a,l)=>{const t=a.__vccOpts||a;for(const[n,o]of l)t[n]=o;return t},K={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return Q(this.iconClass)}}},ee=["href"];function te(a,l,t,n,o,d){return d.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},a.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},a.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,ee)],16))}const v=Z(K,[["render",te]]),q={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:a=>["success","warning","error","info"].includes(a)}},emits:["closed"],setup(a,{emit:l}){const t=a,n=l,o=e.ref(!1);let d=null;const h=()=>{o.value=!0,$()},m=()=>{o.value=!1,n("closed")},i=()=>{d&&(clearTimeout(d),d=null)},u=()=>{$()},$=()=>{d=setTimeout(m,t.duration)};e.onMounted(()=>{h()}),e.onUnmounted(()=>{d&&clearTimeout(d)});const D=e.computed(()=>{const p=["sw-alert"];return t.size.length>0&&p.push(`sw-${t.size}`),t.type.length>0&&p.push(`sw-${t.type}`),t.class.length>0&&p.push(t.class),p});return(p,_)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(D.value),onMouseenter:i,onMouseleave:u},[t.before.length>0?(e.openBlock(),e.createBlock(v,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(p.$slots,"prefix",{key:1}),e.renderSlot(p.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(v,{key:2,"icon-class":t.after,onClick:m},null,8,["icon-class"])):e.renderSlot(p.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},le=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function I(a={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const l=e.createApp({setup(){return()=>e.h(q,{...a,onClose:()=>{P.removeChild(l._container),l.unmount()}})}}),t=l.mount(document.createElement("div"));P.appendChild(t.$el)}const R=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>le),"./components/SwButton.vue":()=>Promise.resolve().then(()=>ne),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>ae),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>be),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>$e),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>De),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwInput.vue":()=>Promise.resolve().then(()=>Ve),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>xe),"./components/SwSection.vue":()=>Promise.resolve().then(()=>ze),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Fe),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Le),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ae),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Re),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>We),"./components/SwTabsNew.vue":()=>Promise.resolve().then(()=>Ge),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Je),"./components/SwTabsPaneNew.vue":()=>Promise.resolve().then(()=>Ze)}),F={};for(const a in R){const l=a.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,n)=>n.toUpperCase());F[l]=e.defineAsyncComponent(()=>R[a]())}const oe={install(a){Object.keys(F).forEach(l=>{a.component(l,F[l]),console.log(l)}),a.config.globalProperties.$Alert=I,a.provide("Alert",I)}},H={__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 l=a,t=()=>{if(l.href.length>0){const o=document.createElement("a");o.setAttribute("href",l.href),o.setAttribute("target","_blank"),o.click()}},n=e.computed(()=>{let o=["sw-button"];return l.size.length>0&&o.push("sw-"+l.size),l.type.length>0&&o.push("sw-"+l.type),l.round&&o.push("sw-round"),l.text&&o.push("sw-text"),l.link&&o.push("sw-link"),l.class.length>0&&o.push(l.class),o});return(o,d)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(n.value),onClick:t},[e.renderSlot(o.$slots,"default")],2))}},ne=Object.freeze(Object.defineProperty({__proto__:null,default:H},Symbol.toStringTag,{value:"Module"})),ae=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(a){e.onMounted(()=>{n.value="0px"});const l=e.ref(null),t=a,n=e.computed(()=>{var o;return t.visual?((o=l.value)==null?void 0:o.scrollHeight)+"px":"0px"});return(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({height:n.value}),ref_key:"collapse",ref:l},[e.renderSlot(o.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),se={class:"sw-data-picker"},re={class:"month_year"},ce={class:"text"},ie={key:0,class:"week"},de={key:1,class:"year"},pe=["onClick"],me={key:2,class:"month"},fe=["onClick"],ue={key:0},ge={class:"month_year"},he={class:"text"},ye={key:0,class:"week"},_e={key:1,class:"year"},Se=["onClick"],ke={key:2,class:"month"},we=["onClick"],be=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(a,{emit:l}){var U,G,X,J;const t=a,n=l,o=e.ref(0),d=e.ref(new Date),h=e.ref(new Date),m=e.ref(new Date().getFullYear()),i=e.ref(new Date().getMonth()),u=e.ref(new Date().getFullYear()),$=e.ref(new Date().getMonth()),D=e.ref(new Date().getMonth()+1),p=e.ref([]),_=e.ref(0),f=e.ref(-1),y=e.ref(-1),k=e.ref(navigator.languages||"ru"),w=/en|zh|ja|he/.test(k.value)?0:1,N=e.computed(()=>Array.from({length:12},(c,s)=>{const r=new Date(2024,s);return new Intl.DateTimeFormat(k.value,{month:"long"}).format(r)})),S=c=>{let s=c.split(c.match(/\D.*?\D?/));return s[0].length>2?s.join("-")+"T00:00:01":s.reverse().join("-")+"T00:00:01"};(U=t.data)!=null&&U.startDate&&(d.value=new Date(S(t.data.startDate)),m.value=d.value.getFullYear(),i.value=d.value.getMonth()),(G=t.data)!=null&&G.endDate&&t.range==="range"&&(h.value=new Date(S(t.data.endDate)),u.value=h.value.getFullYear(),$.value=h.value.getMonth());const b=()=>{p.value=[],_.value=0;const c=new Date(m.value,i.value,0);for(let r=c.getDate()-c.getDay()+w;r<=c.getDate();r++)c.getDay()!==6+w&&(p.value.push({day:r,month:c.getMonth(),year:c.getFullYear(),class:[]}),_.value++);const s=new Date(m.value,i.value+1,0).getDate();for(let r=1;r<=s;r++)p.value.push({day:r,month:i.value,year:m.value,class:[]}),_.value++;if(t.range==="range"){const r=new Date(m.value,i.value+1,1),g=new Date(m.value,i.value+2,0).getDate();for(let E=1;E<=g;E++)p.value.push({day:E,month:r.getMonth(),year:r.getFullYear(),class:[]})}x()},x=()=>{var s;if(!((s=t.data)!=null&&s.holiday))return;const c=(r,g)=>{r.forEach(E=>{const[B,M,V]=E.split("-").map(Number),O=p.value.findIndex(Y=>Y.year===B&&Y.month+1===M&&Y.day===V);O!==-1&&(p.value[O].class[0]=g)})};c(t.data.holiday.preholidays,"preholiday"),c(t.data.holiday.holidays,"weekend"),c(t.data.holiday.holiday,"holiday"),c(t.data.holiday.nowork,"nowork")},z=()=>{if(!t.limitation||t.limitation.length<2)return!1;const c=[...t.limitation].sort((s,r)=>new Date(S(s.startDate)).getTime()-new Date(S(r.startDate)).getTime());for(let s=1;s<c.length;s++){const r=new Date(S(c[s-1].endDate));if(new Date(S(c[s].startDate))<=r)return console.warn("Warning: Диапазоны пересекаются:",c[s-1],c[s]),!0}return!1},A=(c,s,r)=>{if(!t.limitation||t.limitation.length===0)return!0;const g=new Date(c,s,r).getTime();for(let E of t.limitation){const{startDate:B,endDate:M}=E;if(!B&&M){const V=new Date(S(M)).getTime();if(g<=V)return!1}if(B&&!M){const V=new Date(S(B)).getTime();if(g>=V)return!1}if(B&&M){const V=new Date(S(B)).getTime(),O=new Date(S(M)).getTime();if(V<=O){if(g>=V&&g<=O)return!1}else if(g>=V||g<=O)return!1}}return!0},L=(c,s)=>{const r=j(new Date(c.year,c.month,c.day),"{dd}.{m}.{Y}");t.range==="range"?y.value!==-1?(Ke(),f.value=s,p.value[s].class[1]="active"):f.value!==-1?(y.value=s,et(f.value,y.value,r)):(f.value=s,p.value[s].class[1]="active"):(f.value!==-1&&(p.value[f.value].class[1]=""),f.value=s,p.value[s].class[1]="active",n("input",{dateStart:r,count:1}))},Ke=()=>{p.value.forEach(c=>c.class[1]=""),f.value=-1,y.value=-1},et=(c,s,r)=>{let g=j(new Date(p.value[c].year,p.value[c].month,p.value[c].day),"{dd}.{m}.{Y}"),E=tt(c,s);if(s>=c)for(let B=c+1;B<s;B++)p.value[B].class[1]="select";else for(let B=s+1;B<c;B++)p.value[B].class[1]="select";p.value[s].class[1]="active",n("input",{dateStart:g,dateEnd:r,count:E})},tt=(c,s)=>{var B;let r=Math.abs(c-s)+1,[g,E]=[Math.min(c,s),Math.max(c,s)];for(let M=g;M<=E;M++)((B=p.value[M])==null?void 0:B.class[0])==="holiday"&&r--;return r},C=(c,s)=>{A(c,s)&&(d.value=new Date(c,s,1),m.value=d.value.getFullYear(),i.value=d.value.getMonth(),t.range==="year"?L({year:c,month:s,day:1},8):b())};if(b(),z()&&console.error("Ошибка: Найдены пересекающиеся диапазоны!"),(X=t.data)!=null&&X.startDate&&(f.value=p.value.findIndex(c=>c.day===d.value.getDate()&&c.month===i.value&&c.year===m.value),f.value!==-1&&(p.value[f.value].class[1]="active")),(J=t.data)!=null&&J.endDate&&t.range==="range"&&(y.value=p.value.findIndex(c=>c.day===h.value.getDate()&&c.month===$.value&&c.year===u.value),y.value!==-1)){p.value[y.value].class[1]="active";for(let c=f.value+1;c<y.value;c++)p.value[c].class[1]="select"}return(c,s)=>(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",null,[e.createElementVNode("p",re,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[0]||(s[0]=e.withModifiers(r=>C(m.value-1,i.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:s[1]||(s[1]=e.withModifiers(r=>{o.value=0,C(m.value,i.value-1)},["prevent"]))},"‹")]),e.createElementVNode("span",ce,[e.createElementVNode("button",{onClick:s[2]||(s[2]=e.withModifiers(r=>o.value=1,["prevent"]))},e.toDisplayString(m.value),1),e.createElementVNode("button",{onClick:s[3]||(s[3]=e.withModifiers(r=>o.value=1,["prevent"]))},e.toDisplayString(e.unref(j)(d.value.setMonth(i.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[4]||(s[4]=e.withModifiers(r=>{o.value=0,C(m.value,i.value+1)},["prevent"]))},"›"),e.createElementVNode("button",{onClick:s[5]||(s[5]=e.withModifiers(r=>C(m.value+1,i.value),["prevent"]))},"»")])]),t.range==="year"||o.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ie,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(r,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(j)(new Date(1970,1,r+e.unref(w)),"{D}")),1)),64))])),t.range==="year"||o.value===1?(e.openBlock(),e.createElementBlock("div",de,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(r,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(E=>{o.value=0,C(m.value,g)},["prevent"])},e.toDisplayString(r),9,pe))),128))])):(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(r,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g<_.value+(7-new Date(m.value,i.value+1,1).getDay()+e.unref(w))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(r.month===i.value&&A(r.year,r.month,r.day)?r.class:"disabled"),onClick:e.withModifiers(()=>{r.month===i.value&&L(r,g)},["prevent"])},e.toDisplayString(r.day),11,fe)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",ue,[e.createElementVNode("p",ge,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[6]||(s[6]=e.withModifiers(r=>C(m.value-1,i.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:s[7]||(s[7]=e.withModifiers(r=>{o.value=0,C(m.value,i.value-1)},["prevent"]))},"‹")]),e.createElementVNode("span",he,[e.createElementVNode("button",{onClick:s[8]||(s[8]=e.withModifiers(r=>o.value=2,["prevent"]))},e.toDisplayString(new Date(m.value,i.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:s[9]||(s[9]=e.withModifiers(r=>o.value=2,["prevent"]))},e.toDisplayString(e.unref(j)(d.value.setMonth(i.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[10]||(s[10]=e.withModifiers(r=>{o.value=0,C(m.value,i.value+1)},["prevent"]))},"›"),e.createElementVNode("button",{onClick:s[11]||(s[11]=e.withModifiers(r=>C(m.value+1,i.value),["prevent"]))},"»")])]),o.value!==2?(e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(r,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(j)(new Date(1970,1,r+e.unref(w)),"{D}")),1)),64))])):e.createCommentVNode("",!0),o.value===2?(e.openBlock(),e.createElementBlock("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(r,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(E=>{o.value=0,C(m.value,g-1)},["prevent"])},e.toDisplayString(r),9,Se))),128))])):(e.openBlock(),e.createElementBlock("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(r,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g>=_.value-(7+new Date(m.value,i.value+1,1).getDay()-e.unref(w))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(r.month===D.value&&A(r.year,r.month,r.day)?r.class:"disabled"),onClick:e.withModifiers(()=>{r.month===D.value&&L(r,g)},["prevent"])},e.toDisplayString(r.day),11,we)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),Be=["id"],$e=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},manual:{type:Boolean,default:!1}},setup(a){const l=a;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const t=e.ref(!1),n=e.ref(null),o=e.ref(null),d=e.ref({}),h=Math.ceil(Math.random()*1e3),m=e.computed(()=>{let f=["sw-dropdown"];return l.size.length>0&&f.push("sw-"+l.size),l.type.length>0&&f.push("sw-"+l.type),f});e.watch(()=>l.manual,f=>{t.value=f,console.log("watch",t.value),t.value&&i()});const i=async()=>{if(await e.nextTick(),!o.value)return;const f=window.pageYOffset||document.documentElement.scrollTop,y=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${f}px`,document.body.style.left=`-${y}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=f,document.documentElement.scrollLeft=y;const k=n.value.getBoundingClientRect(),w=o.value.offsetHeight,N=o.value.offsetWidth;console.log("popupHeight",w),console.log("popupWidth",N);let S=k.left+k.width/2+y,b=k.top+k.height/2+f;const[x,z]=l.placement.split("-",2);switch(console.log(l.placement),x){case"bottom":b=b+k.height/2+8;break;case"top":b=b-k.height/2-8-w;break;case"left":S=S-N-k.width/2-8,b=b-w/2;break;case"right":S=S+k.width/2+8,b=b-w/2;break}switch(z){case"left":S=S-k.width/2;break;case"right":S=S-N+k.width/2;break}S<0&&(S=0),b<0&&(b=0),d.value={position:"absolute",top:`${b}px`,left:`${S}px`,maxWidth:l.maxWidth===0?"":`${l.maxWidth}px`}},u=()=>{l.trigger==="click"&&(t.value=!t.value),t.value&&i()},$=()=>{l.trigger==="hover"&&(t.value=!t.value),t.value&&i()},D=()=>{l.trigger==="context"&&(t.value=!t.value),t.value&&i()},p=()=>{t.value&&i()},_=f=>{!f.target.closest(`[id="${h}"]`)&&n.value&&!n.value.contains(f.target)&&(t.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",p),window.addEventListener("click",_)}),e.onUnmounted(()=>{window.removeEventListener("resize",p),window.removeEventListener("click",_)}),(f,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(m.value),onClick:y[0]||(y[0]=k=>u()),onMouseover:y[1]||(y[1]=e.withModifiers(k=>$(),["stop"])),onMouseleave:y[2]||(y[2]=e.withModifiers(k=>$(),["stop"])),onContextmenu:y[3]||(y[3]=e.withModifiers(k=>D(),["stop"])),ref_key:"dropdownRef",ref:n},[e.renderSlot(f.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:o,id:e.unref(h),class:e.normalizeClass(["sw-dropdown-popup",l.class]),style:e.normalizeStyle(d.value),tabindex:"-1"},[e.renderSlot(f.$slots,"dropdown")],14,Be)):e.createCommentVNode("",!0)]))],34))}}},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 l=a,t=e.computed(()=>{let n=["sw-dropdown-item"];return l.size.length>0&&n.push("sw-"+l.size),l.type.length>0&&n.push("sw-"+l.type),l.class.length>0&&n.push(l.class),n});return(n,o)=>{const d=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(d,{"icon-class":a.iconBefore},null,8,["icon-class"]),e.renderSlot(n.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(a){const l=a,t=e.computed(()=>{let n=["sw-form-item"];return l.type.length>0&&n.push("sw-"+l.type),l.class.length>0&&n.push(l.class),n});return(n,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(n.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Me=["for"],Ce={key:0,title:"Это поле обязательно для заполнения."},Te=["required","placeholder","type","id","name"],Ve=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","focusInput"],["update:modelValue"]),setup(a,{emit:l}){var p;const t=e.useModel(a,"modelValue"),n=a,o=e.ref(null),d=l,h=_=>{d("focusInput"),_.target.setSelectionRange(t.value.length,t.value.length),o.value!==null&&(o.value.style.top="-.6em")},m=_=>{var f;((f=t.value)==null?void 0:f.length)===0&&o.value!==null&&o.value.removeAttribute("style")};((p=t.value)==null?void 0:p.length)>0&&o.value!==null&&(o.value.style.top="-.6em");const i=()=>{d("suffix")},u=()=>{d("prefix")},$=e.computed(()=>{let _=["sw-input"];return n.size.length>0&&_.push("sw-"+n.size),n.class.length>0&&_.push(n.class),_});e.watch(t,(_,f)=>{n.type==="phone"&&(t.value=D(_,f))});const D=(_,f)=>{if(/^\+[0-9]\s/.test(f)&&_.length===2||/^\+0\s/.test(_))return"";const y=_;if(typeof y>"u"||y.length===0)return y;const k="+0 (___) ___-__-__";let w=0;const N=k.replace(/\D/g,""),S=y.replace(/\D/g,"");let b=k.replace(/[_\d]/g,z=>w<S.length?S.charAt(w++)||N.charAt(w):z);w=b.indexOf("_"),w!==-1&&(w=w<5?3:w,b=b.slice(0,w));let x=k.slice(0,y.length).replace(/_+/g,z=>`\\d{1,${z.length}}`).replace(/[+()]/g,"\\$&");if(x=new RegExp(`^${x}$`),b=b.replace(/[-—]$|(\) )$/g,""),!x.test(y)||y.length<5)return b};return(_,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass($.value)},[n.before.length>0?(e.openBlock(),e.createBlock(v,{key:0,"icon-class":n.before,onClick:u},null,8,["icon-class"])):e.renderSlot(_.$slots,"prefix",{key:1}),n.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:n.name,ref_key:"lab",ref:o},[e.createTextVNode(e.toDisplayString(n.label),1),n.required?(e.openBlock(),e.createElementBlock("span",Ce,"*")):e.createCommentVNode("",!0)],8,Me)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=y=>t.value=y),required:n.required,placeholder:n.required&&n.label.length===0?n.placeholder+"*":n.placeholder,type:n.type,id:n.name,name:n.name,size:"60",onFocus:h,onBlur:m,maxlength:"128"},null,40,Te),[[e.vModelDynamic,t.value]]),n.after.length>0?(e.openBlock(),e.createBlock(v,{key:3,"icon-class":n.after,onClick:i},null,8,["icon-class"])):e.renderSlot(_.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),Ne={key:0},xe=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 l=e.useModel(a,"modelValue"),t=a,n=e.ref(null);return(o,d)=>{const h=e.resolveComponent("svg-icon");return l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:n},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",Ne,[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(H,{link:"",type:"primary",onClick:d[0]||(d[0]=m=>l.value=!1)},{default:e.withCtx(()=>[e.createVNode(h,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default",{},()=>[d[1]||(d[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(o.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),ze=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 l=a;return(t,n)=>{const o=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(l.class)},[e.createElementVNode("header",null,[e.renderSlot(t.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(l.name)+" ",1),e.createVNode(o,{"icon-class":l.iconAfter},null,8,["icon-class"])])]),e.renderSlot(t.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(t.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),je={class:"popup"},Pe={class:"wrapper"},Oe={class:"scrollbar"},ve=["onClick"],Fe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(a){const l=e.ref({fullText:""}),t=e.ref(!1),n=e.ref([]),o=e.useModel(a,"modelValue"),d=a;e.watch(o.text,i=>{i.length>3&&(l.value.fullText=i)}),e.watch(l.value.fullText,(i,u)=>{t.value=i.length>3&&i.length>u.length,i.length>3&&h()});const h=()=>{let i="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(l.value.fullText),axios.post(i,{query:l.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+d.token}}).then(u=>{console.log(u.data.suggestions),n.value=u.data.suggestions,n.value.length===1&&m(n.value[0])}).catch(u=>{console.log(u)})},m=i=>{l.value.fullText=i.value,t.value=!1;const u={};u.text=i.value,u.coords=[Number(i.data.geo_lat),Number(i.data.geo_lon)],u.suggestion=i.data,o.value=u};return(i,u)=>{const $=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",je,[e.createVNode($,{size:"large",modelValue:l.value.fullText,"onUpdate:modelValue":u[0]||(u[0]=D=>l.value.fullText=D),placeholder:a.placeholder},null,8,["modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",Pe,[e.createElementVNode("ul",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(D,p)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:p,onClick:_=>m(D)},e.toDisplayString(D.value),9,ve))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Ie={key:0},W={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(a){const l=a,t=e.computed(()=>{let o=["sw-skeleton-item"];return l.size.length>0&&o.push("sw-"+l.size),l.animate&&o.push("sw-animate"),l.class.length>0&&o.push(l.class),o}),n=e.computed(()=>({width:l.width+"%"}));return(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(n.value)},[l.animate?(e.openBlock(),e.createElementBlock("div",Ie)):e.createCommentVNode("",!0)],6))}},Ae=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"})),Le=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(a){const l=a;return(t,n)=>l.visual?e.renderSlot(t.$slots,"default",{key:0},()=>[n[0]||(n[0]=e.createTextVNode("1"))]):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",l.class])},[e.renderSlot(t.$slots,"skeleton",{},()=>[e.createVNode(W,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),Ye=["name","id"],qe=["for","data-onlabel","data-offlabel"],Re=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 l=e.useModel(a,"modelValue"),t=a,n=e.computed(()=>{let o=["sw-switch"];return t.size.length>0&&o.push("sw-"+t.size),t.checkbox&&o.push("sw-checkbox"),t.class.length>0&&o.push(t.class),o});return(o,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":d[0]||(d[0]=h=>l.value=h)},null,8,Ye),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,qe),e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),He=["onClick"],We=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:l}){e.ref(0);const t=e.ref([]),n=a,o=e.useModel(a,"modelValue"),d=l;return t.value=e.useSlots().default().filter(h=>h.type.__name==="SwTabsPane"),e.provide("activeTab",o),e.provide("tabs",t),(h,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+n.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(i,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,class:e.normalizeClass([{active:o.value===u}]),onClick:$=>{o.value=u,d("tab-click",u)}},e.toDisplayString(i.props.label||i.props.title),11,He))),128))]),e.renderSlot(h.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ue=["onClick"],Ge=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:l}){e.ref(0);const t=e.ref([]),n=a,o=e.useModel(a,"modelValue"),d=l;return e.provide("activeTab",o),e.provide("tabs",t),e.provide("registerTab",h=>{t.value.push(h)}),(h,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+n.class)},[e.createElementVNode("header",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(i,u)=>(e.openBlock(),e.createElementBlock("span",{key:u,class:e.normalizeClass([{active:o.value===u}]),onClick:$=>{o.value=u,d("tab-click",u)}},e.toDisplayString(i.props.label||i.props.title),11,Ue))),128))]),e.renderSlot(h.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Xe={key:0,class:"tab-content"},Je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(a){const l=a,t=e.inject("activeTab"),n=e.inject("tabs"),o=e.computed(()=>{const d=n.value.findIndex(h=>h.props.title===l.title);return t.value===d});return(d,h)=>o.value?(e.openBlock(),e.createElementBlock("div",Xe,[e.renderSlot(d.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"})),Qe={key:0,class:"tab-content"},Ze=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPaneNew",props:{label:{type:String,required:!0},title:{type:String}},setup(a){const l=a,t=e.inject("registerTab");if(!t)throw new Error("SwTabsPane must be used inside SwTabs");t({props:l});const n=e.inject("activeTab");if(!e.inject("tabs"))throw new Error("Tabs array is not provided by SwTabs");const d=e.inject("tabs").value.length-1;return(h,m)=>e.unref(n)===d?(e.openBlock(),e.createElementBlock("div",Qe,[e.renderSlot(h.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));T.Alert=I,T.Library=oe,T.components=F,Object.defineProperty(T,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";function Q(a){return/^(https?:|mailto:|tel:)/.test(a)}function j(a,n){if(arguments.length===0||!a)return null;const t=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 o="ru-RU",i={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(o,{weekday:"short"}).format(l),F:new Intl.DateTimeFormat(o,{month:"long"}).format(l),M:new Intl.DateTimeFormat(o,{month:"short"}).format(l)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(h,m)=>i[m])}const Z=(a,n)=>{const t=a.__vccOpts||a;for(const[l,o]of n)t[l]=o;return t},K={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return Q(this.iconClass)}}},ee=["href"];function te(a,n,t,l,o,i){return i.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},a.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},a.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,ee)],16))}const F=Z(K,[["render",te]]),q={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:a=>["success","warning","error","info"].includes(a)}},emits:["closed"],setup(a,{emit:n}){const t=a,l=n,o=e.ref(!1);let i=null;const h=()=>{o.value=!0,E()},m=()=>{o.value=!1,l("closed")},d=()=>{i&&(clearTimeout(i),i=null)},f=()=>{E()},E=()=>{i=setTimeout(m,t.duration)};e.onMounted(()=>{h()}),e.onUnmounted(()=>{i&&clearTimeout(i)});const D=e.computed(()=>{const p=["sw-alert"];return t.size.length>0&&p.push(`sw-${t.size}`),t.type.length>0&&p.push(`sw-${t.type}`),t.class.length>0&&p.push(t.class),p});return(p,_)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(D.value),onMouseenter:d,onMouseleave:f},[t.before.length>0?(e.openBlock(),e.createBlock(F,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(p.$slots,"prefix",{key:1}),e.renderSlot(p.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(F,{key:2,"icon-class":t.after,onClick:m},null,8,["icon-class"])):e.renderSlot(p.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},le=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function A(a={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const n=e.createApp({setup(){return()=>e.h(q,{...a,onClose:()=>{P.removeChild(n._container),n.unmount()}})}}),t=n.mount(document.createElement("div"));P.appendChild(t.$el)}const R=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>le),"./components/SwButton.vue":()=>Promise.resolve().then(()=>ne),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>ae),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>be),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>$e),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>De),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwInput.vue":()=>Promise.resolve().then(()=>Ve),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>xe),"./components/SwSection.vue":()=>Promise.resolve().then(()=>ze),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Fe),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Le),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ae),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>Re),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>We),"./components/SwTabsNew.vue":()=>Promise.resolve().then(()=>Ge),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Je),"./components/SwTabsPaneNew.vue":()=>Promise.resolve().then(()=>Ze)}),I={};for(const a in R){const n=a.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,l)=>l.toUpperCase());I[n]=e.defineAsyncComponent(()=>R[a]())}const oe={install(a){Object.keys(I).forEach(n=>{a.component(n,I[n]),console.log(n)}),a.config.globalProperties.$Alert=A,a.provide("Alert",A)}},H={__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,t=()=>{if(n.href.length>0){const o=document.createElement("a");o.setAttribute("href",n.href),o.setAttribute("target","_blank"),o.click()}},l=e.computed(()=>{let o=["sw-button"];return n.size.length>0&&o.push("sw-"+n.size),n.type.length>0&&o.push("sw-"+n.type),n.round&&o.push("sw-round"),n.text&&o.push("sw-text"),n.link&&o.push("sw-link"),n.class.length>0&&o.push(n.class),o});return(o,i)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),onClick:t},[e.renderSlot(o.$slots,"default")],2))}},ne=Object.freeze(Object.defineProperty({__proto__:null,default:H},Symbol.toStringTag,{value:"Module"})),ae=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(null),t=a,l=e.computed(()=>{var o;return t.visual?((o=n.value)==null?void 0:o.scrollHeight)+"px":"0px"});return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({height:l.value}),ref_key:"collapse",ref:n},[e.renderSlot(o.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),se={class:"sw-data-picker"},re={class:"month_year"},ce={class:"text"},ie={key:0,class:"week"},de={key:1,class:"year"},pe=["onClick"],me={key:2,class:"month"},fe=["onClick"],ue={key:0},ge={class:"month_year"},he={class:"text"},ye={key:0,class:"week"},_e={key:1,class:"year"},Se=["onClick"],ke={key:2,class:"month"},we=["onClick"],be=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(a,{emit:n}){var U,G,X,J;const t=a,l=n,o=e.ref(0),i=e.ref(new Date),h=e.ref(new Date),m=e.ref(new Date().getFullYear()),d=e.ref(new Date().getMonth()),f=e.ref(new Date().getFullYear()),E=e.ref(new Date().getMonth()),D=e.ref(new Date().getMonth()+1),p=e.ref([]),_=e.ref(0),S=e.ref(-1),g=e.ref(-1),w=e.ref(navigator.languages||"ru"),y=/en|zh|ja|he/.test(w.value)?0:1,N=e.computed(()=>Array.from({length:12},(c,s)=>{const r=new Date(2024,s);return new Intl.DateTimeFormat(w.value,{month:"long"}).format(r)})),B=c=>{let s=c.split(c.match(/\D.*?\D?/));return s[0].length>2?s.join("-")+"T00:00:01":s.reverse().join("-")+"T00:00:01"};(U=t.data)!=null&&U.startDate&&(i.value=new Date(B(t.data.startDate)),m.value=i.value.getFullYear(),d.value=i.value.getMonth()),(G=t.data)!=null&&G.endDate&&t.range==="range"&&(h.value=new Date(B(t.data.endDate)),f.value=h.value.getFullYear(),E.value=h.value.getMonth());const k=()=>{p.value=[],_.value=0;const c=new Date(m.value,d.value,0);for(let r=c.getDate()-c.getDay()+y;r<=c.getDate();r++)c.getDay()!==6+y&&(p.value.push({day:r,month:c.getMonth(),year:c.getFullYear(),class:[]}),_.value++);const s=new Date(m.value,d.value+1,0).getDate();for(let r=1;r<=s;r++)p.value.push({day:r,month:d.value,year:m.value,class:[]}),_.value++;if(t.range==="range"){const r=new Date(m.value,d.value+1,1),u=new Date(m.value,d.value+2,0).getDate();for(let M=1;M<=u;M++)p.value.push({day:M,month:r.getMonth(),year:r.getFullYear(),class:[]})}$()},$=()=>{var s;if(!((s=t.data)!=null&&s.holiday))return;const c=(r,u)=>{r.forEach(M=>{const[b,C,x]=M.split("-").map(Number),O=p.value.findIndex(Y=>Y.year===b&&Y.month+1===C&&Y.day===x);O!==-1&&(p.value[O].class[0]=u)})};c(t.data.holiday.preholidays,"preholiday"),c(t.data.holiday.holidays,"weekend"),c(t.data.holiday.holiday,"holiday"),c(t.data.holiday.nowork,"nowork")},z=()=>{if(!t.limitation||t.limitation.length<2)return!1;const c=[...t.limitation].sort((s,r)=>new Date(B(s.startDate)).getTime()-new Date(B(r.startDate)).getTime());for(let s=1;s<c.length;s++){const r=new Date(B(c[s-1].endDate));if(new Date(B(c[s].startDate))<=r)return console.warn("Warning: Диапазоны пересекаются:",c[s-1],c[s]),!0}return!1},v=(c,s,r)=>{if(!t.limitation||t.limitation.length===0)return!0;const u=new Date(c,s,r).getTime();for(let M of t.limitation){const{startDate:b,endDate:C}=M;if(!b&&C){const x=new Date(B(C)).getTime();if(u<=x)return!1}if(b&&!C){const x=new Date(B(b)).getTime();if(u>=x)return!1}if(b&&C){const x=new Date(B(b)).getTime(),O=new Date(B(C)).getTime();if(x<=O){if(u>=x&&u<=O)return!1}else if(u>=x||u<=O)return!1}}return!0},L=(c,s)=>{const r=j(new Date(c.year,c.month,c.day),"{dd}.{m}.{Y}");t.range==="range"?g.value!==-1?(Ke(),S.value=s,p.value[s].class[1]="active"):S.value!==-1?(g.value=s,et(S.value,g.value,r)):(S.value=s,p.value[s].class[1]="active"):(S.value!==-1&&(p.value[S.value].class[1]=""),S.value=s,p.value[s].class[1]="active",l("input",{dateStart:r,count:1}))},Ke=()=>{p.value.forEach(c=>c.class[1]=""),S.value=-1,g.value=-1},et=(c,s,r)=>{let u=j(new Date(p.value[c].year,p.value[c].month,p.value[c].day),"{dd}.{m}.{Y}"),M=tt(c,s);if(s>=c)for(let b=c+1;b<s;b++)p.value[b].class[1]="select";else for(let b=s+1;b<c;b++)p.value[b].class[1]="select";p.value[s].class[1]="active",l("input",{dateStart:u,dateEnd:r,count:M})},tt=(c,s)=>{var b;let r=Math.abs(c-s)+1,[u,M]=[Math.min(c,s),Math.max(c,s)];for(let C=u;C<=M;C++)((b=p.value[C])==null?void 0:b.class[0])==="holiday"&&r--;return r},T=(c,s)=>{v(c,s)&&(i.value=new Date(c,s,1),m.value=i.value.getFullYear(),d.value=i.value.getMonth(),t.range==="year"?L({year:c,month:s,day:1},8):k())};if(k(),z()&&console.error("Ошибка: Найдены пересекающиеся диапазоны!"),(X=t.data)!=null&&X.startDate&&(S.value=p.value.findIndex(c=>c.day===i.value.getDate()&&c.month===d.value&&c.year===m.value),S.value!==-1&&(p.value[S.value].class[1]="active")),(J=t.data)!=null&&J.endDate&&t.range==="range"&&(g.value=p.value.findIndex(c=>c.day===h.value.getDate()&&c.month===E.value&&c.year===f.value),g.value!==-1)){p.value[g.value].class[1]="active";for(let c=S.value+1;c<g.value;c++)p.value[c].class[1]="select"}return(c,s)=>(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",null,[e.createElementVNode("p",re,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[0]||(s[0]=e.withModifiers(r=>T(m.value-1,d.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:s[1]||(s[1]=e.withModifiers(r=>{o.value=0,T(m.value,d.value-1)},["prevent"]))},"‹")]),e.createElementVNode("span",ce,[e.createElementVNode("button",{onClick:s[2]||(s[2]=e.withModifiers(r=>o.value=1,["prevent"]))},e.toDisplayString(m.value),1),e.createElementVNode("button",{onClick:s[3]||(s[3]=e.withModifiers(r=>o.value=1,["prevent"]))},e.toDisplayString(e.unref(j)(i.value.setMonth(d.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[4]||(s[4]=e.withModifiers(r=>{o.value=0,T(m.value,d.value+1)},["prevent"]))},"›"),e.createElementVNode("button",{onClick:s[5]||(s[5]=e.withModifiers(r=>T(m.value+1,d.value),["prevent"]))},"»")])]),t.range==="year"||o.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ie,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(r,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(j)(new Date(1970,1,r+e.unref(y)),"{D}")),1)),64))])),t.range==="year"||o.value===1?(e.openBlock(),e.createElementBlock("div",de,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(r,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(M=>{o.value=0,T(m.value,u)},["prevent"])},e.toDisplayString(r),9,pe))),128))])):(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(r,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u<_.value+(7-new Date(m.value,d.value+1,1).getDay()+e.unref(y))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(r.month===d.value&&v(r.year,r.month,r.day)?r.class:"disabled"),onClick:e.withModifiers(()=>{r.month===d.value&&L(r,u)},["prevent"])},e.toDisplayString(r.day),11,fe)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",ue,[e.createElementVNode("p",ge,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[6]||(s[6]=e.withModifiers(r=>T(m.value-1,d.value),["prevent"]))},"«"),e.createElementVNode("button",{onClick:s[7]||(s[7]=e.withModifiers(r=>{o.value=0,T(m.value,d.value-1)},["prevent"]))},"‹")]),e.createElementVNode("span",he,[e.createElementVNode("button",{onClick:s[8]||(s[8]=e.withModifiers(r=>o.value=2,["prevent"]))},e.toDisplayString(new Date(m.value,d.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:s[9]||(s[9]=e.withModifiers(r=>o.value=2,["prevent"]))},e.toDisplayString(e.unref(j)(i.value.setMonth(d.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:s[10]||(s[10]=e.withModifiers(r=>{o.value=0,T(m.value,d.value+1)},["prevent"]))},"›"),e.createElementVNode("button",{onClick:s[11]||(s[11]=e.withModifiers(r=>T(m.value+1,d.value),["prevent"]))},"»")])]),o.value!==2?(e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(r,u)=>e.createElementVNode("button",{key:u,class:"disabled"},e.toDisplayString(e.unref(j)(new Date(1970,1,r+e.unref(y)),"{D}")),1)),64))])):e.createCommentVNode("",!0),o.value===2?(e.openBlock(),e.createElementBlock("div",_e,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(r,u)=>(e.openBlock(),e.createElementBlock("button",{key:u,onClick:e.withModifiers(M=>{o.value=0,T(m.value,u-1)},["prevent"])},e.toDisplayString(r),9,Se))),128))])):(e.openBlock(),e.createElementBlock("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(r,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[u>=_.value-(7+new Date(m.value,d.value+1,1).getDay()-e.unref(y))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(r.month===D.value&&v(r.year,r.month,r.day)?r.class:"disabled"),onClick:e.withModifiers(()=>{r.month===D.value&&L(r,u)},["prevent"])},e.toDisplayString(r.day),11,we)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),Be=["id"],$e=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},trigger:{type:String,default:"click"},placement:{type:String,default:"bottom-left"},maxWidth:{type:Number,default:0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(a,{expose:n}){const t=a;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const l=e.useModel(a,"modelValue"),o=e.ref(null),i=e.ref(null),h=e.ref({}),m=Math.ceil(Math.random()*1e3),d=e.computed(()=>{let g=["sw-dropdown"];return t.size.length>0&&g.push("sw-"+t.size),t.type.length>0&&g.push("sw-"+t.type),g}),f=async()=>{if(await e.nextTick(),!i.value)return;const g=window.pageYOffset||document.documentElement.scrollTop,w=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${g}px`,document.body.style.left=`-${w}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=g,document.documentElement.scrollLeft=w;const y=o.value.getBoundingClientRect(),N=i.value.offsetHeight,B=i.value.offsetWidth;console.log("popupHeight",N),console.log("popupWidth",B);let k=y.left+y.width/2+w,$=y.top+y.height/2+g;const[z,v]=t.placement.split("-",2);switch(console.log(t.placement),z){case"bottom":$=$+y.height/2+8;break;case"top":$=$-y.height/2-8-N;break;case"left":k=k-B-y.width/2-8,$=$-N/2;break;case"right":k=k+y.width/2+8,$=$-N/2;break}switch(v){case"left":k=k-y.width/2;break;case"right":k=k-B+y.width/2;break}k<0&&(k=0),$<0&&($=0),h.value={position:"absolute",top:`${$}px`,left:`${k}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}};n({positionPopup:f});const E=()=>{t.trigger==="click"&&(l.value=!l.value),l.value&&f()},D=()=>{t.trigger==="hover"&&(l.value=!l.value),l.value&&f()},p=()=>{t.trigger==="context"&&(l.value=!l.value),l.value&&f()},_=()=>{l.value&&f()},S=g=>{!g.target.closest(`[id="${m}"]`)&&o.value&&!o.value.contains(g.target)&&(l.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",_),window.addEventListener("click",S)}),e.onUnmounted(()=>{window.removeEventListener("resize",_),window.removeEventListener("click",S)}),(g,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value),onClick:w[0]||(w[0]=y=>E()),onMouseover:w[1]||(w[1]=e.withModifiers(y=>D(),["stop"])),onMouseleave:w[2]||(w[2]=e.withModifiers(y=>D(),["stop"])),onContextmenu:w[3]||(w[3]=e.withModifiers(y=>p(),["stop"])),ref_key:"dropdownRef",ref:o},[e.renderSlot(g.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[l.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:i,id:e.unref(m),class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(h.value),tabindex:"-1"},[e.renderSlot(g.$slots,"dropdown")],14,Be)):e.createCommentVNode("",!0)]))],34))}}},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,t=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,o)=>{const i=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(i,{"icon-class":a.iconBefore},null,8,["icon-class"]),e.renderSlot(l.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(a){const n=a,t=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,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Me=["for"],Ce={key:0,title:"Это поле обязательно для заполнения."},Te=["required","placeholder","type","id","name"],Ve=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","focusInput"],["update:modelValue"]),setup(a,{emit:n}){var p;const t=e.useModel(a,"modelValue"),l=a,o=e.ref(null),i=n,h=_=>{i("focusInput"),_.target.setSelectionRange(t.value.length,t.value.length),o.value!==null&&(o.value.style.top="-.6em")},m=_=>{var S;((S=t.value)==null?void 0:S.length)===0&&o.value!==null&&o.value.removeAttribute("style")};((p=t.value)==null?void 0:p.length)>0&&o.value!==null&&(o.value.style.top="-.6em");const d=()=>{i("suffix")},f=()=>{i("prefix")},E=e.computed(()=>{let _=["sw-input"];return l.size.length>0&&_.push("sw-"+l.size),l.class.length>0&&_.push(l.class),_});e.watch(t,(_,S)=>{l.type==="phone"&&(t.value=D(_,S))});const D=(_,S)=>{if(/^\+[0-9]\s/.test(S)&&_.length===2||/^\+0\s/.test(_))return"";const g=_;if(typeof g>"u"||g.length===0)return g;const w="+0 (___) ___-__-__";let y=0;const N=w.replace(/\D/g,""),B=g.replace(/\D/g,"");let k=w.replace(/[_\d]/g,z=>y<B.length?B.charAt(y++)||N.charAt(y):z);y=k.indexOf("_"),y!==-1&&(y=y<5?3:y,k=k.slice(0,y));let $=w.slice(0,g.length).replace(/_+/g,z=>`\\d{1,${z.length}}`).replace(/[+()]/g,"\\$&");if($=new RegExp(`^${$}$`),k=k.replace(/[-—]$|(\) )$/g,""),!$.test(g)||g.length<5)return k};return(_,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(E.value)},[l.before.length>0?(e.openBlock(),e.createBlock(F,{key:0,"icon-class":l.before,onClick:f},null,8,["icon-class"])):e.renderSlot(_.$slots,"prefix",{key:1}),l.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:l.name,ref_key:"lab",ref:o},[e.createTextVNode(e.toDisplayString(l.label),1),l.required?(e.openBlock(),e.createElementBlock("span",Ce,"*")):e.createCommentVNode("",!0)],8,Me)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=g=>t.value=g),required:l.required,placeholder:l.required&&l.label.length===0?l.placeholder+"*":l.placeholder,type:l.type,id:l.name,name:l.name,size:"60",onFocus:h,onBlur:m,maxlength:"128"},null,40,Te),[[e.vModelDynamic,t.value]]),l.after.length>0?(e.openBlock(),e.createBlock(F,{key:3,"icon-class":l.after,onClick:d},null,8,["icon-class"])):e.renderSlot(_.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),Ne={key:0},xe=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"),t=a,l=e.ref(null);return(o,i)=>{const h=e.resolveComponent("svg-icon");return n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:l},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",Ne,[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(H,{link:"",type:"primary",onClick:i[0]||(i[0]=m=>n.value=!1)},{default:e.withCtx(()=>[e.createVNode(h,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default",{},()=>[i[1]||(i[1]=e.createTextVNode("111222"))]),e.createElementVNode("footer",null,[e.renderSlot(o.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),ze=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(t,l)=>{const o=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(n.class)},[e.createElementVNode("header",null,[e.renderSlot(t.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(n.name)+" ",1),e.createVNode(o,{"icon-class":n.iconAfter},null,8,["icon-class"])])]),e.renderSlot(t.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(t.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),je={class:"popup"},Pe={class:"wrapper"},Oe={class:"scrollbar"},ve=["onClick"],Fe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(a){const n=e.ref({fullText:""}),t=e.ref(!1),l=e.ref([]),o=e.useModel(a,"modelValue"),i=a;e.watch(o.text,d=>{d.length>3&&(n.value.fullText=d)}),e.watch(n.value.fullText,(d,f)=>{t.value=d.length>3&&d.length>f.length,d.length>3&&h()});const h=()=>{let d="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(n.value.fullText),axios.post(d,{query:n.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+i.token}}).then(f=>{console.log(f.data.suggestions),l.value=f.data.suggestions,l.value.length===1&&m(l.value[0])}).catch(f=>{console.log(f)})},m=d=>{n.value.fullText=d.value,t.value=!1;const f={};f.text=d.value,f.coords=[Number(d.data.geo_lat),Number(d.data.geo_lon)],f.suggestion=d.data,o.value=f};return(d,f)=>{const E=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",je,[e.createVNode(E,{size:"large",modelValue:n.value.fullText,"onUpdate:modelValue":f[0]||(f[0]=D=>n.value.fullText=D),placeholder:a.placeholder},null,8,["modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",Pe,[e.createElementVNode("ul",Oe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(D,p)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:p,onClick:_=>m(D)},e.toDisplayString(D.value),9,ve))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Ie={key:0},W={__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,t=e.computed(()=>{let o=["sw-skeleton-item"];return n.size.length>0&&o.push("sw-"+n.size),n.animate&&o.push("sw-animate"),n.class.length>0&&o.push(n.class),o}),l=e.computed(()=>({width:n.width+"%"}));return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(l.value)},[n.animate?(e.openBlock(),e.createElementBlock("div",Ie)):e.createCommentVNode("",!0)],6))}},Ae=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"})),Le=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(t,l)=>n.visual?e.renderSlot(t.$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(t.$slots,"skeleton",{},()=>[e.createVNode(W,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),Ye=["name","id"],qe=["for","data-onlabel","data-offlabel"],Re=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"),t=a,l=e.computed(()=>{let o=["sw-switch"];return t.size.length>0&&o.push("sw-"+t.size),t.checkbox&&o.push("sw-checkbox"),t.class.length>0&&o.push(t.class),o});return(o,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":i[0]||(i[0]=h=>n.value=h)},null,8,Ye),[[e.vModelCheckbox,n.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,qe),e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),He=["onClick"],We=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 t=e.ref([]),l=a,o=e.useModel(a,"modelValue"),i=n;return t.value=e.useSlots().default().filter(h=>h.type.__name==="SwTabsPane"),e.provide("activeTab",o),e.provide("tabs",t),(h,m)=>(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(t.value,(d,f)=>(e.openBlock(),e.createElementBlock("span",{key:f,class:e.normalizeClass([{active:o.value===f}]),onClick:E=>{o.value=f,i("tab-click",f)}},e.toDisplayString(d.props.label||d.props.title),11,He))),128))]),e.renderSlot(h.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ue=["onClick"],Ge=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 t=e.ref([]),l=a,o=e.useModel(a,"modelValue"),i=n;return e.provide("activeTab",o),e.provide("tabs",t),e.provide("registerTab",h=>{t.value.push(h)}),(h,m)=>(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(t.value,(d,f)=>(e.openBlock(),e.createElementBlock("span",{key:f,class:e.normalizeClass([{active:o.value===f}]),onClick:E=>{o.value=f,i("tab-click",f)}},e.toDisplayString(d.props.label||d.props.title),11,Ue))),128))]),e.renderSlot(h.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Xe={key:0,class:"tab-content"},Je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0}},setup(a){const n=a,t=e.inject("activeTab"),l=e.inject("tabs"),o=e.computed(()=>{const i=l.value.findIndex(h=>h.props.title===n.title);return t.value===i});return(i,h)=>o.value?(e.openBlock(),e.createElementBlock("div",Xe,[e.renderSlot(i.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"})),Qe={key:0,class:"tab-content"},Ze=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPaneNew",props:{label:{type:String,required:!0},title:{type:String}},setup(a){const n=a,t=e.inject("registerTab");if(!t)throw new Error("SwTabsPane must be used inside SwTabs");t({props:n});const l=e.inject("activeTab");if(!e.inject("tabs"))throw new Error("Tabs array is not provided by SwTabs");const i=e.inject("tabs").value.length-1;return(h,m)=>e.unref(l)===i?(e.openBlock(),e.createElementBlock("div",Qe,[e.renderSlot(h.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));V.Alert=A,V.Library=oe,V.components=I,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { A as s, L as t, c as e } from "./index-6H83EyTM.js";
2
+ import { A as s, L as t, c as e } from "./index-D4A-407M.js";
3
3
  export {
4
4
  s as Alert,
5
5
  t as Library,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.3.53",
3
+ "version": "0.3.54",
4
4
  "description": "Vue components of Component SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,104 +0,0 @@
1
- import { computed as b, ref as p, watch as W, nextTick as M, onMounted as B, onUnmounted as T, createElementBlock as k, openBlock as f, withModifiers as m, normalizeClass as x, renderSlot as $, createBlock as H, Teleport as O, createCommentVNode as P, normalizeStyle as N, unref as q } from "vue";
2
- const A = ["id"], U = {
3
- __name: "SwDropdown",
4
- props: {
5
- class: { type: String, default: "" },
6
- size: { type: String, default: "" },
7
- type: { type: String, default: "" },
8
- trigger: { type: String, default: "click" },
9
- placement: { type: String, default: "bottom-left" },
10
- maxWidth: { type: Number, default: 0 },
11
- manual: { type: Boolean, default: !1 }
12
- },
13
- setup(S) {
14
- const l = S;
15
- b(() => "dropdown" + Array.from(document.body.children).indexOf(document.querySelector("ul")));
16
- const e = p(!1), d = p(null), u = p(null), v = p({}), g = Math.ceil(Math.random() * 1e3), E = b(
17
- () => {
18
- let t = ["sw-dropdown"];
19
- return l.size.length > 0 && t.push("sw-" + l.size), l.type.length > 0 && t.push("sw-" + l.type), t;
20
- }
21
- );
22
- W(() => l.manual, (t) => {
23
- e.value = t, console.log("watch", e.value), e.value && a();
24
- });
25
- const a = async () => {
26
- if (await M(), !u.value) return;
27
- const t = window.pageYOffset || document.documentElement.scrollTop, n = window.pageXOffset || document.documentElement.scrollLeft;
28
- document.body.style.position = "fixed", document.body.style.top = `-${t}px`, document.body.style.left = `-${n}px`, document.body.style.position = "", document.body.style.top = "", document.body.style.left = "", document.documentElement.scrollTop = t, document.documentElement.scrollLeft = n;
29
- const o = d.value.getBoundingClientRect(), r = u.value.offsetHeight, c = u.value.offsetWidth;
30
- console.log("popupHeight", r), console.log("popupWidth", c);
31
- let s = o.left + o.width / 2 + n, i = o.top + o.height / 2 + t;
32
- const [L, R] = l.placement.split("-", 2);
33
- switch (console.log(l.placement), L) {
34
- case "bottom":
35
- i = i + o.height / 2 + 8;
36
- break;
37
- case "top":
38
- i = i - o.height / 2 - 8 - r;
39
- break;
40
- case "left":
41
- s = s - c - o.width / 2 - 8, i = i - r / 2;
42
- break;
43
- case "right":
44
- s = s + o.width / 2 + 8, i = i - r / 2;
45
- break;
46
- }
47
- switch (R) {
48
- case "left":
49
- s = s - o.width / 2;
50
- break;
51
- case "right":
52
- s = s - c + o.width / 2;
53
- break;
54
- }
55
- s < 0 && (s = 0), i < 0 && (i = 0), v.value = {
56
- position: "absolute",
57
- top: `${i}px`,
58
- left: `${s}px`,
59
- maxWidth: l.maxWidth === 0 ? "" : `${l.maxWidth}px`
60
- };
61
- }, z = () => {
62
- l.trigger === "click" && (e.value = !e.value), e.value && a();
63
- }, w = () => {
64
- l.trigger === "hover" && (e.value = !e.value), e.value && a();
65
- }, C = () => {
66
- l.trigger === "context" && (e.value = !e.value), e.value && a();
67
- }, y = () => {
68
- e.value && a();
69
- }, h = (t) => {
70
- !t.target.closest(`[id="${g}"]`) && d.value && !d.value.contains(t.target) && (e.value = !1);
71
- };
72
- return B(() => {
73
- window.addEventListener("resize", y), window.addEventListener("click", h);
74
- }), T(() => {
75
- window.removeEventListener("resize", y), window.removeEventListener("click", h);
76
- }), (t, n) => (f(), k("div", {
77
- class: x(E.value),
78
- onClick: n[0] || (n[0] = (o) => z()),
79
- onMouseover: n[1] || (n[1] = m((o) => w(), ["stop"])),
80
- onMouseleave: n[2] || (n[2] = m((o) => w(), ["stop"])),
81
- onContextmenu: n[3] || (n[3] = m((o) => C(), ["stop"])),
82
- ref_key: "dropdownRef",
83
- ref: d
84
- }, [
85
- $(t.$slots, "default"),
86
- (f(), H(O, { to: "body" }, [
87
- e.value ? (f(), k("ul", {
88
- key: 0,
89
- ref_key: "popupRef",
90
- ref: u,
91
- id: q(g),
92
- class: x(["sw-dropdown-popup", l.class]),
93
- style: N(v.value),
94
- tabindex: "-1"
95
- }, [
96
- $(t.$slots, "dropdown")
97
- ], 14, A)) : P("", !0)
98
- ]))
99
- ], 34));
100
- }
101
- };
102
- export {
103
- U as default
104
- };