@studio-west/component-sw 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
+ Находится в разработке !
1
2
  # Component SW - UI компоненты с поддержкой светлой и темной системной темы
2
3
 
3
- Библиотека компонентов `Component SW` предоставляет набор готовых UI-компонентов на vue 3 для быстрой разработки интерфейсов. Каждый компонент имеет набор свойств, которые можно настраивать для достижения желаемого поведения и внешнего вида. Имеет поддержку светлой и темной системной темы. А также имеет поддержку мобильных систем разработки
4
+ Библиотека компонентов `Component SW` предоставляет набор готовых UI-компонентов на vue 3 для быстрой разработки интерфейсов. Каждый компонент имеет набор свойств, которые можно настраивать для достижения желаемого поведения и внешнего вида. Имеет поддержку светлой и темной системной темы.
4
5
 
5
6
  ---
6
7
 
@@ -13,36 +14,22 @@ The `Component SW` library provides a set of ready-to-use UI components on Vue 3
13
14
  ## Содержание / Table of Contents
14
15
 
15
16
  - [Установка / Install](#установка--install)
16
-
17
17
  - [SwAlert](#swalert)
18
-
19
18
  - [SwButton](#swbutton)
20
-
19
+ - [SwInput](#swinput)
21
20
  - [SwCollapse](#swcollapse)
22
-
23
- - [SwDatePicker](#swdatepicker)
24
-
25
21
  - [SwDropdown](#swdropdown)
26
-
27
22
  - [SwDropdownItem](#swdropdownitem)
28
-
29
- - [SwInput](#swinput)
30
-
31
- - [SwMessage](#swmessage)
32
-
33
- - [SwSelect](#swselect)
34
-
23
+ - [SwDatePicker](#swdatepicker)
24
+ - [SwMtssage](#swmessage)
35
25
  - [SwSection](#swsection)
36
-
26
+ - [SwSelect](#swselect)
37
27
  - [SwSkeleton](#swskeleton)
38
-
39
28
  - [SwSkeletonItem](#swskeletonitem)
40
-
41
29
  - [SwSwitch](#swswitch)
42
-
43
30
  - [SwTabs](#swtabs)
44
-
45
31
  - [SwTabsPane](#swtabspane)
32
+
46
33
  ---
47
34
 
48
35
  ### Установка / Install
@@ -52,15 +39,14 @@ npm install @studio-west/component-sw
52
39
 
53
40
  ### Глобальное подключение / global add to main.js:
54
41
  ```js
55
- import { Library } from '@studio-west/component-sw';
42
+ import Library from '@studio-west/component-sw';
56
43
  import '@studio-west/component-sw/dist/component-sw.css';
57
44
 
58
45
  app.use(Library)
59
46
  ```
60
47
  Установка в ручную светлой и темной темы - добавление к тегу `html` классов `dark` или `light` / Installation in a manual light and dark theme - adding to the tag `html` classes` dark` or `light`
61
48
 
62
- ### Пример использования / Example Usage
63
-
49
+ пример:
64
50
  ```js
65
51
  const darkMode = () => {
66
52
  if(mode.value === 'dark-theme') {
@@ -74,14 +60,14 @@ const darkMode = () => {
74
60
  mode.value = (document.querySelector('html').classList.contains('dark')) ? 'light-theme' : 'dark-theme'
75
61
  }
76
62
  ```
77
- ## SwAlert
78
63
 
79
- Функция / Компонент `SwAlert`
64
+ ---
80
65
 
66
+ ## SwAlert
67
+ Функция / Компонент `SwAlert`
81
68
 
82
69
  ### Свойства / Properties
83
70
 
84
-
85
71
  | Имя | Тип | Значения/Описание |
86
72
  |------------|----------|-----------------------------------------------------------------------------|
87
73
  | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
@@ -95,17 +81,14 @@ const darkMode = () => {
95
81
  ### Пример использования / Example Usage
96
82
 
97
83
  ```js
98
- // .js addons
99
- import { Alert } from "@studio-west/component-sw"
100
- Alert({message: 'Message', type: 'danger', duration:10000, before:'bell'})
101
-
102
- // Composition API else <script setup>:
103
- import {inject} from "vue"
104
- const Alert = inject('Alert')
105
- Alert({message: 'Alarm!', type: 'warning'})
106
- //Options API:
107
- this.$Alert({message: 'Welcome!', type: 'success'});
84
+ // в main:
85
+ import { swAlert } from "@studio-west/component-sw/swAlert.js";
86
+
87
+ swAlert({ message: 'Предупреждение!', type: 'warning' });
88
+ // --
89
+ app.provide('swAlert', swAlert) // 💡 Пробросили через provide
108
90
  ```
91
+
109
92
  ---
110
93
 
111
94
  ## SwButton
@@ -120,153 +103,26 @@ this.$Alert({message: 'Welcome!', type: 'success'});
120
103
  | `size` | `String` | Размер кнопки: `'large'`, `'small'`. |
121
104
  | `type` | `String` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
122
105
  | `round` | `Boolean` | Делает кнопку визуально закругленной. |
123
- | `text` | `Boolean` | Делает кнопку визуально похожей на текст (без фона только граница). |
124
- | `link` | `Boolean` | Преобразует кнопку в ссылку(без фона и границ). |
106
+ | `text` | `Boolean` | Делает кнопку визуально похожей на текст (без фона). |
107
+ | `link` | `Boolean` | Преобразует кнопку в ссылку. |
125
108
  | `href` | `String` | URL, на который будет перенаправлен пользователь при клике (если `link=true`). |
126
109
 
127
110
  ### Пример использования / Example Usage
128
111
 
129
112
  ```html
130
113
  <sw-button
131
- class="custom-class"
132
- size="large"
133
- type="primary"
134
- round
135
- text
136
- link
137
- href="https://example.com"
114
+ class="custom-class"
115
+ size="large"
116
+ type="primary"
117
+ round
118
+ text
119
+ link
120
+ href="https://example.com"
138
121
  >
139
- Нажми меня / Click Me
122
+ Нажми меня / Click Me
140
123
  </sw-button>
141
124
  ```
142
- ---
143
-
144
- ## SwCollapse
145
-
146
- Компонент `SwCollapse` представляет собой аналог тегов <details> + <summary>, но с анимацией.
147
-
148
- ### Свойства / Properties
149
-
150
- | Имя | Тип | Значения/Описание |
151
- |----------|-----------|-------------------------------------|
152
- | `visual` | `Boolean` | Видимость `'true'` - по умолчанию. |
153
-
154
- ### Слоты / Slots
155
-
156
- Default - Контент для скрытия
157
-
158
- ### Пример использования / Example Usage
159
-
160
- ```html
161
- <sw-collapse :visual="false">
162
- <p>Скрытое / Hidden</p>
163
- </sw-collapse>
164
- ```
165
- ---
166
-
167
- ## SwDatePicker
168
-
169
- Компонент `SwDatePicker` представляет собой панель с календарем.
170
-
171
- ### Свойства / Properties
172
-
173
- | Имя | Тип | Значения/Описание |
174
- |--------------|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
175
- | `data` | `Object` | Начальные данные - диапазон ( при `'solid'` - используется только `'startDate'`) изначальных выбранных дат {endDate: '14-04-2025', startDate:'30-03-2025', holiday: { preholidays: ["2020-03-30"], holidays: ["2020-03-30"], holiday: ["2020-03-30"], nowork: ["2020-03-30"] }}, ограничение не более 2х месяцев. |
176
- | `limitation` | `Boolean, Array` | Массив ограничений дат: [{endDate: '14-04-2025', startDate:'30-03-2025'}], false - по умолчанию. |
177
- | `range` | `String` | Тип календаря: `'year'`,`'range'`, `'solid'` - по умолчанию. |
178
-
179
- ### События / Events
180
-
181
- input - событие выбора с данными {dateStart: "11.11.2011", dateEnd: "14-12-2011" ( при range), count: 1 }
182
-
183
- ### Слоты / Slots
184
-
185
- #double-arrow - для двойной стрелки по умолчанию `«`
186
-
187
- #arrow - для одинарной стрелки по умолчанию `‹`
188
-
189
- ### Пример использования / Example Usage
190
-
191
- ```html
192
- <sw-date-picker
193
- :data="{startDate: '11.11.2011' endDate: '14-12-2011'}"
194
- limitation=" [{endDate: '14-04-2025', startDate:'30-03-2025'}]"
195
- range="range"
196
- @selectPicker.stop="processing"
197
- >
198
- <template #double-arrow>«</template>
199
- <template #arrow>‹</template>
200
- </sw-date-picker>
201
- ```
202
- ---
203
-
204
- ## SwDropdown
205
-
206
- Компонент SwDropdown это всплывающее меню с возможностью настройки места относительного всплытия и типа Тригера.
207
-
208
- ### Свойства / Properties
209
-
210
-
211
- | Имя | Тип | Значения/Описание |
212
- |-------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
213
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
214
- | `size` | `String` | Размер поля: `'large'`, `'small'`. |
215
- | `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
216
- | `trigger` | `String` | `'click'` - по умолчанию, `'hover'`, `'context'`,`'none'`. |
217
- | `placement` | `String` | Относительное место всплытия `'bottom-left'` - по умолчанию, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
218
- | `maxWidth` | `Number` | Максимальная ширина меню в пикселях. |
219
-
220
- ### Слоты / Slots
221
-
222
- Default - текст описания или модуль / модули
223
-
224
- ### Пример использования / Example Usage
225
-
226
- ```html
227
- <script>let visual = false </script>
228
- <sw-dropdown
229
- class="custom-class"
230
- trigger="none"
231
- v-model="visual"
232
- maxWidth="o250"
233
- >
234
- <button @cick="visual = true">Описание</button>
235
- </sw-dropdown>
236
- ```
237
- ---
238
-
239
- ## SwDropdownItem
240
-
241
- Компонент SwDropdownItem это пункт во всплывающем меню с возможностью добавления в начало иконки.
242
-
243
- ### Свойства / Properties
244
-
245
-
246
- | Имя | Тип | Значения/Описание |
247
- |---------------|----------|--------------------------------------------------------------|
248
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
249
- | `size` | `String` | Размер поля: `'large'`, `'small'`. |
250
- | `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
251
- | `iconBefore` | `String` | Название иконки в коллекции. |
252
-
253
- ### Слоты / Slots
254
-
255
- Default - текст названия или модуль
256
-
257
- ### Пример использования / Example Usage
258
125
 
259
- ```html
260
- <script>let visual = false </script>
261
- <sw-dropdown
262
- class="custom-class"
263
- trigger="none"
264
- v-model="visual"
265
- maxWidth="o250"
266
- >
267
- <sw-dropdown-item @cick="visual = true" iconBefore="documents">Описание</sw-dropdown-item>
268
- </sw-dropdown>
269
- ```
270
126
  ---
271
127
 
272
128
  ## SwInput
@@ -300,9 +156,7 @@ prefix - клик иконке before
300
156
 
301
157
  suffix - клик иконке after
302
158
 
303
- focusInput - focus на поле ввода
304
-
305
- ### Пример использования / Example Usage
159
+ ### Пример использования
306
160
 
307
161
  ```html
308
162
  <sw-input
@@ -321,156 +175,28 @@ focusInput - focus на поле ввода
321
175
  </sw-input>
322
176
  ```
323
177
  ---
178
+ ## SwDropdown
324
179
 
325
- ## SwMessage
326
-
327
- Компонент SwMessage это выплывающее окно, центрируется по центру.
328
-
329
- ### Свойства / Properties
330
-
331
-
332
- | Имя | Тип | Значения/Описание |
333
- |-------------|-----------|-----------------------------------------------------------------------------|
334
- | `name` | `String` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`. |
335
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
336
- | `iconAfter` | `String` | Добавляет иконку из коллекции для кнопки закрытия (при наличии заголовка). |
337
-
338
- ### Слоты / Slots
339
-
340
- #header - слот для заголовка окна.
341
-
342
- #footer - слот для подвала.
343
-
344
- ### Пример использования / Example Usage
345
-
346
- ```html
347
- <sw-message
348
- v-model="model"
349
- name="Message"
350
- class="custom-class"
351
- >
352
- <p>Описание / Description</p>
353
- </sw-message>
354
- ```
355
- ---
356
-
357
- ## SwSection
358
-
359
- Компонент SwSection это тег section с шаблоном из слотов, по умолчанию в слот #header добавлено заголовок и иконка.
360
-
361
- ### Свойства / Properties
362
-
363
-
364
- | Имя | Тип | Значения/Описание |
365
- |-------------|-----------|----------------------------------------------------|
366
- | `name` | `String` | Добавляет заголовок в секцию. |
367
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
368
- | `iconAfter` | `String` | Добавляет иконку из коллекции. |
369
-
370
- ### Слоты / Slots
371
-
372
- #header - слот для заголовка секции.
373
-
374
- Default - содержимое секции
375
-
376
- #footer - слот для подвала секции.
377
-
378
- ### События / Events
379
-
380
- header - клик по всему Header
381
-
382
- ### Пример использования / Example Usage
383
-
384
- ```html
385
- <sw-section
386
- name="section"
387
- class="custom-class"
388
- iconAfter="cross"
389
- >
390
- <p>Содержимое / Content</p>
391
- <template #footer>
392
- <p>Footer!</p>
393
- </template>
394
- </sw-section>
395
- ```
396
- ---
397
-
398
- ## SwSelect
399
-
400
- Компонент SwSelect - реализация подсказок для https://dadata.ru/api/suggest/address/.
401
-
402
- ### Свойства / Properties
403
-
404
-
405
- | Имя | Тип | Значения/Описание |
406
- |----------------|-----------|-----------------------------------------------|
407
- | `class` | `String` | Добавляет пользовательский CSS-класс к popup. |
408
- | `size` | `String` | Размер поля: `'large'`, `'small'`. |
409
- | `placeholder` | `String` | Добавляет в placeholder описание. |
410
- | `token` | `String` | API-ключ для DADATA. |
411
-
412
-
413
- ### Пример использования / Example Usage
414
-
415
- ```html
416
- <sw-select
417
- v-model="model"
418
- class="custom-class"
419
- placeholder="placeholder"
420
- :token="${API_KEY}"
421
- />
422
- ```
423
- ---
424
-
425
- ## SwSkeleton
426
-
427
- Компонент SwSkeleton используется для анимации загрузки данных, выступая оболочкой компонента SwSkeletonItem
428
- или пользовательского компонента при использовании слота #skeleton, по умолчанию в слот #skeleton добавлен 1 SwSkeletonItem с базовыми настройками
429
-
430
- ### Свойства / Properties
431
-
432
-
433
- | Имя | Тип | Значения/Описание |
434
- |----------|-----------|----------------------------------------------------|
435
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
436
- | `visual` | `Boolean` | Тригер на переключение. |
437
-
438
- ### Слоты / Slots
439
-
440
- Default - Содержимое
441
-
442
- #skeleton - слот для skeleton
443
-
444
- ### Пример использования / Example Usage
445
-
446
- ```html
447
- <sw-skeleton
448
- :visual="visual"
449
- >
450
- <p>Содержимое / Content</p>
451
- </sw-skeleton>
452
- ```
453
- ---
454
-
455
- ## SwSkeletonItem
456
-
457
- Компонент SwSkeletonItem представляет собой полоску псевдо данных с возможностью анимирования.
180
+ Компонент SwDropdown это всплывающее меню с возможностью настройки места относительного всплытия и типа Тригера.
458
181
 
459
182
  ### Свойства / Properties
460
183
 
461
184
 
462
- | Имя | Тип | Значения/Описание |
463
- |------------|-----------|----------------------------------------------------|
464
- | `width` | `String` | Ширина элемента в процентах. |
465
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
466
- | `animate` | `String` | Добавляет анимацию в элемент. |
467
- | `size` | `String` | Размер поля: `'large'`, `'small'`. |
185
+ | Имя | Тип | Значения/Описание |
186
+ |-------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
187
+ | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
188
+ | `size` | `String` | Размер поля: `'large'`, `'small'`. |
189
+ | `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
190
+ | `trigger` | `String` | `'click'` - по умолчанию, `'hover'`, `'context'`,`'none'`. |
191
+ | `placement` | `String` | Относительное место всплытия `'bottom-left'` - по умолчанию, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
192
+ | `manual` | `Boolean` | Ручное управление показом по умолчанию `false`. |
193
+ | `maxWidth` | `Number` | Максимальная ширина меню в пикселях. |
468
194
 
469
195
 
470
- ### Пример использования / Example Usage
196
+ ### Пример использования
471
197
 
472
198
  ```html
473
- <sw-skeleton-item
199
+ <sw-dropdown
474
200
  v-model="model"
475
201
  name="switch"
476
202
  class="custom-class"
@@ -478,8 +204,8 @@ Default - Содержимое
478
204
  on="on"
479
205
  off="off"
480
206
  >
481
- <p>Описание / Description</p>
482
- </sw-skeleton-item>
207
+ <p>Описание</p>
208
+ </sw-dropdown>
483
209
  ```
484
210
  ---
485
211
 
@@ -500,11 +226,7 @@ Default - Содержимое
500
226
  | `off` | `String` | Текст при false. |
501
227
  | `checkbox` | `Boolean` | Визуализирует как обычный чекбокс. |
502
228
 
503
- ### Слоты / Slots
504
-
505
- Default - текст описания
506
-
507
- ### Пример использования / Example Usage
229
+ ### Пример использования
508
230
 
509
231
  ```html
510
232
  <sw-switch
@@ -515,72 +237,15 @@ Default - текст описания
515
237
  on="on"
516
238
  off="off"
517
239
  >
518
- <p>Описание / Description</p>
240
+ <p>Описание</p>
519
241
  </sw-switch>
520
242
  ```
521
243
  ---
522
244
 
523
- ## SwTabs
524
-
525
- Компонент SwTabs представляет собой панель вкладок SwTabsPane.
526
-
527
- ### Свойства / Properties
528
-
529
-
530
- | Имя | Тип | Значения/Описание |
531
- |---------|-----------|---------------------------------------------------------|
532
- | `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
533
-
534
- ### Слоты / Slots
535
-
536
- Default - для компонентов SwTabsPane
537
-
538
- ### Пример использования / Example Usage
539
-
540
- ```html
541
- <sw-tabs
542
- v-model="activeTabId"
543
- class="custom-class"
544
- >
545
- <sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
546
- </sw-tabs>
547
- ```
548
- ---
549
-
550
- ## SwTabsPane
551
-
552
- Компонент SwTabsPane представляет собой оболочку для вкладок.
553
-
554
- ### Свойства / Properties
555
-
556
-
557
- | Имя | Тип | Значения/Описание |
558
- |---------|-----------|-----------------------------------------------------------------------------------------|
559
- | `title` | `String` | название унификатор - обязателен при отсутствии `label` будет взят за название вкладки. |
560
- | `label` | `String` | название вкладки при отсутствии возьмется из `title`. |
561
-
562
- ### Слоты / Slots
563
-
564
- Default - для вкладок
565
-
566
- ### Пример использования / Example Usage
567
-
568
- ```html
569
- <sw-tabs
570
- v-model="activeTabId"
571
- class="custom-class"
572
- >
573
- <sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
574
- </sw-tabs>
575
- ```
576
- ---
577
-
578
245
  ### Лицензия / License
579
246
 
580
- Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE . /
247
+ Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE .
581
248
  This project is distributed under the MIT License. For details, see the LICENSE file.
582
-
583
249
  ---
584
-
585
- Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru. /
250
+ Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru.
586
251
  If you have any questions or suggestions, please create an issue to E-mail info@studiowest.ru.
@@ -1,5 +1,5 @@
1
- import { ref as f, computed as ne, createElementBlock as v, openBlock as i, createElementVNode as u, createCommentVNode as x, withModifiers as g, renderSlot as $, createTextVNode as M, toDisplayString as y, unref as F, Fragment as T, renderList as E, normalizeClass as U } from "vue";
2
- import { p as I } from "./index-CX5bF-tK.js";
1
+ import { ref as f, computed as ne, createElementBlock as v, openBlock as i, createElementVNode as u, createCommentVNode as x, withModifiers as g, renderSlot as M, createTextVNode as $, toDisplayString as k, unref as F, Fragment as T, renderList as E, normalizeClass as U } from "vue";
2
+ import { p as I } from "./index-CLNyMoBy.js";
3
3
  const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { class: "text" }, ue = {
4
4
  key: 0,
5
5
  class: "week"
@@ -34,14 +34,14 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
34
34
  emits: ["input"],
35
35
  setup(X, { emit: Z }) {
36
36
  var G, H, J, Q;
37
- const l = X, A = Z, c = f(3), k = f(/* @__PURE__ */ new Date()), N = f(/* @__PURE__ */ new Date()), r = f((/* @__PURE__ */ new Date()).getFullYear()), o = f((/* @__PURE__ */ new Date()).getMonth()), L = f((/* @__PURE__ */ new Date()).getFullYear()), O = f((/* @__PURE__ */ new Date()).getMonth()), P = f((/* @__PURE__ */ new Date()).getMonth() + 1), s = f([]), j = f(0), m = f(-1), C = f(-1), R = f(navigator.languages || "ru"), Y = /en|zh|ja|he/.test(R.value) ? 0 : 1, W = ne(() => Array.from({ length: 12 }, (t, e) => {
37
+ const l = X, L = Z, c = f(3), y = f(/* @__PURE__ */ new Date()), N = f(/* @__PURE__ */ new Date()), r = f((/* @__PURE__ */ new Date()).getFullYear()), o = f((/* @__PURE__ */ new Date()).getMonth()), O = f((/* @__PURE__ */ new Date()).getFullYear()), P = f((/* @__PURE__ */ new Date()).getMonth()), B = f((/* @__PURE__ */ new Date()).getMonth() + 1), s = f([]), j = f(0), m = f(-1), C = f(-1), R = f(navigator.languages || "ru"), Y = /en|zh|ja|he/.test(R.value) ? 0 : 1, W = ne(() => Array.from({ length: 12 }, (t, e) => {
38
38
  const a = new Date(2024, e);
39
39
  return new Intl.DateTimeFormat(R.value, { month: "long" }).format(a);
40
40
  })), w = (t) => {
41
41
  let e = t.split(t.match(/\D.*?\D?/));
42
42
  return e[0].length > 2 ? e.join("-") + "T00:00:01" : e.reverse().join("-") + "T00:00:01";
43
43
  };
44
- (G = l.data) != null && G.startDate && (k.value = new Date(w(l.data.startDate)), r.value = k.value.getFullYear(), o.value = k.value.getMonth()), (H = l.data) != null && H.endDate && l.range === "range" && (N.value = new Date(w(l.data.endDate)), L.value = N.value.getFullYear(), O.value = N.value.getMonth());
44
+ (G = l.data) != null && G.startDate && (y.value = new Date(w(l.data.startDate)), r.value = y.value.getFullYear(), o.value = y.value.getMonth()), (H = l.data) != null && H.endDate && l.range === "range" && (N.value = new Date(w(l.data.endDate)), O.value = N.value.getFullYear(), P.value = N.value.getMonth());
45
45
  const q = () => {
46
46
  s.value = [], j.value = 0;
47
47
  const t = new Date(r.value, o.value, 0);
@@ -61,7 +61,7 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
61
61
  if (!((e = l.data) != null && e.holiday)) return;
62
62
  const t = (a, n) => {
63
63
  a.forEach((D) => {
64
- const [d, p, b] = D.split("-").map(Number), S = s.value.findIndex((z) => z.year === d && z.month + 1 === p && z.day === b);
64
+ const [d, p, b] = D.split("-").map(Number), S = s.value.findIndex((A) => A.year === d && A.month + 1 === p && A.day === b);
65
65
  S !== -1 && (s.value[S].class[0] = n);
66
66
  });
67
67
  };
@@ -77,7 +77,7 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
77
77
  return console.warn("Warning: Диапазоны пересекаются:", t[e - 1], t[e]), !0;
78
78
  }
79
79
  return !1;
80
- }, B = (t, e, a) => {
80
+ }, V = (t, e, a) => {
81
81
  if (!l.limitation || l.limitation.length === 0) return !0;
82
82
  const n = new Date(t, e, a).getTime();
83
83
  for (let D of l.limitation) {
@@ -98,9 +98,9 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
98
98
  }
99
99
  }
100
100
  return !0;
101
- }, V = (t, e) => {
101
+ }, z = (t, e) => {
102
102
  const a = I(new Date(t.year, t.month, t.day), "{dd}.{m}.{Y}");
103
- l.range === "range" ? C.value !== -1 ? (ee(), m.value = e, s.value[e].class[1] = "active") : m.value !== -1 ? (C.value = e, te(m.value, C.value, a)) : (m.value = e, s.value[e].class[1] = "active") : (m.value !== -1 && (s.value[m.value].class[1] = ""), m.value = e, s.value[e].class[1] = "active", A("input", { dateStart: a, count: 1 }));
103
+ l.range === "range" ? C.value !== -1 ? (ee(), m.value = e, s.value[e].class[1] = "active") : m.value !== -1 ? (C.value = e, te(m.value, C.value, a)) : (m.value = e, s.value[e].class[1] = "active") : (m.value !== -1 && (s.value[m.value].class[1] = ""), m.value = e, s.value[e].class[1] = "active", L("input", { dateStart: a, count: 1 }));
104
104
  }, ee = () => {
105
105
  s.value.forEach((t) => t.class[1] = ""), m.value = -1, C.value = -1;
106
106
  }, te = (t, e, a) => {
@@ -111,7 +111,7 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
111
111
  else
112
112
  for (let d = e + 1; d < t; d++)
113
113
  s.value[d].class[1] = "select";
114
- s.value[e].class[1] = "active", A("input", { dateStart: n, dateEnd: a, count: D });
114
+ s.value[e].class[1] = "active", L("input", { dateStart: n, dateEnd: a, count: D });
115
115
  }, ae = (t, e) => {
116
116
  var d;
117
117
  let a = Math.abs(t - e) + 1, [n, D] = [Math.min(t, e), Math.max(t, e)];
@@ -119,9 +119,9 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
119
119
  ((d = s.value[p]) == null ? void 0 : d.class[0]) === "holiday" && a--;
120
120
  return a;
121
121
  }, h = (t, e) => {
122
- B(t, e) && (k.value = new Date(t, e, 1), r.value = k.value.getFullYear(), o.value = k.value.getMonth(), console.log(c.value), l.range === "year" && c.value === 0 ? V({ year: t, month: e, day: 1 }, 8) : q());
122
+ V(t, e) && (y.value = new Date(t, e, 1), r.value = y.value.getFullYear(), o.value = y.value.getMonth(), B.value = new Date(t, e + 1, 1).getMonth(), console.log(c.value), l.range === "year" && c.value === 0 ? z({ year: t, month: e, day: 1 }, 8) : q());
123
123
  };
124
- if (q(), K() && console.error("Ошибка: Найдены пересекающиеся диапазоны!"), (J = l.data) != null && J.startDate && (m.value = s.value.findIndex((t) => t.day === k.value.getDate() && t.month === o.value && t.year === r.value), m.value !== -1 && (s.value[m.value].class[1] = "active")), (Q = l.data) != null && Q.endDate && l.range === "range" && (C.value = s.value.findIndex((t) => t.day === N.value.getDate() && t.month === O.value && t.year === L.value), C.value !== -1)) {
124
+ if (q(), K() && console.error("Ошибка: Найдены пересекающиеся диапазоны!"), (J = l.data) != null && J.startDate && (m.value = s.value.findIndex((t) => t.day === y.value.getDate() && t.month === o.value && t.year === r.value), m.value !== -1 && (s.value[m.value].class[1] = "active")), (Q = l.data) != null && Q.endDate && l.range === "range" && (C.value = s.value.findIndex((t) => t.day === N.value.getDate() && t.month === P.value && t.year === O.value), C.value !== -1)) {
125
125
  s.value[C.value].class[1] = "active";
126
126
  for (let t = m.value + 1; t < C.value; t++)
127
127
  s.value[t].class[1] = "select";
@@ -133,8 +133,8 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
133
133
  u("button", {
134
134
  onClick: e[0] || (e[0] = g((a) => h(r.value - 1, o.value), ["prevent"]))
135
135
  }, [
136
- $(t.$slots, "double-arrow", {}, () => [
137
- e[12] || (e[12] = M("«"))
136
+ M(t.$slots, "double-arrow", {}, () => [
137
+ e[12] || (e[12] = $("«"))
138
138
  ])
139
139
  ]),
140
140
  u("button", {
@@ -142,18 +142,18 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
142
142
  c.value = 0, h(r.value, o.value - 1);
143
143
  }, ["prevent"]))
144
144
  }, [
145
- $(t.$slots, "arrow", {}, () => [
146
- e[13] || (e[13] = M("‹"))
145
+ M(t.$slots, "arrow", {}, () => [
146
+ e[13] || (e[13] = $("‹"))
147
147
  ])
148
148
  ])
149
149
  ]),
150
150
  u("span", oe, [
151
151
  u("button", {
152
152
  onClick: e[2] || (e[2] = g((a) => c.value = 1, ["prevent"]))
153
- }, y(r.value), 1),
153
+ }, k(r.value), 1),
154
154
  u("button", {
155
155
  onClick: e[3] || (e[3] = g((a) => c.value = 1, ["prevent"]))
156
- }, y(F(I)(k.value.setMonth(o.value), "{F}")), 1)
156
+ }, k(F(I)(y.value.setMonth(o.value), "{F}")), 1)
157
157
  ]),
158
158
  u("span", null, [
159
159
  u("button", {
@@ -162,16 +162,16 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
162
162
  c.value = 0, h(r.value, o.value + 1);
163
163
  }, ["prevent"]))
164
164
  }, [
165
- $(t.$slots, "arrow", {}, () => [
166
- e[14] || (e[14] = M("‹"))
165
+ M(t.$slots, "arrow", {}, () => [
166
+ e[14] || (e[14] = $("‹"))
167
167
  ])
168
168
  ]),
169
169
  u("button", {
170
170
  class: "sw-revers",
171
171
  onClick: e[5] || (e[5] = g((a) => h(r.value + 1, o.value), ["prevent"]))
172
172
  }, [
173
- $(t.$slots, "double-arrow", {}, () => [
174
- e[15] || (e[15] = M("«"))
173
+ M(t.$slots, "double-arrow", {}, () => [
174
+ e[15] || (e[15] = $("«"))
175
175
  ])
176
176
  ])
177
177
  ])
@@ -180,7 +180,7 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
180
180
  (i(), v(T, null, E(7, (a, n) => u("button", {
181
181
  key: n,
182
182
  class: "disabled"
183
- }, y(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
183
+ }, k(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
184
184
  ])),
185
185
  l.range === "year" || c.value === 1 ? (i(), v("div", re, [
186
186
  (i(!0), v(T, null, E(W.value, (a, n) => (i(), v("button", {
@@ -188,16 +188,16 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
188
188
  onClick: g((D) => {
189
189
  c.value = 0, h(r.value, n);
190
190
  }, ["prevent"])
191
- }, y(a), 9, ve))), 128))
191
+ }, k(a), 9, ve))), 128))
192
192
  ])) : (i(), v("div", ie, [
193
193
  (i(!0), v(T, null, E(s.value, (a, n) => (i(), v(T, { key: n }, [
194
194
  n < j.value + (7 - new Date(r.value, o.value + 1, 1).getDay() + F(Y)) % 7 ? (i(), v("button", {
195
195
  key: 0,
196
- class: U(a.month === o.value && B(a.year, a.month, a.day) ? a.class : "disabled"),
196
+ class: U(a.month === o.value && V(a.year, a.month, a.day) ? a.class : "disabled"),
197
197
  onClick: g(() => {
198
- a.month === o.value && V(a, n);
198
+ a.month === o.value && z(a, n);
199
199
  }, ["prevent"])
200
- }, y(a.day), 11, de)) : x("", !0)
200
+ }, k(a.day), 11, de)) : x("", !0)
201
201
  ], 64))), 128))
202
202
  ]))
203
203
  ]),
@@ -207,8 +207,8 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
207
207
  u("button", {
208
208
  onClick: e[6] || (e[6] = g((a) => h(r.value - 1, o.value), ["prevent"]))
209
209
  }, [
210
- $(t.$slots, "double-arrow", {}, () => [
211
- e[16] || (e[16] = M("«"))
210
+ M(t.$slots, "double-arrow", {}, () => [
211
+ e[16] || (e[16] = $("«"))
212
212
  ])
213
213
  ]),
214
214
  u("button", {
@@ -216,18 +216,18 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
216
216
  c.value = 0, h(r.value, o.value - 1);
217
217
  }, ["prevent"]))
218
218
  }, [
219
- $(t.$slots, "arrow", {}, () => [
220
- e[17] || (e[17] = M("‹"))
219
+ M(t.$slots, "arrow", {}, () => [
220
+ e[17] || (e[17] = $("‹"))
221
221
  ])
222
222
  ])
223
223
  ]),
224
224
  u("span", De, [
225
225
  u("button", {
226
226
  onClick: e[8] || (e[8] = g((a) => c.value = 2, ["prevent"]))
227
- }, y(new Date(r.value, o.value + 1).getFullYear()), 1),
227
+ }, k(new Date(r.value, o.value + 1).getFullYear()), 1),
228
228
  u("button", {
229
229
  onClick: e[9] || (e[9] = g((a) => c.value = 2, ["prevent"]))
230
- }, y(F(I)(k.value.setMonth(o.value + 1), "{F}")), 1)
230
+ }, k(F(I)(y.value.setMonth(o.value + 1), "{F}")), 1)
231
231
  ]),
232
232
  u("span", null, [
233
233
  u("button", {
@@ -236,16 +236,16 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
236
236
  c.value = 0, h(r.value, o.value + 1);
237
237
  }, ["prevent"]))
238
238
  }, [
239
- $(t.$slots, "arrow", {}, () => [
240
- e[18] || (e[18] = M("‹"))
239
+ M(t.$slots, "arrow", {}, () => [
240
+ e[18] || (e[18] = $("‹"))
241
241
  ])
242
242
  ]),
243
243
  u("button", {
244
244
  class: "sw-revers",
245
245
  onClick: e[11] || (e[11] = g((a) => h(r.value + 1, o.value), ["prevent"]))
246
246
  }, [
247
- $(t.$slots, "double-arrow", {}, () => [
248
- e[19] || (e[19] = M("«"))
247
+ M(t.$slots, "double-arrow", {}, () => [
248
+ e[19] || (e[19] = $("«"))
249
249
  ])
250
250
  ])
251
251
  ])
@@ -254,7 +254,7 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
254
254
  (i(), v(T, null, E(7, (a, n) => u("button", {
255
255
  key: n,
256
256
  class: "disabled"
257
- }, y(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
257
+ }, k(F(I)(new Date(1970, 1, a + F(Y)), "{D}")), 1)), 64))
258
258
  ])) : x("", !0),
259
259
  c.value === 2 ? (i(), v("div", me, [
260
260
  (i(!0), v(T, null, E(W.value, (a, n) => (i(), v("button", {
@@ -262,16 +262,16 @@ const le = { class: "sw-data-picker" }, se = { class: "month_year" }, oe = { cla
262
262
  onClick: g((D) => {
263
263
  c.value = 0, h(r.value, n - 1);
264
264
  }, ["prevent"])
265
- }, y(a), 9, pe))), 128))
265
+ }, k(a), 9, pe))), 128))
266
266
  ])) : (i(), v("div", we, [
267
267
  (i(!0), v(T, null, E(s.value, (a, n) => (i(), v(T, { key: n }, [
268
268
  n >= j.value - (7 + new Date(r.value, o.value + 1, 1).getDay() - F(Y)) % 7 ? (i(), v("button", {
269
269
  key: 0,
270
- class: U(a.month === P.value && B(a.year, a.month, a.day) ? a.class : "disabled"),
270
+ class: U(a.month === B.value && V(a.year, a.month, a.day) ? a.class : "disabled"),
271
271
  onClick: g(() => {
272
- a.month === P.value && V(a, n);
272
+ a.month === B.value && z(a, n);
273
273
  }, ["prevent"])
274
- }, y(a.day), 11, he)) : x("", !0)
274
+ }, k(a.day), 11, he)) : x("", !0)
275
275
  ], 64))), 128))
276
276
  ]))
277
277
  ])) : x("", !0)
@@ -1,5 +1,5 @@
1
- import { mergeModels as B, computed as x, useModel as O, ref as f, onMounted as V, onUnmounted as P, createElementBlock as $, openBlock as m, withModifiers as w, normalizeClass as S, renderSlot as E, createBlock as N, Teleport as q, createCommentVNode as A, normalizeStyle as D, unref as U } from "vue";
2
- const X = ["id"], j = {
1
+ import { mergeModels as B, computed as x, useModel as O, ref as f, onMounted as V, onUnmounted as P, createElementBlock as $, openBlock as m, withModifiers as w, normalizeClass as S, renderSlot as E, createBlock as N, Teleport as q, createCommentVNode as A, normalizeStyle as D, unref as U, nextTick as X } from "vue";
2
+ const Y = ["id"], F = {
3
3
  __name: "SwDropdown",
4
4
  props: /* @__PURE__ */ B({
5
5
  class: { type: String, default: "" },
@@ -16,16 +16,16 @@ const X = ["id"], j = {
16
16
  setup(g, { expose: M }) {
17
17
  const i = g;
18
18
  x(() => "dropdown" + Array.from(document.body.children).indexOf(document.querySelector("ul")));
19
- const s = O(g, "modelValue"), a = f(null), c = f(null), v = f({}), h = Math.ceil(Math.random() * 1e3), W = x(
19
+ const s = O(g, "modelValue"), p = f(null), c = f(null), v = f({}), h = Math.ceil(Math.random() * 1e3), W = x(
20
20
  () => {
21
21
  let t = ["sw-dropdown"];
22
22
  return i.size.length > 0 && t.push("sw-" + i.size), i.type.length > 0 && t.push("sw-" + i.type), t;
23
23
  }
24
- ), p = async () => {
25
- if (!c.value) return;
24
+ ), a = async () => {
25
+ if (await X(), !c.value) return;
26
26
  const t = window.pageYOffset || document.documentElement.scrollTop, l = window.pageXOffset || document.documentElement.scrollLeft;
27
27
  document.body.style.position = "fixed", document.body.style.top = `-${t}px`, document.body.style.left = `-${l}px`, document.body.style.position = "", document.body.style.top = "", document.body.style.left = "", document.documentElement.scrollTop = t, document.documentElement.scrollLeft = l;
28
- const e = a.value.getBoundingClientRect(), L = window.innerWidth, R = window.innerHeight, d = c.value.offsetHeight, r = c.value.offsetWidth;
28
+ const e = p.value.getBoundingClientRect(), L = window.innerWidth, R = window.innerHeight, d = c.value.offsetHeight, r = c.value.offsetWidth;
29
29
  console.log("popupHeight", d), console.log("popupWidth", r);
30
30
  let o = e.left + e.width / 2 + l, n = e.top + e.height / 2 + t, u = e.height / 2 + 8;
31
31
  const [H, T] = i.placement.split("-", 2);
@@ -58,17 +58,17 @@ const X = ["id"], j = {
58
58
  maxWidth: i.maxWidth === 0 ? "" : `${i.maxWidth}px`
59
59
  };
60
60
  };
61
- M({ positionPopup: p });
61
+ M({ positionPopup: a });
62
62
  const z = () => {
63
- i.trigger === "click" && (s.value = !s.value), s.value && p();
63
+ i.trigger === "click" && (s.value = !s.value), s.value && a();
64
64
  }, y = () => {
65
- i.trigger === "hover" && (s.value = !s.value), s.value && p();
65
+ i.trigger === "hover" && (s.value = !s.value), s.value && a();
66
66
  }, C = () => {
67
- i.trigger === "context" && (s.value = !s.value), s.value && p();
67
+ i.trigger === "context" && (s.value = !s.value), s.value && a();
68
68
  }, b = () => {
69
- s.value && p();
69
+ s.value && a();
70
70
  }, k = (t) => {
71
- !t.target.closest(`[id="${h}"]`) && a.value && !a.value.contains(t.target) && (s.value = !1);
71
+ !t.target.closest(`[id="${h}"]`) && p.value && !p.value.contains(t.target) && (s.value = !1);
72
72
  };
73
73
  return V(() => {
74
74
  window.addEventListener("resize", b), window.addEventListener("click", k);
@@ -81,7 +81,7 @@ const X = ["id"], j = {
81
81
  onMouseleave: l[2] || (l[2] = w((e) => y(), ["stop"])),
82
82
  onContextmenu: l[3] || (l[3] = w((e) => C(), ["stop"])),
83
83
  ref_key: "dropdownRef",
84
- ref: a
84
+ ref: p
85
85
  }, [
86
86
  E(t.$slots, "default"),
87
87
  (m(), N(q, { to: "body" }, [
@@ -95,11 +95,11 @@ const X = ["id"], j = {
95
95
  tabindex: "-1"
96
96
  }, [
97
97
  E(t.$slots, "dropdown")
98
- ], 14, X)) : A("", !0)
98
+ ], 14, Y)) : A("", !0)
99
99
  ]))
100
100
  ], 34));
101
101
  }
102
102
  };
103
103
  export {
104
- j as default
104
+ F as default
105
105
  };
@@ -1,5 +1,5 @@
1
1
  import { mergeModels as y, useModel as V, ref as C, computed as I, watch as M, createElementBlock as d, openBlock as i, normalizeClass as A, createBlock as v, renderSlot as _, createCommentVNode as x, withDirectives as E, createTextVNode as N, toDisplayString as R, createElementVNode as T, vModelDynamic as F } from "vue";
2
- import { S } from "./index-CX5bF-tK.js";
2
+ import { S } from "./index-CLNyMoBy.js";
3
3
  const O = ["for"], U = {
4
4
  key: 0,
5
5
  title: "Это поле обязательно для заполнения."
@@ -144,7 +144,7 @@ function w(e = {}) {
144
144
  }), t = n.mount(document.createElement("div"));
145
145
  l.appendChild(t.$el);
146
146
  }
147
- const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-85-tKHA7.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-ByvwHeVt.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-x-8gziOv.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-C08tG2Gv.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-wFMHwJJk.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CaA4jsoa.js"), "./components/SwInput.vue": () => import("./SwInput-CsXSaxlv.js"), "./components/SwMessage.vue": () => import("./SwMessage-CLIBIKTf.js"), "./components/SwSection.vue": () => import("./SwSection-CQfw3-el.js"), "./components/SwSelect.vue": () => import("./SwSelect-C2RKinez.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-B7ysp8L9.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-FMwJbEH7.js"), "./components/SwTabs.vue": () => import("./SwTabs-DkSI4oAh.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-Dwtj8g7T.js") }), d = {};
147
+ const h = /* @__PURE__ */ Object.assign({ "./components/SwAlert.vue": () => Promise.resolve().then(() => U), "./components/SwButton.vue": () => import("./SwButton-85-tKHA7.js"), "./components/SwCollapse.vue": () => import("./SwCollapse-ByvwHeVt.js"), "./components/SwDatePicker.vue": () => import("./SwDatePicker-CBjN8EHf.js"), "./components/SwDropdown.vue": () => import("./SwDropdown-CKg8uOOQ.js"), "./components/SwDropdownItem.vue": () => import("./SwDropdownItem-wFMHwJJk.js"), "./components/SwFormItem.vue": () => import("./SwFormItem-CaA4jsoa.js"), "./components/SwInput.vue": () => import("./SwInput-DzHNW0LG.js"), "./components/SwMessage.vue": () => import("./SwMessage-CLIBIKTf.js"), "./components/SwSection.vue": () => import("./SwSection-CQfw3-el.js"), "./components/SwSelect.vue": () => import("./SwSelect-C2RKinez.js"), "./components/SwSkeleton.vue": () => import("./SwSkeleton-B7ysp8L9.js"), "./components/SwSkeletonItem.vue": () => import("./SwSkeletonItem-CU7LvihY.js"), "./components/SwSwitch.vue": () => import("./SwSwitch-FMwJbEH7.js"), "./components/SwTabs.vue": () => import("./SwTabs-DkSI4oAh.js"), "./components/SwTabsPane.vue": () => import("./SwTabsPane-Dwtj8g7T.js") }), d = {};
148
148
  for (const e in h) {
149
149
  const n = e.split("/").pop().replace(".vue", "").replace(/-(\w)/g, (t, o) => o.toUpperCase());
150
150
  d[n] = P(() => h[e]());
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- (function(z,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(z=typeof globalThis<"u"?globalThis:z||self,e(z["component-sw"]={},z.vue))})(this,function(z,e){"use strict";function K(s){return/^(https?:|mailto:|tel:)/.test(s)}function O(s,n){if(arguments.length===0||!s)return null;const t=n||"{Y}-{m}-{d} {G}:{i}:{s}";let o;typeof s=="object"?o=s:(typeof s=="string"&&(/^[0-9]+$/.test(s)?s=parseInt(s):s=s.replace(new RegExp(/-/gm),"/")),typeof s=="number"&&s.toString().length===10&&(s=s*1e3),o=new Date(s));const l="ru-RU",c={Y:o.getFullYear(),m:(o.getMonth()+1).toString().padStart(2,"0"),d:o.getDate(),dd:o.getDate().toString().padStart(2,"0"),G:o.getHours(),H:o.getHours().toString().padStart(2,"0"),i:o.getMinutes().toString().padStart(2,"0"),s:o.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(l,{weekday:"short"}).format(o),F:new Intl.DateTimeFormat(l,{month:"long"}).format(o),M:new Intl.DateTimeFormat(l,{month:"short"}).format(o)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(S,p)=>c[p])}const ee=(s,n)=>{const t=s.__vccOpts||s;for(const[o,l]of n)t[o]=l;return t},te={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return K(this.iconClass)}}},oe=["href"];function le(s,n,t,o,l,c){return c.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},s.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},s.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,oe)],16))}const I=ee(te,[["render",le]]),H={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:s=>["success","warning","error","info"].includes(s)}},emits:["closed"],setup(s,{emit:n}){const t=s,o=n,l=e.ref(!1);let c=null;const S=()=>{l.value=!0,M()},p=()=>{l.value=!1,o("closed")},d=()=>{c&&(clearTimeout(c),c=null)},h=()=>{M()},M=()=>{c=setTimeout(p,t.duration)};e.onMounted(()=>{S()}),e.onUnmounted(()=>{c&&clearTimeout(c)});const b=e.computed(()=>{const m=["sw-alert"];return t.size.length>0&&m.push(`sw-${t.size}`),t.type.length>0&&m.push(`sw-${t.type}`),t.class.length>0&&m.push(t.class),m});return(m,y)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(b.value),onMouseenter:d,onMouseleave:h},[t.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(m.$slots,"prefix",{key:1}),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(I,{key:2,"icon-class":t.after,onClick:p},null,8,["icon-class"])):e.renderSlot(m.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},ne=Object.freeze(Object.defineProperty({__proto__:null,default:H},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function L(s={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const n=e.createApp({setup(){return()=>e.h(H,{...s,onClose:()=>{P.removeChild(n._container),n.unmount()}})}}),t=n.mount(document.createElement("div"));P.appendChild(t.$el)}const W=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>ne),"./components/SwButton.vue":()=>Promise.resolve().then(()=>se),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>re),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>$e),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>Me),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwInput.vue":()=>Promise.resolve().then(()=>xe),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>je),"./components/SwSection.vue":()=>Promise.resolve().then(()=>Oe),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Ae),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Re),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ye),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>We),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Xe),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Qe)}),A={};for(const s in W){const n=s.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,o)=>o.toUpperCase());A[n]=e.defineAsyncComponent(()=>W[s]())}const ae={install(s){Object.keys(A).forEach(n=>{s.component(n,A[n]),console.log(n)}),s.config.globalProperties.$Alert=L,s.provide("Alert",L)}},U={__name:"SwButton",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},round:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},href:{type:String,default:""}},setup(s){const n=s,t=()=>{if(n.href.length>0){const l=document.createElement("a");l.setAttribute("href",n.href),l.setAttribute("target","_blank"),l.click()}},o=e.computed(()=>{let l=["sw-button"];return n.size.length>0&&l.push("sw-"+n.size),n.type.length>0&&l.push("sw-"+n.type),n.round&&l.push("sw-round"),n.text&&l.push("sw-text"),n.link&&l.push("sw-link"),n.class.length>0&&l.push(n.class),l});return(l,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(o.value),onClick:t},[e.renderSlot(l.$slots,"default")],2))}},se=Object.freeze(Object.defineProperty({__proto__:null,default:U},Symbol.toStringTag,{value:"Module"})),re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(s){e.onMounted(()=>{o.value="0px"});const n=e.ref(null),t=s;e.watch(()=>t.visual,()=>l());const o=e.ref("0px"),l=()=>{n.value&&(o.value=t.visual?n.value.scrollHeight+"px":"0px")};let c;return e.onMounted(()=>{l(),n.value&&(c=new ResizeObserver(l),c.observe(n.value))}),e.onBeforeUnmount(()=>{c&&c.disconnect()}),(S,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({height:o.value}),ref_key:"collapse",ref:n},[e.renderSlot(S.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),ie={class:"sw-data-picker"},ce={class:"month_year"},de={class:"text"},pe={key:0,class:"week"},me={key:1,class:"year"},fe=["onClick"],ue={key:2,class:"month"},ge=["onClick"],he={key:0},ye={class:"month_year"},Se={class:"text"},we={key:0,class:"week"},ke={key:1,class:"year"},_e=["onClick"],be={key:2,class:"month"},Be=["onClick"],$e=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(s,{emit:n}){var X,J,Q,Z;const t=s,o=n,l=e.ref(3),c=e.ref(new Date),S=e.ref(new Date),p=e.ref(new Date().getFullYear()),d=e.ref(new Date().getMonth()),h=e.ref(new Date().getFullYear()),M=e.ref(new Date().getMonth()),b=e.ref(new Date().getMonth()+1),m=e.ref([]),y=e.ref(0),w=e.ref(-1),f=e.ref(-1),_=e.ref(navigator.languages||"ru"),u=/en|zh|ja|he/.test(_.value)?0:1,v=e.computed(()=>Array.from({length:12},(r,a)=>{const i=new Date(2024,a);return new Intl.DateTimeFormat(_.value,{month:"long"}).format(i)})),E=r=>{let a=r.split(r.match(/\D.*?\D?/));return a[0].length>2?a.join("-")+"T00:00:01":a.reverse().join("-")+"T00:00:01"};(X=t.data)!=null&&X.startDate&&(c.value=new Date(E(t.data.startDate)),p.value=c.value.getFullYear(),d.value=c.value.getMonth()),(J=t.data)!=null&&J.endDate&&t.range==="range"&&(S.value=new Date(E(t.data.endDate)),h.value=S.value.getFullYear(),M.value=S.value.getMonth());const D=()=>{m.value=[],y.value=0;const r=new Date(p.value,d.value,0);for(let i=r.getDate()-r.getDay()+u;i<=r.getDate();i++)r.getDay()!==6+u&&(m.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]}),y.value++);const a=new Date(p.value,d.value+1,0).getDate();for(let i=1;i<=a;i++)m.value.push({day:i,month:d.value,year:p.value,class:[]}),y.value++;if(t.range==="range"){const i=new Date(p.value,d.value+1,1),g=new Date(p.value,d.value+2,0).getDate();for(let C=1;C<=g;C++)m.value.push({day:C,month:i.getMonth(),year:i.getFullYear(),class:[]})}T()},T=()=>{var a;if(!((a=t.data)!=null&&a.holiday))return;const r=(i,g)=>{i.forEach(C=>{const[$,V,j]=C.split("-").map(Number),F=m.value.findIndex(q=>q.year===$&&q.month+1===V&&q.day===j);F!==-1&&(m.value[F].class[0]=g)})};r(t.data.holiday.preholidays,"preholiday"),r(t.data.holiday.holidays,"weekend"),r(t.data.holiday.holiday,"holiday"),r(t.data.holiday.nowork,"nowork")},k=()=>{if(!t.limitation||t.limitation.length<2)return!1;const r=[...t.limitation].sort((a,i)=>new Date(E(a.startDate)).getTime()-new Date(E(i.startDate)).getTime());for(let a=1;a<r.length;a++){const i=new Date(E(r[a-1].endDate));if(new Date(E(r[a].startDate))<=i)return console.warn("Warning: Диапазоны пересекаются:",r[a-1],r[a]),!0}return!1},B=(r,a,i)=>{if(!t.limitation||t.limitation.length===0)return!0;const g=new Date(r,a,i).getTime();for(let C of t.limitation){const{startDate:$,endDate:V}=C;if(!$&&V){const j=new Date(E(V)).getTime();if(g<=j)return!1}if($&&!V){const j=new Date(E($)).getTime();if(g>=j)return!1}if($&&V){const j=new Date(E($)).getTime(),F=new Date(E(V)).getTime();if(j<=F){if(g>=j&&g<=F)return!1}else if(g>=j||g<=F)return!1}}return!0},N=(r,a)=>{const i=O(new Date(r.year,r.month,r.day),"{dd}.{m}.{Y}");t.range==="range"?f.value!==-1?(Y(),w.value=a,m.value[a].class[1]="active"):w.value!==-1?(f.value=a,R(w.value,f.value,i)):(w.value=a,m.value[a].class[1]="active"):(w.value!==-1&&(m.value[w.value].class[1]=""),w.value=a,m.value[a].class[1]="active",o("input",{dateStart:i,count:1}))},Y=()=>{m.value.forEach(r=>r.class[1]=""),w.value=-1,f.value=-1},R=(r,a,i)=>{let g=O(new Date(m.value[r].year,m.value[r].month,m.value[r].day),"{dd}.{m}.{Y}"),C=Ze(r,a);if(a>=r)for(let $=r+1;$<a;$++)m.value[$].class[1]="select";else for(let $=a+1;$<r;$++)m.value[$].class[1]="select";m.value[a].class[1]="active",o("input",{dateStart:g,dateEnd:i,count:C})},Ze=(r,a)=>{var $;let i=Math.abs(r-a)+1,[g,C]=[Math.min(r,a),Math.max(r,a)];for(let V=g;V<=C;V++)(($=m.value[V])==null?void 0:$.class[0])==="holiday"&&i--;return i},x=(r,a)=>{B(r,a)&&(c.value=new Date(r,a,1),p.value=c.value.getFullYear(),d.value=c.value.getMonth(),console.log(l.value),t.range==="year"&&l.value===0?N({year:r,month:a,day:1},8):D())};if(D(),k()&&console.error("Ошибка: Найдены пересекающиеся диапазоны!"),(Q=t.data)!=null&&Q.startDate&&(w.value=m.value.findIndex(r=>r.day===c.value.getDate()&&r.month===d.value&&r.year===p.value),w.value!==-1&&(m.value[w.value].class[1]="active")),(Z=t.data)!=null&&Z.endDate&&t.range==="range"&&(f.value=m.value.findIndex(r=>r.day===S.value.getDate()&&r.month===M.value&&r.year===h.value),f.value!==-1)){m.value[f.value].class[1]="active";for(let r=w.value+1;r<f.value;r++)m.value[r].class[1]="select"}return(r,a)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",null,[e.createElementVNode("p",ce,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e.withModifiers(i=>x(p.value-1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[12]||(a[12]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[1]||(a[1]=e.withModifiers(i=>{l.value=0,x(p.value,d.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[13]||(a[13]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",de,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e.withModifiers(i=>l.value=1,["prevent"]))},e.toDisplayString(p.value),1),e.createElementVNode("button",{onClick:a[3]||(a[3]=e.withModifiers(i=>l.value=1,["prevent"]))},e.toDisplayString(e.unref(O)(c.value.setMonth(d.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[4]||(a[4]=e.withModifiers(i=>{l.value=0,x(p.value,d.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[14]||(a[14]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[5]||(a[5]=e.withModifiers(i=>x(p.value+1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[15]||(a[15]=e.createTextVNode("«"))])])])]),t.range==="year"||l.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",pe,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(u)),"{D}")),1)),64))])),t.range==="year"||l.value===1?(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(C=>{l.value=0,x(p.value,g)},["prevent"])},e.toDisplayString(i),9,fe))),128))])):(e.openBlock(),e.createElementBlock("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g<y.value+(7-new Date(p.value,d.value+1,1).getDay()+e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===d.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===d.value&&N(i,g)},["prevent"])},e.toDisplayString(i.day),11,ge)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("p",ye,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[6]||(a[6]=e.withModifiers(i=>x(p.value-1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[16]||(a[16]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[7]||(a[7]=e.withModifiers(i=>{l.value=0,x(p.value,d.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[17]||(a[17]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",Se,[e.createElementVNode("button",{onClick:a[8]||(a[8]=e.withModifiers(i=>l.value=2,["prevent"]))},e.toDisplayString(new Date(p.value,d.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:a[9]||(a[9]=e.withModifiers(i=>l.value=2,["prevent"]))},e.toDisplayString(e.unref(O)(c.value.setMonth(d.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[10]||(a[10]=e.withModifiers(i=>{l.value=0,x(p.value,d.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[18]||(a[18]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[11]||(a[11]=e.withModifiers(i=>x(p.value+1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[19]||(a[19]=e.createTextVNode("«"))])])])]),l.value!==2?(e.openBlock(),e.createElementBlock("div",we,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(u)),"{D}")),1)),64))])):e.createCommentVNode("",!0),l.value===2?(e.openBlock(),e.createElementBlock("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(C=>{l.value=0,x(p.value,g-1)},["prevent"])},e.toDisplayString(i),9,_e))),128))])):(e.openBlock(),e.createElementBlock("div",be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g>=y.value-(7+new Date(p.value,d.value+1,1).getDay()-e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===b.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===b.value&&N(i,g)},["prevent"])},e.toDisplayString(i.day),11,Be)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),De=["id"],Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},trigger:{type:String,default:"click"},placement:{type:String,default:"bottom-left"},maxWidth:{type:Number,default:0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:n}){const t=s;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const o=e.useModel(s,"modelValue"),l=e.ref(null),c=e.ref(null),S=e.ref({}),p=Math.ceil(Math.random()*1e3),d=e.computed(()=>{let f=["sw-dropdown"];return t.size.length>0&&f.push("sw-"+t.size),t.type.length>0&&f.push("sw-"+t.type),f}),h=async()=>{if(!c.value)return;const f=window.pageYOffset||document.documentElement.scrollTop,_=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${f}px`,document.body.style.left=`-${_}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=f,document.documentElement.scrollLeft=_;const u=l.value.getBoundingClientRect(),v=window.innerWidth,E=window.innerHeight,D=c.value.offsetHeight,T=c.value.offsetWidth;console.log("popupHeight",D),console.log("popupWidth",T);let k=u.left+u.width/2+_,B=u.top+u.height/2+f,N=u.height/2+8;const[Y,R]=t.placement.split("-",2);switch(console.log(t.placement),Y){case"bottom":B=f+E-D-N-8<B?B-N-D:B+N;break;case"top":B=f+D+N+8>B?B+N:B-N-D;break;case"left":k=k-T-u.width/2-8,B=B-D/2;break;case"right":k=k+u.width/2+8,B=B-D/2;break}switch(R){case"left":k=_+v-8>k-u.width/2+T?k-u.width/2:k-T+u.width/2;break;case"right":k=8<k+u.width/2-T?k-T+u.width/2:k-u.width/2;break}k<0&&(k=0),B<0&&(B=0),S.value={position:"absolute",top:`${B}px`,left:`${k}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}};n({positionPopup:h});const M=()=>{t.trigger==="click"&&(o.value=!o.value),o.value&&h()},b=()=>{t.trigger==="hover"&&(o.value=!o.value),o.value&&h()},m=()=>{t.trigger==="context"&&(o.value=!o.value),o.value&&h()},y=()=>{o.value&&h()},w=f=>{!f.target.closest(`[id="${p}"]`)&&l.value&&!l.value.contains(f.target)&&(o.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",y),window.addEventListener("click",w)}),e.onUnmounted(()=>{window.removeEventListener("resize",y),window.removeEventListener("click",w)}),(f,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value),onClick:_[0]||(_[0]=u=>M()),onMouseover:_[1]||(_[1]=e.withModifiers(u=>b(),["stop"])),onMouseleave:_[2]||(_[2]=e.withModifiers(u=>b(),["stop"])),onContextmenu:_[3]||(_[3]=e.withModifiers(u=>m(),["stop"])),ref_key:"dropdownRef",ref:l},[e.renderSlot(f.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:c,id:e.unref(p),class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(S.value),tabindex:"-1"},[e.renderSlot(f.$slots,"dropdown")],14,De)):e.createCommentVNode("",!0)]))],34))}}},Symbol.toStringTag,{value:"Module"})),Me=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdownItem",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},iconBefore:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let o=["sw-dropdown-item"];return n.size.length>0&&o.push("sw-"+n.size),n.type.length>0&&o.push("sw-"+n.type),n.class.length>0&&o.push(n.class),o});return(o,l)=>{const c=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(c,{"icon-class":s.iconBefore},null,8,["icon-class"]),e.renderSlot(o.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let o=["sw-form-item"];return n.type.length>0&&o.push("sw-"+n.type),n.class.length>0&&o.push(n.class),o});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Te=["for"],Ve={key:0,title:"Это поле обязательно для заполнения."},Ne=["required","placeholder","type","id","name"],xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwInput",props:e.mergeModels({before:{type:String,default:""},after:{type:String,default:""},placeholder:{type:String,default:""},label:{type:String,default:""},name:{type:String,required:!0},class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:"text"},required:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix","prefix","focusInput"],["update:modelValue"]),setup(s,{emit:n}){var m;const t=e.useModel(s,"modelValue"),o=s,l=e.ref(null),c=n,S=y=>{c("focusInput"),y.target.setSelectionRange(t.value.length,t.value.length),l.value!==null&&(l.value.style.top="-.6em")},p=y=>{var w;((w=t.value)==null?void 0:w.length)===0&&l.value!==null&&l.value.removeAttribute("style")};((m=t.value)==null?void 0:m.length)>0&&l.value!==null&&(l.value.style.top="-.6em");const d=()=>{c("suffix")},h=()=>{c("prefix")},M=e.computed(()=>{let y=["sw-input"];return o.size.length>0&&y.push("sw-"+o.size),o.class.length>0&&y.push(o.class),y});e.watch(t,(y,w)=>{o.type==="phone"&&(t.value=b(y,w))});const b=(y,w)=>{if(/^\+[0-9]\s/.test(w)&&y.length===2||/^\+0\s/.test(y))return"";const f=y;if(typeof f>"u"||f.length===0)return f;const _="+0 (___) ___-__-__";let u=0;const v=_.replace(/\D/g,""),E=f.replace(/\D/g,"");let D=_.replace(/[_\d]/g,k=>u<E.length?E.charAt(u++)||v.charAt(u):k);u=D.indexOf("_"),u!==-1&&(u=u<5?3:u,D=D.slice(0,u));let T=_.slice(0,f.length).replace(/_+/g,k=>`\\d{1,${k.length}}`).replace(/[+()]/g,"\\$&");if(T=new RegExp(`^${T}$`),D=D.replace(/[-—]$|(\) )$/g,""),!T.test(f)||f.length<5)return D};return(y,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(M.value)},[o.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":o.before,onClick:h},null,8,["icon-class"])):e.renderSlot(y.$slots,"prefix",{key:1}),o.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:o.name,ref_key:"lab",ref:l},[e.createTextVNode(e.toDisplayString(o.label),1),o.required?(e.openBlock(),e.createElementBlock("span",Ve,"*")):e.createCommentVNode("",!0)],8,Te)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[0]||(w[0]=f=>t.value=f),required:o.required,placeholder:o.required&&o.label.length===0?o.placeholder+"*":o.placeholder,type:o.type,id:o.name,name:o.name,size:"60",onFocus:S,onBlur:p,maxlength:"128"},null,40,Ne),[[e.vModelDynamic,t.value]]),o.after.length>0?(e.openBlock(),e.createBlock(I,{key:3,"icon-class":o.after,onClick:d},null,8,["icon-class"])):e.renderSlot(y.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),ze={key:0},je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwMessage",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.useModel(s,"modelValue"),t=s,o=e.ref(null);return(l,c)=>{const S=e.resolveComponent("svg-icon");return n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:o},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",ze,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(U,{link:"",type:"primary",onClick:c[0]||(c[0]=p=>n.value=!1)},{default:e.withCtx(()=>[e.createVNode(S,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(l.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),Oe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},emits:["header"],setup(s,{emit:n}){const t=s,o=n,l=()=>{o("header")};return(c,S)=>{const p=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(t.class)},[e.createElementVNode("header",{onClick:l},[e.renderSlot(c.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(p,{"icon-class":t.iconAfter},null,8,["icon-class"])])]),e.renderSlot(c.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(c.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),Pe={class:"popup"},ve={class:"wrapper"},Fe={class:"scrollbar"},Ie=["onClick"],Ae=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:"large"},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.ref({fullText:""}),t=e.ref(!1),o=e.ref([]),l=e.useModel(s,"modelValue"),c=s;e.watch(l.text,d=>{d.length>3&&(n.value.fullText=d)}),e.watch(n.value.fullText,(d,h)=>{t.value=d.length>3&&d.length>h.length,d.length>3&&S()});const S=()=>{let d="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(n.value.fullText),axios.post(d,{query:n.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+c.token}}).then(h=>{console.log(h.data.suggestions),o.value=h.data.suggestions,o.value.length===1&&p(o.value[0])}).catch(h=>{console.log(h)})},p=d=>{n.value.fullText=d.value,t.value=!1;const h={};h.text=d.value,h.coords=[Number(d.data.geo_lat),Number(d.data.geo_lon)],h.suggestion=d.data,l.value=h};return(d,h)=>{const M=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(M,{size:c.size,modelValue:n.value.fullText,"onUpdate:modelValue":h[0]||(h[0]=b=>n.value.fullText=b),placeholder:s.placeholder},null,8,["size","modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",ve,[e.createElementVNode("ul",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(b,m)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:m,onClick:y=>p(b)},e.toDisplayString(b.value),9,Ie))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Le={key:0},G={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let l=["sw-skeleton-item"];return n.size.length>0&&l.push("sw-"+n.size),n.animate&&l.push("sw-animate"),n.class.length>0&&l.push(n.class),l}),o=e.computed(()=>({width:n.width+"%"}));return(l,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(o.value)},[n.animate?(e.openBlock(),e.createElementBlock("div",Le)):e.createCommentVNode("",!0)],6))}},Ye=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),Re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(s){const n=s;return(t,o)=>n.visual?e.renderSlot(t.$slots,"default",{key:0}):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",n.class])},[e.renderSlot(t.$slots,"skeleton",{},()=>[e.createVNode(G,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),qe=["name","id"],He=["for","data-onlabel","data-offlabel"],We=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSwitch",props:e.mergeModels({id:{type:String,default:"checkbox"},class:{type:String,default:""},name:{type:String,default:""},on:{type:String,default:""},off:{type:String,default:""},size:{type:String,default:""},checkbox:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.useModel(s,"modelValue"),t=s,o=e.computed(()=>{let l=["sw-switch"];return t.size.length>0&&l.push("sw-"+t.size),t.checkbox&&l.push("sw-checkbox"),t.class.length>0&&l.push(t.class),l});return(l,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":c[0]||(c[0]=S=>n.value=S)},null,8,qe),[[e.vModelCheckbox,n.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,He),e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ue={key:0},Ge=["onClick"],Xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(s,{emit:n}){e.ref(0);const t=e.ref([]),o=s,l=e.useModel(s,"modelValue"),c=n;function S(d){t.value.push(d)}function p(d){t.value=t.value.filter(h=>h!==d)}return e.provide("registerTab",S),e.provide("unregisterTab",p),e.provide("activeTab",l),e.provide("tabs",t),(d,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+o.class)},[t.value.length!==0?(e.openBlock(),e.createElementBlock("header",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(M,b)=>(e.openBlock(),e.createElementBlock("span",{key:b,class:e.normalizeClass([{active:l.value===b}]),onClick:m=>{l.value=b,c("tab-click",b)}},e.toDisplayString(M.label||M.title),11,Ge))),128))])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Je={key:0,class:"tab-content"},Qe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0},label:{type:String,default:""}},setup(s){const n=s,t=e.inject("registerTab"),o=e.inject("unregisterTab");e.onMounted(()=>{t({title:n.title,label:n.label})}),e.onUnmounted(()=>{o({title:n.title,label:n.label})});const l=e.inject("activeTab"),c=e.inject("tabs"),S=e.computed(()=>c.value.findIndex(d=>d.title===n.title)),p=e.computed(()=>l.value===S.value);return(d,h)=>p.value?(e.openBlock(),e.createElementBlock("div",Je,[e.renderSlot(d.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));z.Alert=L,z.Library=ae,z.components=A,Object.defineProperty(z,Symbol.toStringTag,{value:"Module"})});
1
+ (function(z,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(z=typeof globalThis<"u"?globalThis:z||self,e(z["component-sw"]={},z.vue))})(this,function(z,e){"use strict";function K(s){return/^(https?:|mailto:|tel:)/.test(s)}function O(s,n){if(arguments.length===0||!s)return null;const t=n||"{Y}-{m}-{d} {G}:{i}:{s}";let o;typeof s=="object"?o=s:(typeof s=="string"&&(/^[0-9]+$/.test(s)?s=parseInt(s):s=s.replace(new RegExp(/-/gm),"/")),typeof s=="number"&&s.toString().length===10&&(s=s*1e3),o=new Date(s));const l="ru-RU",c={Y:o.getFullYear(),m:(o.getMonth()+1).toString().padStart(2,"0"),d:o.getDate(),dd:o.getDate().toString().padStart(2,"0"),G:o.getHours(),H:o.getHours().toString().padStart(2,"0"),i:o.getMinutes().toString().padStart(2,"0"),s:o.getSeconds().toString().padStart(2,"0"),D:new Intl.DateTimeFormat(l,{weekday:"short"}).format(o),F:new Intl.DateTimeFormat(l,{month:"long"}).format(o),M:new Intl.DateTimeFormat(l,{month:"short"}).format(o)};return t.replace(/{(dd|[YmdGHisDFM])+}/g,(w,p)=>c[p])}const ee=(s,n)=>{const t=s.__vccOpts||s;for(const[o,l]of n)t[o]=l;return t},te={name:"SvgIcon",props:{prefix:{type:String,default:"icon"},iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExt(){return K(this.iconClass)}}},oe=["href"];function le(s,n,t,o,l,c){return c.isExt?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,style:"mask: url("+t.iconClass+") no-repeat 50% 50%;",class:"svg-external-icon svg-icon"},s.$attrs),null,16)):(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:1,class:"svg-icon "+t.className,"aria-hidden":"true"},s.$attrs),[e.createElementVNode("use",{href:"#"+t.prefix+"-"+t.iconClass},null,8,oe)],16))}const I=ee(te,[["render",le]]),H={__name:"SwAlert",props:{message:{type:String,default:"Default message"},before:{type:String,default:""},class:{type:String,default:""},after:{type:String,default:""},size:{type:String,default:""},duration:{type:Number,default:6e3},type:{type:String,default:"info",validator:s=>["success","warning","error","info"].includes(s)}},emits:["closed"],setup(s,{emit:n}){const t=s,o=n,l=e.ref(!1);let c=null;const w=()=>{l.value=!0,M()},p=()=>{l.value=!1,o("closed")},d=()=>{c&&(clearTimeout(c),c=null)},h=()=>{M()},M=()=>{c=setTimeout(p,t.duration)};e.onMounted(()=>{w()}),e.onUnmounted(()=>{c&&clearTimeout(c)});const _=e.computed(()=>{const m=["sw-alert"];return t.size.length>0&&m.push(`sw-${t.size}`),t.type.length>0&&m.push(`sw-${t.type}`),t.class.length>0&&m.push(t.class),m});return(m,y)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade"},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(_.value),onMouseenter:d,onMouseleave:h},[t.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":t.before},null,8,["icon-class"])):e.renderSlot(m.$slots,"prefix",{key:1}),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)]),t.after.length>0?(e.openBlock(),e.createBlock(I,{key:2,"icon-class":t.after,onClick:p},null,8,["icon-class"])):e.renderSlot(m.$slots,"suffix",{key:3})],34)):e.createCommentVNode("",!0)]),_:3}))}},ne=Object.freeze(Object.defineProperty({__proto__:null,default:H},Symbol.toStringTag,{value:"Module"}));let P=document.querySelector("div.sw-alert-wrapper");function L(s={}){P||(P=document.createElement("div"),P.className="sw-alert-wrapper",document.body.appendChild(P));const n=e.createApp({setup(){return()=>e.h(H,{...s,onClose:()=>{P.removeChild(n._container),n.unmount()}})}}),t=n.mount(document.createElement("div"));P.appendChild(t.$el)}const W=Object.assign({"./components/SwAlert.vue":()=>Promise.resolve().then(()=>ne),"./components/SwButton.vue":()=>Promise.resolve().then(()=>se),"./components/SwCollapse.vue":()=>Promise.resolve().then(()=>re),"./components/SwDatePicker.vue":()=>Promise.resolve().then(()=>$e),"./components/SwDropdown.vue":()=>Promise.resolve().then(()=>Ee),"./components/SwDropdownItem.vue":()=>Promise.resolve().then(()=>Me),"./components/SwFormItem.vue":()=>Promise.resolve().then(()=>Ce),"./components/SwInput.vue":()=>Promise.resolve().then(()=>xe),"./components/SwMessage.vue":()=>Promise.resolve().then(()=>je),"./components/SwSection.vue":()=>Promise.resolve().then(()=>Oe),"./components/SwSelect.vue":()=>Promise.resolve().then(()=>Ae),"./components/SwSkeleton.vue":()=>Promise.resolve().then(()=>Re),"./components/SwSkeletonItem.vue":()=>Promise.resolve().then(()=>Ye),"./components/SwSwitch.vue":()=>Promise.resolve().then(()=>We),"./components/SwTabs.vue":()=>Promise.resolve().then(()=>Xe),"./components/SwTabsPane.vue":()=>Promise.resolve().then(()=>Qe)}),A={};for(const s in W){const n=s.split("/").pop().replace(".vue","").replace(/-(\w)/g,(t,o)=>o.toUpperCase());A[n]=e.defineAsyncComponent(()=>W[s]())}const ae={install(s){Object.keys(A).forEach(n=>{s.component(n,A[n]),console.log(n)}),s.config.globalProperties.$Alert=L,s.provide("Alert",L)}},U={__name:"SwButton",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},round:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},href:{type:String,default:""}},setup(s){const n=s,t=()=>{if(n.href.length>0){const l=document.createElement("a");l.setAttribute("href",n.href),l.setAttribute("target","_blank"),l.click()}},o=e.computed(()=>{let l=["sw-button"];return n.size.length>0&&l.push("sw-"+n.size),n.type.length>0&&l.push("sw-"+n.type),n.round&&l.push("sw-round"),n.text&&l.push("sw-text"),n.link&&l.push("sw-link"),n.class.length>0&&l.push(n.class),l});return(l,c)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(o.value),onClick:t},[e.renderSlot(l.$slots,"default")],2))}},se=Object.freeze(Object.defineProperty({__proto__:null,default:U},Symbol.toStringTag,{value:"Module"})),re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwCollapse",props:{visual:{type:Boolean,default:!0}},setup(s){e.onMounted(()=>{o.value="0px"});const n=e.ref(null),t=s;e.watch(()=>t.visual,()=>l());const o=e.ref("0px"),l=()=>{n.value&&(o.value=t.visual?n.value.scrollHeight+"px":"0px")};let c;return e.onMounted(()=>{l(),n.value&&(c=new ResizeObserver(l),c.observe(n.value))}),e.onBeforeUnmount(()=>{c&&c.disconnect()}),(w,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["sw-collapse",{open:t.visual}]),style:e.normalizeStyle({height:o.value}),ref_key:"collapse",ref:n},[e.renderSlot(w.$slots,"default")],6))}}},Symbol.toStringTag,{value:"Module"})),ie={class:"sw-data-picker"},ce={class:"month_year"},de={class:"text"},pe={key:0,class:"week"},me={key:1,class:"year"},fe=["onClick"],ue={key:2,class:"month"},ge=["onClick"],he={key:0},ye={class:"month_year"},we={class:"text"},Se={key:0,class:"week"},ke={key:1,class:"year"},_e=["onClick"],be={key:2,class:"month"},Be=["onClick"],$e=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDatePicker",props:{data:Object,limitation:{type:[Boolean,Array],default:()=>!1},range:{type:String,default:"solid"}},emits:["input"],setup(s,{emit:n}){var X,J,Q,Z;const t=s,o=n,l=e.ref(3),c=e.ref(new Date),w=e.ref(new Date),p=e.ref(new Date().getFullYear()),d=e.ref(new Date().getMonth()),h=e.ref(new Date().getFullYear()),M=e.ref(new Date().getMonth()),_=e.ref(new Date().getMonth()+1),m=e.ref([]),y=e.ref(0),S=e.ref(-1),f=e.ref(-1),b=e.ref(navigator.languages||"ru"),u=/en|zh|ja|he/.test(b.value)?0:1,v=e.computed(()=>Array.from({length:12},(r,a)=>{const i=new Date(2024,a);return new Intl.DateTimeFormat(b.value,{month:"long"}).format(i)})),E=r=>{let a=r.split(r.match(/\D.*?\D?/));return a[0].length>2?a.join("-")+"T00:00:01":a.reverse().join("-")+"T00:00:01"};(X=t.data)!=null&&X.startDate&&(c.value=new Date(E(t.data.startDate)),p.value=c.value.getFullYear(),d.value=c.value.getMonth()),(J=t.data)!=null&&J.endDate&&t.range==="range"&&(w.value=new Date(E(t.data.endDate)),h.value=w.value.getFullYear(),M.value=w.value.getMonth());const D=()=>{m.value=[],y.value=0;const r=new Date(p.value,d.value,0);for(let i=r.getDate()-r.getDay()+u;i<=r.getDate();i++)r.getDay()!==6+u&&(m.value.push({day:i,month:r.getMonth(),year:r.getFullYear(),class:[]}),y.value++);const a=new Date(p.value,d.value+1,0).getDate();for(let i=1;i<=a;i++)m.value.push({day:i,month:d.value,year:p.value,class:[]}),y.value++;if(t.range==="range"){const i=new Date(p.value,d.value+1,1),g=new Date(p.value,d.value+2,0).getDate();for(let C=1;C<=g;C++)m.value.push({day:C,month:i.getMonth(),year:i.getFullYear(),class:[]})}T()},T=()=>{var a;if(!((a=t.data)!=null&&a.holiday))return;const r=(i,g)=>{i.forEach(C=>{const[$,V,j]=C.split("-").map(Number),F=m.value.findIndex(q=>q.year===$&&q.month+1===V&&q.day===j);F!==-1&&(m.value[F].class[0]=g)})};r(t.data.holiday.preholidays,"preholiday"),r(t.data.holiday.holidays,"weekend"),r(t.data.holiday.holiday,"holiday"),r(t.data.holiday.nowork,"nowork")},k=()=>{if(!t.limitation||t.limitation.length<2)return!1;const r=[...t.limitation].sort((a,i)=>new Date(E(a.startDate)).getTime()-new Date(E(i.startDate)).getTime());for(let a=1;a<r.length;a++){const i=new Date(E(r[a-1].endDate));if(new Date(E(r[a].startDate))<=i)return console.warn("Warning: Диапазоны пересекаются:",r[a-1],r[a]),!0}return!1},B=(r,a,i)=>{if(!t.limitation||t.limitation.length===0)return!0;const g=new Date(r,a,i).getTime();for(let C of t.limitation){const{startDate:$,endDate:V}=C;if(!$&&V){const j=new Date(E(V)).getTime();if(g<=j)return!1}if($&&!V){const j=new Date(E($)).getTime();if(g>=j)return!1}if($&&V){const j=new Date(E($)).getTime(),F=new Date(E(V)).getTime();if(j<=F){if(g>=j&&g<=F)return!1}else if(g>=j||g<=F)return!1}}return!0},N=(r,a)=>{const i=O(new Date(r.year,r.month,r.day),"{dd}.{m}.{Y}");t.range==="range"?f.value!==-1?(Y(),S.value=a,m.value[a].class[1]="active"):S.value!==-1?(f.value=a,R(S.value,f.value,i)):(S.value=a,m.value[a].class[1]="active"):(S.value!==-1&&(m.value[S.value].class[1]=""),S.value=a,m.value[a].class[1]="active",o("input",{dateStart:i,count:1}))},Y=()=>{m.value.forEach(r=>r.class[1]=""),S.value=-1,f.value=-1},R=(r,a,i)=>{let g=O(new Date(m.value[r].year,m.value[r].month,m.value[r].day),"{dd}.{m}.{Y}"),C=Ze(r,a);if(a>=r)for(let $=r+1;$<a;$++)m.value[$].class[1]="select";else for(let $=a+1;$<r;$++)m.value[$].class[1]="select";m.value[a].class[1]="active",o("input",{dateStart:g,dateEnd:i,count:C})},Ze=(r,a)=>{var $;let i=Math.abs(r-a)+1,[g,C]=[Math.min(r,a),Math.max(r,a)];for(let V=g;V<=C;V++)(($=m.value[V])==null?void 0:$.class[0])==="holiday"&&i--;return i},x=(r,a)=>{B(r,a)&&(c.value=new Date(r,a,1),p.value=c.value.getFullYear(),d.value=c.value.getMonth(),_.value=new Date(r,a+1,1).getMonth(),console.log(l.value),t.range==="year"&&l.value===0?N({year:r,month:a,day:1},8):D())};if(D(),k()&&console.error("Ошибка: Найдены пересекающиеся диапазоны!"),(Q=t.data)!=null&&Q.startDate&&(S.value=m.value.findIndex(r=>r.day===c.value.getDate()&&r.month===d.value&&r.year===p.value),S.value!==-1&&(m.value[S.value].class[1]="active")),(Z=t.data)!=null&&Z.endDate&&t.range==="range"&&(f.value=m.value.findIndex(r=>r.day===w.value.getDate()&&r.month===M.value&&r.year===h.value),f.value!==-1)){m.value[f.value].class[1]="active";for(let r=S.value+1;r<f.value;r++)m.value[r].class[1]="select"}return(r,a)=>(e.openBlock(),e.createElementBlock("div",ie,[e.createElementVNode("div",null,[e.createElementVNode("p",ce,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[0]||(a[0]=e.withModifiers(i=>x(p.value-1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[12]||(a[12]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[1]||(a[1]=e.withModifiers(i=>{l.value=0,x(p.value,d.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[13]||(a[13]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",de,[e.createElementVNode("button",{onClick:a[2]||(a[2]=e.withModifiers(i=>l.value=1,["prevent"]))},e.toDisplayString(p.value),1),e.createElementVNode("button",{onClick:a[3]||(a[3]=e.withModifiers(i=>l.value=1,["prevent"]))},e.toDisplayString(e.unref(O)(c.value.setMonth(d.value),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[4]||(a[4]=e.withModifiers(i=>{l.value=0,x(p.value,d.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[14]||(a[14]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[5]||(a[5]=e.withModifiers(i=>x(p.value+1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[15]||(a[15]=e.createTextVNode("«"))])])])]),t.range==="year"||l.value===1?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",pe,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(u)),"{D}")),1)),64))])),t.range==="year"||l.value===1?(e.openBlock(),e.createElementBlock("div",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(C=>{l.value=0,x(p.value,g)},["prevent"])},e.toDisplayString(i),9,fe))),128))])):(e.openBlock(),e.createElementBlock("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g<y.value+(7-new Date(p.value,d.value+1,1).getDay()+e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===d.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===d.value&&N(i,g)},["prevent"])},e.toDisplayString(i.day),11,ge)):e.createCommentVNode("",!0)],64))),128))]))]),t.range==="range"?(e.openBlock(),e.createElementBlock("div",he,[e.createElementVNode("p",ye,[e.createElementVNode("span",null,[e.createElementVNode("button",{onClick:a[6]||(a[6]=e.withModifiers(i=>x(p.value-1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[16]||(a[16]=e.createTextVNode("«"))])]),e.createElementVNode("button",{onClick:a[7]||(a[7]=e.withModifiers(i=>{l.value=0,x(p.value,d.value-1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[17]||(a[17]=e.createTextVNode("‹"))])])]),e.createElementVNode("span",we,[e.createElementVNode("button",{onClick:a[8]||(a[8]=e.withModifiers(i=>l.value=2,["prevent"]))},e.toDisplayString(new Date(p.value,d.value+1).getFullYear()),1),e.createElementVNode("button",{onClick:a[9]||(a[9]=e.withModifiers(i=>l.value=2,["prevent"]))},e.toDisplayString(e.unref(O)(c.value.setMonth(d.value+1),"{F}")),1)]),e.createElementVNode("span",null,[e.createElementVNode("button",{class:"sw-revers",onClick:a[10]||(a[10]=e.withModifiers(i=>{l.value=0,x(p.value,d.value+1)},["prevent"]))},[e.renderSlot(r.$slots,"arrow",{},()=>[a[18]||(a[18]=e.createTextVNode("‹"))])]),e.createElementVNode("button",{class:"sw-revers",onClick:a[11]||(a[11]=e.withModifiers(i=>x(p.value+1,d.value),["prevent"]))},[e.renderSlot(r.$slots,"double-arrow",{},()=>[a[19]||(a[19]=e.createTextVNode("«"))])])])]),l.value!==2?(e.openBlock(),e.createElementBlock("div",Se,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(7,(i,g)=>e.createElementVNode("button",{key:g,class:"disabled"},e.toDisplayString(e.unref(O)(new Date(1970,1,i+e.unref(u)),"{D}")),1)),64))])):e.createCommentVNode("",!0),l.value===2?(e.openBlock(),e.createElementBlock("div",ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,(i,g)=>(e.openBlock(),e.createElementBlock("button",{key:g,onClick:e.withModifiers(C=>{l.value=0,x(p.value,g-1)},["prevent"])},e.toDisplayString(i),9,_e))),128))])):(e.openBlock(),e.createElementBlock("div",be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(i,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:g},[g>=y.value-(7+new Date(p.value,d.value+1,1).getDay()-e.unref(u))%7?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(i.month===_.value&&B(i.year,i.month,i.day)?i.class:"disabled"),onClick:e.withModifiers(()=>{i.month===_.value&&N(i,g)},["prevent"])},e.toDisplayString(i.day),11,Be)):e.createCommentVNode("",!0)],64))),128))]))])):e.createCommentVNode("",!0)]))}}},Symbol.toStringTag,{value:"Module"})),De=["id"],Ee=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdown",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},trigger:{type:String,default:"click"},placement:{type:String,default:"bottom-left"},maxWidth:{type:Number,default:0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s,{expose:n}){const t=s;e.computed(()=>"dropdown"+Array.from(document.body.children).indexOf(document.querySelector("ul")));const o=e.useModel(s,"modelValue"),l=e.ref(null),c=e.ref(null),w=e.ref({}),p=Math.ceil(Math.random()*1e3),d=e.computed(()=>{let f=["sw-dropdown"];return t.size.length>0&&f.push("sw-"+t.size),t.type.length>0&&f.push("sw-"+t.type),f}),h=async()=>{if(await e.nextTick(),!c.value)return;const f=window.pageYOffset||document.documentElement.scrollTop,b=window.pageXOffset||document.documentElement.scrollLeft;document.body.style.position="fixed",document.body.style.top=`-${f}px`,document.body.style.left=`-${b}px`,document.body.style.position="",document.body.style.top="",document.body.style.left="",document.documentElement.scrollTop=f,document.documentElement.scrollLeft=b;const u=l.value.getBoundingClientRect(),v=window.innerWidth,E=window.innerHeight,D=c.value.offsetHeight,T=c.value.offsetWidth;console.log("popupHeight",D),console.log("popupWidth",T);let k=u.left+u.width/2+b,B=u.top+u.height/2+f,N=u.height/2+8;const[Y,R]=t.placement.split("-",2);switch(console.log(t.placement),Y){case"bottom":B=f+E-D-N-8<B?B-N-D:B+N;break;case"top":B=f+D+N+8>B?B+N:B-N-D;break;case"left":k=k-T-u.width/2-8,B=B-D/2;break;case"right":k=k+u.width/2+8,B=B-D/2;break}switch(R){case"left":k=b+v-8>k-u.width/2+T?k-u.width/2:k-T+u.width/2;break;case"right":k=8<k+u.width/2-T?k-T+u.width/2:k-u.width/2;break}k<0&&(k=0),B<0&&(B=0),w.value={position:"absolute",top:`${B}px`,left:`${k}px`,maxWidth:t.maxWidth===0?"":`${t.maxWidth}px`}};n({positionPopup:h});const M=()=>{t.trigger==="click"&&(o.value=!o.value),o.value&&h()},_=()=>{t.trigger==="hover"&&(o.value=!o.value),o.value&&h()},m=()=>{t.trigger==="context"&&(o.value=!o.value),o.value&&h()},y=()=>{o.value&&h()},S=f=>{!f.target.closest(`[id="${p}"]`)&&l.value&&!l.value.contains(f.target)&&(o.value=!1)};return e.onMounted(()=>{window.addEventListener("resize",y),window.addEventListener("click",S)}),e.onUnmounted(()=>{window.removeEventListener("resize",y),window.removeEventListener("click",S)}),(f,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value),onClick:b[0]||(b[0]=u=>M()),onMouseover:b[1]||(b[1]=e.withModifiers(u=>_(),["stop"])),onMouseleave:b[2]||(b[2]=e.withModifiers(u=>_(),["stop"])),onContextmenu:b[3]||(b[3]=e.withModifiers(u=>m(),["stop"])),ref_key:"dropdownRef",ref:l},[e.renderSlot(f.$slots,"default"),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("ul",{key:0,ref_key:"popupRef",ref:c,id:e.unref(p),class:e.normalizeClass(["sw-dropdown-popup",t.class]),style:e.normalizeStyle(w.value),tabindex:"-1"},[e.renderSlot(f.$slots,"dropdown")],14,De)):e.createCommentVNode("",!0)]))],34))}}},Symbol.toStringTag,{value:"Module"})),Me=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwDropdownItem",props:{class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:""},iconBefore:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let o=["sw-dropdown-item"];return n.size.length>0&&o.push("sw-"+n.size),n.type.length>0&&o.push("sw-"+n.type),n.class.length>0&&o.push(n.class),o});return(o,l)=>{const c=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.value)},[e.createVNode(c,{"icon-class":s.iconBefore},null,8,["icon-class"]),e.renderSlot(o.$slots,"default")],2)}}}},Symbol.toStringTag,{value:"Module"})),Ce=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwFormItem",props:{class:{type:String,default:""},type:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let o=["sw-form-item"];return n.type.length>0&&o.push("sw-"+n.type),n.class.length>0&&o.push(n.class),o});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value)},[e.renderSlot(o.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Te=["for"],Ve={key:0,title:"Это поле обязательно для заполнения."},Ne=["required","placeholder","type","id","name"],xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwInput",props:e.mergeModels({before:{type:String,default:""},after:{type:String,default:""},placeholder:{type:String,default:""},label:{type:String,default:""},name:{type:String,required:!0},class:{type:String,default:""},size:{type:String,default:""},type:{type:String,default:"text"},required:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["suffix","prefix","focusInput"],["update:modelValue"]),setup(s,{emit:n}){var m;const t=e.useModel(s,"modelValue"),o=s,l=e.ref(null),c=n,w=y=>{c("focusInput"),y.target.setSelectionRange(t.value.length,t.value.length),l.value!==null&&(l.value.style.top="-.6em")},p=y=>{var S;((S=t.value)==null?void 0:S.length)===0&&l.value!==null&&l.value.removeAttribute("style")};((m=t.value)==null?void 0:m.length)>0&&l.value!==null&&(l.value.style.top="-.6em");const d=()=>{c("suffix")},h=()=>{c("prefix")},M=e.computed(()=>{let y=["sw-input"];return o.size.length>0&&y.push("sw-"+o.size),o.class.length>0&&y.push(o.class),y});e.watch(t,(y,S)=>{o.type==="phone"&&(t.value=_(y,S))});const _=(y,S)=>{if(/^\+[0-9]\s/.test(S)&&y.length===2||/^\+0\s/.test(y))return"";const f=y;if(typeof f>"u"||f.length===0)return f;const b="+0 (___) ___-__-__";let u=0;const v=b.replace(/\D/g,""),E=f.replace(/\D/g,"");let D=b.replace(/[_\d]/g,k=>u<E.length?E.charAt(u++)||v.charAt(u):k);u=D.indexOf("_"),u!==-1&&(u=u<5?3:u,D=D.slice(0,u));let T=b.slice(0,f.length).replace(/_+/g,k=>`\\d{1,${k.length}}`).replace(/[+()]/g,"\\$&");if(T=new RegExp(`^${T}$`),D=D.replace(/[-—]$|(\) )$/g,""),!T.test(f)||f.length<5)return D};return(y,S)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(M.value)},[o.before.length>0?(e.openBlock(),e.createBlock(I,{key:0,"icon-class":o.before,onClick:h},null,8,["icon-class"])):e.renderSlot(y.$slots,"prefix",{key:1}),o.label.length>0?(e.openBlock(),e.createElementBlock("label",{key:2,for:o.name,ref_key:"lab",ref:l},[e.createTextVNode(e.toDisplayString(o.label),1),o.required?(e.openBlock(),e.createElementBlock("span",Ve,"*")):e.createCommentVNode("",!0)],8,Te)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[0]||(S[0]=f=>t.value=f),required:o.required,placeholder:o.required&&o.label.length===0?o.placeholder+"*":o.placeholder,type:o.type,id:o.name,name:o.name,size:"60",onFocus:w,onBlur:p,maxlength:"128"},null,40,Ne),[[e.vModelDynamic,t.value]]),o.after.length>0?(e.openBlock(),e.createBlock(I,{key:3,"icon-class":o.after,onClick:d},null,8,["icon-class"])):e.renderSlot(y.$slots,"suffix",{key:4})],2))}}},Symbol.toStringTag,{value:"Module"})),ze={key:0},je=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwMessage",props:e.mergeModels({name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.useModel(s,"modelValue"),t=s,o=e.ref(null);return(l,c)=>{const w=e.resolveComponent("svg-icon");return n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["sw-message",t.class]),ref_key:"messageRef",ref:o},[t.name.length>0?(e.openBlock(),e.createElementBlock("header",ze,[e.renderSlot(l.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(U,{link:"",type:"primary",onClick:c[0]||(c[0]=p=>n.value=!1)},{default:e.withCtx(()=>[e.createVNode(w,{"icon-class":t.iconAfter},null,8,["icon-class"])]),_:1})])])):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(l.$slots,"footer")])],2)):e.createCommentVNode("",!0)}}}},Symbol.toStringTag,{value:"Module"})),Oe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSection",props:{name:{type:String,default:""},class:{type:String,default:""},iconAfter:{type:String,default:""}},emits:["header"],setup(s,{emit:n}){const t=s,o=n,l=()=>{o("header")};return(c,w)=>{const p=e.resolveComponent("svg-icon");return e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(t.class)},[e.createElementVNode("header",{onClick:l},[e.renderSlot(c.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(t.name)+" ",1),e.createVNode(p,{"icon-class":t.iconAfter},null,8,["icon-class"])])]),e.renderSlot(c.$slots,"default"),e.createElementVNode("footer",null,[e.renderSlot(c.$slots,"footer")])],2)}}}},Symbol.toStringTag,{value:"Module"})),Pe={class:"popup"},ve={class:"wrapper"},Fe={class:"scrollbar"},Ie=["onClick"],Ae=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSelect",props:e.mergeModels({class:{type:String,default:""},size:{type:String,default:"large"},placeholder:{type:String,default:""},token:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.ref({fullText:""}),t=e.ref(!1),o=e.ref([]),l=e.useModel(s,"modelValue"),c=s;e.watch(l.text,d=>{d.length>3&&(n.value.fullText=d)}),e.watch(n.value.fullText,(d,h)=>{t.value=d.length>3&&d.length>h.length,d.length>3&&w()});const w=()=>{let d="https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address";console.log(n.value.fullText),axios.post(d,{query:n.value.fullText},{headers:{"Content-Type":"application/json",Accept:"application/json",Authorization:"Token "+c.token}}).then(h=>{console.log(h.data.suggestions),o.value=h.data.suggestions,o.value.length===1&&p(o.value[0])}).catch(h=>{console.log(h)})},p=d=>{n.value.fullText=d.value,t.value=!1;const h={};h.text=d.value,h.coords=[Number(d.data.geo_lat),Number(d.data.geo_lon)],h.suggestion=d.data,l.value=h};return(d,h)=>{const M=e.resolveComponent("sw-input");return e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(M,{size:c.size,modelValue:n.value.fullText,"onUpdate:modelValue":h[0]||(h[0]=_=>n.value.fullText=_),placeholder:s.placeholder},null,8,["size","modelValue","placeholder"]),e.withDirectives(e.createElementVNode("div",ve,[e.createElementVNode("ul",Fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(_,m)=>(e.openBlock(),e.createElementBlock("li",{tabindex:"1",key:m,onClick:y=>p(_)},e.toDisplayString(_.value),9,Ie))),128))])],512),[[e.vShow,t.value]])])}}}},Symbol.toStringTag,{value:"Module"})),Le={key:0},G={__name:"SwSkeletonItem",props:{width:{type:String,default:"100"},class:{type:String,default:""},animate:{type:Boolean,default:!1},size:{type:String,default:""}},setup(s){const n=s,t=e.computed(()=>{let l=["sw-skeleton-item"];return n.size.length>0&&l.push("sw-"+n.size),n.animate&&l.push("sw-animate"),n.class.length>0&&l.push(n.class),l}),o=e.computed(()=>({width:n.width+"%"}));return(l,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.value),style:e.normalizeStyle(o.value)},[n.animate?(e.openBlock(),e.createElementBlock("div",Le)):e.createCommentVNode("",!0)],6))}},Ye=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),Re=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSkeleton",props:{class:{type:String,default:""},visual:{type:Boolean,default:!1}},setup(s){const n=s;return(t,o)=>n.visual?e.renderSlot(t.$slots,"default",{key:0}):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["sw-skeleton",n.class])},[e.renderSlot(t.$slots,"skeleton",{},()=>[e.createVNode(G,{animate:"",size:"small"})])],2))}}},Symbol.toStringTag,{value:"Module"})),qe=["name","id"],He=["for","data-onlabel","data-offlabel"],We=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwSwitch",props:e.mergeModels({id:{type:String,default:"checkbox"},class:{type:String,default:""},name:{type:String,default:""},on:{type:String,default:""},off:{type:String,default:""},size:{type:String,default:""},checkbox:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const n=e.useModel(s,"modelValue"),t=s,o=e.computed(()=>{let l=["sw-switch"];return t.size.length>0&&l.push("sw-"+t.size),t.checkbox&&l.push("sw-checkbox"),t.class.length>0&&l.push(t.class),l});return(l,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value)},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",name:t.name,class:"sw-control",id:t.id,"onUpdate:modelValue":c[0]||(c[0]=w=>n.value=w)},null,8,qe),[[e.vModelCheckbox,n.value]]),e.createElementVNode("label",{for:t.id,class:"sw-label","data-onlabel":t.on,"data-offlabel":t.off},null,8,He),e.renderSlot(l.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Ue={key:0},Ge=["onClick"],Xe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabs",props:e.mergeModels({class:{type:String,default:""}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["tab-click"],["update:modelValue"]),setup(s,{emit:n}){e.ref(0);const t=e.ref([]),o=s,l=e.useModel(s,"modelValue"),c=n;function w(d){t.value.push(d)}function p(d){t.value=t.value.filter(h=>h!==d)}return e.provide("registerTab",w),e.provide("unregisterTab",p),e.provide("activeTab",l),e.provide("tabs",t),(d,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass("sw-tabs "+o.class)},[t.value.length!==0?(e.openBlock(),e.createElementBlock("header",Ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,(M,_)=>(e.openBlock(),e.createElementBlock("span",{key:_,class:e.normalizeClass([{active:l.value===_}]),onClick:m=>{l.value=_,c("tab-click",_)}},e.toDisplayString(M.label||M.title),11,Ge))),128))])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default")],2))}}},Symbol.toStringTag,{value:"Module"})),Je={key:0,class:"tab-content"},Qe=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"SwTabsPane",props:{title:{type:String,required:!0},label:{type:String,default:""}},setup(s){const n=s,t=e.inject("registerTab"),o=e.inject("unregisterTab");e.onMounted(()=>{t({title:n.title,label:n.label})}),e.onUnmounted(()=>{o({title:n.title,label:n.label})});const l=e.inject("activeTab"),c=e.inject("tabs"),w=e.computed(()=>c.value.findIndex(d=>d.title===n.title)),p=e.computed(()=>l.value===w.value);return(d,h)=>p.value?(e.openBlock(),e.createElementBlock("div",Je,[e.renderSlot(d.$slots,"default")])):e.createCommentVNode("",!0)}}},Symbol.toStringTag,{value:"Module"}));z.Alert=L,z.Library=ae,z.components=A,Object.defineProperty(z,Symbol.toStringTag,{value:"Module"})});
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { A as s, L as t, c as e } from "./index-CX5bF-tK.js";
2
+ import { A as s, L as t, c as e } from "./index-CLNyMoBy.js";
3
3
  export {
4
4
  s as Alert,
5
5
  t as Library,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "Vue components of Component SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -34,7 +34,7 @@
34
34
  "@vitejs/plugin-vue": "^5.2.1",
35
35
  "sass": "^1.86.0",
36
36
  "sass-embedded": "^1.83.0",
37
- "vite": "6.3.4"
37
+ "vite": "^6.2.0"
38
38
  },
39
39
  "author": "Alexander Efimov",
40
40
  "license": "MIT"