@studio-west/component-sw 0.5.6 → 0.5.8

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