@studio-west/component-sw 0.12.20 → 0.12.22
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 +127 -106
- package/dist/component-sw.css +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -12,6 +12,10 @@ The `Component SW` library provides a set of ready-to-use UI components on Vue 3
|
|
|
12
12
|
|
|
13
13
|
### Содержание / Table of Contents
|
|
14
14
|
|
|
15
|
+
Интерактивный плейграунд последней версии с живыми примерами, демонстрацией компонентов в браузере: [studiowest.ru/component-sw](https://studiowest.ru/component-sw/).
|
|
16
|
+
|
|
17
|
+
Interactive playground of the latest version with live examples, demonstration of components in the browser: [studiowest.ru/component-sw](https://studiowest.ru/component-sw/).
|
|
18
|
+
|
|
15
19
|
- [Установка / Install](#установка--install)
|
|
16
20
|
|
|
17
21
|
- [SSR / Server-Side Rendering](#ssr--server-side-rendering)
|
|
@@ -136,18 +140,20 @@ if (typeof document !== 'undefined') {
|
|
|
136
140
|
|
|
137
141
|
### Свойства / Properties
|
|
138
142
|
|
|
139
|
-
| Имя | Тип | по умолчанию | Значения/Описание
|
|
140
|
-
|
|
141
|
-
| `class` | `String` | `sw-alert` | Добавляет пользовательский CSS-класс к компоненту.
|
|
142
|
-
| `size` | `String` | `` | Размер сообщения: `'large'`, `'small'`.
|
|
143
|
-
| `type` | `String` | `info` | Тип сообщения: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`.
|
|
144
|
-
| `message` | `String` | `Default message` | Само сообщение.
|
|
145
|
-
| `duration` | `Number` | `6000` | Время отображения в миллисекундах.
|
|
143
|
+
| Имя | Тип | по умолчанию | Значения/Описание |
|
|
144
|
+
|------------|----------|-------------------|-----------------------------------------------------------------------------------|
|
|
145
|
+
| `class` | `String` | `sw-alert` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
146
|
+
| `size` | `String` | `` | Размер сообщения: `'large'`, `'small'`. |
|
|
147
|
+
| `type` | `String` | `info` | Тип сообщения: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
148
|
+
| `message` | `String` | `Default message` | Само сообщение. |
|
|
149
|
+
| `duration` | `Number` | `6000` | Время отображения в миллисекундах. |
|
|
146
150
|
| `before` | `String` | `` | Иконка в начале: имя из SVG-спрайта или URL (`https://…`). См. [SwIcon](#swicon). |
|
|
147
|
-
| `after` | `String` | `` | Иконка в конце (кнопка закрыть): имя из спрайта или URL. См. [SwIcon](#swicon).
|
|
151
|
+
| `after` | `String` | `` | Иконка в конце (кнопка закрыть): имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
148
152
|
|
|
149
153
|
### Слоты / Slots
|
|
150
154
|
|
|
155
|
+
Default - текст описания или модуль / модули
|
|
156
|
+
|
|
151
157
|
#prefix - Вставка перед текстом (если не передан `before`)
|
|
152
158
|
|
|
153
159
|
#suffix - Вставка после текста (если не передан `after`)
|
|
@@ -167,6 +173,7 @@ import { inject, h } from "vue"
|
|
|
167
173
|
import { components } from "@studio-west/component-sw"
|
|
168
174
|
const Alert = inject('Alert')
|
|
169
175
|
Alert({message: 'Alarm!', type: 'warning', suffix: h(components.SwIcon, { iconClass: 'https://cdn.jsdelivr.net/npm/@tabler/icons@3.19.0/icons/outline/info-circle.svg' })})
|
|
176
|
+
|
|
170
177
|
//Options API:
|
|
171
178
|
this.$Alert({message: 'Welcome!', type: 'success', prefix: 'Дополнительная информация'});
|
|
172
179
|
```
|
|
@@ -178,19 +185,19 @@ this.$Alert({message: 'Welcome!', type: 'success', prefix: 'Дополнител
|
|
|
178
185
|
|
|
179
186
|
### Свойства / Properties
|
|
180
187
|
|
|
181
|
-
| Имя | Тип | по умолчанию | Значения/Описание
|
|
182
|
-
|
|
183
|
-
| `class` | `String` | `sw-button` | Добавляет пользовательский CSS-класс к компоненту.
|
|
184
|
-
| `size` | `String` | `` | Размер кнопки: `'large'`, `'small'`.
|
|
185
|
-
| `type` | `String` | `info` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`.
|
|
186
|
-
| `round` | `Boolean` | `false` | Делает кнопку визуально закругленной.
|
|
187
|
-
| `text` | `Boolean` | `false` | Делает кнопку визуально похожей на текст (без фона только граница).
|
|
188
|
-
| `link` | `Boolean` | `false` | Преобразует кнопку в ссылку(без фона и границ).
|
|
189
|
-
| `href` | `String` | `` | URL, на который будет перенаправлен пользователь при клике (если `link=true`).
|
|
190
|
-
| `disabled` | `Boolean` | `false` | Блокирует кнопку, делая её неактивной.
|
|
191
|
-
| `label` | `String` | `` | Текст кнопки (альтернатива содержимому слота).
|
|
188
|
+
| Имя | Тип | по умолчанию | Значения/Описание |
|
|
189
|
+
|------------|-----------|--------------|----------------------------------------------------------------------------------------|
|
|
190
|
+
| `class` | `String` | `sw-button` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
191
|
+
| `size` | `String` | `` | Размер кнопки: `'large'`, `'small'`. |
|
|
192
|
+
| `type` | `String` | `info` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
193
|
+
| `round` | `Boolean` | `false` | Делает кнопку визуально закругленной. |
|
|
194
|
+
| `text` | `Boolean` | `false` | Делает кнопку визуально похожей на текст (без фона только граница). |
|
|
195
|
+
| `link` | `Boolean` | `false` | Преобразует кнопку в ссылку(без фона и границ). |
|
|
196
|
+
| `href` | `String` | `` | URL, на который будет перенаправлен пользователь при клике (если `link=true`). |
|
|
197
|
+
| `disabled` | `Boolean` | `false` | Блокирует кнопку, делая её неактивной. |
|
|
198
|
+
| `label` | `String` | `` | Текст кнопки (альтернатива содержимому слота). |
|
|
192
199
|
| `prefix` | `String` | `` | Иконка перед текстом: имя из SVG-спрайта или URL (`https://…`). См. [SwIcon](#swicon). |
|
|
193
|
-
| `postfix` | `String` | `` | Иконка после текста: имя из спрайта или URL. См. [SwIcon](#swicon).
|
|
200
|
+
| `postfix` | `String` | `` | Иконка после текста: имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
194
201
|
|
|
195
202
|
### Слоты / Slots
|
|
196
203
|
|
|
@@ -229,7 +236,7 @@ Default - содержимое кнопки (текст, иконки или д
|
|
|
229
236
|
|
|
230
237
|
```html
|
|
231
238
|
<sw-button
|
|
232
|
-
|
|
239
|
+
disabled="true"
|
|
233
240
|
type="primary"
|
|
234
241
|
>
|
|
235
242
|
Недоступно
|
|
@@ -367,14 +374,14 @@ input - событие выбора с данными {dateStart: "11.11.2011",
|
|
|
367
374
|
|
|
368
375
|
### Свойства / Properties
|
|
369
376
|
|
|
370
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
371
|
-
|
|
372
|
-
| `class` | `String` | `sw-dropdown` | Добавляет пользовательский CSS-класс к компоненту.
|
|
373
|
-
| `size` | `String` | `` | Размер поля: `'large'`, `'small'`.
|
|
374
|
-
| `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`.
|
|
375
|
-
| `trigger` | `String` | `click` | `'click'
|
|
376
|
-
| `placement` | `String` | `bottom-left` | Относительное место всплытия `'bottom-left'`, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`.
|
|
377
|
-
| `maxWidth` | `Number` | `0` | Максимальная ширина меню в пикселях. 0 - без ограничений.
|
|
377
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
378
|
+
|-------------|-----------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
379
|
+
| `class` | `String` | `sw-dropdown` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
380
|
+
| `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
|
|
381
|
+
| `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
382
|
+
| `trigger` | `String` | `click` | Способ открытия: `'click'` — по клику, `'hover'` — при наведении, `'context'` — по правому клику, `'none'` — только через `model`, без автотриггера. |
|
|
383
|
+
| `placement` | `String` | `bottom-left` | Относительное место всплытия `'bottom-left'`, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
|
|
384
|
+
| `maxWidth` | `Number` | `0` | Максимальная ширина меню в пикселях. 0 - без ограничений. |
|
|
378
385
|
|
|
379
386
|
### Слоты / Slots
|
|
380
387
|
|
|
@@ -404,12 +411,12 @@ model - состояние меню, булевое значение откры
|
|
|
404
411
|
|
|
405
412
|
### Свойства / Properties
|
|
406
413
|
|
|
407
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
408
|
-
|
|
409
|
-
| `class` | `String` | `sw-dropdown-item` | Добавляет пользовательский CSS-класс к компоненту.
|
|
410
|
-
| `size` | `String` | `` | Размер поля: `'large'`, `'small'`.
|
|
411
|
-
| `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`.
|
|
412
|
-
| `iconBefore` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon).
|
|
414
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
415
|
+
|---------------|----------|--------------------|------------------------------------------------------------------|
|
|
416
|
+
| `class` | `String` | `sw-dropdown-item` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
417
|
+
| `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
|
|
418
|
+
| `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
|
|
419
|
+
| `iconBefore` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
413
420
|
|
|
414
421
|
### Слоты / Slots
|
|
415
422
|
|
|
@@ -437,11 +444,11 @@ Default - текст названия или модуль
|
|
|
437
444
|
|
|
438
445
|
### Свойства / Properties
|
|
439
446
|
|
|
440
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
441
|
-
|
|
442
|
-
| `iconClass` | `String` | `required` | Имя иконки в спрайте или URL (`https://…`).
|
|
443
|
-
| `prefix` | `String` | `icon` | Префикс символа в спрайте: `#prefix-iconClass`.
|
|
444
|
-
| `className` | `String` | `` | Дополнительный CSS-класс для элемента `<svg>`.
|
|
447
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
448
|
+
|-------------|----------|--------------|-------------------------------------------------|
|
|
449
|
+
| `iconClass` | `String` | `required` | Имя иконки в спрайте или URL (`https://…`). |
|
|
450
|
+
| `prefix` | `String` | `icon` | Префикс символа в спрайте: `#prefix-iconClass`. |
|
|
451
|
+
| `className` | `String` | `` | Дополнительный CSS-класс для элемента `<svg>`. |
|
|
445
452
|
|
|
446
453
|
### Пример использования / Example Usage
|
|
447
454
|
|
|
@@ -516,7 +523,7 @@ const steps = ref([
|
|
|
516
523
|
| `name` | `String` | `required` | Обязателен! нужен для связывания через id input и label. |
|
|
517
524
|
| `class` | `String` | `sw-input` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
518
525
|
| `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
|
|
519
|
-
| `type` | `String` | `text` | Тип поля: `'text'`, `'phone'` (маска `+
|
|
526
|
+
| `type` | `String` | `text` | Тип поля: `'text'`, `'phone'` (маска `+_ (___) ___-__-__` встроена в компонент), `'password'` |
|
|
520
527
|
| `inputMode` | `String` | `text` | Мобильная клавиатура: `'text'`- стандартная, `'search'`- поиск, `'numeric'`- цифры, `'decimal'` - числа, `'tel'` - телефон, `'url'` - адреса, `'email'` - почта |
|
|
521
528
|
| `before` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
522
529
|
| `after` | `String` | `` | Иконка в конце: имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
@@ -529,9 +536,9 @@ const steps = ref([
|
|
|
529
536
|
|
|
530
537
|
### Слоты / Slots
|
|
531
538
|
|
|
532
|
-
#prefix - вставка при отсутствии before не
|
|
539
|
+
#prefix - вставка при отсутствии before не обязательно.
|
|
533
540
|
|
|
534
|
-
#suffix - вставка при отсутствии after не
|
|
541
|
+
#suffix - вставка при отсутствии after не обязательно.
|
|
535
542
|
|
|
536
543
|
### Модель / Model
|
|
537
544
|
|
|
@@ -576,10 +583,10 @@ const model = ref('')
|
|
|
576
583
|
|
|
577
584
|
### Свойства / Properties
|
|
578
585
|
|
|
579
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
580
|
-
|
|
581
|
-
| `menuItems` | `Object \| Array` | `required` | Конфигурация меню. Объект или массив объектов с компонентами и их настройками.
|
|
582
|
-
| `class` | `String` | `''` | Добавляет пользовательский CSS-класс к компоненту.
|
|
586
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
587
|
+
|-------------|------------------------|--------------|--------------------------------------------------------------------------------|
|
|
588
|
+
| `menuItems` | `Object \| Array` | `required` | Конфигурация меню. Объект или массив объектов с компонентами и их настройками. |
|
|
589
|
+
| `class` | `String` | `''` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
583
590
|
|
|
584
591
|
### Модель / Model
|
|
585
592
|
|
|
@@ -886,16 +893,18 @@ const complexMenu = {
|
|
|
886
893
|
|
|
887
894
|
### Свойства / Properties
|
|
888
895
|
|
|
889
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
890
|
-
|
|
891
|
-
| `name` | `String` | `` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`.
|
|
892
|
-
| `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту.
|
|
893
|
-
| `iconAfter` | `String` | `` | Иконка кнопки закрытия (при заголовке): имя из спрайта или URL. См. [SwIcon](#swicon).
|
|
896
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
897
|
+
|-------------|-----------|--------------|-----------------------------------------------------------------------------------------|
|
|
898
|
+
| `name` | `String` | `` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`. |
|
|
899
|
+
| `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
900
|
+
| `iconAfter` | `String` | `` | Иконка кнопки закрытия (при заголовке): имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
894
901
|
|
|
895
902
|
### Слоты / Slots
|
|
896
903
|
|
|
897
904
|
#header - слот для заголовка окна.
|
|
898
905
|
|
|
906
|
+
Default - текст описания или модуль / модулия
|
|
907
|
+
|
|
899
908
|
#footer - слот для подвала.
|
|
900
909
|
|
|
901
910
|
### Модель / Model
|
|
@@ -926,11 +935,11 @@ model - состояние компонента булевое значение,
|
|
|
926
935
|
|
|
927
936
|
### Свойства / Properties
|
|
928
937
|
|
|
929
|
-
| Имя | Тип | По умолчанию | Значения/Описание
|
|
930
|
-
|
|
931
|
-
| `name` | `String` | `` | Добавляет заголовок в секцию.
|
|
932
|
-
| `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту.
|
|
933
|
-
| `iconAfter` | `String` | `` | Иконка в заголовке: имя из спрайта или URL. См. [SwIcon](#swicon).
|
|
938
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
939
|
+
|-------------|-----------|--------------|---------------------------------------------------------------------|
|
|
940
|
+
| `name` | `String` | `` | Добавляет заголовок в секцию. |
|
|
941
|
+
| `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
|
|
942
|
+
| `iconAfter` | `String` | `` | Иконка в заголовке: имя из спрайта или URL. См. [SwIcon](#swicon). |
|
|
934
943
|
|
|
935
944
|
### Слоты / Slots
|
|
936
945
|
|
|
@@ -1144,67 +1153,71 @@ model - состояние чекбокса (checked ) булевое знач
|
|
|
1144
1153
|
|
|
1145
1154
|
The `SwTable` component is a dynamic table with nested headers, cell merging (`rowspan` / `colspan`), slot-based customization, row and column hover highlighting, column resizing, and sticky edge columns during horizontal scroll.
|
|
1146
1155
|
|
|
1147
|
-
Колонки описываются дочерним компонентом `SwTableColumn`.
|
|
1156
|
+
Колонки описываются дочерним компонентом `SwTableColumn`.
|
|
1157
|
+
|
|
1158
|
+
Columns are defined with the child `SwTableColumn` component.
|
|
1148
1159
|
|
|
1149
1160
|
### Свойства SwTable / SwTable Properties
|
|
1150
1161
|
|
|
1151
|
-
| Имя
|
|
1152
|
-
|
|
1153
|
-
| `data` | `Array`
|
|
1154
|
-
| `resizable` | `Boolean`
|
|
1155
|
-
| `maxWidth` | `String` \| `Number
|
|
1162
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
1163
|
+
|-------------|----------------------|--------------|---------------------------------------------------------------------------------------------------------------|
|
|
1164
|
+
| `data` | `Array` | `required` | Данные таблицы — массив объектов. |
|
|
1165
|
+
| `resizable` | `Boolean` | `true` | Разрешить изменение ширины колонок перетаскиванием края заголовка. |
|
|
1166
|
+
| `maxWidth` | `String` \| `Number` | — | Максимальная ширина контейнера таблицы. При переполнении — горизонтальный скролл и активация `fixed`-колонок. |
|
|
1156
1167
|
|
|
1157
1168
|
### События SwTable / SwTable Events
|
|
1158
1169
|
|
|
1159
|
-
| Имя
|
|
1160
|
-
|
|
1161
|
-
| `column-resize` | `{ prop, width }`
|
|
1170
|
+
| Имя | Параметрыd | Описание |
|
|
1171
|
+
|-----------------|-------------------|----------------------------------------------------|
|
|
1172
|
+
| `column-resize` | `{ prop, width }` | Срабатывает после изменения ширины колонки (в px). |
|
|
1162
1173
|
|
|
1163
1174
|
### Свойства SwTableColumn / SwTableColumn Properties
|
|
1164
1175
|
|
|
1165
|
-
| Имя
|
|
1166
|
-
|
|
1167
|
-
| `prop` | `String`
|
|
1168
|
-
| `label` | `String`
|
|
1169
|
-
| `width` | `String` \| `Number
|
|
1170
|
-
| `height` | `String` \| `Number
|
|
1171
|
-
| `resizable` | `Boolean`
|
|
1172
|
-
| `minWidth` | `String` \| `Number
|
|
1173
|
-
| `fixed` | `String`
|
|
1176
|
+
| Имя | Тип | По умолчанию | Значения / Описание |
|
|
1177
|
+
|-------------|----------------------|--------------|----------------------------------------------------------------------------------|
|
|
1178
|
+
| `prop` | `String` | — | Ключ поля в объекте строки. Поддерживает вложенные пути: `speed.midl`. |
|
|
1179
|
+
| `label` | `String` | `''` | Заголовок колонки. |
|
|
1180
|
+
| `width` | `String` \| `Number` | `'auto'` | Ширина колонки, например `180` или `'180px'`. |
|
|
1181
|
+
| `height` | `String` \| `Number` | `'auto'` | Минимальная высота ячейки заголовка. |
|
|
1182
|
+
| `resizable` | `Boolean` | — | Разрешить ресайз конкретной колонки. По умолчанию наследует `resizable` таблицы. |
|
|
1183
|
+
| `minWidth` | `String` \| `Number` | `48` | Минимальная ширина при ресайзе (px). |
|
|
1184
|
+
| `fixed` | `String` | — | `'left'` \| `'right'` — фиксация колонки при горизонтальном скролле. |
|
|
1185
|
+
|
|
1186
|
+
`SwTableColumn` без `prop` используется как групповой заголовок; внутри него задаются дочерние `SwTableColumn`.
|
|
1174
1187
|
|
|
1175
|
-
|
|
1188
|
+
A `SwTableColumn` without `prop` is a group header; place child `SwTableColumn` components inside it.
|
|
1176
1189
|
|
|
1177
1190
|
### Подсветка при наведении / Hover highlight
|
|
1178
1191
|
|
|
1179
|
-
-
|
|
1180
|
-
-
|
|
1192
|
+
- **Row** — при наведении на строку в `tbody` подсвечиваются все её ячейки (учитывается `rowspan`).
|
|
1193
|
+
- **Column** — при наведении на ячейку заголовка подсвечивается весь столбец; для группового заголовка с `colspan` — все вложенные колонки.
|
|
1181
1194
|
|
|
1182
|
-
Стили подсветки заданы в `component-sw.css` (классы `row-hover`, `col-hover`).
|
|
1195
|
+
Стили подсветки заданы в `component-sw.css` (классы `row-hover`, `col-hover`).
|
|
1183
1196
|
|
|
1184
1197
|
### Фиксированные колонки / Fixed columns
|
|
1185
1198
|
|
|
1186
|
-
Фиксация включается, когда одновременно:
|
|
1199
|
+
Фиксация включается, когда одновременно:
|
|
1187
1200
|
|
|
1188
|
-
1. задан `max-width` у `SwTable`;
|
|
1189
|
-
2. у колонок указан `fixed="left"` или `fixed="right"`;
|
|
1190
|
-
3. суммарная ширина таблицы превышает контейнер.
|
|
1201
|
+
1. задан `max-width` у `SwTable`;
|
|
1202
|
+
2. у колонок указан `fixed="left"` или `fixed="right"`;
|
|
1203
|
+
3. суммарная ширина таблицы превышает контейнер.
|
|
1191
1204
|
|
|
1192
|
-
Групповой заголовок фиксируется, если все его дочерние колонки имеют одинаковое значение `fixed`.
|
|
1205
|
+
Групповой заголовок фиксируется, если все его дочерние колонки имеют одинаковое значение `fixed`.
|
|
1193
1206
|
|
|
1194
1207
|
### Слоты / Slots
|
|
1195
1208
|
|
|
1196
|
-
`#<prop>` — именованный слот для конкретной колонки (приоритет выше `cell`). Параметры: `{ row, $index, value }`
|
|
1209
|
+
`#<prop>` — именованный слот для конкретной колонки (приоритет выше `cell`). Параметры: `{ row, $index, value }`
|
|
1197
1210
|
|
|
1198
|
-
`#cell` — универсальный слот для всех колонок (default-слот занят `SwTableColumn`). Параметры: `{ row, $index, column, value }`
|
|
1211
|
+
`#cell` — универсальный слот для всех колонок (default-слот занят `SwTableColumn`). Параметры: `{ row, $index, column, value }`
|
|
1199
1212
|
|
|
1200
|
-
- `row` — весь объект строки данных
|
|
1201
|
-
- `$index` — индекс строки (начиная с 0)
|
|
1202
|
-
- `column` — имя колонки (`prop`)
|
|
1203
|
-
- `value` — значение ячейки
|
|
1213
|
+
- `row` — весь объект строки данных
|
|
1214
|
+
- `$index` — индекс строки (начиная с 0)
|
|
1215
|
+
- `column` — имя колонки (`prop`)
|
|
1216
|
+
- `value` — значение ячейки
|
|
1204
1217
|
|
|
1205
1218
|
### Пример использования / Example Usage
|
|
1206
1219
|
|
|
1207
|
-
#### Базовый пример с вложенными
|
|
1220
|
+
#### Базовый пример с вложенными колонками:
|
|
1208
1221
|
|
|
1209
1222
|
```html
|
|
1210
1223
|
<script>
|
|
@@ -1227,7 +1240,7 @@ The `SwTable` component is a dynamic table with nested headers, cell merging (`r
|
|
|
1227
1240
|
</sw-table>
|
|
1228
1241
|
```
|
|
1229
1242
|
|
|
1230
|
-
#### Ресайз
|
|
1243
|
+
#### Ресайз колонок:
|
|
1231
1244
|
|
|
1232
1245
|
```html
|
|
1233
1246
|
<script setup>
|
|
@@ -1258,7 +1271,7 @@ function onColumnResize({ prop, width }) {
|
|
|
1258
1271
|
</sw-table>
|
|
1259
1272
|
```
|
|
1260
1273
|
|
|
1261
|
-
#### Фиксированные крайние
|
|
1274
|
+
#### Фиксированные крайние колонки:
|
|
1262
1275
|
|
|
1263
1276
|
```html
|
|
1264
1277
|
<script setup>
|
|
@@ -1281,7 +1294,7 @@ const rows = [
|
|
|
1281
1294
|
</sw-table>
|
|
1282
1295
|
```
|
|
1283
1296
|
|
|
1284
|
-
#### Пример с v-for для динамических
|
|
1297
|
+
#### Пример с v-for для динамических колонок:
|
|
1285
1298
|
|
|
1286
1299
|
```html
|
|
1287
1300
|
<script setup>
|
|
@@ -1315,7 +1328,7 @@ const tableData = ref([
|
|
|
1315
1328
|
</sw-table>
|
|
1316
1329
|
```
|
|
1317
1330
|
|
|
1318
|
-
#### Пример с кастомизацией через
|
|
1331
|
+
#### Пример с кастомизацией через слоты:
|
|
1319
1332
|
|
|
1320
1333
|
```html
|
|
1321
1334
|
<script setup>
|
|
@@ -1365,7 +1378,7 @@ const deleteUser = (id) => {
|
|
|
1365
1378
|
</sw-table>
|
|
1366
1379
|
```
|
|
1367
1380
|
|
|
1368
|
-
#### Пример с универсальным слотом cell
|
|
1381
|
+
#### Пример с универсальным слотом cell:
|
|
1369
1382
|
|
|
1370
1383
|
```html
|
|
1371
1384
|
<script setup>
|
|
@@ -1399,7 +1412,7 @@ const products = ref([
|
|
|
1399
1412
|
</sw-table>
|
|
1400
1413
|
```
|
|
1401
1414
|
|
|
1402
|
-
#### Пример с объединением ячеек (rowspan/colspan)
|
|
1415
|
+
#### Пример с объединением ячеек (rowspan/colspan):
|
|
1403
1416
|
|
|
1404
1417
|
```html
|
|
1405
1418
|
<script setup>
|
|
@@ -1477,10 +1490,10 @@ model - индекс активной вкладки (по порядку в к
|
|
|
1477
1490
|
|
|
1478
1491
|
### Свойства / Properties
|
|
1479
1492
|
|
|
1480
|
-
| Имя | Тип
|
|
1481
|
-
|
|
1482
|
-
| `title` | `String`
|
|
1483
|
-
| `label` | `String`
|
|
1493
|
+
| Имя | Тип | По умолчанию | Значения/Описание |
|
|
1494
|
+
|---------|----------|--------------|-----------------------------------------------------------------------------------------|
|
|
1495
|
+
| `title` | `String` | `` | Название унификатор - обязателен при отсутствии `label` будет взят за название вкладки. |
|
|
1496
|
+
| `label` | `String` | `` | Название вкладки при отсутствии возьмется из `title`. |
|
|
1484
1497
|
|
|
1485
1498
|
### Слоты / Slots
|
|
1486
1499
|
|
|
@@ -1508,11 +1521,19 @@ Default - для вкладок
|
|
|
1508
1521
|
|
|
1509
1522
|
**SwTable**
|
|
1510
1523
|
|
|
1511
|
-
- Подсветка строки при наведении на строку в `tbody` (с учётом `rowspan`).
|
|
1512
|
-
- Подсветка столбца при наведении на ячейку заголовка; для группового заголовка с `colspan` — все вложенные колонки.
|
|
1513
|
-
- Изменение ширины колонок перетаскиванием края заголовка; проп `resizable` у таблицы и колонки, событие `column-resize`.
|
|
1514
|
-
- Фиксация крайних колонок (`fixed="left"` \| `fixed="right"` на `SwTableColumn`) при горизонтальном скролле; prop `maxWidth` у `SwTable`.
|
|
1515
|
-
- Колонки снова регистрируются корректно: `SwTable` и `SwTableColumn` монтируют слот через скрытый контейнер (`provide` / `inject`).
|
|
1524
|
+
- Подсветка строки при наведении на строку в `tbody` (с учётом `rowspan`).
|
|
1525
|
+
- Подсветка столбца при наведении на ячейку заголовка; для группового заголовка с `colspan` — все вложенные колонки.
|
|
1526
|
+
- Изменение ширины колонок перетаскиванием края заголовка; проп `resizable` у таблицы и колонки, событие `column-resize`.
|
|
1527
|
+
- Фиксация крайних колонок (`fixed="left"` \| `fixed="right"` на `SwTableColumn`) при горизонтальном скролле; prop `maxWidth` у `SwTable`.
|
|
1528
|
+
- Колонки снова регистрируются корректно: `SwTable` и `SwTableColumn` монтируют слот через скрытый контейнер (`provide` / `inject`).
|
|
1529
|
+
|
|
1530
|
+
---
|
|
1531
|
+
|
|
1532
|
+
- Row highlight on `tbody` row hover (`rowspan` supported).
|
|
1533
|
+
- Column highlight on header cell hover; grouped headers with `colspan` highlight all nested columns.
|
|
1534
|
+
- Resize leaf columns by dragging the header edge; table/column `resizable` prop and `column-resize` event.
|
|
1535
|
+
- Sticky edge columns (`fixed="left"` \| `fixed="right"` on `SwTableColumn`) during horizontal scroll; `maxWidth` prop on `SwTable`.
|
|
1536
|
+
- Columns register correctly again: `SwTable` and `SwTableColumn` mount the slot via a hidden container (`provide` / `inject`).
|
|
1516
1537
|
|
|
1517
1538
|
---
|
|
1518
1539
|
|
package/dist/component-sw.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--sw-color-default:#dfdfdf;--sw-color-primary:#3eaf4e;--sw-color-success:#75c6ff;--sw-color-info:silver;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-preholiday:#ffe78070;--sw-color-weekend:#ff808070;--sw-color-select:#007bff70;--sw-color-holiday:red;--sw-color-nowork:red;--sw-color-active:#5aaaff;--sw-text-color-primary:#333;--sw-text-color-secondary:#4c4c4c;--sw-text-color-third:#818181;--sw-text-color-revers:white;--sw-bg-color:#f4f4f4;--sw-bg-color-page:white;--sw-bg-color-second:#fafafa;--sw-bg-color-glass:#85858573;--sw-border-color:#d6d6d6;--sw-border-color-input:#cecece;--sw-font-size:1rem;--sw-font-size-small:.875rem;--sw-font-size-large:1.125rem;--sw-font-size-big:2.8rem;--sw-border-radius:.625rem;--sw-border-radius-small:.25rem;--sw-border-round:3.625rem;--sw-component-size-base:3rem;--sw-component-size-small:1.625rem;--sw-component-size-large:3.5rem;--sw-component-size-big:10.5rem;--sw-track-thickness:.375rem;--sw-border-thickness:.125rem;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}:root.dark{--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}@media (prefers-color-scheme:dark){:root:not(.light){--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}}.sw-alert-wrapper{top:max(env(safe-area-inset-top,0rem), env(titlebar-area-y,0rem));background:0 0;border:none;position:fixed}.sw-alert-wrapper .sw-alert{border-radius:var(--sw-border-radius);color:var(--sw-text-color-revers);margin:1rem auto 0;padding:.625rem 1rem}.sw-alert-wrapper .sw-alert .svg-icon{flex-shrink:0}.sw-alert-wrapper .sw-alert .svg-icon:first-child{margin-right:1rem}.sw-alert-wrapper .sw-alert .fade-enter-active,.sw-alert-wrapper .sw-alert .fade-leave-active{transition:opacity .5s}.sw-alert-wrapper .sw-alert .fade-enter-from,.sw-alert-wrapper .sw-alert .fade-leave-to{opacity:0}.sw-alert-wrapper .sw-alert footer{justify-content:flex-end;display:flex}.sw-table{border-collapse:collapse;width:100%}.sw-table.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sw-table .row-hover,.sw-table .col-hover{background:color-mix(in srgb, var(--sw-color-active) 10%, transparent)}.sw-table .resizable{position:relative;overflow:hidden}.sw-table .resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.sw-table .resize-handle:hover{background:var(--sw-border-color)}.sw-table-wrapper{max-width:100%;overflow-x:auto}.sw-table-wrapper .sw-table{width:max-content;min-width:100%}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{background:var(--sw-bg-color-page)}.sw-table-wrapper.fixed-active .sw-table thead th.fixed-left,.sw-table-wrapper.fixed-active .sw-table thead th.fixed-right{background:var(--sw-bg-color-second)}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-left{box-shadow:2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{box-shadow:-2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);margin-bottom:1.25rem;font-weight:400;transition:all .6s ease-out;display:flex}.sw-tabs>header span{cursor:pointer;background:0 0;border:none;border-radius:0;outline:none;padding:5px;position:relative;top:2px}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius);align-items:center;gap:0 1.75rem;padding:0 1.2em;display:flex;position:relative}.sw-input>label{text-align:left;font-size:var(--sw-font-size);background:var(--sw-bg-color-page);line-height:1;transition:all .2s linear .2s;position:absolute;top:1.1rem}.sw-input>label+input::placeholder{opacity:0}.sw-input.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input>input{line-height:var(--sw-component-size-base);width:100%;font-size:var(--sw-font-size-large);color:var(--sw-text-color-primary);background:0 0;border:none;outline:none}.sw-input>input::placeholder{color:var(--sw-text-color-secondary);opacity:1;transition:opacity .2s linear .2s}.sw-input>input:focus::placeholder{opacity:1}.sw-input .svg-icon{color:var(--sw-text-color-third);font-size:20px}.sw-input>svg+label{left:4rem}.sw-input.sw-small label{font-size:var(--sw-font-size-small);top:.3rem}.sw-input.sw-small.sw-input--active>label{top:-.6em}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large label{font-size:var(--sw-font-size-large);top:1.22rem}.sw-input.sw-large.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:var(--sw-border-radius);border:1px solid var(--sw-color-default);min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);cursor:pointer;background-color:var(--sw-color-default);color:var(--sw-text-color-revers);align-items:center;gap:.35em;padding:0 1.2em;font-weight:500;transition:border-color .25s;display:inline-flex}.sw-button .svg-icon,.sw-button .sw-external-icon{flex-shrink:0}.sw-button-group{--radius:var(--sw-border-radius);display:inline-flex}.sw-button-group.sw-round{--radius:var(--sw-border-round)}.sw-button-group>.sw-button{border-radius:0}.sw-button-group :first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.sw-button-group :last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.sw-button-group.sw-vertical :first-child{border-top-right-radius:var(--radius);border-bottom-left-radius:0}.sw-button-group.sw-vertical :last-child{border-top-right-radius:0;border-bottom-left-radius:var(--radius)}.sw-form-item{font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);justify-content:space-between;gap:1rem;display:flex}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-form-item.sw-center{justify-content:center}.sw-dropdown{outline:none;display:inline-block;position:relative}.sw-dropdown-popup{z-index:3;-webkit-user-select:none;user-select:none;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;min-width:200px;margin:0;padding:8px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-popup.gide>header,.sw-dropdown-popup.gide>footer{justify-content:space-between;align-items:center;display:flex}.sw-dropdown-popup.gide>header .sw-button,.sw-dropdown-popup.gide>footer .sw-button{font-size:var(--sw-font-size-large);padding:.3em}.sw-dropdown-popup.gide>footer .sw-button{padding:.1em .6em}.sw-dropdown-popup.gide img{height:160px;position:absolute;right:-100px}.sw-dropdown-popup.gide img.reflect{left:-100px}.sw-dropdown-item{-webkit-user-select:none;user-select:none;outline:none;display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.sw-collapse.is-open{grid-template-rows:1fr}.sw-collapse__inner{min-height:0;overflow:hidden}.sw-slider{width:100%;height:var(--sw-component-size-small);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sw-slider:not(.vertical) .track{height:var(--sw-track-thickness);width:100%;top:50%;left:0;transform:translateY(-50%)}.sw-slider.vertical{width:var(--sw-component-size-small);height:200px}.sw-slider.vertical .track{width:var(--sw-track-thickness);height:100%;top:0;left:50%;transform:translate(-50%)}.sw-slider .track{background:var(--sw-border-color);border-radius:var(--sw-border-radius-small);position:absolute}.sw-slider .track .fill{background:var(--sw-color-primary);border-radius:var(--sw-border-radius-small);width:100%;height:100%;transition:all .1s;position:absolute}.sw-slider .thumb{width:var(--sw-component-size-small);height:var(--sw-component-size-small);background:var(--sw-bg-color-page);border:var(--sw-border-thickness) solid var(--sw-color-primary);box-sizing:border-box;border-radius:var(--sw-border-round);cursor:grab;text-align:center;color:var(--sw-color-primary);line-height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0003}.sw-slider .thumb:hover,.sw-slider .thumb:active{transform:translate(-50%,-50%)scale(1.1)}.sw-slider .thumb>*{width:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2)}.sw-slider .thumb .tooltip{background:var(--sw-bg-color-page);color:var(--sw-text-color-primary);box-shadow:var(--sw-shadow);font-size:var(--sw-font-size-small);white-space:nowrap;z-index:10;padding:0;position:absolute;left:50%;transform:translate(-50%)}.sw-slider .thumb .tooltip.tooltip-vertical{top:50%;left:auto;transform:translateY(-50%)}.sw-switch{box-sizing:border-box;-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size);align-items:center;display:inline-flex}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);right:auto;left:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4)}.sw-switch>input:checked+label:after{left:calc(var(--sw-component-size-base) * 1.4);background:#f7f7f7}.sw-switch>label{background-color:var(--sw-color-info);border-radius:var(--sw-component-size-base);cursor:pointer;flex:0 0 calc(var(--sw-component-size-base) * 2.6);width:calc(var(--sw-component-size-base) * 2.6);height:var(--sw-component-size-base);margin-right:.5rem;transition:all .3s;position:relative}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);right:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4);font-size:1em;transition:all .3s;display:block;position:absolute}.sw-switch>label:after{background:var(--sw-text-color-revers);border:calc(var(--sw-border-thickness) / 2) solid var(--sw-color-info);content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-base) * 1.2);height:calc(var(--sw-component-size-base) * 1.2);top:calc(var(--sw-component-size-base) * -.15);border-radius:50%;transition:all .3s;position:absolute}.sw-switch.sw-small{font-size:var(--sw-font-size-small)}.sw-switch.sw-small>label{border-radius:var(--sw-component-size-small);height:var(--sw-component-size-small);width:calc(var(--sw-component-size-small) * 1.9);flex:0 0 calc(var(--sw-component-size-small) * 1.9)}.sw-switch.sw-small>label:before{content:""}.sw-switch.sw-small>label:after{content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-small) - var(--sw-border-thickness));height:calc(var(--sw-component-size-small) - var(--sw-border-thickness));top:0}.sw-switch.sw-small>input:checked+label:before{content:""}.sw-switch.sw-small>input:checked+label:after{left:calc(var(--sw-component-size-small) * .9)}.sw-switch.sw-checkbox label{border-radius:var(--sw-border-radius-small);background:var(--sw-bg-color-pag);border:1px solid var(--sw-border-color-input);flex:0 0 .875rem;height:.875rem}.sw-switch.sw-checkbox label:after{content:none}.sw-switch.sw-checkbox>input:checked+label{background:var(--sw-bg-color-page);color:var(--sw-color-primary)}.sw-switch.sw-checkbox>input:checked+label:before{content:"✔";text-rendering:geometricprecision;white-space:nowrap;width:1em;font-size:1.6rem;top:-.9rem;left:0}.sw-skeleton{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.sw-skeleton-item{min-height:var(--sw-component-size-base);background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;width:100%;position:relative;overflow:hidden}.sw-skeleton-item>div{background:var(--sw-border-color-input);width:10px;height:100%;box-shadow:0 0 20px 20px var(--sw-border-color-input);animation:3s linear infinite sw-skeleton;display:inline-block;position:absolute;transform:skew(-20deg)}.sw-message{background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);box-sizing:border-box;min-width:16rem;max-width:95%;max-height:95%;padding:1.875rem;top:50%;left:50%;overflow-y:auto;transform:translateY(-50%)translate(-50%)}.sw-message::backdrop{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sw-message>header{justify-content:space-between;gap:.5rem;margin-bottom:.5rem;display:flex}.sw-message>footer{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.sw-modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.sw-data-picker{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.sw-data-picker .month_year{justify-content:space-around;align-items:center;display:flex}.sw-data-picker .month_year span:not(.text) button{font-size:1.3em}.sw-data-picker button{color:var(--sw-text-color-primary);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:.2rem;height:30px;line-height:30px;transition:all .3s}.sw-data-picker button:hover:not(.disabled):not(.active){color:var(--sw-color-primary)}.sw-data-picker .week{border-bottom:1px solid var(--sw-color-info);margin-bottom:.5rem}.sw-data-picker .month,.sw-data-picker .week{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .month>button,.sw-data-picker .week>button{width:30px}.sw-data-picker .month>button.disabled,.sw-data-picker .week>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .month>button.preholiday,.sw-data-picker .week>button.preholiday{background-color:var(--sw-color-preholiday)}.sw-data-picker .month>button.weekend,.sw-data-picker .week>button.weekend{background-color:var(--sw-color-weekend)}.sw-data-picker .month>button.select,.sw-data-picker .week>button.select{background-color:var(--sw-color-select)}.sw-data-picker .month>button.holiday,.sw-data-picker .week>button.holiday{background-color:var(--sw-color-holiday)}.sw-data-picker .month>button.nowork,.sw-data-picker .week>button.nowork{background-color:var(--sw-color-nowork)}.sw-data-picker .month>button.active,.sw-data-picker .week>button.active{background-color:var(--sw-color-active)}.sw-data-picker .year{border-top:1px solid var(--sw-color-info);grid-template-columns:1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .year>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .year>button.active{color:var(--sw-color-active)}.sw-gide{z-index:1;grid-template:"overlay0 overlay0 overlay0"40%"overlay1 windows overlay2"0"overlay3 overlay3 overlay3"1fr/1fr 0 1fr;width:100%;height:100%;display:grid;position:absolute;top:0;left:0;overflow-x:hidden}.sw-gide .hole{height:100%}.sw-gide .overlay0,.sw-gide .overlay1,.sw-gide .overlay2,.sw-gide .overlay3{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);grid-area:overlay0}.sw-gide .overlay1{grid-area:overlay1}.sw-gide .overlay2{grid-area:overlay2}.sw-gide .overlay3{grid-area:overlay3}.sw-icon{vertical-align:-.15em;width:1em;height:1em;fill:var(--icon-fill,currentColor);stroke:var(--icon-stroke,currentColor);overflow:hidden}.sw-external-icon{vertical-align:-.15em;background-color:var(--icon-bg,currentColor);flex-shrink:0;width:1em;height:1em;display:inline-block}.sw-revers{transform:scaleX(-1)}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-big{min-height:var(--sw-component-size-big)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-vertical{flex-direction:column}.sw-disabled{opacity:.5;cursor:not-allowed}.sw-text{color:var(--sw-text-color-primary)}.sw-text:hover,.sw-text:active{opacity:.5}.sw-text:not(:hover),.sw-text:not(:active){background:0 0}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{color:var(--sw-text-color-secondary);background:0 0;border:none;min-height:1em;padding:0}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}.popup{position:relative}.popup .wrapper{z-index:1;word-break:break-word;margin:10px 0 0;padding:0;font-size:.8rem;line-height:1.2;list-style:none;position:absolute}.popup .wrapper :before{content:"";border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);z-index:1;width:10px;height:10px;position:absolute;top:-6px;right:50%;transform:rotate(-45deg);border-bottom-color:#0000!important;border-left-color:#0000!important}.popup .scrollbar{box-shadow:0 0 0 1px var(--el-border-color);border-radius:var(--el-border-radius-base);background:#fff;margin:0;padding:.5rem 0}.popup .scrollbar li{white-space:nowrap;line-height:22px;font-size:var(--sw-font-size);color:var(--sw-text-color-secondary);cursor:pointer;outline:none;align-items:start;margin:0;padding:5px 16px;list-style:none;display:flex}.popup .scrollbar li:not(.is-disabled):focus{background:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}
|
|
1
|
+
:root{--sw-color-default:#dfdfdf;--sw-color-primary:#3eaf4e;--sw-color-success:#75c6ff;--sw-color-info:silver;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-preholiday:#ffe78070;--sw-color-weekend:#ff808070;--sw-color-select:#007bff70;--sw-color-holiday:red;--sw-color-nowork:red;--sw-color-active:#5aaaff;--sw-text-color-primary:#333;--sw-text-color-secondary:#4c4c4c;--sw-text-color-third:#818181;--sw-text-color-revers:white;--sw-bg-color:#f4f4f4;--sw-bg-color-page:white;--sw-bg-color-second:#fafafa;--sw-bg-color-glass:#85858573;--sw-border-color:#d6d6d6;--sw-border-color-input:#cecece;--sw-font-size:1rem;--sw-font-size-small:.875rem;--sw-font-size-large:1.125rem;--sw-font-size-big:2.8rem;--sw-border-radius:.625rem;--sw-border-radius-small:.25rem;--sw-border-round:3.625rem;--sw-component-size-base:3rem;--sw-component-size-small:1.625rem;--sw-component-size-large:3.5rem;--sw-component-size-big:10.5rem;--sw-track-thickness:.375rem;--sw-border-thickness:.125rem;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}:root.dark{--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}@media (prefers-color-scheme:dark){:root:not(.light){--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}}.sw-alert-wrapper{top:max(env(safe-area-inset-top,0rem), env(titlebar-area-y,0rem));background:0 0;border:none;position:fixed}.sw-alert-wrapper .sw-alert{border-radius:var(--sw-border-radius);color:var(--sw-text-color-revers);margin:1rem auto 0;padding:.625rem 1rem}.sw-alert-wrapper .sw-alert .svg-icon{flex-shrink:0}.sw-alert-wrapper .sw-alert .svg-icon:first-child{margin-right:1rem}.sw-alert-wrapper .sw-alert .fade-enter-active,.sw-alert-wrapper .sw-alert .fade-leave-active{transition:opacity .5s}.sw-alert-wrapper .sw-alert .fade-enter-from,.sw-alert-wrapper .sw-alert .fade-leave-to{opacity:0}.sw-alert-wrapper .sw-alert footer{justify-content:flex-end;display:flex}.sw-table{border-collapse:collapse;width:100%}.sw-table.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sw-table .row-hover,.sw-table .col-hover{background:color-mix(in srgb, var(--sw-color-active) 10%, transparent)}.sw-table .resizable{position:relative;overflow:hidden}.sw-table .resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.sw-table .resize-handle:hover{background:var(--sw-border-color)}.sw-table-wrapper{max-width:100%;overflow-x:auto}.sw-table-wrapper .sw-table{width:max-content;min-width:100%}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{background:var(--sw-bg-color-page)}.sw-table-wrapper.fixed-active .sw-table thead th.fixed-left,.sw-table-wrapper.fixed-active .sw-table thead th.fixed-right{background:var(--sw-bg-color-second)}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-left{box-shadow:2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{box-shadow:-2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);margin-bottom:1.25rem;font-weight:400;transition:all .6s ease-out;display:flex}.sw-tabs>header span{cursor:pointer;background:0 0;border:none;border-radius:0;outline:none;padding:5px;position:relative;top:2px}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius);align-items:center;gap:0 1.75rem;padding:0 1.2em;display:flex;position:relative}.sw-input>label{text-align:left;font-size:var(--sw-font-size);background:var(--sw-bg-color-page);line-height:1;transition:all .2s linear .2s;position:absolute;top:1.1rem}.sw-input>label+input::placeholder{opacity:0}.sw-input.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input>input{line-height:var(--sw-component-size-base);width:100%;font-size:var(--sw-font-size-large);color:var(--sw-text-color-primary);background:0 0;border:none;outline:none}.sw-input>input::placeholder{color:var(--sw-text-color-secondary);opacity:1;transition:opacity .2s linear .2s}.sw-input>input:focus::placeholder{opacity:1}.sw-input .svg-icon{color:var(--sw-text-color-third);font-size:20px}.sw-input>svg+label{left:4rem}.sw-input.sw-small label{font-size:var(--sw-font-size-small);top:.3rem}.sw-input.sw-small.sw-input--active>label{top:-.6em}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large label{font-size:var(--sw-font-size-large);top:1.22rem}.sw-input.sw-large.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:var(--sw-border-radius);border:1px solid var(--sw-color-default);min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);cursor:pointer;background-color:var(--sw-color-default);color:var(--sw-text-color-revers);align-items:center;gap:.35em;padding:0 1.2em;font-weight:500;transition:border-color .25s;display:inline-flex}.sw-button .svg-icon,.sw-button .sw-external-icon{flex-shrink:0}.sw-button-group{--radius:var(--sw-border-radius);display:inline-flex}.sw-button-group.sw-round{--radius:var(--sw-border-round)}.sw-button-group>.sw-button{border-radius:0}.sw-button-group :first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.sw-button-group :last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.sw-button-group.sw-vertical :first-child{border-top-right-radius:var(--radius);border-bottom-left-radius:0}.sw-button-group.sw-vertical :last-child{border-top-right-radius:0;border-bottom-left-radius:var(--radius)}.sw-form-item{font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);justify-content:space-between;gap:1rem;display:flex}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-form-item.sw-center{justify-content:center}.sw-dropdown{outline:none;display:inline-block;position:relative}.sw-dropdown-popup{z-index:3;-webkit-user-select:none;user-select:none;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;min-width:200px;margin:0;padding:8px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-popup.gide>header,.sw-dropdown-popup.gide>footer{justify-content:space-between;align-items:center;display:flex}.sw-dropdown-popup.gide>header .sw-button,.sw-dropdown-popup.gide>footer .sw-button{font-size:var(--sw-font-size-large);padding:.3em}.sw-dropdown-popup.gide>footer .sw-button{padding:.1em .6em}.sw-dropdown-popup.gide img{height:70px;position:absolute;right:-100px}.sw-dropdown-popup.gide img.reflect{left:-100px}.sw-dropdown-item{-webkit-user-select:none;user-select:none;outline:none;display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.sw-collapse.is-open{grid-template-rows:1fr}.sw-collapse__inner{min-height:0;overflow:hidden}.sw-slider{width:100%;height:var(--sw-component-size-small);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sw-slider:not(.vertical) .track{height:var(--sw-track-thickness);width:100%;top:50%;left:0;transform:translateY(-50%)}.sw-slider.vertical{width:var(--sw-component-size-small);height:200px}.sw-slider.vertical .track{width:var(--sw-track-thickness);height:100%;top:0;left:50%;transform:translate(-50%)}.sw-slider .track{background:var(--sw-border-color);border-radius:var(--sw-border-radius-small);position:absolute}.sw-slider .track .fill{background:var(--sw-color-primary);border-radius:var(--sw-border-radius-small);width:100%;height:100%;transition:all .1s;position:absolute}.sw-slider .thumb{width:var(--sw-component-size-small);height:var(--sw-component-size-small);background:var(--sw-bg-color-page);border:var(--sw-border-thickness) solid var(--sw-color-primary);box-sizing:border-box;border-radius:var(--sw-border-round);cursor:grab;text-align:center;color:var(--sw-color-primary);line-height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0003}.sw-slider .thumb:hover,.sw-slider .thumb:active{transform:translate(-50%,-50%)scale(1.1)}.sw-slider .thumb>*{width:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2)}.sw-slider .thumb .tooltip{background:var(--sw-bg-color-page);color:var(--sw-text-color-primary);box-shadow:var(--sw-shadow);font-size:var(--sw-font-size-small);white-space:nowrap;z-index:10;padding:0;position:absolute;left:50%;transform:translate(-50%)}.sw-slider .thumb .tooltip.tooltip-vertical{top:50%;left:auto;transform:translateY(-50%)}.sw-switch{box-sizing:border-box;-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size);align-items:center;display:inline-flex}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);right:auto;left:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4)}.sw-switch>input:checked+label:after{left:calc(var(--sw-component-size-base) * 1.4);background:#f7f7f7}.sw-switch>label{background-color:var(--sw-color-info);border-radius:var(--sw-component-size-base);cursor:pointer;flex:0 0 calc(var(--sw-component-size-base) * 2.6);width:calc(var(--sw-component-size-base) * 2.6);height:var(--sw-component-size-base);margin-right:.5rem;transition:all .3s;position:relative}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);right:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4);font-size:1em;transition:all .3s;display:block;position:absolute}.sw-switch>label:after{background:var(--sw-text-color-revers);border:calc(var(--sw-border-thickness) / 2) solid var(--sw-color-info);content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-base) * 1.2);height:calc(var(--sw-component-size-base) * 1.2);top:calc(var(--sw-component-size-base) * -.15);border-radius:50%;transition:all .3s;position:absolute}.sw-switch.sw-small{font-size:var(--sw-font-size-small)}.sw-switch.sw-small>label{border-radius:var(--sw-component-size-small);height:var(--sw-component-size-small);width:calc(var(--sw-component-size-small) * 1.9);flex:0 0 calc(var(--sw-component-size-small) * 1.9)}.sw-switch.sw-small>label:before{content:""}.sw-switch.sw-small>label:after{content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-small) - var(--sw-border-thickness));height:calc(var(--sw-component-size-small) - var(--sw-border-thickness));top:0}.sw-switch.sw-small>input:checked+label:before{content:""}.sw-switch.sw-small>input:checked+label:after{left:calc(var(--sw-component-size-small) * .9)}.sw-switch.sw-checkbox label{border-radius:var(--sw-border-radius-small);background:var(--sw-bg-color-pag);border:1px solid var(--sw-border-color-input);flex:0 0 .875rem;height:.875rem}.sw-switch.sw-checkbox label:after{content:none}.sw-switch.sw-checkbox>input:checked+label{background:var(--sw-bg-color-page);color:var(--sw-color-primary)}.sw-switch.sw-checkbox>input:checked+label:before{content:"✔";text-rendering:geometricprecision;white-space:nowrap;width:1em;font-size:1.6rem;top:-.9rem;left:0}.sw-skeleton{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.sw-skeleton-item{min-height:var(--sw-component-size-base);background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;width:100%;position:relative;overflow:hidden}.sw-skeleton-item>div{background:var(--sw-border-color-input);width:10px;height:100%;box-shadow:0 0 20px 20px var(--sw-border-color-input);animation:3s linear infinite sw-skeleton;display:inline-block;position:absolute;transform:skew(-20deg)}.sw-message{background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);box-sizing:border-box;min-width:16rem;max-width:95%;max-height:95%;padding:1.875rem;top:50%;left:50%;overflow-y:auto;transform:translateY(-50%)translate(-50%)}.sw-message::backdrop{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sw-message>header{justify-content:space-between;gap:.5rem;margin-bottom:.5rem;display:flex}.sw-message>footer{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.sw-modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.sw-data-picker{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.sw-data-picker .month_year{justify-content:space-around;align-items:center;display:flex}.sw-data-picker .month_year span:not(.text) button{font-size:1.3em}.sw-data-picker button{color:var(--sw-text-color-primary);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:.2rem;height:30px;line-height:30px;transition:all .3s}.sw-data-picker button:hover:not(.disabled):not(.active){color:var(--sw-color-primary)}.sw-data-picker .week{border-bottom:1px solid var(--sw-color-info);margin-bottom:.5rem}.sw-data-picker .month,.sw-data-picker .week{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .month>button,.sw-data-picker .week>button{width:30px}.sw-data-picker .month>button.disabled,.sw-data-picker .week>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .month>button.preholiday,.sw-data-picker .week>button.preholiday{background-color:var(--sw-color-preholiday)}.sw-data-picker .month>button.weekend,.sw-data-picker .week>button.weekend{background-color:var(--sw-color-weekend)}.sw-data-picker .month>button.select,.sw-data-picker .week>button.select{background-color:var(--sw-color-select)}.sw-data-picker .month>button.holiday,.sw-data-picker .week>button.holiday{background-color:var(--sw-color-holiday)}.sw-data-picker .month>button.nowork,.sw-data-picker .week>button.nowork{background-color:var(--sw-color-nowork)}.sw-data-picker .month>button.active,.sw-data-picker .week>button.active{background-color:var(--sw-color-active)}.sw-data-picker .year{border-top:1px solid var(--sw-color-info);grid-template-columns:1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .year>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .year>button.active{color:var(--sw-color-active)}.sw-gide{z-index:1;grid-template:"overlay0 overlay0 overlay0"40%"overlay1 windows overlay2"0"overlay3 overlay3 overlay3"1fr/1fr 0 1fr;width:100%;height:100%;display:grid;position:absolute;top:0;left:0;overflow-x:hidden}.sw-gide .hole{height:100%}.sw-gide .overlay0,.sw-gide .overlay1,.sw-gide .overlay2,.sw-gide .overlay3{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);grid-area:overlay0}.sw-gide .overlay1{grid-area:overlay1}.sw-gide .overlay2{grid-area:overlay2}.sw-gide .overlay3{grid-area:overlay3}.sw-icon{vertical-align:-.15em;width:1em;height:1em;fill:var(--icon-fill,currentColor);stroke:var(--icon-stroke,currentColor);overflow:hidden}.sw-external-icon{vertical-align:-.15em;background-color:var(--icon-bg,currentColor);flex-shrink:0;width:1em;height:1em;display:inline-block}.sw-revers{transform:scaleX(-1)}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-big{min-height:var(--sw-component-size-big)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-vertical{flex-direction:column}.sw-disabled{opacity:.5;cursor:not-allowed}.sw-text{color:var(--sw-text-color-primary)}.sw-text:hover,.sw-text:active{opacity:.5}.sw-text:not(:hover),.sw-text:not(:active){background:0 0}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{color:var(--sw-text-color-secondary);background:0 0;border:none;min-height:1em;padding:0}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}.popup{position:relative}.popup .wrapper{z-index:1;word-break:break-word;margin:10px 0 0;padding:0;font-size:.8rem;line-height:1.2;list-style:none;position:absolute}.popup .wrapper :before{content:"";border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);z-index:1;width:10px;height:10px;position:absolute;top:-6px;right:50%;transform:rotate(-45deg);border-bottom-color:#0000!important;border-left-color:#0000!important}.popup .scrollbar{box-shadow:0 0 0 1px var(--el-border-color);border-radius:var(--el-border-radius-base);background:#fff;margin:0;padding:.5rem 0}.popup .scrollbar li{white-space:nowrap;line-height:22px;font-size:var(--sw-font-size);color:var(--sw-text-color-secondary);cursor:pointer;outline:none;align-items:start;margin:0;padding:5px 16px;list-style:none;display:flex}.popup .scrollbar li:not(.is-disabled):focus{background:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}
|
|
2
2
|
/*$vite$:1*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@studio-west/component-sw",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.22",
|
|
4
4
|
"description": "Vue components of Component-SW collection.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"vue",
|
|
10
10
|
"component-sw"
|
|
11
11
|
],
|
|
12
|
+
"homepage": "https://studiowest.ru/journal/component-sw",
|
|
12
13
|
"files": [
|
|
13
14
|
"dist",
|
|
14
15
|
"types",
|