@evergis/react 4.0.124 → 4.0.125
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/LICENSE +21 -21
- package/README.md +7 -7
- package/dist/components/Dashboard/componentTypes.d.ts +2 -2
- package/dist/components/Dashboard/containers/GridRowContainer/index.d.ts +4 -0
- package/dist/components/Dashboard/grid/GridGroupView/index.d.ts +3 -0
- package/dist/components/Dashboard/grid/components/GridHeightResizer/index.d.ts +2 -0
- package/dist/components/Dashboard/grid/components/GridTrack/index.d.ts +2 -0
- package/dist/components/Dashboard/grid/components/GridTracks/styled.d.ts +14 -1
- package/dist/components/Dashboard/grid/constants.d.ts +8 -0
- package/dist/components/Dashboard/grid/hooks/useGridHeightResize.d.ts +8 -1
- package/dist/components/Dashboard/grid/utils/gridTracks.d.ts +11 -3
- package/dist/components/Dashboard/types.d.ts +19 -0
- package/dist/components/Dashboard/utils/getWrapperSizeStyle.d.ts +7 -1
- package/dist/index.js +3013 -2939
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +3013 -2940
- package/dist/react.esm.js.map +1 -1
- package/package.json +5 -4
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Everpoint
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Everpoint
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# @evergis/react
|
|
2
|
-
|
|
3
|
-
В данном репозитории находятся специфичные (в отличии от `@evergis/uilib-gl`) для `Evergis Online`,
|
|
4
|
-
но в целом переиспользуемые на других проектах, построенных на Evergis API, React-компоненты.
|
|
5
|
-
|
|
6
|
-
***ВАЖНО!!!***: Разрабатываемые компоненты не должны иметь зависимостей
|
|
7
|
-
от системы поддержки мультиязычности `Evergis Online`!
|
|
1
|
+
# @evergis/react
|
|
2
|
+
|
|
3
|
+
В данном репозитории находятся специфичные (в отличии от `@evergis/uilib-gl`) для `Evergis Online`,
|
|
4
|
+
но в целом переиспользуемые на других проектах, построенных на Evergis API, React-компоненты.
|
|
5
|
+
|
|
6
|
+
***ВАЖНО!!!***: Разрабатываемые компоненты не должны иметь зависимостей
|
|
7
|
+
от системы поддержки мультиязычности `Evergis Online`!
|
|
@@ -192,7 +192,7 @@ export interface ChartContainerConfig extends Omit<ConfigContainerChild, "option
|
|
|
192
192
|
export interface ChartContainerProps extends Omit<ContainerProps, "elementConfig"> {
|
|
193
193
|
elementConfig?: ChartContainerConfig;
|
|
194
194
|
}
|
|
195
|
-
export type ContainersGroupContainerOptions = Pick<ConfigOptions, "column" | "expandable" | "expanded" | "alignItems" | "grid" | "editMode" | "fixedHeight" | "gap"> & ContainerBoxOptions;
|
|
195
|
+
export type ContainersGroupContainerOptions = Pick<ConfigOptions, "column" | "expandable" | "expanded" | "alignItems" | "grid" | "editMode" | "fixedHeight" | "autoHeight" | "gap"> & ContainerBoxOptions;
|
|
196
196
|
export interface ContainersGroupContainerConfig extends Omit<ConfigContainerChild, "options" | "templateName"> {
|
|
197
197
|
templateName?: ContainerTemplate.ContainersGroup;
|
|
198
198
|
options?: ContainersGroupContainerOptions;
|
|
@@ -348,7 +348,7 @@ export interface FiltersContainerConfig extends Omit<ConfigContainerChild, "opti
|
|
|
348
348
|
export interface FiltersContainerProps extends Omit<ContainerProps, "elementConfig"> {
|
|
349
349
|
elementConfig?: FiltersContainerConfig;
|
|
350
350
|
}
|
|
351
|
-
export type GridRowContainerOptions = Pick<ConfigOptions, "gap" | "alignItems"> & ContainerBoxOptions;
|
|
351
|
+
export type GridRowContainerOptions = Pick<ConfigOptions, "gap" | "alignItems" | "autoHeight"> & ContainerBoxOptions;
|
|
352
352
|
export interface GridRowContainerConfig extends Omit<ConfigContainerChild, "options" | "templateName"> {
|
|
353
353
|
templateName?: ContainerTemplate.GridRow;
|
|
354
354
|
options?: GridRowContainerOptions;
|
|
@@ -7,5 +7,9 @@ import { GridRowContainerProps } from '../../types';
|
|
|
7
7
|
* доля строки (`options.height`) читается РОДИТЕЛЬСКОЙ сеткой при сборке `grid-template-rows`,
|
|
8
8
|
* а сама строка получает от неё готовую высоту трека — и занимает её целиком
|
|
9
9
|
* ({@link GRID_FILL_DEFAULTS}), иначе колонки внутри строки схлопнулись бы до содержимого.
|
|
10
|
+
*
|
|
11
|
+
* Собственный `options.autoHeight` строки заменяет это «целиком» на минимум и разрешает ЯЧЕЙКАМ
|
|
12
|
+
* растить строку своим содержимым. Родительская сетка увидит рост, только если включила
|
|
13
|
+
* `autoHeight` у себя: опция читается у каждого узла и вверх сама не поднимается.
|
|
10
14
|
*/
|
|
11
15
|
export declare const GridRowContainer: FC<GridRowContainerProps>;
|
|
@@ -6,5 +6,8 @@ import { ContainerProps } from '../../types';
|
|
|
6
6
|
* По умолчанию сетка занимает всю высоту выделенного ей бокса ({@link GRID_FILL_DEFAULTS}) —
|
|
7
7
|
* иначе `1fr`-строки раскладываются по содержимому. Если высота не определена и у родителя,
|
|
8
8
|
* пропорции всё равно не заработают: взять их неоткуда, нужна заданная `options.height`.
|
|
9
|
+
*
|
|
10
|
+
* `options.autoHeight` меняет ту же высоту на минимум ({@link GRID_AUTO_FILL_DEFAULTS}): пропорции
|
|
11
|
+
* считаются от неё, но переросшее содержимое строк тянет сетку вниз, а не прокручивается внутри.
|
|
9
12
|
*/
|
|
10
13
|
export declare const GridGroupView: FC<ContainerProps>;
|
|
@@ -2,6 +2,8 @@ import { FC } from 'react';
|
|
|
2
2
|
interface GridHeightResizerProps {
|
|
3
3
|
/** Доли всех строк сетки — база для пересчёта. */
|
|
4
4
|
sizes: number[];
|
|
5
|
+
/** `options.autoHeight` сетки: жест задаёт не высоту, а нижний предел, ниже которого не сжимать. */
|
|
6
|
+
autoHeight?: boolean;
|
|
5
7
|
getGrid: () => HTMLElement | null;
|
|
6
8
|
onCommit: (height: string, sizes: number[]) => void;
|
|
7
9
|
}
|
|
@@ -5,6 +5,8 @@ interface GridTrackProps {
|
|
|
5
5
|
item: ConfigContainerChild;
|
|
6
6
|
axis: GridAxis;
|
|
7
7
|
index: number;
|
|
8
|
+
/** `options.autoHeight` родителя: трек растёт под содержимое, а не запирает его в скролле. */
|
|
9
|
+
autoHeight?: boolean;
|
|
8
10
|
/** Доли текущего трека и следующего. `null` — трек последний, границы за ним нет. */
|
|
9
11
|
pairSizes: [number, number] | null;
|
|
10
12
|
/** Доли всех строк сетки — переданы последней строке, за которой тянется нижняя граница. */
|
|
@@ -21,6 +21,7 @@ export declare const GridBody: import('styled-components').StyledComponent<"div"
|
|
|
21
21
|
$template: string;
|
|
22
22
|
$axis: GridAxis;
|
|
23
23
|
$gap: number;
|
|
24
|
+
$autoHeight?: boolean;
|
|
24
25
|
}, never>;
|
|
25
26
|
/**
|
|
26
27
|
* Обёртка одного трека.
|
|
@@ -29,11 +30,16 @@ export declare const GridBody: import('styled-components').StyledComponent<"div"
|
|
|
29
30
|
* ячейки может не отрендериться (`hideIfEmptyDataSource`, чужой `tabId`, пустое значение), и без
|
|
30
31
|
* обёртки пропавший узел утащил бы всю сетку на трек влево. Во-вторых, даёт систему координат
|
|
31
32
|
* (`position: relative`) для ручки ресайза, лежащей в зазоре.
|
|
33
|
+
*
|
|
34
|
+
* `min-height: 0` — то, чем обёртка разрешает треку быть ниже своего содержимого. В режиме
|
|
35
|
+
* `autoHeight` он снимается: этот же ноль становится «минимальным вкладом» grid-элемента, из
|
|
36
|
+
* которого сетка считает `auto`-минимум трека, и с ним `minmax(auto, Nfr)` не сработал бы вовсе.
|
|
32
37
|
*/
|
|
33
38
|
export declare const GridTrackBox: import('styled-components').StyledComponent<"div", any, {
|
|
34
39
|
$selected?: boolean;
|
|
35
40
|
$selectable?: boolean;
|
|
36
41
|
$hoverable?: boolean;
|
|
42
|
+
$autoHeight?: boolean;
|
|
37
43
|
}, never>;
|
|
38
44
|
/**
|
|
39
45
|
* Содержимое трека, запертое в его границах.
|
|
@@ -47,5 +53,12 @@ export declare const GridTrackBox: import('styled-components').StyledComponent<"
|
|
|
47
53
|
* Отдельный узел, а не `overflow` на самой обёртке трека: ручки ресайза лежат в ней же и
|
|
48
54
|
* намеренно выходят за границы трека на `HANDLE_BLEED_PX` — скролл-контейнер срезал бы им
|
|
49
55
|
* половину зоны захвата.
|
|
56
|
+
*
|
|
57
|
+
* В режиме `autoHeight` клип снимается целиком: скролл-контейнер сам является тем боксом, внутри
|
|
58
|
+
* которого содержимое запирается, и `auto`-минимум трека при нём не сработал бы — трек так и не
|
|
59
|
+
* узнал бы, что содержимое переросло. Горизонтальный клип уходит вместе с вертикальным: пары
|
|
60
|
+
* `overflow-x: auto` + `overflow-y: visible` в CSS не существует, вторая ось поднимает первую.
|
|
50
61
|
*/
|
|
51
|
-
export declare const GridTrackContent: import('styled-components').StyledComponent<"div", any, {
|
|
62
|
+
export declare const GridTrackContent: import('styled-components').StyledComponent<"div", any, {
|
|
63
|
+
$autoHeight?: boolean;
|
|
64
|
+
}, never>;
|
|
@@ -19,6 +19,14 @@ export declare const MIN_TRACK_RATIO = 0.25;
|
|
|
19
19
|
* Явный `options.height` дефолт перекрывает — см. {@link getWrapperSizeStyle}.
|
|
20
20
|
*/
|
|
21
21
|
export declare const GRID_FILL_DEFAULTS: CSSObject;
|
|
22
|
+
/**
|
|
23
|
+
* Тот же дефолт для режима `options.autoHeight`: занять выделенный бокс, но не запереться в нём.
|
|
24
|
+
*
|
|
25
|
+
* Жёсткая `height: 100%` в этом режиме и есть источник проблемы: узел ровно равен своему треку,
|
|
26
|
+
* и выросшее содержимое ему уже некуда деть, кроме внутреннего скролла. Минимум даёт ту же
|
|
27
|
+
* стартовую высоту, оставляя запас на рост.
|
|
28
|
+
*/
|
|
29
|
+
export declare const GRID_AUTO_FILL_DEFAULTS: CSSObject;
|
|
22
30
|
/**
|
|
23
31
|
* Зазор между треками по умолчанию, px.
|
|
24
32
|
*
|
|
@@ -2,6 +2,8 @@ import { GridResize } from './useGridResize';
|
|
|
2
2
|
interface UseGridHeightResizeParams {
|
|
3
3
|
/** Доли всех строк сетки — их сумма сохраняется при пересчёте. */
|
|
4
4
|
sizes: number[];
|
|
5
|
+
/** `options.autoHeight` сетки: результат жеста — минимум, а не жёсткая высота. */
|
|
6
|
+
autoHeight?: boolean;
|
|
5
7
|
getGrid: () => HTMLElement | null;
|
|
6
8
|
onCommit: (height: string, sizes: number[]) => void;
|
|
7
9
|
}
|
|
@@ -15,6 +17,11 @@ interface UseGridHeightResizeParams {
|
|
|
15
17
|
*
|
|
16
18
|
* Высота пишется в пикселях: единица, в которой её задал автор конфига, при таком жесте не
|
|
17
19
|
* восстановима, а пиксели дают ровно тот результат, который пользователь видел под курсором.
|
|
20
|
+
*
|
|
21
|
+
* В режиме `autoHeight` в конфиг уходит та же `options.height`, но и превью, и результат означают
|
|
22
|
+
* МИНИМУМ: корню пишется `min-height`, трекам — `minmax(auto, Npx)`. Иначе жест врал бы ровно там,
|
|
23
|
+
* ради чего режим включают: под курсором сетка садилась бы на заданные пиксели, а после отпускания
|
|
24
|
+
* снова раздувалась содержимым.
|
|
18
25
|
*/
|
|
19
|
-
export declare const useGridHeightResize: ({ sizes, getGrid, onCommit }: UseGridHeightResizeParams) => GridResize;
|
|
26
|
+
export declare const useGridHeightResize: ({ sizes, autoHeight, getGrid, onCommit, }: UseGridHeightResizeParams) => GridResize;
|
|
20
27
|
export {};
|
|
@@ -27,7 +27,15 @@ export declare const toFrSize: (value: number) => string;
|
|
|
27
27
|
*
|
|
28
28
|
* `minmax(0, X)` вместо голого размера: голый трек имеет неявный минимум `auto`, и широкий контент
|
|
29
29
|
* (таблица, график) распирает его изнутри, ломая заданные пропорции.
|
|
30
|
+
*
|
|
31
|
+
* `autoMin` возвращает этот самый минимум `auto` — ровно то, ради чего включают `autoHeight`:
|
|
32
|
+
* переросшее содержимое раздвигает трек вместо того, чтобы прокручиваться внутри него.
|
|
33
|
+
*/
|
|
34
|
+
export declare const buildTrackTemplate: (sizes: string[], autoMin?: boolean) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Значение `grid-template-rows` / `grid-template-columns` по долям детей.
|
|
37
|
+
*
|
|
38
|
+
* `autoHeight` отпускает минимум только у СТРОК: ширину растить нечем и незачем — по горизонтали
|
|
39
|
+
* узел и так волен прокручиваться, а `auto`-минимум колонки просто сломал бы заданные пропорции.
|
|
30
40
|
*/
|
|
31
|
-
export declare const
|
|
32
|
-
/** Значение `grid-template-rows` / `grid-template-columns` по долям детей. */
|
|
33
|
-
export declare const buildGridTemplate: (children: ConfigContainerChild[], axis: GridAxis) => string;
|
|
41
|
+
export declare const buildGridTemplate: (children: ConfigContainerChild[], axis: GridAxis, autoHeight?: boolean) => string;
|
|
@@ -206,6 +206,25 @@ export interface ConfigLayoutOptions {
|
|
|
206
206
|
* высоты нет и так.
|
|
207
207
|
*/
|
|
208
208
|
fixedHeight?: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Секция растёт под содержимое: `options.height` применяется как МИНИМУМ (`min-height`),
|
|
211
|
+
* треки объявляются `minmax(auto, Nfr)` вместо `minmax(0, Nfr)`, а их содержимое перестаёт
|
|
212
|
+
* прокручиваться внутри трека. Нужен витринам, доращивающим контент уже после рендера
|
|
213
|
+
* («Показать ещё»): в обычном режиме трек по содержимому не растёт, и выросшее уходит во
|
|
214
|
+
* внутренний скролл вместо того, чтобы растянуть секцию.
|
|
215
|
+
*
|
|
216
|
+
* Читается у КАЖДОГО узла отдельно и управляет его собственными треками: у сетки это строки,
|
|
217
|
+
* у строки (`GridRow`) — вертикальный размер её ячеек. Чтобы рост дошёл снизу вверх, опция
|
|
218
|
+
* нужна на всей цепочке предков — включённая только у корня, она ничего не даст.
|
|
219
|
+
*
|
|
220
|
+
* Следствия, с которыми режим поставляется:
|
|
221
|
+
* - точен для секции с ОДНОЙ строкой; при нескольких переросшая строка раздувает соседей
|
|
222
|
+
* пропорционально долям — это семантика `fr`, «сосед держит свои пиксели» в CSS Grid не
|
|
223
|
+
* выражается;
|
|
224
|
+
* - вместе с вертикальным клипом уходит и горизонтальный: `overflow-y: visible` при
|
|
225
|
+
* `overflow-x: auto` в CSS невозможен.
|
|
226
|
+
*/
|
|
227
|
+
autoHeight?: boolean;
|
|
209
228
|
twoColumns?: boolean;
|
|
210
229
|
/** Вписать график контейнера Chart в контейнер: по ширине всегда, по высоте — при заданной высоте (object-fit: contain). */
|
|
211
230
|
fill?: boolean;
|
|
@@ -16,6 +16,8 @@ export interface WrapperSizeParams {
|
|
|
16
16
|
defaults?: CSSObject;
|
|
17
17
|
/** Ширина по умолчанию, если `options.width` не задан. Контейнеры передают `FILL_SIZE`, элементы — нет. */
|
|
18
18
|
defaultWidth?: CssSize;
|
|
19
|
+
/** `options.autoHeight`: высота — не жёсткий размер, а минимум, ниже которого узел не опускается. */
|
|
20
|
+
heightAsMin?: boolean;
|
|
19
21
|
}
|
|
20
22
|
export declare const isFillSize: (size?: CssSize) => boolean;
|
|
21
23
|
/** Доля трека сетки: `"2fr"`, `"1.5fr"`. */
|
|
@@ -36,5 +38,9 @@ export declare const isFrSize: (size?: CssSize) => boolean;
|
|
|
36
38
|
*
|
|
37
39
|
* `overflow` уходит в CSS как есть и ничем не подменяется: не задан — работает браузерный
|
|
38
40
|
* `visible`, то есть контент крупнее бокса вытекает на соседние слоты.
|
|
41
|
+
*
|
|
42
|
+
* `heightAsMin` переводит высоту в `min-height`: узел не опускается ниже неё, но перерастает под
|
|
43
|
+
* содержимое. Парного `minHeight: 0` в fill-режиме при этом нет — он немедленно погасил бы сам
|
|
44
|
+
* минимум, ради которого режим и включают.
|
|
39
45
|
*/
|
|
40
|
-
export declare const getWrapperSizeStyle: ({ style, width: widthOption, height: heightOption, overflow, defaults, defaultWidth, }: WrapperSizeParams) => CSSObject | undefined;
|
|
46
|
+
export declare const getWrapperSizeStyle: ({ style, width: widthOption, height: heightOption, overflow, defaults, defaultWidth, heightAsMin, }: WrapperSizeParams) => CSSObject | undefined;
|