nntc-ui 0.2.12 → 0.2.14
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/components/inputs/Checklist/Checklist.d.ts +18 -0
- package/components/inputs/Checklist/Checklist.d.ts.map +1 -1
- package/components/inputs/MultiSelect/MultiSelect.d.ts +24 -0
- package/components/inputs/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.d.ts +5 -0
- package/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.d.ts.map +1 -1
- package/components/inputs/MultiSelect/utils/useRememberedItems.d.ts +7 -0
- package/components/inputs/MultiSelect/utils/useRememberedItems.d.ts.map +1 -0
- package/components/inputs/Select/Select.d.ts +13 -0
- package/components/inputs/Select/Select.d.ts.map +1 -1
- package/components/inputs/Select/ui/SelectPopover/SelectPopover.d.ts +3 -0
- package/components/inputs/Select/ui/SelectPopover/SelectPopover.d.ts.map +1 -1
- package/components/navigation/Menu/Menu.d.ts +16 -0
- package/components/navigation/Menu/Menu.d.ts.map +1 -1
- package/components/navigation/Tabs/Tabs.d.ts +1 -1
- package/components/utils/InfiniteListFooter/InfiniteListFooter.d.ts +10 -0
- package/components/utils/InfiniteListFooter/InfiniteListFooter.d.ts.map +1 -0
- package/hooks/useInfiniteScroll.d.ts +24 -0
- package/hooks/useInfiniteScroll.d.ts.map +1 -0
- package/index.css +55 -11
- package/index.css.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,24 @@ interface Props {
|
|
|
9
9
|
isDisabled?: boolean;
|
|
10
10
|
actionWithSelected: (value: SelectedItems) => void;
|
|
11
11
|
onChangeItem?: (item: Item) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Серверный поиск. Локальный фильтр выключается: `items` — это текущая выдача.
|
|
14
|
+
* Вызов с задержкой 300 мс. Поле при этом показывается, даже если `disableSearch`.
|
|
15
|
+
*/
|
|
16
|
+
onSearchChange?: (query: string) => void;
|
|
17
|
+
/** Текст поиска. Если передан, поле им управляется. */
|
|
18
|
+
searchValue?: string;
|
|
19
|
+
/** Есть ещё данные. Пока true, «Выбрать все» скрыто: отметились бы только загруженные пункты. */
|
|
20
|
+
hasMore?: boolean;
|
|
21
|
+
/** Идёт дозагрузка или поиск. Пока true, onLoadMore не вызывается. */
|
|
22
|
+
loadingMore?: boolean;
|
|
23
|
+
/** Догрузить следующую страницу у нижней границы или если пункты короче окна. */
|
|
24
|
+
onLoadMore?: () => void;
|
|
25
|
+
/**
|
|
26
|
+
* Рисовать только видимые пункты.
|
|
27
|
+
* Без этого пропа список рендерится целиком, как раньше.
|
|
28
|
+
*/
|
|
29
|
+
virtualize?: boolean;
|
|
12
30
|
}
|
|
13
31
|
export declare const Checklist: import("react").ForwardRefExoticComponent<Props & {
|
|
14
32
|
classes?: PropsObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checklist.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Checklist/Checklist.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checklist.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Checklist/Checklist.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,cAAc,EAAiE,MAAM,OAAO,CAAC;AAOnH,OAAO,EAAE,WAAW,EAAW,MAAM,iBAAiB,CAAC;AAMvD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,UAAU,KAAK;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAaD,eAAO,MAAM,SAAS;;mFA2PpB,CAAC"}
|
|
@@ -12,10 +12,34 @@ interface Props {
|
|
|
12
12
|
error?: FieldError;
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
items: Item[];
|
|
15
|
+
/**
|
|
16
|
+
* Догрузить следующую страницу. Вызывается у нижней границы списка и сам, если уже загруженные пункты короче окна.
|
|
17
|
+
* Пока `loadingMore`, повторно не вызывается. Пока `hasMore`, кнопка «Выбрать все» скрыта.
|
|
18
|
+
*/
|
|
19
|
+
onLoadMore?: () => void;
|
|
20
|
+
/** Есть ещё данные. Когда false, автозагрузка останавливается и снова доступно «Выбрать все». */
|
|
21
|
+
hasMore?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Идёт дозагрузка или поиск. Пока true, внизу списка «Загрузка...», а onLoadMore не вызывается.
|
|
24
|
+
* Ставьте true и на время серверного поиска, чтобы отсечь устаревший ответ.
|
|
25
|
+
*/
|
|
26
|
+
loadingMore?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Серверный поиск. Локальный фильтр выключается: в `items` кладите текущую выдачу, а не дописывайте её.
|
|
29
|
+
* Строка уходит с задержкой 300 мс. Если при закрытии поиск был непустой, придёт `''` — верните первую страницу.
|
|
30
|
+
* Уже выбранные пункты остаются в поле, даже если их нет в текущей выдаче.
|
|
31
|
+
*/
|
|
32
|
+
onSearchChange?: (query: string) => void;
|
|
33
|
+
/** Текст в поле поиска. Если не передан, поле хранит его само. */
|
|
34
|
+
searchValue?: string;
|
|
15
35
|
onValueChange?: (newItem: Item[] | null) => void;
|
|
16
36
|
selected: string[] | null;
|
|
17
37
|
titleType?: TitleVariant;
|
|
18
38
|
showSelectedCount?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Показать поиск по уже загруженным пунктам.
|
|
41
|
+
* Если передан `onSearchChange`, поле тоже показывается, но список фильтрует приложение.
|
|
42
|
+
*/
|
|
19
43
|
enableSearch?: boolean;
|
|
20
44
|
popoverInComponent?: boolean;
|
|
21
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAEnB,SAAS,EAOV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAA8B,SAAS,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMhH,OAAO,EAAE,WAAW,EAAW,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAEnB,SAAS,EAOV,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAA8B,SAAS,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAMhH,OAAO,EAAE,WAAW,EAAW,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,iGAAiG;IACjG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW;;wJAyPtB,CAAC"}
|
|
@@ -7,6 +7,11 @@ interface Props {
|
|
|
7
7
|
selected: string[] | null;
|
|
8
8
|
onSelectedChange: (items: Item[]) => void;
|
|
9
9
|
enableSearch?: boolean;
|
|
10
|
+
onSearchChange?: (query: string) => void;
|
|
11
|
+
searchValue?: string;
|
|
12
|
+
hasMore?: boolean;
|
|
13
|
+
loadingMore?: boolean;
|
|
14
|
+
onLoadMore?: () => void;
|
|
10
15
|
disabled?: boolean;
|
|
11
16
|
}
|
|
12
17
|
export declare function SelectPopover(props: UiProps<Props>): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectPopover.d.ts","sourceRoot":"","sources":["../../../../../../src/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,UAAU,KAAK;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,+
|
|
1
|
+
{"version":3,"file":"SelectPopover.d.ts","sourceRoot":"","sources":["../../../../../../src/components/inputs/MultiSelect/ui/SelectPopover/SelectPopover.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,UAAU,KAAK;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,+BAoElD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Item } from '../models/Item';
|
|
2
|
+
/**
|
|
3
|
+
* Имена выбранных пунктов, которых может не быть на текущей странице.
|
|
4
|
+
* Включается только для неполного списка (автозагрузка или серверный поиск).
|
|
5
|
+
*/
|
|
6
|
+
export declare function useRememberedItems(items: Item[], selected: string[] | null, enabled: boolean): Item[];
|
|
7
|
+
//# sourceMappingURL=useRememberedItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRememberedItems.d.ts","sourceRoot":"","sources":["../../../../../src/components/inputs/MultiSelect/utils/useRememberedItems.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,CA2CrG"}
|
|
@@ -11,7 +11,20 @@ interface Props {
|
|
|
11
11
|
label?: string;
|
|
12
12
|
error?: FieldError;
|
|
13
13
|
placeholder?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Пункты списка. `Divider` виден только когда список загружен целиком.
|
|
16
|
+
* Вместе с `onLoadMore` разделители не показываются: страницы не совпадают с группами.
|
|
17
|
+
*/
|
|
14
18
|
items: (Item | Divider)[];
|
|
19
|
+
/**
|
|
20
|
+
* Догрузить следующую страницу. Вызывается у нижней границы списка и сам, если уже загруженные пункты короче окна.
|
|
21
|
+
* Пока `loadingMore`, повторно не вызывается. При наличии данного поля, элементы списка `Divider` не показываются.
|
|
22
|
+
*/
|
|
23
|
+
onLoadMore?: () => void;
|
|
24
|
+
/** Есть ещё данные. Когда false, автозагрузка останавливается. */
|
|
25
|
+
hasMore?: boolean;
|
|
26
|
+
/** Идёт запрос следующей страницы. Пока true, внизу списка «Загрузка...», а onLoadMore не вызывается. */
|
|
27
|
+
loadingMore?: boolean;
|
|
15
28
|
onValueChange?: (newItem: MaybeItem) => void;
|
|
16
29
|
selected?: MaybeItem;
|
|
17
30
|
chips?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAEnB,SAAS,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/Select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EAEnB,SAAS,EAOV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,UAAU,EAA8B,SAAS,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKhH,OAAO,EAAE,WAAW,EAAW,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIhD,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yGAAyG;IACzG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,MAAM;;wJAuJjB,CAAC"}
|
|
@@ -7,6 +7,9 @@ interface Props {
|
|
|
7
7
|
componentSize?: FieldSize;
|
|
8
8
|
selectedValue?: string;
|
|
9
9
|
changeSelectedItem: (item: MaybeItem) => void;
|
|
10
|
+
hasMore?: boolean;
|
|
11
|
+
loadingMore?: boolean;
|
|
12
|
+
onLoadMore?: () => void;
|
|
10
13
|
}
|
|
11
14
|
export declare function SelectPopover(props: UiProps<Props>): import("react").JSX.Element;
|
|
12
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectPopover.d.ts","sourceRoot":"","sources":["../../../../../../src/components/inputs/Select/ui/SelectPopover/SelectPopover.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK1D,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectPopover.d.ts","sourceRoot":"","sources":["../../../../../../src/components/inputs/Select/ui/SelectPopover/SelectPopover.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK1D,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,+BAkClD"}
|
|
@@ -7,6 +7,22 @@ interface Props {
|
|
|
7
7
|
items: (Item | Divider)[];
|
|
8
8
|
componentSize?: FieldSize;
|
|
9
9
|
descriptionPosition?: DescriptionPosition;
|
|
10
|
+
/**
|
|
11
|
+
* Рисовать только видимые пункты, а скролл держать на самом меню.
|
|
12
|
+
* Без этого пропа меню рендерится целиком, как раньше.
|
|
13
|
+
*/
|
|
14
|
+
virtualize?: boolean;
|
|
15
|
+
/** Максимальная высота меню в режиме virtualize. По умолчанию 250. */
|
|
16
|
+
maxHeight?: number;
|
|
17
|
+
/** Есть ещё данные. Пока false, onLoadMore не вызывается. Работает вместе с virtualize. */
|
|
18
|
+
hasMore?: boolean;
|
|
19
|
+
/** Идёт запрос следующей страницы. Пока true, onLoadMore не вызывается. */
|
|
20
|
+
loadingMore?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Догрузить следующую страницу у нижней границы или если пункты короче окна.
|
|
23
|
+
* Имеет эффект только при virtualize: скроллится само меню.
|
|
24
|
+
*/
|
|
25
|
+
onLoadMore?: () => void;
|
|
10
26
|
}
|
|
11
27
|
export declare const Menu: import("react").ForwardRefExoticComponent<Props & {
|
|
12
28
|
classes?: import("../../../models/UiProps").PropsObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/Menu/Menu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/Menu/Menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAA+C,MAAM,OAAO,CAAC;AAOpF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAI9C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,KAAK,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAS9C,UAAU,KAAK;IACb,KAAK,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AASD,eAAO,MAAM,IAAI;;mFAkOf,CAAC"}
|
|
@@ -15,7 +15,7 @@ interface Props<T> {
|
|
|
15
15
|
allowDeselect?: boolean;
|
|
16
16
|
showTooltips?: boolean;
|
|
17
17
|
/** Прокручивать вкладки, не перенося текст.
|
|
18
|
-
* Без флага, если набор не помещается в контейнер,
|
|
18
|
+
* Без флага, если набор не помещается в контейнер, текст переносится по словам.
|
|
19
19
|
*/
|
|
20
20
|
scrollable?: boolean;
|
|
21
21
|
/** Использовать внешнее состояние вместо внутреннего.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Ref } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
loading?: boolean;
|
|
4
|
+
hasMore?: boolean;
|
|
5
|
+
empty?: boolean;
|
|
6
|
+
sentinelRef: Ref<HTMLDivElement>;
|
|
7
|
+
}
|
|
8
|
+
export declare function InfiniteListFooter({ loading, hasMore, empty, sentinelRef }: Props): import("react").JSX.Element | null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=InfiniteListFooter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfiniteListFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/utils/InfiniteListFooter/InfiniteListFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5B,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAClC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa,EAAE,WAAW,EAAE,EAAE,KAAK,sCAqBzG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
interface UseInfiniteScrollParams {
|
|
3
|
+
scrollRef: RefObject<HTMLElement | null>;
|
|
4
|
+
/** Есть ещё данные. Пока false, обработчик не вызывается. */
|
|
5
|
+
hasMore?: boolean;
|
|
6
|
+
/** Запрос уже идёт. Пока true, повторный вызов блокируется. */
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
onLoadMore?: () => void;
|
|
9
|
+
/** Число пунктов. Смена означает, что пришла новая страница. */
|
|
10
|
+
itemCount: number;
|
|
11
|
+
/**
|
|
12
|
+
* Дополнительный сброс защиты от повторного вызова.
|
|
13
|
+
* Для поиска сюда передаётся строка: выдача заменяется, а длина списка может не измениться.
|
|
14
|
+
*/
|
|
15
|
+
resetKey?: string;
|
|
16
|
+
enabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Просит следующую страницу у нижней границы списка и когда уже загруженное
|
|
20
|
+
* короче окна. Повтор в том же кадре отсекается, дальше удержание делает `loading`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function useInfiniteScroll({ scrollRef, hasMore, loading, onLoadMore, itemCount, resetKey, enabled, }: UseInfiniteScrollParams): RefObject<HTMLDivElement>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=useInfiniteScroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInfiniteScroll.d.ts","sourceRoot":"","sources":["../../src/hooks/useInfiniteScroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmD,MAAM,OAAO,CAAC;AAEnF,UAAU,uBAAuB;IAC/B,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACzC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,OAAe,EACf,OAAe,EACf,UAAU,EACV,SAAS,EACT,QAAa,EACb,OAAc,GACf,EAAE,uBAAuB,6BA+EzB"}
|
package/index.css
CHANGED
|
@@ -1405,6 +1405,7 @@
|
|
|
1405
1405
|
|
|
1406
1406
|
.select-module__popover-content__mnDVQ {
|
|
1407
1407
|
max-height: 250px;
|
|
1408
|
+
overflow: hidden;
|
|
1408
1409
|
}
|
|
1409
1410
|
|
|
1410
1411
|
.buttonsGroup-module__root__ajMji {
|
|
@@ -1432,6 +1433,18 @@
|
|
|
1432
1433
|
border-bottom-right-radius: 4px;
|
|
1433
1434
|
}
|
|
1434
1435
|
|
|
1436
|
+
.infiniteListFooter-module__footer__f8lZM {
|
|
1437
|
+
display: flex;
|
|
1438
|
+
justify-content: center;
|
|
1439
|
+
padding: 8px 16px;
|
|
1440
|
+
color: var(--theme-text-secondary);
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
.infiniteListFooter-module__sentinel__O1XNW {
|
|
1444
|
+
height: 1px;
|
|
1445
|
+
pointer-events: none;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1435
1448
|
.menu-module__root__pR_5h {
|
|
1436
1449
|
display: flex;
|
|
1437
1450
|
flex-direction: column;
|
|
@@ -1575,6 +1588,34 @@
|
|
|
1575
1588
|
align-items: center;
|
|
1576
1589
|
}
|
|
1577
1590
|
|
|
1591
|
+
.menu-module__virtualized__PoNVi {
|
|
1592
|
+
display: block;
|
|
1593
|
+
overflow: auto;
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
.menu-module__virtualized__PoNVi.menu-module__small__uGqFV,
|
|
1597
|
+
.menu-module__virtualized__PoNVi.menu-module__medium__Jev6c,
|
|
1598
|
+
.menu-module__virtualized__PoNVi.menu-module__large__jYm_Q,
|
|
1599
|
+
.menu-module__virtualized__PoNVi.menu-module__extraLarge__RIQUR {
|
|
1600
|
+
padding-top: 0;
|
|
1601
|
+
padding-bottom: 0;
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
.menu-module__virtual-space__SbY08 {
|
|
1605
|
+
position: relative;
|
|
1606
|
+
flex-shrink: 0;
|
|
1607
|
+
width: 100%;
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
.menu-module__virtual-item___RvYR {
|
|
1611
|
+
position: absolute;
|
|
1612
|
+
top: 0;
|
|
1613
|
+
left: 0;
|
|
1614
|
+
display: flex;
|
|
1615
|
+
flex-direction: column;
|
|
1616
|
+
width: 100%;
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1578
1619
|
.menu-module__divider__kik9c {
|
|
1579
1620
|
margin: 8px 12px;
|
|
1580
1621
|
font-size: var(--text-overline-size);
|
|
@@ -2297,6 +2338,19 @@
|
|
|
2297
2338
|
padding-bottom: 8px;
|
|
2298
2339
|
}
|
|
2299
2340
|
|
|
2341
|
+
.checklist-module__virtual-space__cTHv9 {
|
|
2342
|
+
position: relative;
|
|
2343
|
+
flex-shrink: 0;
|
|
2344
|
+
width: 100%;
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
.checklist-module__virtual-item___Q2fN {
|
|
2348
|
+
position: absolute;
|
|
2349
|
+
top: 0;
|
|
2350
|
+
left: 0;
|
|
2351
|
+
width: 100%;
|
|
2352
|
+
}
|
|
2353
|
+
|
|
2300
2354
|
.checklist-module__action-wrap___WNPp {
|
|
2301
2355
|
display: flex;
|
|
2302
2356
|
flex-direction: row;
|
|
@@ -3353,10 +3407,7 @@
|
|
|
3353
3407
|
height: 40px;
|
|
3354
3408
|
}
|
|
3355
3409
|
|
|
3356
|
-
.tabs-module__root__m7YiQ
|
|
3357
|
-
.tabs-module__root__m7YiQ.tabs-module__medium__dvN0f:not(.tabs-module__vertical__sPO6h):not(.tabs-module__scrollable__eR0BR),
|
|
3358
|
-
.tabs-module__root__m7YiQ.tabs-module__large__v3OJM:not(.tabs-module__vertical__sPO6h):not(.tabs-module__scrollable__eR0BR),
|
|
3359
|
-
.tabs-module__root__m7YiQ.tabs-module__extraLarge__Vr50m:not(.tabs-module__vertical__sPO6h):not(.tabs-module__scrollable__eR0BR) {
|
|
3410
|
+
.tabs-module__root__m7YiQ:not(.tabs-module__vertical__sPO6h):not(.tabs-module__scrollable__eR0BR) {
|
|
3360
3411
|
align-items: stretch;
|
|
3361
3412
|
height: auto;
|
|
3362
3413
|
}
|
|
@@ -3463,7 +3514,6 @@
|
|
|
3463
3514
|
|
|
3464
3515
|
.tabs-module__root__m7YiQ:not(.tabs-module__vertical__sPO6h):not(.tabs-module__scrollable__eR0BR) .tabs-module__tab__NoNie {
|
|
3465
3516
|
flex-shrink: 1;
|
|
3466
|
-
min-width: 0;
|
|
3467
3517
|
height: auto;
|
|
3468
3518
|
}
|
|
3469
3519
|
|
|
@@ -3621,13 +3671,7 @@
|
|
|
3621
3671
|
white-space: nowrap;
|
|
3622
3672
|
}
|
|
3623
3673
|
|
|
3624
|
-
.tabs-module__root__m7YiQ:not(.tabs-module__scrollable__eR0BR) .tabs-module__tab-title__XsuJP {
|
|
3625
|
-
min-width: 0;
|
|
3626
|
-
}
|
|
3627
|
-
|
|
3628
3674
|
.tabs-module__root__m7YiQ:not(.tabs-module__scrollable__eR0BR) .tabs-module__tab-title__XsuJP > span {
|
|
3629
|
-
min-width: 0;
|
|
3630
|
-
overflow-wrap: break-word;
|
|
3631
3675
|
text-overflow: unset;
|
|
3632
3676
|
white-space: normal;
|
|
3633
3677
|
}
|