@studio-west/component-sw 0.5.4 → 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 +41 -373
- package/dist/{SwDatePicker-ClO6avew.js → SwDatePicker-CBjN8EHf.js} +41 -41
- package/dist/{SwInput-Izd33lhA.js → SwInput-DzHNW0LG.js} +1 -1
- package/dist/{index-BiWl7VJc.js → index-CLNyMoBy.js} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
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
|
-
- [
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
99
|
-
import {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
//
|
|
103
|
-
|
|
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,8 +103,8 @@ 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
|
|
@@ -139,131 +122,7 @@ this.$Alert({message: 'Welcome!', type: 'success'});
|
|
|
139
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
125
|
|
|
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
|
-
```
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## SwDropdown
|
|
202
|
-
|
|
203
|
-
Компонент SwDropdown это всплывающее меню с возможностью настройки места относительного всплытия и типа Тригера.
|
|
204
|
-
|
|
205
|
-
### Свойства / Properties
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
| Имя | Тип | Значения/Описание |
|
|
209
|
-
|-------------|-----------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
210
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
211
|
-
| `size` | `String` | Размер поля: `'large'`, `'small'`. |
|
|
212
|
-
| `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
213
|
-
| `trigger` | `String` | `'click'` - по умолчанию, `'hover'`, `'context'`,`'none'`. |
|
|
214
|
-
| `placement` | `String` | Относительное место всплытия `'bottom-left'` - по умолчанию, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
|
|
215
|
-
| `maxWidth` | `Number` | Максимальная ширина меню в пикселях. |
|
|
216
|
-
|
|
217
|
-
### Слоты / Slots
|
|
218
|
-
|
|
219
|
-
Default - текст описания или модуль / модули
|
|
220
|
-
|
|
221
|
-
### Пример использования / Example Usage
|
|
222
|
-
|
|
223
|
-
```html
|
|
224
|
-
<script>let visual = false </script>
|
|
225
|
-
<sw-dropdown
|
|
226
|
-
class="custom-class"
|
|
227
|
-
trigger="none"
|
|
228
|
-
v-model="visual"
|
|
229
|
-
maxWidth="o250"
|
|
230
|
-
>
|
|
231
|
-
<button @cick="visual = true">Описание</button>
|
|
232
|
-
</sw-dropdown>
|
|
233
|
-
```
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## SwDropdownItem
|
|
237
|
-
|
|
238
|
-
Компонент SwDropdownItem это пункт во всплывающем меню с возможностью добавления в начало иконки.
|
|
239
|
-
|
|
240
|
-
### Свойства / Properties
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
| Имя | Тип | Значения/Описание |
|
|
244
|
-
|---------------|----------|--------------------------------------------------------------|
|
|
245
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
246
|
-
| `size` | `String` | Размер поля: `'large'`, `'small'`. |
|
|
247
|
-
| `type` | `String` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
248
|
-
| `iconBefore` | `String` | Название иконки в коллекции. |
|
|
249
|
-
|
|
250
|
-
### Слоты / Slots
|
|
251
|
-
|
|
252
|
-
Default - текст названия или модуль
|
|
253
|
-
|
|
254
|
-
### Пример использования / Example Usage
|
|
255
|
-
|
|
256
|
-
```html
|
|
257
|
-
<script>let visual = false </script>
|
|
258
|
-
<sw-dropdown
|
|
259
|
-
class="custom-class"
|
|
260
|
-
trigger="none"
|
|
261
|
-
v-model="visual"
|
|
262
|
-
maxWidth="o250"
|
|
263
|
-
>
|
|
264
|
-
<sw-dropdown-item @cick="visual = true" iconBefore="documents">Описание</sw-dropdown-item>
|
|
265
|
-
</sw-dropdown>
|
|
266
|
-
```
|
|
267
126
|
---
|
|
268
127
|
|
|
269
128
|
## SwInput
|
|
@@ -297,9 +156,7 @@ prefix - клик иконке before
|
|
|
297
156
|
|
|
298
157
|
suffix - клик иконке after
|
|
299
158
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
### Пример использования / Example Usage
|
|
159
|
+
### Пример использования
|
|
303
160
|
|
|
304
161
|
```html
|
|
305
162
|
<sw-input
|
|
@@ -318,156 +175,28 @@ focusInput - focus на поле ввода
|
|
|
318
175
|
</sw-input>
|
|
319
176
|
```
|
|
320
177
|
---
|
|
178
|
+
## SwDropdown
|
|
321
179
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
Компонент SwMessage это выплывающее окно, центрируется по центру.
|
|
325
|
-
|
|
326
|
-
### Свойства / Properties
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
| Имя | Тип | Значения/Описание |
|
|
330
|
-
|-------------|-----------|-----------------------------------------------------------------------------|
|
|
331
|
-
| `name` | `String` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`. |
|
|
332
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
333
|
-
| `iconAfter` | `String` | Добавляет иконку из коллекции для кнопки закрытия (при наличии заголовка). |
|
|
334
|
-
|
|
335
|
-
### Слоты / Slots
|
|
336
|
-
|
|
337
|
-
#header - слот для заголовка окна.
|
|
338
|
-
|
|
339
|
-
#footer - слот для подвала.
|
|
340
|
-
|
|
341
|
-
### Пример использования / Example Usage
|
|
342
|
-
|
|
343
|
-
```html
|
|
344
|
-
<sw-message
|
|
345
|
-
v-model="model"
|
|
346
|
-
name="Message"
|
|
347
|
-
class="custom-class"
|
|
348
|
-
>
|
|
349
|
-
<p>Описание / Description</p>
|
|
350
|
-
</sw-message>
|
|
351
|
-
```
|
|
352
|
-
---
|
|
353
|
-
|
|
354
|
-
## SwSection
|
|
355
|
-
|
|
356
|
-
Компонент SwSection это тег section с шаблоном из слотов, по умолчанию в слот #header добавлено заголовок и иконка.
|
|
357
|
-
|
|
358
|
-
### Свойства / Properties
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
| Имя | Тип | Значения/Описание |
|
|
362
|
-
|-------------|-----------|----------------------------------------------------|
|
|
363
|
-
| `name` | `String` | Добавляет заголовок в секцию. |
|
|
364
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
365
|
-
| `iconAfter` | `String` | Добавляет иконку из коллекции. |
|
|
366
|
-
|
|
367
|
-
### Слоты / Slots
|
|
368
|
-
|
|
369
|
-
#header - слот для заголовка секции.
|
|
370
|
-
|
|
371
|
-
Default - содержимое секции
|
|
372
|
-
|
|
373
|
-
#footer - слот для подвала секции.
|
|
374
|
-
|
|
375
|
-
### События / Events
|
|
376
|
-
|
|
377
|
-
header - клик по всему Header
|
|
378
|
-
|
|
379
|
-
### Пример использования / Example Usage
|
|
380
|
-
|
|
381
|
-
```html
|
|
382
|
-
<sw-section
|
|
383
|
-
name="section"
|
|
384
|
-
class="custom-class"
|
|
385
|
-
iconAfter="cross"
|
|
386
|
-
>
|
|
387
|
-
<p>Содержимое / Content</p>
|
|
388
|
-
<template #footer>
|
|
389
|
-
<p>Footer!</p>
|
|
390
|
-
</template>
|
|
391
|
-
</sw-section>
|
|
392
|
-
```
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
## SwSelect
|
|
396
|
-
|
|
397
|
-
Компонент SwSelect - реализация подсказок для https://dadata.ru/api/suggest/address/.
|
|
398
|
-
|
|
399
|
-
### Свойства / Properties
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
| Имя | Тип | Значения/Описание |
|
|
403
|
-
|----------------|-----------|-----------------------------------------------|
|
|
404
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к popup. |
|
|
405
|
-
| `size` | `String` | Размер поля: `'large'`, `'small'`. |
|
|
406
|
-
| `placeholder` | `String` | Добавляет в placeholder описание. |
|
|
407
|
-
| `token` | `String` | API-ключ для DADATA. |
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
### Пример использования / Example Usage
|
|
411
|
-
|
|
412
|
-
```html
|
|
413
|
-
<sw-select
|
|
414
|
-
v-model="model"
|
|
415
|
-
class="custom-class"
|
|
416
|
-
placeholder="placeholder"
|
|
417
|
-
:token="${API_KEY}"
|
|
418
|
-
/>
|
|
419
|
-
```
|
|
420
|
-
---
|
|
421
|
-
|
|
422
|
-
## SwSkeleton
|
|
423
|
-
|
|
424
|
-
Компонент SwSkeleton используется для анимации загрузки данных, выступая оболочкой компонента SwSkeletonItem
|
|
425
|
-
или пользовательского компонента при использовании слота #skeleton, по умолчанию в слот #skeleton добавлен 1 SwSkeletonItem с базовыми настройками
|
|
426
|
-
|
|
427
|
-
### Свойства / Properties
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
| Имя | Тип | Значения/Описание |
|
|
431
|
-
|----------|-----------|----------------------------------------------------|
|
|
432
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
433
|
-
| `visual` | `Boolean` | Тригер на переключение. |
|
|
434
|
-
|
|
435
|
-
### Слоты / Slots
|
|
436
|
-
|
|
437
|
-
Default - Содержимое
|
|
438
|
-
|
|
439
|
-
#skeleton - слот для skeleton
|
|
440
|
-
|
|
441
|
-
### Пример использования / Example Usage
|
|
442
|
-
|
|
443
|
-
```html
|
|
444
|
-
<sw-skeleton
|
|
445
|
-
:visual="visual"
|
|
446
|
-
>
|
|
447
|
-
<p>Содержимое / Content</p>
|
|
448
|
-
</sw-skeleton>
|
|
449
|
-
```
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
## SwSkeletonItem
|
|
453
|
-
|
|
454
|
-
Компонент SwSkeletonItem представляет собой полоску псевдо данных с возможностью анимирования.
|
|
180
|
+
Компонент SwDropdown это всплывающее меню с возможностью настройки места относительного всплытия и типа Тригера.
|
|
455
181
|
|
|
456
182
|
### Свойства / Properties
|
|
457
183
|
|
|
458
184
|
|
|
459
|
-
| Имя
|
|
460
|
-
|
|
461
|
-
| `
|
|
462
|
-
| `
|
|
463
|
-
| `
|
|
464
|
-
| `
|
|
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` | Максимальная ширина меню в пикселях. |
|
|
465
194
|
|
|
466
195
|
|
|
467
|
-
### Пример использования
|
|
196
|
+
### Пример использования
|
|
468
197
|
|
|
469
198
|
```html
|
|
470
|
-
<sw-
|
|
199
|
+
<sw-dropdown
|
|
471
200
|
v-model="model"
|
|
472
201
|
name="switch"
|
|
473
202
|
class="custom-class"
|
|
@@ -475,8 +204,8 @@ Default - Содержимое
|
|
|
475
204
|
on="on"
|
|
476
205
|
off="off"
|
|
477
206
|
>
|
|
478
|
-
<p
|
|
479
|
-
</sw-
|
|
207
|
+
<p>Описание</p>
|
|
208
|
+
</sw-dropdown>
|
|
480
209
|
```
|
|
481
210
|
---
|
|
482
211
|
|
|
@@ -497,11 +226,7 @@ Default - Содержимое
|
|
|
497
226
|
| `off` | `String` | Текст при false. |
|
|
498
227
|
| `checkbox` | `Boolean` | Визуализирует как обычный чекбокс. |
|
|
499
228
|
|
|
500
|
-
###
|
|
501
|
-
|
|
502
|
-
Default - текст описания
|
|
503
|
-
|
|
504
|
-
### Пример использования / Example Usage
|
|
229
|
+
### Пример использования
|
|
505
230
|
|
|
506
231
|
```html
|
|
507
232
|
<sw-switch
|
|
@@ -512,72 +237,15 @@ Default - текст описания
|
|
|
512
237
|
on="on"
|
|
513
238
|
off="off"
|
|
514
239
|
>
|
|
515
|
-
<p
|
|
240
|
+
<p>Описание</p>
|
|
516
241
|
</sw-switch>
|
|
517
242
|
```
|
|
518
243
|
---
|
|
519
244
|
|
|
520
|
-
## SwTabs
|
|
521
|
-
|
|
522
|
-
Компонент SwTabs представляет собой панель вкладок SwTabsPane.
|
|
523
|
-
|
|
524
|
-
### Свойства / Properties
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
| Имя | Тип | Значения/Описание |
|
|
528
|
-
|---------|-----------|---------------------------------------------------------|
|
|
529
|
-
| `class` | `String` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
530
|
-
|
|
531
|
-
### Слоты / Slots
|
|
532
|
-
|
|
533
|
-
Default - для компонентов SwTabsPane
|
|
534
|
-
|
|
535
|
-
### Пример использования / Example Usage
|
|
536
|
-
|
|
537
|
-
```html
|
|
538
|
-
<sw-tabs
|
|
539
|
-
v-model="activeTabId"
|
|
540
|
-
class="custom-class"
|
|
541
|
-
>
|
|
542
|
-
<sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
|
|
543
|
-
</sw-tabs>
|
|
544
|
-
```
|
|
545
|
-
---
|
|
546
|
-
|
|
547
|
-
## SwTabsPane
|
|
548
|
-
|
|
549
|
-
Компонент SwTabsPane представляет собой оболочку для вкладок.
|
|
550
|
-
|
|
551
|
-
### Свойства / Properties
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
| Имя | Тип | Значения/Описание |
|
|
555
|
-
|---------|-----------|-----------------------------------------------------------------------------------------|
|
|
556
|
-
| `title` | `String` | название унификатор - обязателен при отсутствии `label` будет взят за название вкладки. |
|
|
557
|
-
| `label` | `String` | название вкладки при отсутствии возьмется из `title`. |
|
|
558
|
-
|
|
559
|
-
### Слоты / Slots
|
|
560
|
-
|
|
561
|
-
Default - для вкладок
|
|
562
|
-
|
|
563
|
-
### Пример использования / Example Usage
|
|
564
|
-
|
|
565
|
-
```html
|
|
566
|
-
<sw-tabs
|
|
567
|
-
v-model="activeTabId"
|
|
568
|
-
class="custom-class"
|
|
569
|
-
>
|
|
570
|
-
<sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
|
|
571
|
-
</sw-tabs>
|
|
572
|
-
```
|
|
573
|
-
---
|
|
574
|
-
|
|
575
245
|
### Лицензия / License
|
|
576
246
|
|
|
577
|
-
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE .
|
|
247
|
+
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE .
|
|
578
248
|
This project is distributed under the MIT License. For details, see the LICENSE file.
|
|
579
|
-
|
|
580
249
|
---
|
|
581
|
-
|
|
582
|
-
Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru. /
|
|
250
|
+
Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru.
|
|
583
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
|
|
2
|
-
import { p as I } from "./index-
|
|
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,
|
|
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 && (
|
|
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((
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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",
|
|
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",
|
|
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
|
-
|
|
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 ===
|
|
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
|
-
|
|
137
|
-
e[12] || (e[12] =
|
|
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
|
-
|
|
146
|
-
e[13] || (e[13] =
|
|
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
|
-
},
|
|
153
|
+
}, k(r.value), 1),
|
|
154
154
|
u("button", {
|
|
155
155
|
onClick: e[3] || (e[3] = g((a) => c.value = 1, ["prevent"]))
|
|
156
|
-
},
|
|
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
|
-
|
|
166
|
-
e[14] || (e[14] =
|
|
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
|
-
|
|
174
|
-
e[15] || (e[15] =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 &&
|
|
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 &&
|
|
198
|
+
a.month === o.value && z(a, n);
|
|
199
199
|
}, ["prevent"])
|
|
200
|
-
},
|
|
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
|
-
|
|
211
|
-
e[16] || (e[16] =
|
|
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
|
-
|
|
220
|
-
e[17] || (e[17] =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
|
|
240
|
-
e[18] || (e[18] =
|
|
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
|
-
|
|
248
|
-
e[19] || (e[19] =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 ===
|
|
270
|
+
class: U(a.month === B.value && V(a.year, a.month, a.day) ? a.class : "disabled"),
|
|
271
271
|
onClick: g(() => {
|
|
272
|
-
a.month ===
|
|
272
|
+
a.month === B.value && z(a, n);
|
|
273
273
|
}, ["prevent"])
|
|
274
|
-
},
|
|
274
|
+
}, k(a.day), 11, he)) : x("", !0)
|
|
275
275
|
], 64))), 128))
|
|
276
276
|
]))
|
|
277
277
|
])) : x("", !0)
|
|
@@ -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-
|
|
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-
|
|
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(await e.nextTick(),!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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@studio-west/component-sw",
|
|
3
|
-
"version": "0.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.
|
|
37
|
+
"vite": "^6.2.0"
|
|
38
38
|
},
|
|
39
39
|
"author": "Alexander Efimov",
|
|
40
40
|
"license": "MIT"
|