@skyservice-developers/vue-dev-kit 2.14.4 → 2.16.0
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 +82 -9
- package/dist/features/data-table/SkyDataTable.vue.d.ts +20 -1
- package/dist/features/data-table/index.d.ts +1 -0
- package/dist/features/table/TableVirtualBody.vue.d.ts +10 -5
- package/dist/shared/ui/SkyCheckbox/SkyCheckbox.vue.d.ts +12 -0
- package/dist/shared/ui/SkySelectSearch/SkySelectSearch.vue.d.ts +13 -0
- package/dist/shared/ui/SkyTable/Row.vue.d.ts +2 -2
- package/dist/shared/ui/SkyTable/items/itemDefault.vue.d.ts +2 -2
- package/dist/shared/ui/SkyTable/items/itemInput.vue.d.ts +1 -1
- package/dist/shared/ui/SkyTable/items/itemSelect.vue.d.ts +2 -2
- package/dist/shared/ui/SkyTable/items/itemTagEditor.vue.d.ts +2 -2
- package/dist/shared/ui/SkyTable/items/itemTags.vue.d.ts +1 -1
- package/dist/shared/ui/table/SkyTableBody.vue.d.ts +1 -10
- package/dist/shared/ui/table/SkyTableVirtualBody.vue.d.ts +43 -0
- package/dist/shared/ui/table/index.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/vue-dev-kit.cjs +13 -13
- package/dist/vue-dev-kit.js +5851 -5720
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -30,7 +30,8 @@ import {
|
|
|
30
30
|
SkyTable,
|
|
31
31
|
// грід на TanStack + примітиви таблиці + композабли
|
|
32
32
|
SkyDataTable, createSkyColumnHelper, skyTableFeatures,
|
|
33
|
-
SkyTableRoot, SkyTableHeader, SkyTableHead, SkyTableBody,
|
|
33
|
+
SkyTableRoot, SkyTableHeader, SkyTableHead, SkyTableBody, SkyTableVirtualBody,
|
|
34
|
+
SkyTableRow, SkyTableCell,
|
|
34
35
|
useTableSort, useTableSelection, useColumnVisibility,
|
|
35
36
|
FunctionalCalendar, SkyDateRangePicker,
|
|
36
37
|
SkyFilterDropdown,
|
|
@@ -437,6 +438,10 @@ import {
|
|
|
437
438
|
|
|
438
439
|
Кастомний select **з полем пошуку** у дропдауні — для довгих списків опцій. Дизайн 1:1 зі `SkySelect`, той самий формат опцій (`{ value, text }`) та стани. Не використовує нативний `<select>`, тому працює на старих браузерах (перевірено з Chromium 84): без `flex gap`, `inset`, `:focus-visible`, `Array.at()` тощо.
|
|
439
440
|
|
|
441
|
+
Панель не вилазить за нижній край вікна: якщо знизу тісно, вона розкривається **вгору**, а висоту обмежує під доступне місце — скролиться список усередині. Сторона переобирається на скрол і ресайз, поки панель відкрита. Teleport-а немає, тож контейнер з `overflow: hidden` (напр. `Modal`) панель усе одно обріже — там беріть `SkyFilterDropdown`.
|
|
442
|
+
|
|
443
|
+
Поле пошуку з'являється **від 6 опцій** (`searchThreshold`): на коротких списках воно лише шумить. Коли пошуку немає, стрілками й `Enter` керує сам тригер — фокус нікуди не переносимо.
|
|
444
|
+
|
|
440
445
|
```vue
|
|
441
446
|
<SkySelectSearch
|
|
442
447
|
v-model="selected"
|
|
@@ -463,6 +468,7 @@ import {
|
|
|
463
468
|
| `hint` | `String` | `''` | Підказка під полем |
|
|
464
469
|
| `searchPlaceholder` | `String` | `'Пошук…'` | Placeholder поля пошуку |
|
|
465
470
|
| `noResultsText` | `String` | `'Нічого не знайдено'` | Текст за відсутності збігів |
|
|
471
|
+
| `searchThreshold` | `Number` | `6` | Від скількох опцій показувати поле пошуку. `0` — завжди, `Infinity` — ніколи |
|
|
466
472
|
|
|
467
473
|
#### Events
|
|
468
474
|
|
|
@@ -564,9 +570,14 @@ import {
|
|
|
564
570
|
| Prop | Тип | За замовчуванням | Опис |
|
|
565
571
|
|------|-----|------------------|------|
|
|
566
572
|
| `modelValue` | `Boolean\|Array` | — | Стан/масив вибраних значень (v-model) |
|
|
567
|
-
| `value` | `String\|Number` | — | Значення для array-режиму |
|
|
573
|
+
| `value` | `String\|Number` | — | Значення для array-режиму (**обов'язкове** в ньому) |
|
|
568
574
|
| `switch` | `Boolean` | `false` | Режим switch замість чекбоксу |
|
|
569
575
|
| `disabled` | `Boolean` | `false` | Вимкнений стан |
|
|
576
|
+
| `indeterminate` | `Boolean` | `false` | Третій стан — «обрано частину»; малює риску, на `checked` не впливає |
|
|
577
|
+
|
|
578
|
+
Атрибути, які не `class`/`style`, їдуть на сам `<input>` — `name`, `required`,
|
|
579
|
+
`tabindex`, `aria-*` стосуються контрола. `class` і `style` лишаються на корені,
|
|
580
|
+
бо ними позиціонують обгортку.
|
|
570
581
|
|
|
571
582
|
#### Slots
|
|
572
583
|
|
|
@@ -908,8 +919,37 @@ const columns = [
|
|
|
908
919
|
| `initialSorting` | `SortingState` | — | Початкове сортування |
|
|
909
920
|
| `emptyText` | `String` | `'Даних немає'` | Текст порожнього стану |
|
|
910
921
|
| `interactiveRows` | `Boolean` | `false` | Курсор і hover на рядках |
|
|
922
|
+
| `virtual` | `Boolean \| SkyDataTableVirtualOptions` | `false` | Віртуалізація тіла — у DOM лише видиме вікно рядків |
|
|
923
|
+
|
|
924
|
+
Слоти: `toolbar`, `actions`, `footer`, `empty` (усі отримують `{ table }`). Події: `row-click`, `reach-end` (тільки у віртуальному режимі). Інстанс таблиці доступний через `ref` → `tableRef.table`.
|
|
925
|
+
|
|
926
|
+
#### Віртуалізація
|
|
927
|
+
|
|
928
|
+
На кілька тисяч рядків браузер провисає не на даних, а на DOM. Проп `virtual` лишає в розмітці тільки видиме вікно:
|
|
929
|
+
|
|
930
|
+
```vue
|
|
931
|
+
<SkyDataTable :columns="columns" :data="rows" row-id="id" virtual />
|
|
932
|
+
|
|
933
|
+
<SkyDataTable
|
|
934
|
+
:columns="columns"
|
|
935
|
+
:data="rows"
|
|
936
|
+
row-id="id"
|
|
937
|
+
:virtual="{ estimateSize: 44, overscan: 8 }"
|
|
938
|
+
@reach-end="loadMore"
|
|
939
|
+
/>
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
| Опція | Тип | За замовчуванням | Опис |
|
|
943
|
+
|-------|-----|------------------|------|
|
|
944
|
+
| `estimateSize` | `Number` | `40` | Очікувана висота рядка в px |
|
|
945
|
+
| `overscan` | `Number` | `6` | Скільки рядків тримати понад видиме вікно |
|
|
946
|
+
| `dynamic` | `Boolean` | `false` | Рядки різної висоти — вимірювання через ResizeObserver |
|
|
911
947
|
|
|
912
|
-
|
|
948
|
+
Змінюється рівно одне: хто вирішує, які рядки зараз у DOM. Сортування, фільтрація, вибір і `getRowCount()` працюють по всьому набору даних.
|
|
949
|
+
|
|
950
|
+
> **Потрібна обмежена висота.** Скрол-контейнером є тіло таблиці — дайте таблиці `height` або `flex: 1; min-height: 0`, інакше скролитиметься сторінка й вікно не зсуватиметься.
|
|
951
|
+
|
|
952
|
+
> **Не поєднуйте з `pageSize`.** На сторінці в кілька десятків рядків віртуалізувати нічого; компонент попередить у консолі. Природна пара до `virtual` — довантаження за `reach-end`.
|
|
913
953
|
|
|
914
954
|
#### Набір фіч
|
|
915
955
|
|
|
@@ -940,7 +980,7 @@ const features = tableFeatures({
|
|
|
940
980
|
<script setup>
|
|
941
981
|
import {
|
|
942
982
|
SkyTableRoot, SkyTableHeader, SkyTableHead,
|
|
943
|
-
SkyTableBody, SkyTableRow, SkyTableCell,
|
|
983
|
+
SkyTableBody, SkyTableVirtualBody, SkyTableRow, SkyTableCell,
|
|
944
984
|
} from '@skyservice-developers/vue-dev-kit'
|
|
945
985
|
|
|
946
986
|
const columns = [
|
|
@@ -968,7 +1008,7 @@ const columns = [
|
|
|
968
1008
|
|
|
969
1009
|
| Шар | Експорти | Коли підключати |
|
|
970
1010
|
|-----|----------|-----------------|
|
|
971
|
-
| Примітиви (`shared/ui/table`) | `SkyTableRoot`, `SkyTableHeader`, `SkyTableHead`, `SkyTableBody`, `SkyTableRow`, `SkyTableCell`, `SkyTableEmpty` | завжди |
|
|
1011
|
+
| Примітиви (`shared/ui/table`) | `SkyTableRoot`, `SkyTableHeader`, `SkyTableHead`, `SkyTableBody`, `SkyTableVirtualBody`, `SkyTableRow`, `SkyTableCell`, `SkyTableEmpty` | завжди |
|
|
972
1012
|
| Композабли (`shared/lib/table`) | `useTableSort`, `useTableSelection`, `useColumnVisibility` | за потреби |
|
|
973
1013
|
| Фічі (`features/table`) | `TableMassActions`, `TableColumnSettings`, `TableVirtualBody` | опційно, кожна окремо |
|
|
974
1014
|
|
|
@@ -980,13 +1020,46 @@ const { visibility, visibleColumns } = useColumnVisibility(columns, { storageKey
|
|
|
980
1020
|
|
|
981
1021
|
Композабли не сортують і не фільтрують дані — вони тримають стан, а дані лишаються за застосунком (зазвичай сортує сервер). Колонка вибору описується як звичайна колонка (`{ name: '_select', width: 44 }`), щоб грід шапки й рядків рахувався з одного джерела.
|
|
982
1022
|
|
|
983
|
-
|
|
1023
|
+
#### Тіло: два режими, один контракт
|
|
1024
|
+
|
|
1025
|
+
`SkyTableBody` без пропа `rows` — прозора обгортка (рядки складаєте самі, як вище). З `rows` — ітерує сам і віддає scoped-слот:
|
|
1026
|
+
|
|
1027
|
+
```vue
|
|
1028
|
+
<SkyTableBody :rows="rows" :row-key="row => row.id">
|
|
1029
|
+
<template #empty><SkyTableEmpty text="Даних немає" /></template>
|
|
1030
|
+
<template #default="{ row }">
|
|
1031
|
+
<SkyTableRow><SkyTableCell>{{ row.name }}</SkyTableCell></SkyTableRow>
|
|
1032
|
+
</template>
|
|
1033
|
+
</SkyTableBody>
|
|
1034
|
+
```
|
|
1035
|
+
|
|
1036
|
+
`SkyTableVirtualBody` приймає ті самі `rows`/`rowKey` і віддає той самий слот, лишаючи в DOM тільки видиме вікно рядків. Тому перемикання віртуалізації — це заміна тега, а не переписування розмітки:
|
|
1037
|
+
|
|
1038
|
+
```vue
|
|
1039
|
+
<component :is="virtual ? SkyTableVirtualBody : SkyTableBody" :rows="rows" :row-key="row => row.id">
|
|
1040
|
+
<template #default="{ row }">…</template>
|
|
1041
|
+
</component>
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
| Prop `SkyTableVirtualBody` | Тип | За замовчуванням | Опис |
|
|
1045
|
+
|------|-----|------------------|------|
|
|
1046
|
+
| `rows` | `TRow[]` | — | Рядки (обовʼязково) |
|
|
1047
|
+
| `rowKey` | `(row, index) => string \| number` | індекс | Ключ рядка |
|
|
1048
|
+
| `estimateSize` | `Number` | `40` | Очікувана висота рядка в px |
|
|
1049
|
+
| `overscan` | `Number` | `6` | Скільки рядків тримати понад видиме вікно |
|
|
1050
|
+
| `dynamic` | `Boolean` | `false` | Рядки різної висоти — вимірювання через ResizeObserver |
|
|
1051
|
+
|
|
1052
|
+
Подія `reach-end` — коли останній рядок увійшов у вікно.
|
|
1053
|
+
|
|
1054
|
+
> **Потрібна обмежена висота.** Скрол-контейнером є саме тіло. Якщо таблиця росте разом з контентом і скролиться сторінка, вікно ніколи не зсувається. Дайте таблиці `height` або `flex: 1; min-height: 0`.
|
|
1055
|
+
|
|
1056
|
+
> `TableVirtualBody` з `features/table` лишається як сумісна обгортка зі старим контрактом (`items` + слот `{ item, index }`). У новому коді беріть `SkyTableVirtualBody`.
|
|
984
1057
|
|
|
985
1058
|
---
|
|
986
1059
|
|
|
987
1060
|
### SkyTable
|
|
988
1061
|
|
|
989
|
-
Віртуал-скрол таблиця (на
|
|
1062
|
+
Віртуал-скрол таблиця (на `@tanstack/vue-virtual`) для великих списків — у DOM тримаються лише видимі рядки. Розмітка й стилі 1:1 з таблицею товарів POS: чекбокси, масові дії, сортування, зміна ширини/видимості колонок, розкриття вкладених рядків (модифікацій), inline-редагування комірок і теги.
|
|
990
1063
|
|
|
991
1064
|
```vue
|
|
992
1065
|
<SkyTable
|
|
@@ -1076,7 +1149,7 @@ const json = { items, total: items.length }
|
|
|
1076
1149
|
|------|-------|------|
|
|
1077
1150
|
| `cell-<name>` | `{ row, value, item }` | Кастомний рендер комірки колонки `<name>` |
|
|
1078
1151
|
|
|
1079
|
-
> **Примітка:** компонент розрахований на хост-середовище Skyservice POS. Він читає словник i18n з `window.lang` (з UA-фолбеками) і використовує host-assets за абсолютними шляхами (`/image/dragons/…`, `/svg/arrow_black.svg`), які віддає застосунок-хост — тому в бібліотеці вони навмисно не бандляться (`vite.config` → `transformAssetUrls.includeAbsolute: false`).
|
|
1152
|
+
> **Примітка:** компонент розрахований на хост-середовище Skyservice POS. Він читає словник i18n з `window.lang` (з UA-фолбеками) і використовує host-assets за абсолютними шляхами (`/image/dragons/…`, `/svg/arrow_black.svg`), які віддає застосунок-хост — тому в бібліотеці вони навмисно не бандляться (`vite.config` → `transformAssetUrls.includeAbsolute: false`). `@tanstack/vue-virtual` — зовнішня залежність: встанови її в застосунку-хості.
|
|
1080
1153
|
|
|
1081
1154
|
---
|
|
1082
1155
|
|
|
@@ -1357,7 +1430,7 @@ src/
|
|
|
1357
1430
|
│ ├── SkyBadge/
|
|
1358
1431
|
│ ├── SkyCard/ SkyCardHeader/ SkyCardRow/
|
|
1359
1432
|
│ ├── SkyLoader/
|
|
1360
|
-
│ ├── table/ # примітиви композиційної таблиці (Root/Header/Head/Body/Row/Cell/Empty)
|
|
1433
|
+
│ ├── table/ # примітиви композиційної таблиці (Root/Header/Head/Body/VirtualBody/Row/Cell/Empty)
|
|
1361
1434
|
│ ├── SkyTable/ # готова віртуал-скрол таблиця (Header/Row/Footer/DynamicScroller/items/*)
|
|
1362
1435
|
│ ├── SkyTileCard/
|
|
1363
1436
|
│ ├── SkyFilterDropdown/ # оболонка фільтра (тригер + панель) + FilterSearch
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { ColumnDef, SortingState, TableFeatures } from '@tanstack/vue-table';
|
|
2
2
|
|
|
3
|
+
/** Налаштування віртуалізації тіла — те саме, що приймає SkyTableVirtualBody. */
|
|
4
|
+
export interface SkyDataTableVirtualOptions {
|
|
5
|
+
/** Очікувана висота рядка в px. За замовчуванням 40 — як `--sky-table-row-height`. */
|
|
6
|
+
estimateSize?: number;
|
|
7
|
+
/** Скільки рядків тримати в DOM понад видиме вікно. */
|
|
8
|
+
overscan?: number;
|
|
9
|
+
/** Рядки різної висоти. Вмикає вимірювання рядків — дорожче, лише за потреби. */
|
|
10
|
+
dynamic?: boolean;
|
|
11
|
+
}
|
|
3
12
|
declare const _default: <TData extends Record<string, any>>(__VLS_props: Awaited<typeof __VLS_setup>["props"], __VLS_ctx?: __VLS_Prettify<Pick<Awaited<typeof __VLS_setup>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
4
13
|
props: __VLS_Prettify<__VLS_OmitKeepDiscriminatedUnion<(Partial<{}> & Omit<{
|
|
14
|
+
readonly "onReach-end"?: (() => any) | undefined;
|
|
5
15
|
readonly "onRow-click"?: ((row: TData) => any) | undefined;
|
|
6
16
|
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>) & {
|
|
7
17
|
/** Опис колонок у форматі TanStack. Ширину беремо з `size` / `meta.widthFr`. */
|
|
@@ -23,6 +33,15 @@ declare const _default: <TData extends Record<string, any>>(__VLS_props: Awaited
|
|
|
23
33
|
emptyText?: string;
|
|
24
34
|
/** Курсор-вказівник і hover на рядках. */
|
|
25
35
|
interactiveRows?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Віртуалізація тіла: в DOM лишається тільки видиме вікно рядків.
|
|
38
|
+
* `true` — з дефолтами, обʼєкт — з налаштуваннями.
|
|
39
|
+
*
|
|
40
|
+
* Вимагає обмеженої висоти таблиці й несумісна з `pageSize`: на сторінці
|
|
41
|
+
* в кілька десятків рядків віртуалізувати нічого. Природна пара до неї —
|
|
42
|
+
* не пагінація, а довантаження за подією `reach-end`.
|
|
43
|
+
*/
|
|
44
|
+
virtual?: boolean | SkyDataTableVirtualOptions;
|
|
26
45
|
}, keyof import('vue').VNodeProps | keyof import('vue').AllowedComponentProps>> & {} & (import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps);
|
|
27
46
|
expose(exposed: import('vue').ShallowUnwrapRef<{
|
|
28
47
|
table: import('@tanstack/vue-table').VueTable<{
|
|
@@ -200,7 +219,7 @@ declare const _default: <TData extends Record<string, any>>(__VLS_props: Awaited
|
|
|
200
219
|
}, TData>;
|
|
201
220
|
}): any;
|
|
202
221
|
}>;
|
|
203
|
-
emit: (evt: "row-click", row: TData) => void;
|
|
222
|
+
emit: ((evt: "reach-end") => void) & ((evt: "row-click", row: TData) => void);
|
|
204
223
|
}>) => import('vue').VNode & {
|
|
205
224
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
206
225
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
1
|
declare function __VLS_template(): {
|
|
3
2
|
default?(_: {
|
|
4
3
|
item: any;
|
|
5
|
-
index:
|
|
6
|
-
active:
|
|
4
|
+
index: number;
|
|
5
|
+
active: boolean;
|
|
7
6
|
}): any;
|
|
8
7
|
};
|
|
9
8
|
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
@@ -12,7 +11,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
12
11
|
keyField?: string;
|
|
13
12
|
/** Очікувана мінімальна висота рядка — база для розрахунку вікна. */
|
|
14
13
|
minItemSize?: number;
|
|
15
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Більше ні на що не впливає: висоту рядків тепер стежить
|
|
16
|
+
* ResizeObserver, тож перелічувати залежності вручну не треба.
|
|
17
|
+
*/
|
|
16
18
|
sizeDependencies?: (row: any) => unknown[];
|
|
17
19
|
}>, {
|
|
18
20
|
keyField: string;
|
|
@@ -26,7 +28,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
26
28
|
keyField?: string;
|
|
27
29
|
/** Очікувана мінімальна висота рядка — база для розрахунку вікна. */
|
|
28
30
|
minItemSize?: number;
|
|
29
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated Більше ні на що не впливає: висоту рядків тепер стежить
|
|
33
|
+
* ResizeObserver, тож перелічувати залежності вручну не треба.
|
|
34
|
+
*/
|
|
30
35
|
sizeDependencies?: (row: any) => unknown[];
|
|
31
36
|
}>, {
|
|
32
37
|
keyField: string;
|
|
@@ -3,16 +3,28 @@ declare function __VLS_template(): {
|
|
|
3
3
|
};
|
|
4
4
|
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
5
5
|
modelValue: boolean | (string | number)[];
|
|
6
|
+
/** Обов'язковий, коли `modelValue` — масив: саме він кладеться/знімається. */
|
|
6
7
|
value?: string | number;
|
|
7
8
|
switch?: boolean;
|
|
8
9
|
disabled?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Третій стан нативного чекбокса — «обрано частину». Візуально це риска
|
|
12
|
+
* замість галочки; на `checked` не впливає, як і в DOM.
|
|
13
|
+
*/
|
|
14
|
+
indeterminate?: boolean;
|
|
9
15
|
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
16
|
"update:modelValue": (value: boolean | (string | number)[]) => void;
|
|
11
17
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
12
18
|
modelValue: boolean | (string | number)[];
|
|
19
|
+
/** Обов'язковий, коли `modelValue` — масив: саме він кладеться/знімається. */
|
|
13
20
|
value?: string | number;
|
|
14
21
|
switch?: boolean;
|
|
15
22
|
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Третій стан нативного чекбокса — «обрано частину». Візуально це риска
|
|
25
|
+
* замість галочки; на `checked` не впливає, як і в DOM.
|
|
26
|
+
*/
|
|
27
|
+
indeterminate?: boolean;
|
|
16
28
|
}>>> & Readonly<{
|
|
17
29
|
"onUpdate:modelValue"?: ((value: boolean | (string | number)[]) => any) | undefined;
|
|
18
30
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -12,6 +12,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
12
12
|
hint?: string;
|
|
13
13
|
searchPlaceholder?: string;
|
|
14
14
|
noResultsText?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Скільки опцій має бути, щоб з'явилось поле пошуку. На коротких списках воно
|
|
17
|
+
* лише заважає — усе видно й так. `0` — показувати завжди, `Infinity` — ніколи.
|
|
18
|
+
*/
|
|
19
|
+
searchThreshold?: number;
|
|
15
20
|
}>, {
|
|
16
21
|
modelValue: undefined;
|
|
17
22
|
id: undefined;
|
|
@@ -21,6 +26,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
21
26
|
hint: string;
|
|
22
27
|
searchPlaceholder: string;
|
|
23
28
|
noResultsText: string;
|
|
29
|
+
searchThreshold: number;
|
|
24
30
|
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
25
31
|
"update:modelValue": (value: string | number) => void;
|
|
26
32
|
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
@@ -33,6 +39,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
33
39
|
hint?: string;
|
|
34
40
|
searchPlaceholder?: string;
|
|
35
41
|
noResultsText?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Скільки опцій має бути, щоб з'явилось поле пошуку. На коротких списках воно
|
|
44
|
+
* лише заважає — усе видно й так. `0` — показувати завжди, `Infinity` — ніколи.
|
|
45
|
+
*/
|
|
46
|
+
searchThreshold?: number;
|
|
36
47
|
}>, {
|
|
37
48
|
modelValue: undefined;
|
|
38
49
|
id: undefined;
|
|
@@ -42,6 +53,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
42
53
|
hint: string;
|
|
43
54
|
searchPlaceholder: string;
|
|
44
55
|
noResultsText: string;
|
|
56
|
+
searchThreshold: number;
|
|
45
57
|
}>>> & Readonly<{
|
|
46
58
|
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
47
59
|
}>, {
|
|
@@ -53,6 +65,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
53
65
|
state: "success" | "error" | "default";
|
|
54
66
|
hint: string;
|
|
55
67
|
noResultsText: string;
|
|
68
|
+
searchThreshold: number;
|
|
56
69
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
57
70
|
export default _default;
|
|
58
71
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
@@ -7,8 +7,8 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
7
7
|
$emit: (event: "checkbox" | "open" | "selectUpdate" | "inputEdit" | "openContext" | "openTagsModal" | "deleteTag" | "deleteRow" | "shrink" | "expand", ...args: any[]) => void;
|
|
8
8
|
selected: unknown[];
|
|
9
9
|
index: number;
|
|
10
|
-
item: Record<string, any>;
|
|
11
10
|
params: Record<string, any>;
|
|
11
|
+
item: Record<string, any>;
|
|
12
12
|
selectedColumns: Record<string, any>;
|
|
13
13
|
widthColumns: Record<string, any>;
|
|
14
14
|
tableViewExpanded: boolean;
|
|
@@ -17,8 +17,8 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
17
17
|
$props: {
|
|
18
18
|
readonly selected?: unknown[] | undefined;
|
|
19
19
|
readonly index?: number | undefined;
|
|
20
|
-
readonly item?: Record<string, any> | undefined;
|
|
21
20
|
readonly params?: Record<string, any> | undefined;
|
|
21
|
+
readonly item?: Record<string, any> | undefined;
|
|
22
22
|
readonly selectedColumns?: Record<string, any> | undefined;
|
|
23
23
|
readonly widthColumns?: Record<string, any> | undefined;
|
|
24
24
|
readonly tableViewExpanded?: boolean | undefined;
|
|
@@ -8,15 +8,15 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
8
8
|
name: string;
|
|
9
9
|
section: string;
|
|
10
10
|
index: number;
|
|
11
|
-
item: Record<string, any>;
|
|
12
11
|
params: Record<string, any>;
|
|
12
|
+
item: Record<string, any>;
|
|
13
13
|
widthFlex: string;
|
|
14
14
|
$props: {
|
|
15
15
|
readonly name?: string | undefined;
|
|
16
16
|
readonly section?: string | undefined;
|
|
17
17
|
readonly index?: number | undefined;
|
|
18
|
-
readonly item?: Record<string, any> | undefined;
|
|
19
18
|
readonly params?: Record<string, any> | undefined;
|
|
19
|
+
readonly item?: Record<string, any> | undefined;
|
|
20
20
|
readonly widthFlex?: string | undefined;
|
|
21
21
|
};
|
|
22
22
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -42,8 +42,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
42
42
|
};
|
|
43
43
|
}>> & Readonly<{}>, {
|
|
44
44
|
index: number;
|
|
45
|
-
item: Record<string, any>;
|
|
46
45
|
params: Record<string, any>;
|
|
46
|
+
item: Record<string, any>;
|
|
47
47
|
widthFlex: string;
|
|
48
48
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
49
49
|
export default _default;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
2
|
$emit: (event: "selectUpdate", ...args: any[]) => void;
|
|
3
3
|
index: number;
|
|
4
|
-
item: Record<string, any>;
|
|
5
4
|
params: Record<string, any>;
|
|
5
|
+
item: Record<string, any>;
|
|
6
6
|
widthFlex: string;
|
|
7
7
|
$props: {
|
|
8
8
|
readonly index?: number | undefined;
|
|
9
|
-
readonly item?: Record<string, any> | undefined;
|
|
10
9
|
readonly params?: Record<string, any> | undefined;
|
|
10
|
+
readonly item?: Record<string, any> | undefined;
|
|
11
11
|
readonly widthFlex?: string | undefined;
|
|
12
12
|
};
|
|
13
13
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
declare const _default: import('vue').DefineComponent<{}, {
|
|
2
2
|
$emit: (event: "inputEdit", ...args: any[]) => void;
|
|
3
|
-
item: Record<string, any>;
|
|
4
3
|
params: Record<string, any>;
|
|
4
|
+
item: Record<string, any>;
|
|
5
5
|
widthFlex: string;
|
|
6
6
|
$props: {
|
|
7
|
-
readonly item?: Record<string, any> | undefined;
|
|
8
7
|
readonly params?: Record<string, any> | undefined;
|
|
8
|
+
readonly item?: Record<string, any> | undefined;
|
|
9
9
|
readonly widthFlex?: string | undefined;
|
|
10
10
|
};
|
|
11
11
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -42,8 +42,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
42
42
|
};
|
|
43
43
|
}>> & Readonly<{}>, {
|
|
44
44
|
index: number;
|
|
45
|
-
item: Record<string, any>;
|
|
46
45
|
params: Record<string, any>;
|
|
46
|
+
item: Record<string, any>;
|
|
47
47
|
widthFlex: string;
|
|
48
48
|
}, {}, {
|
|
49
49
|
TagsInput: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
declare
|
|
2
|
-
default?(_: {}): any;
|
|
3
|
-
};
|
|
4
|
-
declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
5
|
-
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
1
|
+
declare const _default: boolean;
|
|
6
2
|
export default _default;
|
|
7
|
-
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
8
|
-
new (): {
|
|
9
|
-
$slots: S;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
declare const _default: <TRow>(__VLS_props: Awaited<typeof __VLS_setup>["props"], __VLS_ctx?: __VLS_Prettify<Pick<Awaited<typeof __VLS_setup>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
2
|
+
props: __VLS_Prettify<__VLS_OmitKeepDiscriminatedUnion<(Partial<{}> & Omit<{
|
|
3
|
+
readonly "onReach-end"?: (() => any) | undefined;
|
|
4
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>) & {
|
|
5
|
+
/** Рядки. На відміну від SkyTableBody тут вони обовʼязкові. */
|
|
6
|
+
rows: TRow[];
|
|
7
|
+
/** Ключ рядка. Індекс за замовчуванням — лише для статичних списків. */
|
|
8
|
+
rowKey?: (row: TRow, index: number) => string | number;
|
|
9
|
+
/** Очікувана висота рядка в px — база для розрахунку вікна. */
|
|
10
|
+
estimateSize?: number;
|
|
11
|
+
/** Скільки рядків тримати в DOM понад видиме вікно. */
|
|
12
|
+
overscan?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Рядки різної висоти (перенос тексту, розкриті деталі). Вмикає вимірювання
|
|
15
|
+
* кожного видимого рядка через ResizeObserver — точно, але дорожче.
|
|
16
|
+
* Якщо висота фіксована, лишайте `false`: тоді геометрія рахується
|
|
17
|
+
* арифметикою, без жодного читання з DOM.
|
|
18
|
+
*/
|
|
19
|
+
dynamic?: boolean;
|
|
20
|
+
}, keyof import('vue').VNodeProps | keyof import('vue').AllowedComponentProps>> & {} & (import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps);
|
|
21
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
22
|
+
attrs: any;
|
|
23
|
+
slots: ReturnType<() => Readonly<{
|
|
24
|
+
default(props: {
|
|
25
|
+
row: TRow;
|
|
26
|
+
index: number;
|
|
27
|
+
}): unknown;
|
|
28
|
+
empty(): unknown;
|
|
29
|
+
}> & {
|
|
30
|
+
default(props: {
|
|
31
|
+
row: TRow;
|
|
32
|
+
index: number;
|
|
33
|
+
}): unknown;
|
|
34
|
+
empty(): unknown;
|
|
35
|
+
}>;
|
|
36
|
+
emit: (evt: "reach-end") => void;
|
|
37
|
+
}>) => import('vue').VNode & {
|
|
38
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
39
|
+
};
|
|
40
|
+
export default _default;
|
|
41
|
+
type __VLS_Prettify<T> = {
|
|
42
|
+
[K in keyof T]: T[K];
|
|
43
|
+
} & {};
|
|
@@ -2,6 +2,7 @@ export { default as SkyTableRoot } from './SkyTableRoot.vue';
|
|
|
2
2
|
export { default as SkyTableHeader } from './SkyTableHeader.vue';
|
|
3
3
|
export { default as SkyTableHead } from './SkyTableHead.vue';
|
|
4
4
|
export { default as SkyTableBody } from './SkyTableBody.vue';
|
|
5
|
+
export { default as SkyTableVirtualBody } from './SkyTableVirtualBody.vue';
|
|
5
6
|
export { default as SkyTableRow } from './SkyTableRow.vue';
|
|
6
7
|
export { default as SkyTableCell } from './SkyTableCell.vue';
|
|
7
8
|
export { default as SkyTableEmpty } from './SkyTableEmpty.vue';
|