@studio-west/component-sw 0.11.22 → 0.11.24
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 +152 -4
- package/dist/{SwTable-QuMn5owM.js → SwTable-Da75Q9c5.js} +22 -15
- package/dist/{SwTableColumn-CCqBUIhN.js → SwTableColumn-CUaP7Ncj.js} +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/src/components/SwTable.vue +33 -41
- package/src/components/SwTableColumn.vue +4 -3
package/README.md
CHANGED
|
@@ -698,7 +698,7 @@ model - состояние чекбокса (checked ) булевое знач
|
|
|
698
698
|
|
|
699
699
|
## SwTable
|
|
700
700
|
|
|
701
|
-
|
|
701
|
+
Компонент `SwTable` представляет собой динамическую таблицу с поддержкой сложных заголовков, объединения ячеек и кастомизации содержимого через слоты.
|
|
702
702
|
|
|
703
703
|
### Свойства / Properties
|
|
704
704
|
|
|
@@ -708,15 +708,24 @@ model - состояние чекбокса (checked ) булевое знач
|
|
|
708
708
|
|
|
709
709
|
### Слоты / Slots
|
|
710
710
|
|
|
711
|
-
#`<
|
|
711
|
+
#`<prop>` - именованный слот для конкретной колонки (приоритет выше default). Доступные параметры: `{ row, $index, value }`
|
|
712
|
+
|
|
713
|
+
#default - универсальный слот для всех колонок. Доступные параметры: `{ row, $index, column, value }`
|
|
714
|
+
|
|
715
|
+
- `row` - весь объект строки данных
|
|
716
|
+
- `$index` - индекс строки (начиная с 0)
|
|
717
|
+
- `column` - имя колонки (prop)
|
|
718
|
+
- `value` - значение ячейки
|
|
712
719
|
|
|
713
720
|
### Пример использования / Example Usage
|
|
714
721
|
|
|
722
|
+
#### Базовый пример с вложенными колонками:
|
|
723
|
+
|
|
715
724
|
```html
|
|
716
725
|
<script>
|
|
717
726
|
let table = [
|
|
718
|
-
{city:{label:'Moscow', rowspan:2},district:'Center'},
|
|
719
|
-
{city:'Moscow',district:'MRCR'},
|
|
727
|
+
{city:{label:'Moscow', rowspan:2},district:'Center',speed:{max:80,min:50,midl:70}},
|
|
728
|
+
{city:'Moscow',district:'MRCR',speed:{max:130,min:90,midl:120}},
|
|
720
729
|
]
|
|
721
730
|
</script>
|
|
722
731
|
<sw-table :data="table">
|
|
@@ -724,6 +733,145 @@ model - состояние чекбокса (checked ) булевое знач
|
|
|
724
733
|
<sw-table-column label="City" prop="city"/>
|
|
725
734
|
<sw-table-column label="District" prop="district"/>
|
|
726
735
|
</sw-table-column>
|
|
736
|
+
<sw-table-column label="Speed" prop="speed.midl"/>
|
|
737
|
+
</sw-table>
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
#### Пример с v-for для динамических колонок:
|
|
741
|
+
|
|
742
|
+
```html
|
|
743
|
+
<script setup>
|
|
744
|
+
import { ref } from 'vue'
|
|
745
|
+
|
|
746
|
+
const columns = ref([
|
|
747
|
+
{ prop: 'name', label: 'Имя', width: '150px' },
|
|
748
|
+
{ prop: 'age', label: 'Возраст', width: '100px' },
|
|
749
|
+
{ prop: 'email', label: 'Email', width: '200px' }
|
|
750
|
+
])
|
|
751
|
+
|
|
752
|
+
const tableData = ref([
|
|
753
|
+
{ name: 'Иван', age: 25, email: 'ivan@example.com' },
|
|
754
|
+
{ name: 'Мария', age: 30, email: 'maria@example.com' },
|
|
755
|
+
{ name: 'Петр', age: 35, email: 'petr@example.com' }
|
|
756
|
+
])
|
|
757
|
+
</script>
|
|
758
|
+
|
|
759
|
+
<sw-table :data="tableData">
|
|
760
|
+
<sw-table-column
|
|
761
|
+
v-for="column in columns"
|
|
762
|
+
:key="column.prop"
|
|
763
|
+
:prop="column.prop"
|
|
764
|
+
:label="column.label"
|
|
765
|
+
:width="column.width"
|
|
766
|
+
/>
|
|
767
|
+
</sw-table>
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
#### Пример с кастомизацией через слоты:
|
|
771
|
+
|
|
772
|
+
```html
|
|
773
|
+
<script setup>
|
|
774
|
+
import { ref } from 'vue'
|
|
775
|
+
|
|
776
|
+
const users = ref([
|
|
777
|
+
{ id: 1, name: 'Иван Петров', age: 25, status: 'active', email: 'ivan@example.com' },
|
|
778
|
+
{ id: 2, name: 'Мария Сидорова', age: 30, status: 'inactive', email: 'maria@example.com' },
|
|
779
|
+
{ id: 3, name: 'Петр Иванов', age: 35, status: 'active', email: 'petr@example.com' }
|
|
780
|
+
])
|
|
781
|
+
|
|
782
|
+
const deleteUser = (id) => {
|
|
783
|
+
console.log('Delete user:', id)
|
|
784
|
+
}
|
|
785
|
+
</script>
|
|
786
|
+
|
|
787
|
+
<sw-table :data="users">
|
|
788
|
+
<sw-table-column prop="name" label="Имя" />
|
|
789
|
+
<sw-table-column prop="age" label="Возраст" />
|
|
790
|
+
<sw-table-column prop="status" label="Статус" />
|
|
791
|
+
<sw-table-column prop="actions" label="Действия" width="150px" />
|
|
792
|
+
|
|
793
|
+
<!-- Именованный слот для конкретной колонки -->
|
|
794
|
+
<template #name="{ row, value }">
|
|
795
|
+
<strong>{{ value }}</strong>
|
|
796
|
+
</template>
|
|
797
|
+
|
|
798
|
+
<template #age="{ value }">
|
|
799
|
+
<span style="color: blue">{{ value }} лет</span>
|
|
800
|
+
</template>
|
|
801
|
+
|
|
802
|
+
<template #status="{ value }">
|
|
803
|
+
<span :style="{ color: value === 'active' ? 'green' : 'red' }">
|
|
804
|
+
{{ value === 'active' ? '✓ Активен' : '✗ Неактивен' }}
|
|
805
|
+
</span>
|
|
806
|
+
</template>
|
|
807
|
+
|
|
808
|
+
<!-- Default слот для колонки actions -->
|
|
809
|
+
<template #actions="{ row }">
|
|
810
|
+
<button @click="deleteUser(row.id)">Удалить</button>
|
|
811
|
+
<a :href="`mailto:${row.email}`">Написать</a>
|
|
812
|
+
</template>
|
|
813
|
+
</sw-table>
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
#### Пример с универсальным default слотом:
|
|
817
|
+
|
|
818
|
+
```html
|
|
819
|
+
<script setup>
|
|
820
|
+
import { ref } from 'vue'
|
|
821
|
+
|
|
822
|
+
const products = ref([
|
|
823
|
+
{ name: 'Товар 1', price: 1000, quantity: 5 },
|
|
824
|
+
{ name: 'Товар 2', price: 2500, quantity: 3 },
|
|
825
|
+
{ name: 'Товар 3', price: 750, quantity: 10 }
|
|
826
|
+
])
|
|
827
|
+
</script>
|
|
828
|
+
|
|
829
|
+
<sw-table :data="products">
|
|
830
|
+
<sw-table-column prop="name" label="Название" />
|
|
831
|
+
<sw-table-column prop="price" label="Цена" />
|
|
832
|
+
<sw-table-column prop="quantity" label="Количество" />
|
|
833
|
+
|
|
834
|
+
<!-- Универсальный слот для всех колонок -->
|
|
835
|
+
<template #default="{ row, column, value }">
|
|
836
|
+
<span v-if="column === 'price'" style="font-weight: bold">
|
|
837
|
+
{{ value }} ₽
|
|
838
|
+
</span>
|
|
839
|
+
<span v-else-if="column === 'quantity' && value < 5" style="color: red">
|
|
840
|
+
{{ value }} ⚠️ Мало
|
|
841
|
+
</span>
|
|
842
|
+
<span v-else>{{ value }}</span>
|
|
843
|
+
</template>
|
|
844
|
+
</sw-table>
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
#### Пример с объединением ячеек (rowspan/colspan):
|
|
848
|
+
|
|
849
|
+
```html
|
|
850
|
+
<script setup>
|
|
851
|
+
import { ref } from 'vue'
|
|
852
|
+
|
|
853
|
+
const complexData = ref([
|
|
854
|
+
{
|
|
855
|
+
city: { label: 'Москва', rowspan: 2 },
|
|
856
|
+
district: 'Центр',
|
|
857
|
+
population: 500000
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
city: 'Москва', // будет скрыта из-за rowspan
|
|
861
|
+
district: 'Север',
|
|
862
|
+
population: 300000
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
region: { label: 'Общая статистика', colspan: 2 },
|
|
866
|
+
total: 800000
|
|
867
|
+
}
|
|
868
|
+
])
|
|
869
|
+
</script>
|
|
870
|
+
|
|
871
|
+
<sw-table :data="complexData">
|
|
872
|
+
<sw-table-column label="Город" prop="city" />
|
|
873
|
+
<sw-table-column label="Район" prop="district" />
|
|
874
|
+
<sw-table-column label="Население" prop="population" />
|
|
727
875
|
</sw-table>
|
|
728
876
|
```
|
|
729
877
|
---
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e from "./SwTableColumn-
|
|
1
|
+
import e from "./SwTableColumn-CUaP7Ncj.js";
|
|
2
2
|
import { Fragment as t, computed as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, normalizeStyle as o, onMounted as s, openBlock as c, ref as l, renderList as u, renderSlot as d, toDisplayString as f, useSlots as p } from "vue";
|
|
3
3
|
//#region src/components/SwTable.vue
|
|
4
4
|
var m = { class: "sw-table" }, h = ["colspan", "rowspan"], g = ["colspan", "rowspan"], _ = {
|
|
@@ -11,22 +11,29 @@ var m = { class: "sw-table" }, h = ["colspan", "rowspan"], g = ["colspan", "rows
|
|
|
11
11
|
let v = _, y = p(), b = l([]);
|
|
12
12
|
function x(t) {
|
|
13
13
|
let n = [];
|
|
14
|
-
for (let r of t)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (typeof r.children?.default == "function") try {
|
|
20
|
-
t = r.children.default();
|
|
21
|
-
} catch (e) {
|
|
22
|
-
console.warn("Error calling default slot:", e);
|
|
14
|
+
for (let r of t) {
|
|
15
|
+
if (r.type === Symbol.for("v-fgt") || Array.isArray(r.children)) {
|
|
16
|
+
let e = x(Array.isArray(r.children) ? r.children : []);
|
|
17
|
+
n.push(...e);
|
|
18
|
+
continue;
|
|
23
19
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
if (r.type === e || r.type.__name === "SwTableColumn" || r.type.name === "SwTableColumn" || typeof r.type == "object" && r.type.name === "AsyncComponentWrapper" && r.props?.prop !== void 0 || typeof r.type == "object" && r.props?.prop !== void 0 || typeof r.type == "object" && r.props?.label !== void 0) {
|
|
21
|
+
let e = {
|
|
22
|
+
...r.props,
|
|
23
|
+
children: []
|
|
24
|
+
}, t = [];
|
|
25
|
+
if (typeof r.children?.default == "function") try {
|
|
26
|
+
t = r.children.default();
|
|
27
|
+
} catch (e) {
|
|
28
|
+
console.warn("Error calling default slot:", e);
|
|
29
|
+
}
|
|
30
|
+
else Array.isArray(r.children) && (t = r.children);
|
|
31
|
+
if (t && t.length > 0) {
|
|
32
|
+
let n = x(t);
|
|
33
|
+
n.length > 0 && (e.children = n);
|
|
34
|
+
}
|
|
35
|
+
n.push(e);
|
|
28
36
|
}
|
|
29
|
-
n.push(e);
|
|
30
37
|
}
|
|
31
38
|
return n;
|
|
32
39
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[sr]=this[sr]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=W(e);t[r]||(or(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}},G.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),L.reduceDescriptors(G.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),L.freezeMethods(G)}));function lr(e,t){let n=this||U,r=t||n,i=G.from(r.headers),a=r.data;return L.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}var ur=r((()=>{R(),Qn(),K()}));function dr(e){return!!(e&&e.__CANCEL__)}var fr=r((()=>{})),q,J=r((()=>{B(),q=class extends z{constructor(e,t,n){super(e??`canceled`,z.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}}}));function pr(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new z(`Request failed with status code `+n.status,[z.ERR_BAD_REQUEST,z.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}var mr=r((()=>{B()}));function hr(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||``}var gr=r((()=>{}));function _r(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o<t)return;let f=l&&c-l;return f?Math.round(d*1e3/f):void 0}}var vr=r((()=>{}));function yr(e,t){let n=0,r=1e3/t,i,a,o=(t,r=Date.now())=>{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var br=r((()=>{})),Y,xr,Sr,Cr=r((()=>{vr(),br(),R(),Y=(e,t,n=3)=>{let r=0,i=_r(50,250);return yr(n=>{let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=a-r,c=i(s),l=a<=o;r=a,e({loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:c||void 0,estimated:c&&o&&l?(o-a)/c:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},xr=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Sr=e=>(...t)=>L.asap(()=>e(...t))})),wr,Tr=r((()=>{H(),wr=V.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,V.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(V.origin),V.navigator&&/(msie|trident)/i.test(V.navigator.userAgent)):()=>!0})),Er,Dr=r((()=>{R(),H(),Er=V.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];L.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),L.isString(r)&&s.push(`path=${r}`),L.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),L.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.match(RegExp(`(?:^|; )`+e+`=([^;]*)`));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,``,Date.now()-864e5,`/`)}}:{write(){},read(){return null},remove(){}}}));function Or(e){return typeof e==`string`?/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e):!1}var kr=r((()=>{}));function Ar(e,t){return t?e.replace(/\/?\/$/,``)+`/`+t.replace(/^\/+/,``):e}var jr=r((()=>{}));function Mr(e,t,n){let r=!Or(t);return e&&(r||n==0)?Ar(e,t):t}var Nr=r((()=>{kr(),jr()}));function X(e,t){t||={};let n={};function r(e,t,n,r){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:r},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function i(e,t,n,i){if(!L.isUndefined(t))return r(e,t,n,i);if(!L.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!L.isUndefined(t))return r(void 0,t)}function o(e,t){if(!L.isUndefined(t))return r(void 0,t);if(!L.isUndefined(e))return r(void 0,e)}function s(n,i,a){if(a in t)return r(n,i);if(a in e)return r(void 0,n)}let c={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t,n)=>i(Pr(e),Pr(t),n,!0)};return L.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=L.hasOwnProp(c,r)?c[r]:i,o=a(e[r],t[r],r);L.isUndefined(o)&&a!==s||(n[r]=o)}),n}var Pr,Fr=r((()=>{R(),K(),Pr=e=>e instanceof G?{...e}:e})),Ir,Lr=r((()=>{H(),R(),Tr(),Dr(),Nr(),Fr(),K(),Tn(),Ir=e=>{let t=X({},e),{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:a,headers:o,auth:s}=t;if(t.headers=o=G.from(o),t.url=wn(Mr(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&o.set(`Authorization`,`Basic `+btoa((s.username||``)+`:`+(s.password?unescape(encodeURIComponent(s.password)):``))),L.isFormData(n)){if(V.hasStandardBrowserEnv||V.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(L.isFunction(n.getHeaders)){let e=n.getHeaders(),t=[`content-type`,`content-length`];Object.entries(e).forEach(([e,n])=>{t.includes(e.toLowerCase())&&o.set(e,n)})}}if(V.hasStandardBrowserEnv&&(r&&L.isFunction(r)&&(r=r(t)),r||r!==!1&&wr(t.url))){let e=i&&a&&Er.read(a);e&&o.set(i,e)}return t}})),Rr,zr,Br=r((()=>{R(),mr(),kn(),B(),J(),gr(),H(),K(),Cr(),Lr(),Rr=typeof XMLHttpRequest<`u`,zr=Rr&&function(e){return new Promise(function(t,n){let r=Ir(e),i=r.data,a=G.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=G.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());pr(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.indexOf(`file:`)===0)||setTimeout(g)},h.onabort=function(){h&&=(n(new z(`Request aborted`,z.ECONNABORTED,e,h)),null)},h.onerror=function(t){let r=new z(t&&t.message?t.message:`Network Error`,z.ERR_NETWORK,e,h);r.event=t||null,n(r),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||On;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new z(t,i.clarifyTimeoutError?z.ETIMEDOUT:z.ECONNABORTED,e,h)),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&L.forEach(a.toJSON(),function(e,t){h.setRequestHeader(t,e)}),L.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=Y(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=Y(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new q(null,e,h):t),h.abort(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=hr(r.url);if(_&&V.protocols.indexOf(_)===-1){n(new z(`Unsupported protocol `+_+`:`,z.ERR_BAD_REQUEST,e));return}h.send(i||null)})}})),Vr,Hr=r((()=>{J(),B(),R(),Vr=(e,t)=>{let{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n=new AbortController,r,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof z?t:new q(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new z(`timeout of ${t}ms exceeded`,z.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i));let{signal:s}=n;return s.unsubscribe=()=>L.asap(o),s}}})),Ur,Wr,Gr,Kr,qr=r((()=>{Ur=function*(e,t){let n=e.byteLength;if(!t||n<t){yield e;return}let r=0,i;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},Wr=async function*(e,t){for await(let n of Gr(e))yield*Ur(n,t)},Gr=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},Kr=(e,t,n,r)=>{let i=Wr(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})}})),Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri=r((()=>{H(),R(),B(),Hr(),qr(),K(),Cr(),Lr(),mr(),Jr=64*1024,{isFunction:Yr}=L,Xr=(({Request:e,Response:t})=>({Request:e,Response:t}))(L.global),{ReadableStream:Zr,TextEncoder:Qr}=L.global,$r=(e,...t)=>{try{return!!e(...t)}catch{return!1}},ei=e=>{e=L.merge.call({skipUndefined:!0},Xr,e);let{fetch:t,Request:n,Response:r}=e,i=t?Yr(t):typeof fetch==`function`,a=Yr(n),o=Yr(r);if(!i)return!1;let s=i&&Yr(Zr),c=i&&(typeof Qr==`function`?(e=>t=>e.encode(t))(new Qr):async e=>new Uint8Array(await new n(e).arrayBuffer())),l=a&&s&&$r(()=>{let e=!1,t=new n(V.origin,{body:new Zr,method:`POST`,get duplex(){return e=!0,`half`}}).headers.has(`Content-Type`);return e&&!t}),u=o&&s&&$r(()=>L.isReadableStream(new r(``).body)),d={stream:u&&(e=>e.body)};i&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!d[e]&&(d[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new z(`Response type '${e}' is not supported`,z.ERR_NOT_SUPPORT,n)})});let f=async e=>{if(e==null)return 0;if(L.isBlob(e))return e.size;if(L.isSpecCompliantForm(e))return(await new n(V.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(L.isArrayBufferView(e)||L.isArrayBuffer(e))return e.byteLength;if(L.isURLSearchParams(e)&&(e+=``),L.isString(e))return(await c(e)).byteLength},p=async(e,t)=>L.toFiniteNumber(e.getContentLength())??f(t);return async e=>{let{url:i,method:o,data:s,signal:c,cancelToken:f,timeout:m,onDownloadProgress:h,onUploadProgress:g,responseType:_,headers:v,withCredentials:y=`same-origin`,fetchOptions:b}=Ir(e),x=t||fetch;_=_?(_+``).toLowerCase():`text`;let S=Vr([c,f&&f.toAbortSignal()],m),C=null,w=S&&S.unsubscribe&&(()=>{S.unsubscribe()}),ee;try{if(g&&l&&o!==`get`&&o!==`head`&&(ee=await p(v,s))!==0){let e=new n(i,{method:`POST`,body:s,duplex:`half`}),t;if(L.isFormData(s)&&(t=e.headers.get(`content-type`))&&v.setContentType(t),e.body){let[t,n]=xr(ee,Y(Sr(g)));s=Kr(e.body,Jr,t,n)}}L.isString(y)||(y=y?`include`:`omit`);let t=a&&`credentials`in n.prototype,c={...b,signal:S,method:o.toUpperCase(),headers:v.normalize().toJSON(),body:s,duplex:`half`,credentials:t?y:void 0};C=a&&new n(i,c);let f=await(a?x(C,b):x(i,c)),m=u&&(_===`stream`||_===`response`);if(u&&(h||m&&w)){let e={};[`status`,`statusText`,`headers`].forEach(t=>{e[t]=f[t]});let t=L.toFiniteNumber(f.headers.get(`content-length`)),[n,i]=h&&xr(t,Y(Sr(h),!0))||[];f=new r(Kr(f.body,Jr,n,()=>{i&&i(),w&&w()}),e)}_||=`text`;let te=await d[L.findKey(d,_)||`text`](f,e);return!m&&w&&w(),await new Promise((t,n)=>{pr(t,n,{data:te,headers:G.from(f.headers),status:f.status,statusText:f.statusText,config:e,request:C})})}catch(t){throw w&&w(),t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)?Object.assign(new z(`Network Error`,z.ERR_NETWORK,e,C,t&&t.response),{cause:t.cause||t}):z.from(t,t&&t.code,e,C,t&&t.response)}}},ti=new Map,ni=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=ti;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:ei(t)),l=c;return c},ni()}));function ii(e,t){e=L.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o<n;o++){r=e[o];let n;if(i=r,!si(r)&&(i=ai[(n=String(r)).toLowerCase()],i===void 0))throw new z(`Unknown adapter '${n}'`);if(i&&(L.isFunction(i)||(i=i.get(t))))break;a[n||`#`+o]=i}if(!i){let e=Object.entries(a).map(([e,t])=>`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new z(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
|
|
4
4
|
`+e.map(oi).join(`
|
|
5
5
|
`):` `+oi(e[0]):`as no adapter specified`),`ERR_NOT_SUPPORT`)}return i}var ai,oi,si,ci,li=r((()=>{R(),dn(),Br(),ri(),B(),ai={http:null,xhr:zr,fetch:{get:ni}},L.forEach(ai,(e,t)=>{if(e){try{Object.defineProperty(e,`name`,{value:t})}catch{}Object.defineProperty(e,`adapterName`,{value:t})}}),oi=e=>`- ${e}`,si=e=>L.isFunction(e)||e===null||e===!1,ci={getAdapter:ii,adapters:ai}}));function ui(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new q(null,e)}function di(e){return ui(e),e.headers=G.from(e.headers),e.data=lr.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),ci.getAdapter(e.adapter||U.adapter,e)(e).then(function(t){return ui(e),t.data=lr.call(e,e.transformResponse,t),t.headers=G.from(t.headers),t},function(t){return dr(t)||(ui(e),t&&t.response&&(t.response.data=lr.call(e,e.transformResponse,t.response),t.response.headers=G.from(t.response.headers))),Promise.reject(t)})}var fi=r((()=>{ur(),fr(),Qn(),J(),K(),li()})),pi,mi=r((()=>{pi=`1.13.5`}));function hi(e,t,n){if(typeof e!=`object`)throw new z(`options must be an object`,z.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-- >0;){let a=r[i],o=t[a];if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new z(`option `+a+` must be `+n,z.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new z(`Unknown option `+a,z.ERR_BAD_OPTION)}}var gi,_i,vi,yi=r((()=>{mi(),B(),gi={},[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{gi[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}}),_i={},gi.transitional=function(e,t,n){function r(e,t){return`[Axios v`+pi+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new z(r(i,` has been removed`+(t?` in `+t:``)),z.ERR_DEPRECATED);return t&&!_i[i]&&(_i[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),e?e(n,i,a):!0}},gi.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)},vi={assertOptions:hi,validators:gi}})),Z,Q,bi=r((()=>{R(),Tn(),Dn(),fi(),Fr(),Nr(),yi(),K(),kn(),Z=vi.validators,Q=class{constructor(e){this.defaults=e||{},this.interceptors={request:new En,response:new En}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=t.stack?t.stack.replace(/^.+\n/,``):``;try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,``))&&(e.stack+=`
|
|
6
|
-
`+n):e.stack=n}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=X(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&vi.assertOptions(n,{silentJSONParsing:Z.transitional(Z.boolean),forcedJSONParsing:Z.transitional(Z.boolean),clarifyTimeoutError:Z.transitional(Z.boolean),legacyInterceptorReqResOrdering:Z.transitional(Z.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:vi.assertOptions(r,{encode:Z.function,serialize:Z.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),vi.assertOptions(t,{baseUrl:Z.spelling(`baseURL`),withXsrfToken:Z.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=G.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||On;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[di.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=di.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=X(this.defaults,e),wn(Mr(e.baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}},L.forEach([`delete`,`get`,`head`,`options`],function(e){Q.prototype[e]=function(t,n){return this.request(X(n||{},{method:e,url:t,data:(n||{}).data}))}}),L.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(X(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Q.prototype[e]=t(),Q.prototype[e+`Form`]=t(!0)})})),xi,Si=r((()=>{J(),xi=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new q(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}}}));function Ci(e){return function(t){return e.apply(null,t)}}var wi=r((()=>{}));function Ti(e){return L.isObject(e)&&e.isAxiosError===!0}var Ei=r((()=>{R()})),Di,Oi=r((()=>{Di={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526},Object.entries(Di).forEach(([e,t])=>{Di[t]=e})}));function ki(e){let t=new Q(e),n=ft(Q.prototype.request,t);return L.extend(n,Q.prototype,t,{allOwnKeys:!0}),L.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return ki(X(e,t))},n}var $,Ai=r((()=>{R(),pt(),bi(),Fr(),Qn(),Xn(),J(),Si(),fr(),mi(),vn(),B(),wi(),Ei(),K(),li(),Oi(),$=ki(U),$.Axios=Q,$.CanceledError=q,$.CancelToken=xi,$.isCancel=dr,$.VERSION=pi,$.toFormData=gn,$.AxiosError=z,$.Cancel=$.CanceledError,$.all=function(e){return Promise.all(e)},$.spread=Ci,$.isAxiosError=Ti,$.mergeConfig=X,$.AxiosHeaders=G,$.formToJSON=e=>Yn(L.isHTMLForm(e)?new FormData(e):e),$.getAdapter=ci.getAdapter,$.HttpStatusCode=Di,$.default=$})),ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi=r((()=>{Ai(),{Axios:ji,AxiosError:Mi,CanceledError:Ni,isCancel:Pi,CancelToken:Fi,VERSION:Ii,all:Li,Cancel:Ri,isAxiosError:zi,spread:Bi,toFormData:Vi,AxiosHeaders:Hi,HttpStatusCode:Ui,formToJSON:Wi,getAdapter:Gi,mergeConfig:Ki}=$})),Ji,Yi,Xi,Zi,Qi,$i=r((()=>{qi(),Ji={class:`popup`},Yi={class:`wrapper`},Xi={class:`scrollbar`},Zi=[`onClick`],Qi=(0,t.defineComponent)({__name:`SwSelect`,props:(0,t.mergeModels)({class:{default:``},size:{default:`large`},placeholder:{default:``},token:{default:``}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.ref)({fullText:``}),r=(0,t.ref)(!1),i=(0,t.ref)([]),a=(0,t.useModel)(e,`modelValue`),o=e;(0,t.watch)(()=>a.value?.text,e=>{e&&e.length>3&&(n.value.fullText=e)}),(0,t.watch)(n.value.fullText,(e,t)=>{r.value=e.length>3&&e.length>t.length,e.length>3&&s()});let s=()=>{console.log(n.value.fullText),$.post(`https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address`,{query:n.value.fullText},{headers:{"Content-Type":`application/json`,Accept:`application/json`,Authorization:`Token `+o.token}}).then(e=>{console.log(e.data.suggestions),i.value=e.data.suggestions,i.value.length===1&&c(i.value[0])}).catch(e=>{console.log(e)})},c=e=>{n.value.fullText=e.value,r.value=!1;let t={};t.text=e.value,t.coords=[Number(e.data.geo_lat),Number(e.data.geo_lon)],t.suggestion=e.data,a.value=t};return(e,a)=>{let s=(0,t.resolveComponent)(`sw-input`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ji,[(0,t.createVNode)(s,{size:o.size,modelValue:n.value.fullText,"onUpdate:modelValue":a[0]||=e=>n.value.fullText=e,placeholder:o.placeholder},null,8,[`size`,`modelValue`,`placeholder`]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,Yi,[(0,t.createElementVNode)(`ul`,Xi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{tabindex:`1`,key:n,onClick:t=>c(e)},(0,t.toDisplayString)(e.value),9,Zi))),128))])],512),[[t.vShow,r.value]])])}}})})),ea=r((()=>{})),ta=i({default:()=>na}),na,ra=r((()=>{$i(),$i(),ea(),na=Qi})),ia=i({default:()=>oa}),aa,oa,sa=r((()=>{aa={key:0},oa={__name:`SwSkeletonItem`,props:{width:{type:String,default:`100`},class:{type:String,default:``},animate:{type:Boolean,default:!1},size:{type:String,default:``}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`sw-skeleton-item`];return n.size.length>0&&e.push(`sw-`+n.size),n.animate&&e.push(`sw-animate`),n.class.length>0&&e.push(n.class),e}),i=(0,t.computed)(()=>({width:n.width+`%`}));return(e,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r.value),style:(0,t.normalizeStyle)(i.value)},[n.animate?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aa)):(0,t.createCommentVNode)(``,!0)],6))}}})),ca=i({default:()=>la}),la,ua=r((()=>{sa(),la={__name:`SwSkeleton`,props:{class:{type:String,default:``},visual:{type:Boolean,default:!1}},setup(e){let n=e;return(e,r)=>n.visual?(0,t.renderSlot)(e.$slots,`default`,{key:0}):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`sw-skeleton`,n.class])},[(0,t.renderSlot)(e.$slots,`skeleton`,{},()=>[(0,t.createVNode)(oa,{animate:``,size:`small`})])],2))}}})),da=i({default:()=>pa}),fa,pa,ma=r((()=>{u(),fa=[`onMouseenter`,`onMouseleave`,`onFocus`,`onBlur`,`onMousedown`,`onTouchstart`],pa={__name:`SwSlider`,props:(0,t.mergeModels)({class:{type:String,default:``},size:{type:String,default:``},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},vertical:{type:Boolean,default:!1},showValue:{type:Boolean,default:!1}},{modelValue:{type:[Number,Array],required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e,i=(0,t.ref)([]),a=(0,t.ref)([]),o=(0,t.computed)(()=>{let e=[`sw-slider`];return r.size.length>0&&e.push(`sw-`+r.size),r.class.length>0&&e.push(r.class),r.vertical&&e.push(`vertical`),e}),s=e=>{let t=[...i.value];t[e]=!0,i.value=t},c=e=>{let t=[...i.value];t[e]=!1,i.value=t},u=e=>{let t=document.querySelector(`.sw-slider`);return t?l(t,r.vertical):r.vertical?{right:`100%`,marginRight:`10px`}:{bottom:`100%`,marginBottom:`10px`}},d=(0,t.computed)(()=>Array.isArray(n.value)),f=(0,t.computed)({get(){return d.value?[...n.value]:[n.value]},set(e){d.value?n.value=[...e].sort((e,t)=>e-t):n.value=e[0]}}),p=(0,t.computed)(()=>{let e=r.max-r.min;return f.value.map(t=>e===0?0:(t-r.min)/e*100)}),m=(0,t.computed)(()=>{if(r.vertical)if(d.value){let e=p.value[0]||0,t=p.value[p.value.length-1]||0,n=Math.min(e,t);return{height:`${Math.max(e,t)-n}%`,top:`${n}%`,left:`0`,width:`100%`}}else return{height:`${p.value[0]||0}%`,top:`0`,left:`0`,width:`100%`};else if(d.value){let e=p.value[0]||0,t=p.value[p.value.length-1]||0,n=Math.min(e,t);return{width:`${Math.max(e,t)-n}%`,left:`${n}%`,top:`0`,height:`100%`}}else return{width:`${p.value[0]||0}%`,left:`0`,top:`0`,height:`100%`}}),h=(0,t.computed)(()=>p.value.map((e,t)=>r.vertical?{top:`${e}%`,zIndex:f.value.length-t}:{left:`${e}%`,zIndex:f.value.length-t}));function g(e){if(d.value)return;let t=e.currentTarget.closest(`.sw-slider`);if(!t)return;let n=t.getBoundingClientRect(),i=r.vertical?(e.clientY-n.top)/n.height:(e.clientX-n.left)/n.width,o=Math.max(0,Math.min(1,i)),s=r.max-r.min,c=r.min+o*s,l=Math.round((c-r.min)/r.step);c=r.min+l*r.step,c=Math.max(r.min,Math.min(r.max,c)),f.value=[c],setTimeout(()=>{let e=[...a.value];e[0]=u(0),a.value=e},0)}let _=(0,t.ref)(!1),v=(0,t.ref)(null),y=(0,t.ref)(null);function b(e,t){let n=e.target.closest(`.sw-slider`);n&&(y.value=n.getBoundingClientRect(),v.value=t,_.value=!0,C(e.clientX||e.touches?.[0]?.clientX,e.clientY||e.touches?.[0]?.clientY))}function x(e){_.value&&(e.preventDefault?.(),C(e.clientX||e.touches?.[0]?.clientX,e.clientY||e.touches?.[0]?.clientY))}function S(){_.value=!1,v.value=null}function C(e,t){if(!y.value||v.value===null)return;let n=y.value,i=r.vertical?(t-n.top)/n.height:(e-n.left)/n.width,o=Math.max(0,Math.min(1,i)),s=r.max-r.min,c=r.min+o*s,l=Math.round((c-r.min)/r.step);c=r.min+l*r.step,c=Math.max(r.min,Math.min(r.max,c));let d=[...f.value];d[v.value]=c,f.value=d,setTimeout(()=>{let e=[...a.value];e[v.value]=u(v.value),a.value=e},0)}return(0,t.onMounted)(()=>{window.addEventListener(`mousemove`,x),window.addEventListener(`mouseup`,S),window.addEventListener(`touchmove`,x,{passive:!1}),window.addEventListener(`touchend`,S),i.value=Array(f.value.length).fill(!1)}),(0,t.onUnmounted)(()=>{window.removeEventListener(`mousemove`,x),window.removeEventListener(`mouseup`,S),window.removeEventListener(`touchmove`,x),window.removeEventListener(`touchend`,S)}),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(o.value)},[(0,t.createElementVNode)(`div`,{class:`track`,onClick:g,onMousedown:a[0]||=(0,t.withModifiers)(e=>b(e,0),[`prevent`]),onTouchstart:a[1]||=(0,t.withModifiers)(e=>b(e.touches[0],0),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`fill`,style:(0,t.normalizeStyle)(m.value)},null,4)],32),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(a,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`thumb`,key:o,style:(0,t.normalizeStyle)(h.value[o]),onMouseenter:e=>s(o),onMouseleave:e=>c(o),onFocus:e=>s(o),onBlur:e=>c(o),onMousedown:(0,t.withModifiers)(e=>b(e,o),[`prevent`]),onTouchstart:(0,t.withModifiers)(e=>b(e.touches[0],o),[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{index:o,value:a}),i.value[o]&&e.showValue?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`tooltip`,{"tooltip-vertical":r.vertical}]),style:(0,t.normalizeStyle)(u(o))},(0,t.toDisplayString)(a),7)):(0,t.createCommentVNode)(``,!0)],44,fa))),128))],2))}}})),ha,ga,_a,va=r((()=>{ha=[`name`,`id`,`checked`],ga=[`for`,`data-onlabel`,`data-offlabel`],_a=(0,t.defineComponent)({__name:`SwSwitch`,props:(0,t.mergeModels)({id:{default:`checkbox`},class:{default:``},name:{default:``},on:{default:``},off:{default:``},size:{default:``},checkbox:{type:Boolean,default:!1}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e,i=(0,t.computed)(()=>{let e=[`sw-switch`];return r.size.length>0&&e.push(`sw-`+r.size),r.checkbox&&e.push(`sw-checkbox`),r.class.length>0&&e.push(r.class),e}),a=e=>{n.value=e.target.checked};return(e,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i.value)},[(0,t.createElementVNode)(`input`,{type:`checkbox`,name:r.name,class:`sw-control`,id:r.id,checked:n.value,onChange:a},null,40,ha),(0,t.createElementVNode)(`label`,{for:r.id,class:`sw-label`,"data-onlabel":r.on,"data-offlabel":r.off},null,8,ga),(0,t.renderSlot)(e.$slots,`default`)],2))}})})),ya=i({default:()=>ba}),ba,xa=r((()=>{va(),va(),ba=_a})),Sa=i({default:()=>wa}),Ca,wa,Ta=r((()=>{Ca={style:{display:`none`}},wa={__name:`SwTableColumn`,props:{prop:{type:String,required:!0},label:{type:String,default:``},width:{type:String,default:`auto`},height:{type:String,default:`auto`}},setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ca))}}})),Ea=i({default:()=>Aa}),Da,Oa,ka,Aa,ja=r((()=>{Ta(),Da={class:`sw-table`},Oa=[`colspan`,`rowspan`],ka=[`colspan`,`rowspan`],Aa={__name:`SwTable`,props:{data:{type:Array,required:!0}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.ref)([]);function a(e){let t=[];for(let n of e)if(n.type===wa||n.type.__name===`SwTableColumn`||n.type.name===`SwTableColumn`||typeof n.type==`object`&&n.type.name===`AsyncComponentWrapper`&&n.props?.prop!==void 0||typeof n.type==`object`&&n.props?.prop!==void 0||typeof n.type==`object`&&n.props?.label!==void 0){let e={...n.props,children:[]},r=[];if(typeof n.children?.default==`function`)try{r=n.children.default()}catch(e){console.warn(`Error calling default slot:`,e)}else Array.isArray(n.children)&&(r=n.children);if(r&&r.length>0){let t=a(r);t.length>0&&(e.children=t)}t.push(e)}return t}function o(e){if(!e||e.length===0)return 1;let t=1;for(let n of e)if(n.children&&n.children.length>0){let e=o(n.children);t=Math.max(t,1+e)}return t}function s(e,t){let n=Array.from({length:t},()=>[]);function r(e,i,a=``){for(let o=0;o<e.length;o++){let s=e[o],l=a?`${a}-${s.prop||o}`:s.prop||o;if(s.children&&s.children.length>0){let e=c(s.children);n[i].push({key:l,label:s.label,colspan:e,rowspan:1,width:s.width,height:s.height}),r(s.children,i+1,l)}else n[i].push({key:s.prop,label:s.label,colspan:1,rowspan:t-i,width:s.width,height:s.height,prop:s.prop})}}return r(e,0),n}function c(e){let t=0;function n(e){for(let r of e)r.children&&r.children.length>0?n(r.children):t++}return n(e),t}function l(e){let t=[];function n(e){for(let r of e)r.children&&r.children.length>0?n(r.children):t.push(r)}return n(e),t}function u(e,t){if(!e||!Array.isArray(e)||!t||!Array.isArray(t))return[];function n(e,t){if(!e||!t)return;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}let r=[],i=new Map;return e.forEach((e,a)=>{let o=[];t.forEach((r,s)=>{let c=`${a}-${r.prop}`;if(i.has(c))return;let l=n(e,r.prop),u=l,d=1,f=1,p={};l&&typeof l==`object`&&l&&(u=l.label||l.value||``,d=l.colspan||1,f=l.rowspan||1,p=l.style||{});let m={key:c,label:u,prop:r.prop,colspan:d,rowspan:f,style:p,originalRow:e,rowIndex:a};o.push(m);for(let e=0;e<f;e++)for(let n=0;n<d;n++){if(e===0&&n===0)continue;let r=`${a+e}-${t[s+n]?.prop}`;r&&i.set(r,!0)}}),o.length>0&&r.push(o)}),r}let d=(0,t.computed)(()=>o(i.value)),f=(0,t.computed)(()=>s(i.value,d.value)),p=(0,t.computed)(()=>l(i.value)),m=(0,t.computed)(()=>u(n.data,p.value));return(0,t.onMounted)(()=>{let e=r.default?.()||[];console.log(`Raw slot VNodes:`,e);let t=e.filter(e=>{console.log(`VNode type:`,e.type,`props:`,e.props);let t=e.type&&(typeof e.type==`object`||typeof e.type==`function`);return console.log(`Is component:`,t),t});console.log(`Valid VNodes:`,t),i.value=a(t),console.log(`SwTable mounted - columnTree:`,i.value),console.log(`SwTable mounted - flatColumns:`,p.value),console.log(`SwTable mounted - data:`,n.data)}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`table`,Da,[(0,t.createElementVNode)(`thead`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:n},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:e.key,colspan:e.colspan,rowspan:e.rowspan,style:(0,t.normalizeStyle)({minWidth:e.width,minHeight:e.height})},(0,t.toDisplayString)(e.label),13,Oa))),128))]))),128))]),(0,t.createElementVNode)(`tbody`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(m.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:r},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(n,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:n.key,colspan:n.colspan,rowspan:n.rowspan,style:(0,t.normalizeStyle)(n.style)},[(0,t.renderSlot)(e.$slots,n.prop,{row:n.originalRow,$index:n.rowIndex},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.label),1)])],12,ka))),128))]))),128))])]))}}})),Ma=i({default:()=>Fa}),Na,Pa,Fa,Ia=r((()=>{Na={key:0},Pa=[`onClick`],Fa={__name:`SwTabs`,props:(0,t.mergeModels)({class:{type:String,default:``}},{modelValue:{},modelModifiers:{}}),emits:(0,t.mergeModels)([`tab-click`],[`update:modelValue`]),setup(e,{emit:n}){(0,t.ref)(0);let r=(0,t.ref)([]),i=e,a=(0,t.useModel)(e,`modelValue`),o=n;function s(e){r.value.push(e)}function c(e){r.value=r.value.filter(t=>t!==e)}return(0,t.provide)(`registerTab`,s),(0,t.provide)(`unregisterTab`,c),(0,t.provide)(`activeTab`,a),(0,t.provide)(`tabs`,r),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(`sw-tabs `+i.class)},[r.value.length===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`header`,Na,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:(0,t.normalizeClass)([{active:a.value===n}]),onClick:e=>{a.value=n,o(`tab-click`,n)}},(0,t.toDisplayString)(e.label||e.title),11,Pa))),128))])),(0,t.renderSlot)(e.$slots,`default`)],2))}}})),La=i({default:()=>za}),Ra,za,Ba=r((()=>{Ra={key:0,class:`tab-content`},za={__name:`SwTabsPane`,props:{title:{type:String,required:!0},label:{type:String,default:``}},setup(e){let n=e,r=(0,t.inject)(`registerTab`),i=(0,t.inject)(`unregisterTab`);(0,t.onMounted)(()=>{r({title:n.title,label:n.label})}),(0,t.onUnmounted)(()=>{i({title:n.title,label:n.label})});let a=(0,t.inject)(`activeTab`),o=(0,t.inject)(`tabs`),s=(0,t.computed)(()=>o.value.findIndex(e=>e.title===n.title)),c=(0,t.computed)(()=>a.value===s.value);return(e,n)=>c.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ra,[(0,t.renderSlot)(e.$slots,`default`)])):(0,t.createCommentVNode)(``,!0)}}})),Va=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>(_(),h)),"./components/SwButton.vue":()=>Promise.resolve().then(()=>(w(),S)),"./components/SwButtonGroup.vue":()=>Promise.resolve().then(()=>(ne(),ee)),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>(ae(),re)),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>(je(),oe)),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>(Fe(),Me)),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>(Re(),Ie)),"./components/SwDropdownNew.vue":()=>Promise.resolve().then(()=>(He(),ze)),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>(Ge(),Ue)),"./components/SwGide.vue":()=>Promise.resolve().then(()=>(Ye(),Ke)),"./components/SwIcon.vue":()=>Promise.resolve().then(()=>(m(),d)),"./components/SwInput.vue":()=>Promise.resolve().then(()=>(rt(),tt)),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>(st(),it)),"./components/SwSection.vue":()=>Promise.resolve().then(()=>(dt(),ct)),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>(ra(),ta)),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>(ua(),ca)),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>(sa(),ia)),"./components/SwSlider.vue":()=>Promise.resolve().then(()=>(ma(),da)),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>(xa(),ya)),"./components/SwTable.vue":()=>Promise.resolve().then(()=>(ja(),Ea)),"./components/SwTableColumn.vue":()=>Promise.resolve().then(()=>(Ta(),Sa)),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>(Ia(),Ma)),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>(Ba(),La))}),Ha={};for(let e in Va){let n=e.split(`/`).pop().replace(`.vue`,``).replace(/-(\w)/g,(e,t)=>t.toUpperCase());Ha[n]=(0,t.defineAsyncComponent)(()=>Va[e]())}e.Alert=y,e.Library={install(e){Object.keys(Ha).forEach(t=>{e.component(t,Ha[t])}),e.config.globalProperties.$Alert=y,e.provide(`Alert`,y)}},e.components=Ha});
|
|
6
|
+
`+n):e.stack=n}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=X(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&vi.assertOptions(n,{silentJSONParsing:Z.transitional(Z.boolean),forcedJSONParsing:Z.transitional(Z.boolean),clarifyTimeoutError:Z.transitional(Z.boolean),legacyInterceptorReqResOrdering:Z.transitional(Z.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:vi.assertOptions(r,{encode:Z.function,serialize:Z.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),vi.assertOptions(t,{baseUrl:Z.spelling(`baseURL`),withXsrfToken:Z.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`common`],e=>{delete i[e]}),t.headers=G.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||On;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[di.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u<d;)l=l.then(e[u++],e[u++]);return l}d=o.length;let f=t;for(;u<d;){let e=o[u++],t=o[u++];try{f=e(f)}catch(e){t.call(this,e);break}}try{l=di.call(this,f)}catch(e){return Promise.reject(e)}for(u=0,d=c.length;u<d;)l=l.then(c[u++],c[u++]);return l}getUri(e){return e=X(this.defaults,e),wn(Mr(e.baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}},L.forEach([`delete`,`get`,`head`,`options`],function(e){Q.prototype[e]=function(t,n){return this.request(X(n||{},{method:e,url:t,data:(n||{}).data}))}}),L.forEach([`post`,`put`,`patch`],function(e){function t(t){return function(n,r,i){return this.request(X(i||{},{method:e,headers:t?{"Content-Type":`multipart/form-data`}:{},url:n,data:r}))}}Q.prototype[e]=t(),Q.prototype[e+`Form`]=t(!0)})})),xi,Si=r((()=>{J(),xi=class e{constructor(e){if(typeof e!=`function`)throw TypeError(`executor must be a function.`);let t;this.promise=new Promise(function(e){t=e});let n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new q(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}}}));function Ci(e){return function(t){return e.apply(null,t)}}var wi=r((()=>{}));function Ti(e){return L.isObject(e)&&e.isAxiosError===!0}var Ei=r((()=>{R()})),Di,Oi=r((()=>{Di={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526},Object.entries(Di).forEach(([e,t])=>{Di[t]=e})}));function ki(e){let t=new Q(e),n=ft(Q.prototype.request,t);return L.extend(n,Q.prototype,t,{allOwnKeys:!0}),L.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return ki(X(e,t))},n}var $,Ai=r((()=>{R(),pt(),bi(),Fr(),Qn(),Xn(),J(),Si(),fr(),mi(),vn(),B(),wi(),Ei(),K(),li(),Oi(),$=ki(U),$.Axios=Q,$.CanceledError=q,$.CancelToken=xi,$.isCancel=dr,$.VERSION=pi,$.toFormData=gn,$.AxiosError=z,$.Cancel=$.CanceledError,$.all=function(e){return Promise.all(e)},$.spread=Ci,$.isAxiosError=Ti,$.mergeConfig=X,$.AxiosHeaders=G,$.formToJSON=e=>Yn(L.isHTMLForm(e)?new FormData(e):e),$.getAdapter=ci.getAdapter,$.HttpStatusCode=Di,$.default=$})),ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi=r((()=>{Ai(),{Axios:ji,AxiosError:Mi,CanceledError:Ni,isCancel:Pi,CancelToken:Fi,VERSION:Ii,all:Li,Cancel:Ri,isAxiosError:zi,spread:Bi,toFormData:Vi,AxiosHeaders:Hi,HttpStatusCode:Ui,formToJSON:Wi,getAdapter:Gi,mergeConfig:Ki}=$})),Ji,Yi,Xi,Zi,Qi,$i=r((()=>{qi(),Ji={class:`popup`},Yi={class:`wrapper`},Xi={class:`scrollbar`},Zi=[`onClick`],Qi=(0,t.defineComponent)({__name:`SwSelect`,props:(0,t.mergeModels)({class:{default:``},size:{default:`large`},placeholder:{default:``},token:{default:``}},{modelValue:{},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.ref)({fullText:``}),r=(0,t.ref)(!1),i=(0,t.ref)([]),a=(0,t.useModel)(e,`modelValue`),o=e;(0,t.watch)(()=>a.value?.text,e=>{e&&e.length>3&&(n.value.fullText=e)}),(0,t.watch)(n.value.fullText,(e,t)=>{r.value=e.length>3&&e.length>t.length,e.length>3&&s()});let s=()=>{console.log(n.value.fullText),$.post(`https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address`,{query:n.value.fullText},{headers:{"Content-Type":`application/json`,Accept:`application/json`,Authorization:`Token `+o.token}}).then(e=>{console.log(e.data.suggestions),i.value=e.data.suggestions,i.value.length===1&&c(i.value[0])}).catch(e=>{console.log(e)})},c=e=>{n.value.fullText=e.value,r.value=!1;let t={};t.text=e.value,t.coords=[Number(e.data.geo_lat),Number(e.data.geo_lon)],t.suggestion=e.data,a.value=t};return(e,a)=>{let s=(0,t.resolveComponent)(`sw-input`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ji,[(0,t.createVNode)(s,{size:o.size,modelValue:n.value.fullText,"onUpdate:modelValue":a[0]||=e=>n.value.fullText=e,placeholder:o.placeholder},null,8,[`size`,`modelValue`,`placeholder`]),(0,t.withDirectives)((0,t.createElementVNode)(`div`,Yi,[(0,t.createElementVNode)(`ul`,Xi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{tabindex:`1`,key:n,onClick:t=>c(e)},(0,t.toDisplayString)(e.value),9,Zi))),128))])],512),[[t.vShow,r.value]])])}}})})),ea=r((()=>{})),ta=i({default:()=>na}),na,ra=r((()=>{$i(),$i(),ea(),na=Qi})),ia=i({default:()=>oa}),aa,oa,sa=r((()=>{aa={key:0},oa={__name:`SwSkeletonItem`,props:{width:{type:String,default:`100`},class:{type:String,default:``},animate:{type:Boolean,default:!1},size:{type:String,default:``}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=[`sw-skeleton-item`];return n.size.length>0&&e.push(`sw-`+n.size),n.animate&&e.push(`sw-animate`),n.class.length>0&&e.push(n.class),e}),i=(0,t.computed)(()=>({width:n.width+`%`}));return(e,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(r.value),style:(0,t.normalizeStyle)(i.value)},[n.animate?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aa)):(0,t.createCommentVNode)(``,!0)],6))}}})),ca=i({default:()=>la}),la,ua=r((()=>{sa(),la={__name:`SwSkeleton`,props:{class:{type:String,default:``},visual:{type:Boolean,default:!1}},setup(e){let n=e;return(e,r)=>n.visual?(0,t.renderSlot)(e.$slots,`default`,{key:0}):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:(0,t.normalizeClass)([`sw-skeleton`,n.class])},[(0,t.renderSlot)(e.$slots,`skeleton`,{},()=>[(0,t.createVNode)(oa,{animate:``,size:`small`})])],2))}}})),da=i({default:()=>pa}),fa,pa,ma=r((()=>{u(),fa=[`onMouseenter`,`onMouseleave`,`onFocus`,`onBlur`,`onMousedown`,`onTouchstart`],pa={__name:`SwSlider`,props:(0,t.mergeModels)({class:{type:String,default:``},size:{type:String,default:``},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},vertical:{type:Boolean,default:!1},showValue:{type:Boolean,default:!1}},{modelValue:{type:[Number,Array],required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e,i=(0,t.ref)([]),a=(0,t.ref)([]),o=(0,t.computed)(()=>{let e=[`sw-slider`];return r.size.length>0&&e.push(`sw-`+r.size),r.class.length>0&&e.push(r.class),r.vertical&&e.push(`vertical`),e}),s=e=>{let t=[...i.value];t[e]=!0,i.value=t},c=e=>{let t=[...i.value];t[e]=!1,i.value=t},u=e=>{let t=document.querySelector(`.sw-slider`);return t?l(t,r.vertical):r.vertical?{right:`100%`,marginRight:`10px`}:{bottom:`100%`,marginBottom:`10px`}},d=(0,t.computed)(()=>Array.isArray(n.value)),f=(0,t.computed)({get(){return d.value?[...n.value]:[n.value]},set(e){d.value?n.value=[...e].sort((e,t)=>e-t):n.value=e[0]}}),p=(0,t.computed)(()=>{let e=r.max-r.min;return f.value.map(t=>e===0?0:(t-r.min)/e*100)}),m=(0,t.computed)(()=>{if(r.vertical)if(d.value){let e=p.value[0]||0,t=p.value[p.value.length-1]||0,n=Math.min(e,t);return{height:`${Math.max(e,t)-n}%`,top:`${n}%`,left:`0`,width:`100%`}}else return{height:`${p.value[0]||0}%`,top:`0`,left:`0`,width:`100%`};else if(d.value){let e=p.value[0]||0,t=p.value[p.value.length-1]||0,n=Math.min(e,t);return{width:`${Math.max(e,t)-n}%`,left:`${n}%`,top:`0`,height:`100%`}}else return{width:`${p.value[0]||0}%`,left:`0`,top:`0`,height:`100%`}}),h=(0,t.computed)(()=>p.value.map((e,t)=>r.vertical?{top:`${e}%`,zIndex:f.value.length-t}:{left:`${e}%`,zIndex:f.value.length-t}));function g(e){if(d.value)return;let t=e.currentTarget.closest(`.sw-slider`);if(!t)return;let n=t.getBoundingClientRect(),i=r.vertical?(e.clientY-n.top)/n.height:(e.clientX-n.left)/n.width,o=Math.max(0,Math.min(1,i)),s=r.max-r.min,c=r.min+o*s,l=Math.round((c-r.min)/r.step);c=r.min+l*r.step,c=Math.max(r.min,Math.min(r.max,c)),f.value=[c],setTimeout(()=>{let e=[...a.value];e[0]=u(0),a.value=e},0)}let _=(0,t.ref)(!1),v=(0,t.ref)(null),y=(0,t.ref)(null);function b(e,t){let n=e.target.closest(`.sw-slider`);n&&(y.value=n.getBoundingClientRect(),v.value=t,_.value=!0,C(e.clientX||e.touches?.[0]?.clientX,e.clientY||e.touches?.[0]?.clientY))}function x(e){_.value&&(e.preventDefault?.(),C(e.clientX||e.touches?.[0]?.clientX,e.clientY||e.touches?.[0]?.clientY))}function S(){_.value=!1,v.value=null}function C(e,t){if(!y.value||v.value===null)return;let n=y.value,i=r.vertical?(t-n.top)/n.height:(e-n.left)/n.width,o=Math.max(0,Math.min(1,i)),s=r.max-r.min,c=r.min+o*s,l=Math.round((c-r.min)/r.step);c=r.min+l*r.step,c=Math.max(r.min,Math.min(r.max,c));let d=[...f.value];d[v.value]=c,f.value=d,setTimeout(()=>{let e=[...a.value];e[v.value]=u(v.value),a.value=e},0)}return(0,t.onMounted)(()=>{window.addEventListener(`mousemove`,x),window.addEventListener(`mouseup`,S),window.addEventListener(`touchmove`,x,{passive:!1}),window.addEventListener(`touchend`,S),i.value=Array(f.value.length).fill(!1)}),(0,t.onUnmounted)(()=>{window.removeEventListener(`mousemove`,x),window.removeEventListener(`mouseup`,S),window.removeEventListener(`touchmove`,x),window.removeEventListener(`touchend`,S)}),(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(o.value)},[(0,t.createElementVNode)(`div`,{class:`track`,onClick:g,onMousedown:a[0]||=(0,t.withModifiers)(e=>b(e,0),[`prevent`]),onTouchstart:a[1]||=(0,t.withModifiers)(e=>b(e.touches[0],0),[`prevent`])},[(0,t.createElementVNode)(`div`,{class:`fill`,style:(0,t.normalizeStyle)(m.value)},null,4)],32),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(a,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`thumb`,key:o,style:(0,t.normalizeStyle)(h.value[o]),onMouseenter:e=>s(o),onMouseleave:e=>c(o),onFocus:e=>s(o),onBlur:e=>c(o),onMousedown:(0,t.withModifiers)(e=>b(e,o),[`prevent`]),onTouchstart:(0,t.withModifiers)(e=>b(e.touches[0],o),[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{index:o,value:a}),i.value[o]&&e.showValue?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`tooltip`,{"tooltip-vertical":r.vertical}]),style:(0,t.normalizeStyle)(u(o))},(0,t.toDisplayString)(a),7)):(0,t.createCommentVNode)(``,!0)],44,fa))),128))],2))}}})),ha,ga,_a,va=r((()=>{ha=[`name`,`id`,`checked`],ga=[`for`,`data-onlabel`,`data-offlabel`],_a=(0,t.defineComponent)({__name:`SwSwitch`,props:(0,t.mergeModels)({id:{default:`checkbox`},class:{default:``},name:{default:``},on:{default:``},off:{default:``},size:{default:``},checkbox:{type:Boolean,default:!1}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let n=(0,t.useModel)(e,`modelValue`),r=e,i=(0,t.computed)(()=>{let e=[`sw-switch`];return r.size.length>0&&e.push(`sw-`+r.size),r.checkbox&&e.push(`sw-checkbox`),r.class.length>0&&e.push(r.class),e}),a=e=>{n.value=e.target.checked};return(e,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(i.value)},[(0,t.createElementVNode)(`input`,{type:`checkbox`,name:r.name,class:`sw-control`,id:r.id,checked:n.value,onChange:a},null,40,ha),(0,t.createElementVNode)(`label`,{for:r.id,class:`sw-label`,"data-onlabel":r.on,"data-offlabel":r.off},null,8,ga),(0,t.renderSlot)(e.$slots,`default`)],2))}})})),ya=i({default:()=>ba}),ba,xa=r((()=>{va(),va(),ba=_a})),Sa=i({default:()=>wa}),Ca,wa,Ta=r((()=>{Ca={style:{display:`none`}},wa={__name:`SwTableColumn`,props:{prop:{type:String,required:!0},label:{type:String,default:``},width:{type:[String,Number],default:`auto`},height:{type:[String,Number],default:`auto`}},setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ca))}}})),Ea=i({default:()=>Aa}),Da,Oa,ka,Aa,ja=r((()=>{Ta(),Da={class:`sw-table`},Oa=[`colspan`,`rowspan`],ka=[`colspan`,`rowspan`],Aa={__name:`SwTable`,props:{data:{type:Array,required:!0}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.ref)([]);function a(e){let t=[];for(let n of e){if(n.type===Symbol.for(`v-fgt`)||Array.isArray(n.children)){let e=a(Array.isArray(n.children)?n.children:[]);t.push(...e);continue}if(n.type===wa||n.type.__name===`SwTableColumn`||n.type.name===`SwTableColumn`||typeof n.type==`object`&&n.type.name===`AsyncComponentWrapper`&&n.props?.prop!==void 0||typeof n.type==`object`&&n.props?.prop!==void 0||typeof n.type==`object`&&n.props?.label!==void 0){let e={...n.props,children:[]},r=[];if(typeof n.children?.default==`function`)try{r=n.children.default()}catch(e){console.warn(`Error calling default slot:`,e)}else Array.isArray(n.children)&&(r=n.children);if(r&&r.length>0){let t=a(r);t.length>0&&(e.children=t)}t.push(e)}}return t}function o(e){if(!e||e.length===0)return 1;let t=1;for(let n of e)if(n.children&&n.children.length>0){let e=o(n.children);t=Math.max(t,1+e)}return t}function s(e,t){let n=Array.from({length:t},()=>[]);function r(e,i,a=``){for(let o=0;o<e.length;o++){let s=e[o],l=a?`${a}-${s.prop||o}`:s.prop||o;if(s.children&&s.children.length>0){let e=c(s.children);n[i].push({key:l,label:s.label,colspan:e,rowspan:1,width:s.width,height:s.height}),r(s.children,i+1,l)}else n[i].push({key:s.prop,label:s.label,colspan:1,rowspan:t-i,width:s.width,height:s.height,prop:s.prop})}}return r(e,0),n}function c(e){let t=0;function n(e){for(let r of e)r.children&&r.children.length>0?n(r.children):t++}return n(e),t}function l(e){let t=[];function n(e){for(let r of e)r.children&&r.children.length>0?n(r.children):t.push(r)}return n(e),t}function u(e,t){if(!e||!Array.isArray(e)||!t||!Array.isArray(t))return[];function n(e,t){if(!e||!t)return;let n=t.split(`.`),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}let r=[],i=new Map;return e.forEach((e,a)=>{let o=[];t.forEach((r,s)=>{let c=`${a}-${r.prop}`;if(i.has(c))return;let l=n(e,r.prop),u=l,d=1,f=1,p={};l&&typeof l==`object`&&l&&(u=l.label||l.value||``,d=l.colspan||1,f=l.rowspan||1,p=l.style||{});let m={key:c,label:u,prop:r.prop,colspan:d,rowspan:f,style:p,originalRow:e,rowIndex:a};o.push(m);for(let e=0;e<f;e++)for(let n=0;n<d;n++){if(e===0&&n===0)continue;let r=`${a+e}-${t[s+n]?.prop}`;r&&i.set(r,!0)}}),o.length>0&&r.push(o)}),r}let d=(0,t.computed)(()=>o(i.value)),f=(0,t.computed)(()=>s(i.value,d.value)),p=(0,t.computed)(()=>l(i.value)),m=(0,t.computed)(()=>u(n.data,p.value));return(0,t.onMounted)(()=>{let e=r.default?.()||[];console.log(`Raw slot VNodes:`,e);let t=e.filter(e=>{console.log(`VNode type:`,e.type,`props:`,e.props);let t=e.type&&(typeof e.type==`object`||typeof e.type==`function`);return console.log(`Is component:`,t),t});console.log(`Valid VNodes:`,t),i.value=a(t),console.log(`SwTable mounted - columnTree:`,i.value),console.log(`SwTable mounted - flatColumns:`,p.value),console.log(`SwTable mounted - data:`,n.data)}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`table`,Da,[(0,t.createElementVNode)(`thead`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:n},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`th`,{key:e.key,colspan:e.colspan,rowspan:e.rowspan,style:(0,t.normalizeStyle)({minWidth:e.width,minHeight:e.height})},(0,t.toDisplayString)(e.label),13,Oa))),128))]))),128))]),(0,t.createElementVNode)(`tbody`,null,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(m.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`tr`,{key:r},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(n,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`td`,{key:n.key,colspan:n.colspan,rowspan:n.rowspan,style:(0,t.normalizeStyle)(n.style)},[(0,t.renderSlot)(e.$slots,n.prop,{row:n.originalRow,$index:n.rowIndex},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.label),1)])],12,ka))),128))]))),128))])]))}}})),Ma=i({default:()=>Fa}),Na,Pa,Fa,Ia=r((()=>{Na={key:0},Pa=[`onClick`],Fa={__name:`SwTabs`,props:(0,t.mergeModels)({class:{type:String,default:``}},{modelValue:{},modelModifiers:{}}),emits:(0,t.mergeModels)([`tab-click`],[`update:modelValue`]),setup(e,{emit:n}){(0,t.ref)(0);let r=(0,t.ref)([]),i=e,a=(0,t.useModel)(e,`modelValue`),o=n;function s(e){r.value.push(e)}function c(e){r.value=r.value.filter(t=>t!==e)}return(0,t.provide)(`registerTab`,s),(0,t.provide)(`unregisterTab`,c),(0,t.provide)(`activeTab`,a),(0,t.provide)(`tabs`,r),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(`sw-tabs `+i.class)},[r.value.length===0?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`header`,Na,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:n,class:(0,t.normalizeClass)([{active:a.value===n}]),onClick:e=>{a.value=n,o(`tab-click`,n)}},(0,t.toDisplayString)(e.label||e.title),11,Pa))),128))])),(0,t.renderSlot)(e.$slots,`default`)],2))}}})),La=i({default:()=>za}),Ra,za,Ba=r((()=>{Ra={key:0,class:`tab-content`},za={__name:`SwTabsPane`,props:{title:{type:String,required:!0},label:{type:String,default:``}},setup(e){let n=e,r=(0,t.inject)(`registerTab`),i=(0,t.inject)(`unregisterTab`);(0,t.onMounted)(()=>{r({title:n.title,label:n.label})}),(0,t.onUnmounted)(()=>{i({title:n.title,label:n.label})});let a=(0,t.inject)(`activeTab`),o=(0,t.inject)(`tabs`),s=(0,t.computed)(()=>o.value.findIndex(e=>e.title===n.title)),c=(0,t.computed)(()=>a.value===s.value);return(e,n)=>c.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ra,[(0,t.renderSlot)(e.$slots,`default`)])):(0,t.createCommentVNode)(``,!0)}}})),Va=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>(_(),h)),"./components/SwButton.vue":()=>Promise.resolve().then(()=>(w(),S)),"./components/SwButtonGroup.vue":()=>Promise.resolve().then(()=>(ne(),ee)),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>(ae(),re)),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>(je(),oe)),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>(Fe(),Me)),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>(Re(),Ie)),"./components/SwDropdownNew.vue":()=>Promise.resolve().then(()=>(He(),ze)),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>(Ge(),Ue)),"./components/SwGide.vue":()=>Promise.resolve().then(()=>(Ye(),Ke)),"./components/SwIcon.vue":()=>Promise.resolve().then(()=>(m(),d)),"./components/SwInput.vue":()=>Promise.resolve().then(()=>(rt(),tt)),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>(st(),it)),"./components/SwSection.vue":()=>Promise.resolve().then(()=>(dt(),ct)),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>(ra(),ta)),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>(ua(),ca)),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>(sa(),ia)),"./components/SwSlider.vue":()=>Promise.resolve().then(()=>(ma(),da)),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>(xa(),ya)),"./components/SwTable.vue":()=>Promise.resolve().then(()=>(ja(),Ea)),"./components/SwTableColumn.vue":()=>Promise.resolve().then(()=>(Ta(),Sa)),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>(Ia(),Ma)),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>(Ba(),La))}),Ha={};for(let e in Va){let n=e.split(`/`).pop().replace(`.vue`,``).replace(/-(\w)/g,(e,t)=>t.toUpperCase());Ha[n]=(0,t.defineAsyncComponent)(()=>Va[e]())}e.Alert=y,e.Library={install(e){Object.keys(Ha).forEach(t=>{e.component(t,Ha[t])}),e.config.globalProperties.$Alert=y,e.provide(`Alert`,y)}},e.components=Ha});
|
package/dist/index.js
CHANGED
|
@@ -40,8 +40,8 @@ var o = /* @__PURE__ */ Object.assign({
|
|
|
40
40
|
"./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-D3Wjgl7J.js"),
|
|
41
41
|
"./components/SwSlider.vue": () => import("./SwSlider-CyLU7COn.js"),
|
|
42
42
|
"./components/SwSwitch.vue": () => import("./SwSwitch-DluxsVEW.js"),
|
|
43
|
-
"./components/SwTable.vue": () => import("./SwTable-
|
|
44
|
-
"./components/SwTableColumn.vue": () => import("./SwTableColumn-
|
|
43
|
+
"./components/SwTable.vue": () => import("./SwTable-Da75Q9c5.js"),
|
|
44
|
+
"./components/SwTableColumn.vue": () => import("./SwTableColumn-CUaP7Ncj.js"),
|
|
45
45
|
"./components/SwTabs.vue": () => import("./SwTabs-zHhFxzck.js"),
|
|
46
46
|
"./components/SwTabsPane.vue": () => import("./SwTabsPane-BY5KEs_h.js")
|
|
47
47
|
}), s = {};
|
package/package.json
CHANGED
|
@@ -22,13 +22,29 @@
|
|
|
22
22
|
:rowspan="cell.rowspan"
|
|
23
23
|
:style="cell.style"
|
|
24
24
|
>
|
|
25
|
+
<!-- Сначала пробуем именованный слот по prop -->
|
|
25
26
|
<slot
|
|
27
|
+
v-if="slots[cell.prop]"
|
|
26
28
|
:name="cell.prop"
|
|
27
29
|
:row="cell.originalRow"
|
|
28
30
|
:$index="cell.rowIndex"
|
|
31
|
+
:value="cell.label"
|
|
32
|
+
/>
|
|
33
|
+
<!-- Затем пробуем слот default с данными конкретной ячейки -->
|
|
34
|
+
<slot
|
|
35
|
+
v-else-if="slots.default"
|
|
36
|
+
name="default"
|
|
37
|
+
:row="cell.originalRow"
|
|
38
|
+
:$index="cell.rowIndex"
|
|
39
|
+
:column="cell.prop"
|
|
40
|
+
:value="cell.label"
|
|
29
41
|
>
|
|
30
42
|
{{ cell.label }}
|
|
31
43
|
</slot>
|
|
44
|
+
<!-- Fallback на простое значение -->
|
|
45
|
+
<template v-else>
|
|
46
|
+
{{ cell.label }}
|
|
47
|
+
</template>
|
|
32
48
|
</td>
|
|
33
49
|
</tr>
|
|
34
50
|
</tbody>
|
|
@@ -53,6 +69,14 @@ function buildColumnTree(vnodes) {
|
|
|
53
69
|
const result = []
|
|
54
70
|
|
|
55
71
|
for (const vnode of vnodes) {
|
|
72
|
+
// Handle fragments (from v-for)
|
|
73
|
+
if (vnode.type === Symbol.for('v-fgt') || Array.isArray(vnode.children)) {
|
|
74
|
+
const children = Array.isArray(vnode.children) ? vnode.children : []
|
|
75
|
+
const childColumns = buildColumnTree(children)
|
|
76
|
+
result.push(...childColumns)
|
|
77
|
+
continue
|
|
78
|
+
}
|
|
79
|
+
|
|
56
80
|
// Check if this is a SwTableColumn component using multiple detection methods
|
|
57
81
|
const isTableColumn =
|
|
58
82
|
vnode.type === SwTableColumn ||
|
|
@@ -71,20 +95,12 @@ function buildColumnTree(vnodes) {
|
|
|
71
95
|
// Handle both function and array children
|
|
72
96
|
let children = []
|
|
73
97
|
if (typeof vnode.children?.default === 'function') {
|
|
74
|
-
try {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
console.warn('Error calling default slot:', e)
|
|
78
|
-
}
|
|
79
|
-
} else if (Array.isArray(vnode.children)) {
|
|
80
|
-
children = vnode.children
|
|
81
|
-
}
|
|
82
|
-
|
|
98
|
+
try {children = vnode.children.default()}
|
|
99
|
+
catch (e) {console.warn('Error calling default slot:', e)}
|
|
100
|
+
} else if (Array.isArray(vnode.children)) children = vnode.children
|
|
83
101
|
if (children && children.length > 0) {
|
|
84
102
|
const childColumns = buildColumnTree(children)
|
|
85
|
-
if (childColumns.length > 0)
|
|
86
|
-
column.children = childColumns
|
|
87
|
-
}
|
|
103
|
+
if (childColumns.length > 0) column.children = childColumns
|
|
88
104
|
}
|
|
89
105
|
result.push(column)
|
|
90
106
|
}
|
|
@@ -175,46 +191,29 @@ function extractLeafColumns(columns) {
|
|
|
175
191
|
// Обработка данных для tbody с поддержкой colspan
|
|
176
192
|
function processBodyData(data, columns) {
|
|
177
193
|
// Защита от undefined/null значений
|
|
178
|
-
if (!data || !Array.isArray(data))
|
|
179
|
-
|
|
180
|
-
}
|
|
181
|
-
if (!columns || !Array.isArray(columns)) {
|
|
182
|
-
return []
|
|
183
|
-
}
|
|
184
|
-
|
|
194
|
+
if (!data || !Array.isArray(data)) return []
|
|
195
|
+
if (!columns || !Array.isArray(columns)) return []
|
|
185
196
|
// Функция для получения значения по пути (например, "gant.0")
|
|
186
197
|
function getValueByPath(obj, path) {
|
|
187
198
|
if (!obj || !path) return undefined
|
|
188
|
-
|
|
189
199
|
// Разбиваем путь по точкам
|
|
190
200
|
const keys = path.split('.')
|
|
191
201
|
let value = obj
|
|
192
|
-
|
|
193
202
|
for (const key of keys) {
|
|
194
|
-
if (value === null || value === undefined)
|
|
195
|
-
return undefined
|
|
196
|
-
}
|
|
197
|
-
|
|
203
|
+
if (value === null || value === undefined) return undefined
|
|
198
204
|
// Пробуем обратиться как к свойству объекта или элементу массива
|
|
199
205
|
value = value[key]
|
|
200
206
|
}
|
|
201
|
-
|
|
202
207
|
return value
|
|
203
208
|
}
|
|
204
|
-
|
|
205
209
|
const processedRows = []
|
|
206
210
|
const cellMap = new Map() // Для отслеживания объединенных ячеек
|
|
207
211
|
data.forEach((row, rowIndex) => {
|
|
208
212
|
const processedRow = []
|
|
209
|
-
|
|
210
213
|
columns.forEach((column, colIndex) => {
|
|
211
214
|
const key = `${rowIndex}-${column.prop}`
|
|
212
|
-
|
|
213
215
|
// Проверяем, не занята ли эта ячейка из-за rowspan/colspan
|
|
214
|
-
if (cellMap.has(key))
|
|
215
|
-
return
|
|
216
|
-
}
|
|
217
|
-
|
|
216
|
+
if (cellMap.has(key)) return
|
|
218
217
|
// Получаем значение по пути (поддержка "gant.0", "gant.1" и т.д.)
|
|
219
218
|
const cellData = getValueByPath(row, column.prop)
|
|
220
219
|
let cellValue = cellData
|
|
@@ -229,7 +228,6 @@ function processBodyData(data, columns) {
|
|
|
229
228
|
rowspan = cellData.rowspan || 1
|
|
230
229
|
style = cellData.style || {}
|
|
231
230
|
}
|
|
232
|
-
|
|
233
231
|
const cell = {
|
|
234
232
|
key,
|
|
235
233
|
label: cellValue,
|
|
@@ -240,23 +238,17 @@ function processBodyData(data, columns) {
|
|
|
240
238
|
originalRow: row,
|
|
241
239
|
rowIndex
|
|
242
240
|
}
|
|
243
|
-
|
|
244
241
|
processedRow.push(cell)
|
|
245
|
-
|
|
246
|
-
|
|
247
242
|
// Помечаем объединенные ячейки
|
|
248
243
|
for (let r = 0; r < rowspan; r++) {
|
|
249
244
|
for (let c = 0; c < colspan; c++) {
|
|
250
245
|
if (r === 0 && c === 0) continue // Основная ячейка
|
|
251
246
|
const cellKey = `${rowIndex + r}-${columns[colIndex + c]?.prop}`
|
|
252
|
-
if (cellKey)
|
|
253
|
-
cellMap.set(cellKey, true)
|
|
254
|
-
}
|
|
247
|
+
if (cellKey) cellMap.set(cellKey, true)
|
|
255
248
|
}
|
|
256
249
|
}
|
|
257
250
|
})
|
|
258
251
|
|
|
259
|
-
// Добавляем строку только если в ней есть ячейки
|
|
260
252
|
if (processedRow.length > 0) {
|
|
261
253
|
processedRows.push(processedRow)
|
|
262
254
|
}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
</template>
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
|
+
import { defineProps } from 'vue'
|
|
6
7
|
|
|
7
|
-
defineProps({
|
|
8
|
+
const props = defineProps({
|
|
8
9
|
prop: {
|
|
9
10
|
type: String,
|
|
10
11
|
required: true
|
|
@@ -14,11 +15,11 @@ defineProps({
|
|
|
14
15
|
default: ''
|
|
15
16
|
},
|
|
16
17
|
width: {
|
|
17
|
-
type: String,
|
|
18
|
+
type: [String, Number],
|
|
18
19
|
default: 'auto'
|
|
19
20
|
},
|
|
20
21
|
height: {
|
|
21
|
-
type: String,
|
|
22
|
+
type: [String, Number],
|
|
22
23
|
default: 'auto'
|
|
23
24
|
}
|
|
24
25
|
})
|