@evergis/react 4.0.118 → 4.0.120
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/dist/components/Dashboard/componentTypes.d.ts +11 -2
- package/dist/components/Dashboard/constants.d.ts +15 -0
- package/dist/components/Dashboard/containers/ContainersGroupContainer/FlowGroup.d.ts +4 -0
- package/dist/components/Dashboard/containers/ContainersGroupContainer/index.d.ts +6 -0
- package/dist/components/Dashboard/containers/GridRowContainer/index.d.ts +11 -0
- package/dist/components/Dashboard/containers/index.d.ts +1 -0
- package/dist/components/Dashboard/containers/registry.d.ts +1 -0
- package/dist/components/Dashboard/grid/GridEditContext/index.d.ts +9 -0
- package/dist/components/Dashboard/grid/GridEditSession/index.d.ts +11 -0
- package/dist/components/Dashboard/grid/GridGroup/index.d.ts +11 -0
- package/dist/components/Dashboard/grid/GridGroupView/index.d.ts +10 -0
- package/dist/components/Dashboard/grid/components/GridContextMenu/index.d.ts +16 -0
- package/dist/components/Dashboard/grid/components/GridContextMenu/styled.d.ts +8 -0
- package/dist/components/Dashboard/grid/components/GridHeightResizer/index.d.ts +14 -0
- package/dist/components/Dashboard/grid/components/GridResizer/index.d.ts +13 -0
- package/dist/components/Dashboard/grid/components/GridResizer/styled.d.ts +11 -0
- package/dist/components/Dashboard/grid/components/GridTrack/index.d.ts +24 -0
- package/dist/components/Dashboard/grid/components/GridTracks/index.d.ts +21 -0
- package/dist/components/Dashboard/grid/components/GridTracks/styled.d.ts +51 -0
- package/dist/components/Dashboard/grid/constants.d.ts +77 -0
- package/dist/components/Dashboard/grid/hooks/useGridCellSwap.d.ts +25 -0
- package/dist/components/Dashboard/grid/hooks/useGridDraft.d.ts +22 -0
- package/dist/components/Dashboard/grid/hooks/useGridHeightResize.d.ts +20 -0
- package/dist/components/Dashboard/grid/hooks/useGridMenuOptions.d.ts +2 -0
- package/dist/components/Dashboard/grid/hooks/useGridResize.d.ts +27 -0
- package/dist/components/Dashboard/grid/hooks/useGridSelection.d.ts +12 -0
- package/dist/components/Dashboard/grid/types.d.ts +78 -0
- package/dist/components/Dashboard/grid/utils/createGridNodeId.d.ts +23 -0
- package/dist/components/Dashboard/grid/utils/gridMenuActions.d.ts +14 -0
- package/dist/components/Dashboard/grid/utils/gridOperations.d.ts +18 -0
- package/dist/components/Dashboard/grid/utils/gridResizeOperations.d.ts +18 -0
- package/dist/components/Dashboard/grid/utils/gridTracks.d.ts +33 -0
- package/dist/components/Dashboard/grid/utils/gridTree.d.ts +58 -0
- package/dist/components/Dashboard/grid/utils/readCellAtPoint.d.ts +13 -0
- package/dist/components/Dashboard/grid/utils/readTrackPixels.d.ts +16 -0
- package/dist/components/Dashboard/hooks/useWidgetContext.d.ts +1 -0
- package/dist/components/Dashboard/types.d.ts +21 -0
- package/dist/components/Dashboard/utils/getRenderElement.d.ts +1 -1
- package/dist/components/Dashboard/utils/getWrapperSizeStyle.d.ts +6 -1
- package/dist/constants/styling.d.ts +1 -0
- package/dist/contexts/DashboardContext/types.d.ts +10 -1
- package/dist/contexts/FeatureCardContext/types.d.ts +4 -1
- package/dist/index.js +3260 -1772
- package/dist/index.js.map +1 -1
- package/dist/react.esm.js +3258 -1775
- package/dist/react.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Генератор id для узлов, создаваемых операциями сетки. */
|
|
2
|
+
export interface GridIdFactory {
|
|
3
|
+
createRowId: () => string;
|
|
4
|
+
createCellId: () => string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Все `id`, встречающиеся в поддереве конфига.
|
|
8
|
+
*
|
|
9
|
+
* Обходим целиком, а не только `children`: узлы конфига встречаются и в других коллекциях
|
|
10
|
+
* (`modals`, вложенные структуры), а `returnFound` из `find-and` ищет так же — вглубь по всему
|
|
11
|
+
* объекту. Дубликат id заставил бы движок молча взять первое совпадение.
|
|
12
|
+
*/
|
|
13
|
+
export declare const collectConfigIds: (source: unknown, acc?: Set<string>) => Set<string>;
|
|
14
|
+
/**
|
|
15
|
+
* Фабрика уникальных id со сквозной нумерацией.
|
|
16
|
+
*
|
|
17
|
+
* Счётчик общий на всю страницу, а не на поддерево грида: на одной странице может быть несколько
|
|
18
|
+
* сеток, и локальные счётчики выдали бы им одинаковые `gridCell_1`.
|
|
19
|
+
*
|
|
20
|
+
* Префиксы намеренно не начинаются с `CONFIG_PAGE_ID` (`"page"`): по `id.startsWith("page")`
|
|
21
|
+
* `ContainersGroupContainer` опознаёт корневой блок страницы и оборачивает его в карточку.
|
|
22
|
+
*/
|
|
23
|
+
export declare const createGridIdFactory: (usedIds: Set<string>) => GridIdFactory;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { GridEditAction } from '../types';
|
|
2
|
+
/** Значения пунктов контекстного меню сетки. */
|
|
3
|
+
export declare const GRID_MENU_VALUE: {
|
|
4
|
+
readonly SplitVertical: "splitVertical";
|
|
5
|
+
readonly SplitHorizontal: "splitHorizontal";
|
|
6
|
+
readonly AddRowBefore: "addRowBefore";
|
|
7
|
+
readonly AddRowAfter: "addRowAfter";
|
|
8
|
+
readonly AddCellBefore: "addCellBefore";
|
|
9
|
+
readonly AddCellAfter: "addCellAfter";
|
|
10
|
+
readonly Merge: "merge";
|
|
11
|
+
readonly Delete: "delete";
|
|
12
|
+
};
|
|
13
|
+
export type GridMenuValue = (typeof GRID_MENU_VALUE)[keyof typeof GRID_MENU_VALUE];
|
|
14
|
+
export declare const buildGridAction: (value: string, cellIds: string[]) => GridEditAction | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigContainerChild } from '../../types';
|
|
2
|
+
import { GridEditAction, GridMenuState } from '../types';
|
|
3
|
+
import { GridIdFactory } from './createGridNodeId';
|
|
4
|
+
export declare const normalizeGrid: (root: ConfigContainerChild, factory: GridIdFactory) => ConfigContainerChild;
|
|
5
|
+
export declare const deleteCells: (root: ConfigContainerChild, cellIds: string[], factory: GridIdFactory) => ConfigContainerChild;
|
|
6
|
+
export declare const canMergeCells: (root: ConfigContainerChild, cellIds: string[]) => boolean;
|
|
7
|
+
export declare const mergeCells: (root: ConfigContainerChild, cellIds: string[]) => ConfigContainerChild;
|
|
8
|
+
export declare const canSwapCells: (root: ConfigContainerChild, sourceId: string, targetId: string) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Меняет две ячейки местами.
|
|
11
|
+
*
|
|
12
|
+
* Доля трека остаётся за ПОЗИЦИЕЙ, а не едет с ячейкой: границы после обмена стоят там же, где
|
|
13
|
+
* стояли, переезжает только содержимое. Иначе каждая перестановка заодно перекраивала бы
|
|
14
|
+
* пропорции сетки, хотя их никто не трогал.
|
|
15
|
+
*/
|
|
16
|
+
export declare const swapCells: (root: ConfigContainerChild, sourceId: string, targetId: string) => ConfigContainerChild;
|
|
17
|
+
export declare const getGridMenuState: (root: ConfigContainerChild, selectedIds: string[]) => GridMenuState;
|
|
18
|
+
export declare const applyGridAction: (root: ConfigContainerChild, action: GridEditAction, factory: GridIdFactory) => ConfigContainerChild;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigContainerChild } from '../../types';
|
|
2
|
+
import { GridAxis } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Правки долей треков — итог перетаскивания границ.
|
|
5
|
+
*
|
|
6
|
+
* Отдельно от структурных операций (`gridOperations`): здесь ничего не создаётся и не удаляется,
|
|
7
|
+
* меняются только размеры уже существующих треков, и приходят эти правки не через меню, а прямо
|
|
8
|
+
* от ручек ресайза.
|
|
9
|
+
*/
|
|
10
|
+
/** Новые доли пары соседних треков после перетаскивания их общей границы. */
|
|
11
|
+
export declare const resizeTracks: (root: ConfigContainerChild, parentId: string, index: number, sizes: [number, number], axis: GridAxis) => ConfigContainerChild;
|
|
12
|
+
/**
|
|
13
|
+
* Итог перетаскивания нижней границы сетки: своя высота корня плюс новые доли всех строк.
|
|
14
|
+
*
|
|
15
|
+
* Доли обязаны пересчитаться вместе с высотой: тянут границу последней строки, и остальные при
|
|
16
|
+
* этом должны остаться той же величины в пикселях, а не разъехаться пропорционально новой высоте.
|
|
17
|
+
*/
|
|
18
|
+
export declare const resizeGridHeight: (root: ConfigContainerChild, height: string, sizes: number[]) => ConfigContainerChild;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { CssSize, ConfigContainerChild } from '../../types';
|
|
2
|
+
import { GridAxis } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Дети, которые реально становятся треками.
|
|
5
|
+
*
|
|
6
|
+
* `ContainerChildren` не рендерит слоты заголовка, поэтому и в `grid-template-*` их быть не
|
|
7
|
+
* должно — иначе треков окажется больше, чем ячеек, и раскладка съедет.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getLayoutChildren: (node?: ConfigContainerChild) => ConfigContainerChild[];
|
|
10
|
+
/** Опция, в которой лежит доля трека: у строки это высота, у ячейки — ширина. */
|
|
11
|
+
export declare const getTrackSizeKey: (axis: GridAxis) => "height" | "width";
|
|
12
|
+
/**
|
|
13
|
+
* Доля трека числом.
|
|
14
|
+
*
|
|
15
|
+
* Не-`fr` значения (px, проценты, `auto`) сеткой не поддерживаются и считаются за `1fr`:
|
|
16
|
+
* смешивание фиксированных и резиновых треков сломало бы инвариант ресайза «сумма долей пары
|
|
17
|
+
* неизменна». Единица модели — только `fr`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const parseFrValue: (size?: CssSize) => number;
|
|
20
|
+
/** Доли всех треков одного родителя в порядке следования. */
|
|
21
|
+
export declare const getTrackSizes: (children: ConfigContainerChild[], axis: GridAxis) => number[];
|
|
22
|
+
/** Округление доли — иначе в конфиг попадают хвосты вида `1.0000000000000002fr`. */
|
|
23
|
+
export declare const roundFr: (value: number) => number;
|
|
24
|
+
export declare const toFrSize: (value: number) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Значение `grid-template-*` из готовых размеров треков.
|
|
27
|
+
*
|
|
28
|
+
* `minmax(0, X)` вместо голого размера: голый трек имеет неявный минимум `auto`, и широкий контент
|
|
29
|
+
* (таблица, график) распирает его изнутри, ломая заданные пропорции.
|
|
30
|
+
*/
|
|
31
|
+
export declare const buildTrackTemplate: (sizes: string[]) => string;
|
|
32
|
+
/** Значение `grid-template-rows` / `grid-template-columns` по долям детей. */
|
|
33
|
+
export declare const buildGridTemplate: (children: ConfigContainerChild[], axis: GridAxis) => string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ConfigContainerChild } from '../../types';
|
|
2
|
+
import { GridAxis } from '../types';
|
|
3
|
+
import { GridIdFactory } from './createGridNodeId';
|
|
4
|
+
/** Узел-сетка: `ContainersGroup`, у которого включена опция `grid`. */
|
|
5
|
+
export declare const isGridNode: (node?: ConfigContainerChild) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Подменяет «раскладочных» детей узла, сохраняя слоты заголовка.
|
|
8
|
+
*
|
|
9
|
+
* Слоты кладутся первыми: их порядок относительно тела ни на что не влияет — тело их отфильтровывает,
|
|
10
|
+
* а `ExpandableTitle` ищет по `id`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const setLayoutChildren: (node: ConfigContainerChild, children: ConfigContainerChild[]) => ConfigContainerChild;
|
|
13
|
+
/**
|
|
14
|
+
* Иммутабельно применяет `mapper` к узлу с заданным `id` где угодно в поддереве.
|
|
15
|
+
*
|
|
16
|
+
* `null` из `mapper` удаляет узел. Ветки без изменений возвращаются по прежней ссылке — так
|
|
17
|
+
* `memo`-контейнеры незатронутых поддеревьев не перерисовываются.
|
|
18
|
+
*/
|
|
19
|
+
export declare const mapNodeById: (node: ConfigContainerChild, id: string, mapper: (found: ConfigContainerChild) => ConfigContainerChild | null) => ConfigContainerChild;
|
|
20
|
+
/** Есть ли в поддереве узел с таким `id`. */
|
|
21
|
+
export declare const containsNodeId: (node: ConfigContainerChild, id: string) => boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Иммутабельно подменяет сразу несколько узлов — по одному вхождению на каждый `id`.
|
|
24
|
+
*
|
|
25
|
+
* Именно за один проход, а не несколькими `mapNodeById` подряд: при обмене двух узлов местами
|
|
26
|
+
* после первой замены на месте источника уже лежит узел с `id` цели, и следующий проход нашёл бы
|
|
27
|
+
* его же — оба места достались бы одному узлу. Внутрь подменённого узла обход не спускается:
|
|
28
|
+
* он приходит готовым.
|
|
29
|
+
*/
|
|
30
|
+
export declare const replaceNodesByIds: (node: ConfigContainerChild, replacements: Record<string, ConfigContainerChild>) => ConfigContainerChild;
|
|
31
|
+
/** Где находится ячейка: её строка, сетка-владелец строки и позиция в строке. */
|
|
32
|
+
export interface GridCellContext {
|
|
33
|
+
grid: ConfigContainerChild;
|
|
34
|
+
row: ConfigContainerChild;
|
|
35
|
+
rows: ConfigContainerChild[];
|
|
36
|
+
cells: ConfigContainerChild[];
|
|
37
|
+
rowIndex: number;
|
|
38
|
+
cellIndex: number;
|
|
39
|
+
}
|
|
40
|
+
/** Ищет ячейку по всему дереву сеток, включая вложенные. Возвращает ближайший к ней контекст. */
|
|
41
|
+
export declare const findCellContext: (grid: ConfigContainerChild, cellId: string) => GridCellContext | null;
|
|
42
|
+
/** Задать долю трека узлу. */
|
|
43
|
+
export declare const withTrackSize: (node: ConfigContainerChild, axis: GridAxis, value: number) => ConfigContainerChild;
|
|
44
|
+
/** Доля трека узла. */
|
|
45
|
+
export declare const getTrackSize: (node: ConfigContainerChild, axis: GridAxis) => number;
|
|
46
|
+
/** Средняя доля треков — база для вновь добавляемого, чтобы он не выбивался из масштаба. */
|
|
47
|
+
export declare const getAverageTrackSize: (tracks: ConfigContainerChild[], axis: GridAxis) => number;
|
|
48
|
+
/**
|
|
49
|
+
* Убирает треки по индексам, отдавая их доли соседу слева (у первого трека — соседу справа).
|
|
50
|
+
*
|
|
51
|
+
* Без передачи доли `fr` перенормируются сами, и вместе с удалённым треком визуально сместятся
|
|
52
|
+
* все остальные границы.
|
|
53
|
+
*/
|
|
54
|
+
export declare const removeTracks: (tracks: ConfigContainerChild[], indexes: number[], axis: GridAxis) => ConfigContainerChild[];
|
|
55
|
+
/** Пустая ячейка сетки. */
|
|
56
|
+
export declare const createGridCell: (factory: GridIdFactory, width?: number) => ConfigContainerChild;
|
|
57
|
+
/** Строка сетки с уже вложенными ячейками (по умолчанию — одна пустая). */
|
|
58
|
+
export declare const createGridRow: (factory: GridIdFactory, cells?: ConfigContainerChild[], height?: number) => ConfigContainerChild;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Ячейка сетки, найденная в DOM. */
|
|
2
|
+
export interface GridCellElement {
|
|
3
|
+
id: string;
|
|
4
|
+
element: HTMLElement;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Ячейка под точкой экрана.
|
|
8
|
+
*
|
|
9
|
+
* Ячейки вкладываются друг в друга, поэтому `closest` от верхнего элемента даёт самую глубокую из
|
|
10
|
+
* них — то же правило, что у выделения кликом. Строки маркера не несут: обмен определён только на
|
|
11
|
+
* ячейках, и попадание курсора в зазор строки целью не считается.
|
|
12
|
+
*/
|
|
13
|
+
export declare const readCellAtPoint: (x: number, y: number) => GridCellElement | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GridAxis } from '../types';
|
|
2
|
+
export declare const getTemplateProperty: (axis: GridAxis) => "gridTemplateRows" | "gridTemplateColumns";
|
|
3
|
+
/**
|
|
4
|
+
* Пиксельные размеры треков отрисованной сетки.
|
|
5
|
+
*
|
|
6
|
+
* Берём computed-значение `grid-template-*`: у отрисованного грида браузер отдаёт уже
|
|
7
|
+
* разрешённый список used values в пикселях, причём БЕЗ зазоров — то есть сумма пары треков
|
|
8
|
+
* соответствует сдвигу курсора один в один.
|
|
9
|
+
*
|
|
10
|
+
* Прямоугольники самих ячеек для этого не годятся: они не равны треку, если у ячейки задан свой
|
|
11
|
+
* `width`, есть `margin` или отключён `stretch`.
|
|
12
|
+
*
|
|
13
|
+
* `null` — значение не разрешилось в пиксели (например, грид скрыт `display: none`): в этом
|
|
14
|
+
* случае считать доли не по чему, и ресайз должен просто не начинаться.
|
|
15
|
+
*/
|
|
16
|
+
export declare const readTrackPixels: (grid: HTMLElement, axis: GridAxis) => number[] | null;
|
|
@@ -36,6 +36,7 @@ export declare const useWidgetContext: <T extends WidgetType = WidgetType.Dashbo
|
|
|
36
36
|
selectAttachmentsFromCatalog: (onApply: (resources: import('@evergis/api').CatalogResourceDc[]) => void) => void;
|
|
37
37
|
config: import('../types').ConfigContainer;
|
|
38
38
|
isEditing: boolean;
|
|
39
|
+
onContainerChange: (config: import('../types').ConfigContainerChild) => void;
|
|
39
40
|
isLoading: boolean;
|
|
40
41
|
pageIndex: number;
|
|
41
42
|
filters: import('../types').SelectedFilters;
|
|
@@ -179,6 +179,25 @@ export interface ConfigLayoutOptions {
|
|
|
179
179
|
radius?: number;
|
|
180
180
|
cornerRadius?: number;
|
|
181
181
|
column?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Превращает `ContainersGroup` в CSS-сетку: его дети трактуются как строки
|
|
184
|
+
* ({@link ContainerTemplate.GridRow}), дети строк — как ячейки (снова `ContainersGroup`),
|
|
185
|
+
* и любая ячейка может включить `grid` у себя — вложенность не ограничена.
|
|
186
|
+
*
|
|
187
|
+
* Доли треков берутся из детей: `options.height` строки и `options.width` ячейки в `fr`
|
|
188
|
+
* (`"2fr"`). Сам узел долю не применяет — её собирает родитель в `grid-template-*`.
|
|
189
|
+
*/
|
|
190
|
+
grid?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Режим редактирования РАСКЛАДКИ сетки: перетаскивание границ, выделение ячеек,
|
|
193
|
+
* контекстное меню с объединением/разделением/удалением. Читается только у внешнего
|
|
194
|
+
* узла с `grid`; вложенные сетки наследуют режим через контекст.
|
|
195
|
+
*
|
|
196
|
+
* Не путать с `editMode` у `DashboardProvider`/`FeatureCardProvider` (в контейнерах —
|
|
197
|
+
* `isEditing`): тот переключает редактирование АТРИБУТОВ объекта и к раскладке отношения
|
|
198
|
+
* не имеет.
|
|
199
|
+
*/
|
|
200
|
+
editMode?: boolean;
|
|
182
201
|
twoColumns?: boolean;
|
|
183
202
|
/** Вписать график контейнера Chart в контейнер: по ширине всегда, по высоте — при заданной высоте (object-fit: contain). */
|
|
184
203
|
fill?: boolean;
|
|
@@ -562,6 +581,7 @@ export declare enum ContainerTemplate {
|
|
|
562
581
|
Pages = "Pages",
|
|
563
582
|
Pagination = "Pagination",
|
|
564
583
|
ContainersGroup = "ContainersGroup",
|
|
584
|
+
GridRow = "GridRow",
|
|
565
585
|
DefaultAttributes = "DefaultAttributes",
|
|
566
586
|
Tabs = "Tabs",
|
|
567
587
|
Attribute = "Attribute",
|
|
@@ -634,6 +654,7 @@ export interface ContainerProps {
|
|
|
634
654
|
index?: number;
|
|
635
655
|
innerComponent?: FC<InnerContainerProps>;
|
|
636
656
|
renderElement?: RenderElementFunction;
|
|
657
|
+
onChange?: (config: ConfigContainerChild) => void;
|
|
637
658
|
}
|
|
638
659
|
export type PieChartDisplayedData = Array<Omit<PieChartData, "value"> & {
|
|
639
660
|
value: string | number;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { GetRenderElementProps, RenderElementFunction } from '../types';
|
|
2
|
-
export declare const getRenderElement: ({ t, config, elementConfig, attributes, layerInfo, selectedTabId, setSelectedTabId, pageIndex, expandedContainers, type, }: GetRenderElementProps) => RenderElementFunction;
|
|
2
|
+
export declare const getRenderElement: ({ t, config, elementConfig, attributes, layerInfo, selectedTabId, setSelectedTabId, pageIndex, expandedContainers, onChange, type, }: GetRenderElementProps) => RenderElementFunction;
|
|
@@ -18,6 +18,8 @@ export interface WrapperSizeParams {
|
|
|
18
18
|
defaultWidth?: CssSize;
|
|
19
19
|
}
|
|
20
20
|
export declare const isFillSize: (size?: CssSize) => boolean;
|
|
21
|
+
/** Доля трека сетки: `"2fr"`, `"1.5fr"`. */
|
|
22
|
+
export declare const isFrSize: (size?: CssSize) => boolean;
|
|
21
23
|
/**
|
|
22
24
|
* CSS-объект корневой обёртки контейнера: внутренние дефолты плюс размеры из `options`.
|
|
23
25
|
*
|
|
@@ -29,7 +31,10 @@ export declare const isFillSize: (size?: CssSize) => boolean;
|
|
|
29
31
|
* (`min-width`/`min-height: 0`). Для fill-высоты добавляется `flex: 1 1 auto` — в колонке
|
|
30
32
|
* контейнер забирает остаток ячейки под заголовком, а не переполняет её на его высоту.
|
|
31
33
|
*
|
|
34
|
+
* Размер в `fr` (`"2fr"`) — это доля трека сетки, адресованная родителю, а не самому узлу;
|
|
35
|
+
* здесь он превращается в тот же fill-режим (см. {@link isFrSize}).
|
|
36
|
+
*
|
|
32
37
|
* `overflow` уходит в CSS как есть и ничем не подменяется: не задан — работает браузерный
|
|
33
38
|
* `visible`, то есть контент крупнее бокса вытекает на соседние слоты.
|
|
34
39
|
*/
|
|
35
|
-
export declare const getWrapperSizeStyle: ({ style, width: widthOption, height, overflow, defaults, defaultWidth, }: WrapperSizeParams) => CSSObject | undefined;
|
|
40
|
+
export declare const getWrapperSizeStyle: ({ style, width: widthOption, height: heightOption, overflow, defaults, defaultWidth, }: WrapperSizeParams) => CSSObject | undefined;
|
|
@@ -11,6 +11,7 @@ export declare const DEFAULT_CIRCLE_STROKE_WIDTH = 0;
|
|
|
11
11
|
export declare const DEFAULT_LINE_WIDTH = 1;
|
|
12
12
|
export declare const DEFAULT_LINE_CAP = "butt";
|
|
13
13
|
export declare const DEFAULT_LINE_JOIN = "miter";
|
|
14
|
+
export declare const DEFAULT_SYMBOL_COLOR = "#000000";
|
|
14
15
|
export declare const DEFAULT_SYMBOL_PLACEMENT = "point";
|
|
15
16
|
export declare const DEFAULT_SYMBOL_SPACING = 250;
|
|
16
17
|
export declare const DEFAULT_ICON_OVERLAP = "never";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FC, PropsWithChildren } from 'react';
|
|
2
2
|
import { CatalogResourceDc, ExtendedProjectInfoDc, QueryLayerServiceInfoDc } from '@evergis/api';
|
|
3
|
-
import { ConfigContainer, DashboardLayerPayload, DashboardState, LayerItemProps, SelectedFilters, WidgetDataSource } from '../../components';
|
|
3
|
+
import { ConfigContainer, ConfigContainerChild, DashboardLayerPayload, DashboardState, LayerItemProps, SelectedFilters, WidgetDataSource } from '../../components';
|
|
4
4
|
export type DashboardContextProps = PropsWithChildren<{
|
|
5
5
|
config?: ConfigContainer;
|
|
6
6
|
containerIds?: string[];
|
|
@@ -11,7 +11,16 @@ export type DashboardContextProps = PropsWithChildren<{
|
|
|
11
11
|
dataSources?: WidgetDataSource[];
|
|
12
12
|
geometryFilter?: boolean;
|
|
13
13
|
loading?: boolean;
|
|
14
|
+
/** Режим редактирования АТРИБУТОВ объекта (в контейнерах — `isEditing`), не раскладки. */
|
|
14
15
|
editMode?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Контейнер изменил собственный конфиг — хост сохраняет его у себя.
|
|
18
|
+
*
|
|
19
|
+
* Источник сейчас один: сетка (`options.grid` + `options.editMode`) после перетаскивания
|
|
20
|
+
* границ или операции над ячейками. Узел приходит целиком и уже с новым содержимым, его `id`
|
|
21
|
+
* лежит внутри — применяется как `replaceObject(config, { id }, next)`.
|
|
22
|
+
*/
|
|
23
|
+
onContainerChange?: (config: ConfigContainerChild) => void;
|
|
15
24
|
filters?: SelectedFilters;
|
|
16
25
|
dashboardLayers?: DashboardState["layers"];
|
|
17
26
|
setDashboardLayer?: (props: DashboardLayerPayload) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { QueryLayerServiceInfoDc } from '@evergis/api';
|
|
3
|
-
import { ClientFeatureAttribute, ConfigContainer, EditAttributeValue, SelectedFilters, WidgetDataSource } from '../../components';
|
|
3
|
+
import { ClientFeatureAttribute, ConfigContainer, ConfigContainerChild, EditAttributeValue, SelectedFilters, WidgetDataSource } from '../../components';
|
|
4
4
|
import { SelectedFeature } from '../../types';
|
|
5
5
|
export type FeatureCardContextSettings = PropsWithChildren<{
|
|
6
6
|
config?: ConfigContainer;
|
|
@@ -9,7 +9,10 @@ export type FeatureCardContextSettings = PropsWithChildren<{
|
|
|
9
9
|
feature?: SelectedFeature;
|
|
10
10
|
pageIndex?: number;
|
|
11
11
|
isRaster?: boolean;
|
|
12
|
+
/** Режим редактирования АТРИБУТОВ объекта (в контейнерах — `isEditing`), не раскладки. */
|
|
12
13
|
editMode?: boolean;
|
|
14
|
+
/** Контейнер изменил собственный конфиг — см. одноимённый проп `DashboardProvider`. */
|
|
15
|
+
onContainerChange?: (config: ConfigContainerChild) => void;
|
|
13
16
|
isFeatureEditable?: boolean;
|
|
14
17
|
hasCopyRights?: boolean;
|
|
15
18
|
editOnly?: boolean;
|