@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 CHANGED
@@ -698,7 +698,7 @@ model - состояние чекбокса (checked ) булевое знач
698
698
 
699
699
  ## SwTable
700
700
 
701
- Разработка! Компонент `SwTable` представляет собой динамическую таблицу. Шаблон шапки задается вложением компонентов `SwTablecolumn` друг в друга. Содержание таблицы берется из свойства `data` - массив объектов, а слияние столбцов и строк задается подобъектом с соответствующими параметрами.
701
+ Компонент `SwTable` представляет собой динамическую таблицу с поддержкой сложных заголовков, объединения ячеек и кастомизации содержимого через слоты.
702
702
 
703
703
  ### Свойства / Properties
704
704
 
@@ -708,15 +708,24 @@ model - состояние чекбокса (checked ) булевое знач
708
708
 
709
709
  ### Слоты / Slots
710
710
 
711
- #`<name>` - пре определение шаблона столбца
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-CCqBUIhN.js";
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) 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) {
15
- let e = {
16
- ...r.props,
17
- children: []
18
- }, t = [];
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
- else Array.isArray(r.children) && (t = r.children);
25
- if (t && t.length > 0) {
26
- let n = x(t);
27
- n.length > 0 && (e.children = n);
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
  }
@@ -12,11 +12,11 @@ var n = { style: { display: "none" } }, r = {
12
12
  default: ""
13
13
  },
14
14
  width: {
15
- type: String,
15
+ type: [String, Number],
16
16
  default: "auto"
17
17
  },
18
18
  height: {
19
- type: String,
19
+ type: [String, Number],
20
20
  default: "auto"
21
21
  }
22
22
  },
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-QuMn5owM.js"),
44
- "./components/SwTableColumn.vue": () => import("./SwTableColumn-CCqBUIhN.js"),
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.11.22",
3
+ "version": "0.11.24",
4
4
  "description": "Vue components of Component-SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -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
- children = vnode.children.default()
76
- } catch (e) {
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
- return []
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
  })