@evergis/react 4.0.59 → 4.0.62

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.
Files changed (63) hide show
  1. package/dist/components/Dashboard/branded.d.ts +52 -0
  2. package/dist/components/Dashboard/componentTypes.d.ts +571 -0
  3. package/dist/components/Dashboard/components/TextTrim/index.d.ts +2 -0
  4. package/dist/components/Dashboard/components/TextTrim/styled.d.ts +4 -0
  5. package/dist/components/Dashboard/containers/AddFeatureContainer/index.d.ts +2 -2
  6. package/dist/components/Dashboard/containers/AttachmentContainer/index.d.ts +2 -2
  7. package/dist/components/Dashboard/containers/CameraContainer/index.d.ts +2 -2
  8. package/dist/components/Dashboard/containers/ChartContainer/index.d.ts +2 -2
  9. package/dist/components/Dashboard/containers/ContainersGroupContainer/index.d.ts +2 -2
  10. package/dist/components/Dashboard/containers/DataSourceContainer/index.d.ts +2 -2
  11. package/dist/components/Dashboard/containers/DataSourceProgressContainer/index.d.ts +2 -2
  12. package/dist/components/Dashboard/containers/DefaultAttributesContainer/index.d.ts +2 -2
  13. package/dist/components/Dashboard/containers/DividerContainer/index.d.ts +2 -2
  14. package/dist/components/Dashboard/containers/EditContainer/components/EditAttachmentContainer.d.ts +2 -2
  15. package/dist/components/Dashboard/containers/EditContainer/components/EditBooleanContainer.d.ts +2 -2
  16. package/dist/components/Dashboard/containers/EditContainer/components/EditCheckboxContainer.d.ts +2 -2
  17. package/dist/components/Dashboard/containers/EditContainer/components/EditChipsContainer.d.ts +2 -2
  18. package/dist/components/Dashboard/containers/EditContainer/components/EditDateContainer.d.ts +2 -2
  19. package/dist/components/Dashboard/containers/EditContainer/components/EditDropdownContainer.d.ts +2 -2
  20. package/dist/components/Dashboard/containers/EditContainer/components/EditGroupContainer.d.ts +2 -2
  21. package/dist/components/Dashboard/containers/EditContainer/components/EditNumberContainer.d.ts +2 -2
  22. package/dist/components/Dashboard/containers/EditContainer/components/EditStringContainer.d.ts +2 -2
  23. package/dist/components/Dashboard/containers/EditContainer/index.d.ts +2 -2
  24. package/dist/components/Dashboard/containers/ExportPdfContainer/index.d.ts +2 -2
  25. package/dist/components/Dashboard/containers/FiltersContainer/index.d.ts +2 -2
  26. package/dist/components/Dashboard/containers/IconContainer/index.d.ts +2 -2
  27. package/dist/components/Dashboard/containers/ImageContainer/index.d.ts +2 -2
  28. package/dist/components/Dashboard/containers/LayersContainer/index.d.ts +2 -2
  29. package/dist/components/Dashboard/containers/OneColumnContainer/index.d.ts +2 -2
  30. package/dist/components/Dashboard/containers/PagesContainer/index.d.ts +2 -2
  31. package/dist/components/Dashboard/containers/SlideshowContainer/index.d.ts +2 -2
  32. package/dist/components/Dashboard/containers/TabsContainer/index.d.ts +2 -2
  33. package/dist/components/Dashboard/containers/TaskContainer/index.d.ts +2 -2
  34. package/dist/components/Dashboard/containers/TitleContainer/index.d.ts +2 -2
  35. package/dist/components/Dashboard/containers/TwoColumnContainer/index.d.ts +2 -2
  36. package/dist/components/Dashboard/containers/UploadContainer/index.d.ts +2 -2
  37. package/dist/components/Dashboard/containers/registry.d.ts +37 -34
  38. package/dist/components/Dashboard/elements/ElementButton/index.d.ts +2 -2
  39. package/dist/components/Dashboard/elements/ElementCamera/types.d.ts +2 -2
  40. package/dist/components/Dashboard/elements/ElementChart/index.d.ts +2 -2
  41. package/dist/components/Dashboard/elements/ElementChips/index.d.ts +2 -2
  42. package/dist/components/Dashboard/elements/ElementControl/index.d.ts +2 -2
  43. package/dist/components/Dashboard/elements/ElementIcon/index.d.ts +2 -2
  44. package/dist/components/Dashboard/elements/ElementImage/index.d.ts +2 -2
  45. package/dist/components/Dashboard/elements/ElementImage/useElementImage.d.ts +11 -0
  46. package/dist/components/Dashboard/elements/ElementLegend/index.d.ts +2 -4
  47. package/dist/components/Dashboard/elements/ElementLink/index.d.ts +2 -2
  48. package/dist/components/Dashboard/elements/ElementMarkdown/index.d.ts +2 -2
  49. package/dist/components/Dashboard/elements/ElementModal/index.d.ts +2 -2
  50. package/dist/components/Dashboard/elements/ElementSlideshow/types.d.ts +2 -2
  51. package/dist/components/Dashboard/elements/ElementSvg/index.d.ts +2 -6
  52. package/dist/components/Dashboard/elements/ElementTooltip/index.d.ts +2 -2
  53. package/dist/components/Dashboard/elements/ElementUploader/index.d.ts +2 -2
  54. package/dist/components/Dashboard/elements/registry.d.ts +12 -14
  55. package/dist/components/Dashboard/hooks/useWidgetConfig.d.ts +5 -1
  56. package/dist/components/Dashboard/hooks/useWidgetContext.d.ts +12 -1
  57. package/dist/components/Dashboard/hooks/useWidgetPage.d.ts +4 -1
  58. package/dist/components/Dashboard/types.d.ts +198 -93
  59. package/dist/index.js +143 -57
  60. package/dist/index.js.map +1 -1
  61. package/dist/react.esm.js +132 -58
  62. package/dist/react.esm.js.map +1 -1
  63. package/package.json +3 -3
@@ -6,6 +6,31 @@ import { CircleLayerSpecification, FillLayerSpecification, LineLayerSpecificatio
6
6
  import { AttributeFormatConfigurationDc, AttributeType, EqlRequestDc, FeatureDc, OgcGeometryType, PagedFeaturesListDc, PositionDc, QueryLayerServiceInfoDc, RemoteTaskStatus, StringSubType, AttributesConfigurationDc } from '@evergis/api';
7
7
  import { FeatureAttributeValue, EditGeometryType, ThemeName } from '../../types';
8
8
  import { InnerContainerProps } from './containers/DataSourceInnerContainer/types';
9
+ export * from './componentTypes';
10
+ export * from './branded';
11
+ /** Список допустимых типов диаграммы. `as const` даёт runtime-доступ для dropdown-ов. */
12
+ export declare const CHART_TYPES: readonly ["bar", "line", "pie", "stack"];
13
+ export type ChartType = (typeof CHART_TYPES)[number];
14
+ /** Выравнивание текста/блоков. */
15
+ export declare const ALIGNMENTS: readonly ["left", "center", "right"];
16
+ export type Alignment = (typeof ALIGNMENTS)[number];
17
+ /** Режим отображения коллекций. */
18
+ export declare const VIEW_MODES: readonly ["grid", "list"];
19
+ export type ViewMode = (typeof VIEW_MODES)[number];
20
+ /**
21
+ * CSS-длина для `fontSize`/etc. Template literal type ловит грубые ошибки вроде
22
+ * `fontSize: "fourteen"`, при этом пропускает корректные `"1rem"`, `"14px"`, `"100%"`, ...
23
+ *
24
+ * Применяется как **opt-in** для нового кода; ConfigOptions.fontSize пока остаётся `string`
25
+ * ради совместимости с legacy-конфигами.
26
+ */
27
+ export type CssLength = `${number}rem` | `${number}px` | `${number}em` | `${number}%`;
28
+ export type DesignToken = `var(--${string})`;
29
+ export type FontSizeToken = CssLength | DesignToken | "larger" | "smaller";
30
+ /** CSS-цвет — рамочная проверка, не валидирует hex-формат полностью. */
31
+ export type CssColor = `#${string}` | `rgb(${string})` | `rgba(${string})` | `hsl(${string})` | `hsla(${string})` | `var(--${string})` | "transparent" | "currentColor" | "inherit";
32
+ /** Расширение файла одной строкой: `".csv"`, `".csv,.txt"`. */
33
+ export type FileExtensions = `.${string}` | `.${string},${string}`;
9
34
  export interface DashboardsProps {
10
35
  zIndex?: CSSProperties["zIndex"];
11
36
  }
@@ -63,120 +88,187 @@ export interface CustomFeatureSelect {
63
88
  layout?: FillLayerSpecification["layout"];
64
89
  };
65
90
  }
66
- export interface ConfigOptions {
67
- innerTemplateName?: ContainerTemplate;
91
+ /**
92
+ * Доменная группировка опций конфига.
93
+ *
94
+ * Идея — разбить flat-интерфейс {@link ConfigOptions} (100+ полей) на тематические миксины:
95
+ * Layout, Typography, Chart, Visual, ... — чтобы `<Name>Options` можно было собирать через
96
+ * `Pick<ConfigLayoutOptions, ...>` и сразу видеть «характер компонента».
97
+ *
98
+ * `ConfigOptions` остаётся плоским fallback-объединением всех доменов (extends всех миксинов),
99
+ * поэтому существующий код, использующий `Pick<ConfigOptions, ...>`, продолжает работать.
100
+ *
101
+ * Поля с пометкой ⚠️ entity-ref — это runtime-связи (`chartId`, `tabId`, `filterName`, ...),
102
+ * концептуально принадлежат домену {@link ConfigEntityRefOptions} и могут получить branded types.
103
+ */
104
+ /** Размеры и раскладка. */
105
+ export interface ConfigLayoutOptions {
106
+ width?: number;
107
+ height?: number;
108
+ padding?: number;
109
+ radius?: number;
110
+ cornerRadius?: number;
111
+ column?: boolean;
112
+ twoColumns?: boolean;
113
+ align?: Alignment;
114
+ center?: boolean;
68
115
  innerTemplateStyle?: CSSProperties;
69
- position?: PositionDc;
70
- themeName?: ThemeName;
71
- relatedDataSources?: ConfigRelatedDataSource[];
72
- relatedAttributes?: ConfigRelatedAttribute[];
73
- relatedResources?: ConfigRelatedResource[];
74
- statusColors?: Record<RemoteTaskStatus, string>;
75
- chartType?: "bar" | "line" | "pie" | "stack";
76
- layerNames?: string[];
77
- layerName?: string;
78
- geometryType?: OgcGeometryType | EditGeometryType;
79
- fileExtensions?: string;
80
- parentResourceId?: string;
81
- srid?: string;
82
- title?: string;
83
- label?: string;
84
116
  withPadding?: boolean;
85
117
  withDivider?: boolean;
86
- dotSnapping?: boolean;
87
118
  bottomBlur?: boolean;
88
- tagView?: boolean;
89
- simple?: boolean;
90
- downloadById?: string;
91
- separator?: string;
92
- lineBreak?: string;
93
- image?: string;
94
- overlay?: string;
119
+ noMargin?: boolean;
120
+ maxTextWidth?: number;
121
+ barWidth?: number;
122
+ barHeight?: number;
123
+ }
124
+ /** Типографика и цвета. */
125
+ export interface ConfigTypographyOptions {
126
+ fontSize?: string;
127
+ fontColor?: string;
95
128
  bgColor?: string;
129
+ backgroundColor?: string;
130
+ primaryColor?: string;
131
+ defaultColor?: string;
96
132
  noBg?: boolean;
97
- center?: boolean;
98
- fontColor?: string;
99
- fontSize?: string;
100
- placeholder?: string;
101
- step?: number;
102
- limit?: number;
103
- radius?: number;
104
- cornerRadius?: number;
105
- padding?: number;
106
- trim?: boolean;
107
- twoColumns?: boolean;
108
- inlineUnits?: boolean;
109
- noUnits?: boolean;
110
- noEmptyOption?: boolean;
111
- noMargin?: boolean;
133
+ colors?: string[];
134
+ colorAttribute?: string;
135
+ statusColors?: Record<RemoteTaskStatus, string>;
136
+ }
137
+ /** Поведение «раскрытия». */
138
+ export interface ConfigExpandableOptions {
139
+ expandable?: boolean;
140
+ expanded?: boolean;
141
+ expandLength?: number;
142
+ }
143
+ /** Связь с источником данных. */
144
+ export interface ConfigDataSourceBindingOptions {
145
+ /** ⚠️ entity-ref: имя источника. */
146
+ relatedDataSource?: string;
147
+ relatedDataSources?: ConfigRelatedDataSource[];
148
+ relatedAttributes?: ConfigRelatedAttribute[];
149
+ relatedResources?: ConfigRelatedResource[];
150
+ responseFilters?: Record<string, string>;
151
+ hideIfEmptyDataSource?: string;
152
+ }
153
+ /** Опции графика. */
154
+ export interface ConfigChartOptions {
155
+ chartType?: ChartType;
156
+ /** ⚠️ entity-ref: ссылка на ChartContainer по id. */
112
157
  chartId?: string;
158
+ markers?: BarChartMarker[] | string;
159
+ showLabels?: boolean;
160
+ showMarkers?: number;
113
161
  showTotal?: boolean;
114
162
  totalWord?: string;
115
163
  totalAttribute?: string;
116
- hideTitle?: boolean;
117
- width?: number;
118
- height?: number;
119
- barWidth?: number;
120
- barHeight?: number;
121
- showLabels?: boolean;
122
- showMarkers?: number;
123
- markers?: BarChartMarker[] | string;
164
+ dotSnapping?: boolean;
124
165
  drawMinMax?: boolean;
125
- attributes?: string[];
126
- attributesExclude?: string[];
127
- useProjectHiddenAttributes?: boolean;
128
- colors?: string[];
129
- defaultColor?: string;
130
- primaryColor?: string;
166
+ angle?: number;
167
+ }
168
+ /** Иконки/изображения. */
169
+ export interface ConfigVisualOptions {
170
+ icon?: IconTypesKeys;
171
+ iconAttribute?: string;
172
+ image?: string;
173
+ overlay?: string;
174
+ onlyIcon?: boolean;
175
+ bigIcon?: boolean;
176
+ big?: boolean;
177
+ tagView?: boolean;
178
+ }
179
+ /** Текст/заголовок. */
180
+ export interface ConfigTextDisplayOptions {
181
+ title?: string;
182
+ label?: string;
183
+ placeholder?: string;
184
+ hideTitle?: boolean;
185
+ simple?: boolean;
131
186
  maxLength?: number;
132
- maxValue?: number | Date;
133
- minValue?: number | Date;
134
- withTime?: boolean;
135
- multiSelect?: boolean;
136
- variants?: IOption[] | ChipOption[];
187
+ wordBreak?: "break-word" | "break-all";
188
+ separator?: string;
189
+ lineBreak?: string;
190
+ }
191
+ /** Список/коллекция. */
192
+ export interface ConfigCollectionOptions {
137
193
  shownItems?: number;
138
194
  otherItems?: number;
139
- angle?: number;
140
- resolution?: number;
141
195
  orderByValue?: boolean;
142
196
  orderByTitle?: boolean;
143
- expandable?: boolean;
144
- expanded?: boolean;
145
- expandLength?: number;
146
- wrap?: boolean;
147
- icon?: IconTypesKeys;
148
- iconUrl?: string;
149
- big?: boolean;
150
- bigIcon?: boolean;
151
- onlyIcon?: boolean;
197
+ viewMode?: ViewMode;
152
198
  hideEmpty?: boolean;
153
- hideIfEmptyDataSource?: string;
154
- innerValue?: boolean;
155
- groupTooltip?: boolean;
156
- tabId?: string;
157
- column?: boolean;
158
- relatedDataSource?: string;
159
- responseFilters?: Record<string, string>;
199
+ limit?: number;
200
+ }
201
+ /** Карта/слои. */
202
+ export interface ConfigMapLayerOptions {
203
+ /** ⚠️ entity-ref: имя слоя. */
204
+ layerName?: string;
205
+ /** ⚠️ entity-ref: имена слоёв. */
206
+ layerNames?: string[];
207
+ geometryType?: OgcGeometryType | EditGeometryType;
208
+ baseMapName?: string;
209
+ baseMapSettings?: Record<string, BaseMapSettings>;
210
+ expandedLayers?: boolean;
211
+ customFeatureSelect?: CustomFeatureSelect;
212
+ pitch?: number;
213
+ bearing?: number;
214
+ srid?: string;
215
+ maxZoomTo?: number;
216
+ position?: PositionDc;
217
+ resolution?: number;
218
+ }
219
+ /** Контролы редактирования / фильтры. */
220
+ export interface ConfigEditOptions {
160
221
  control?: ConfigControl;
161
222
  controls?: ConfigControl[];
223
+ /** ⚠️ entity-ref на ConfigFilter. */
162
224
  filterName?: string;
225
+ /** ⚠️ entity-ref на ConfigFilter. */
163
226
  searchFilterName?: string;
164
- colorAttribute?: string;
165
- iconAttribute?: string;
166
- maxTextWidth?: number;
167
- backgroundColor?: string;
168
- align?: "left" | "center" | "right";
169
- pitch?: number;
170
- bearing?: number;
171
- projection?: string;
172
- baseMapName?: string;
173
- baseMapSettings?: Record<string, BaseMapSettings>;
174
- expandedLayers?: boolean;
227
+ variants?: IOption[] | ChipOption[];
228
+ multiSelect?: boolean;
229
+ withTime?: boolean;
230
+ step?: number;
231
+ minValue?: number | Date;
232
+ maxValue?: number | Date;
233
+ noEmptyOption?: boolean;
234
+ fileExtensions?: string;
235
+ }
236
+ /** Ссылки на сущности по id/name. */
237
+ export interface ConfigEntityRefOptions {
238
+ chartId?: string;
175
239
  modalId?: string;
240
+ tabId?: string;
241
+ filterName?: string;
242
+ searchFilterName?: string;
243
+ layerName?: string;
244
+ layerNames?: string[];
245
+ relatedDataSource?: string;
246
+ parentResourceId?: string;
247
+ downloadById?: string;
248
+ }
249
+ /** Прочее — поля без явного домена, обычно широкого назначения. */
250
+ export interface ConfigMiscOptions {
251
+ innerTemplateName?: ContainerTemplate;
252
+ themeName?: ThemeName;
176
253
  url?: string;
177
- maxZoomTo?: number;
178
- customFeatureSelect?: CustomFeatureSelect;
179
- viewMode?: "grid" | "list";
254
+ inlineUnits?: boolean;
255
+ noUnits?: boolean;
256
+ attributes?: string[];
257
+ useProjectHiddenAttributes?: boolean;
258
+ innerValue?: boolean;
259
+ groupTooltip?: boolean;
260
+ wrap?: boolean;
261
+ modalId?: string;
262
+ tabId?: string;
263
+ downloadById?: string;
264
+ parentResourceId?: string;
265
+ }
266
+ /**
267
+ * Flat-объединение всех доменных миксинов. Существующие места, использующие
268
+ * `Pick<ConfigOptions, ...>`, продолжают работать. Для нового кода предпочтительно делать
269
+ * `Pick<Config<Domain>Options, ...>` — это лучше документирует, к какому домену относится опция.
270
+ */
271
+ export interface ConfigOptions extends ConfigLayoutOptions, ConfigTypographyOptions, ConfigExpandableOptions, ConfigDataSourceBindingOptions, ConfigChartOptions, ConfigVisualOptions, ConfigTextDisplayOptions, ConfigCollectionOptions, ConfigMapLayerOptions, ConfigEditOptions, ConfigMiscOptions {
180
272
  }
181
273
  export interface ConfigDataSource {
182
274
  name: string;
@@ -292,9 +384,23 @@ export interface ConfigContainer {
292
384
  header?: ConfigContainerHeader;
293
385
  }
294
386
  export type FilterType = "checkbox" | "rangeNumber" | "rangeDate" | "text" | "dropdown" | "barChart" | "chips";
387
+ /**
388
+ * Литеральный union значений {@link ConfigContainerChild.type}.
389
+ *
390
+ * Делится на две группы:
391
+ * - text/attribute-рендеры (обрабатываются в `utils/getElementValue.tsx`): `"text"`, `"attributeAlias"`,
392
+ * `"attributeValue"`, `"attributeUnits"`, `"attributeDescription"`, `"layerName"`.
393
+ * - элементы-компоненты (`elements/registry.ts`): `"control"`, `"image"`, `"slideshow"`, `"svg"`,
394
+ * `"icon"`, `"tooltip"`, `"tags"`, `"link"`, `"button"`, `"camera"`, `"chart"`, `"legend"`,
395
+ * `"markdown"`, `"uploader"`, `"modal"`.
396
+ *
397
+ * Slot-id (`"alias"`, `"value"`, `"units"`, ...) сюда **не относится** — это значения поля
398
+ * `id`, см. parent-specific child-типы.
399
+ */
400
+ export type ConfigElementType = "text" | "attributeAlias" | "attributeValue" | "attributeUnits" | "attributeDescription" | "layerName" | "control" | "image" | "slideshow" | "svg" | "icon" | "tooltip" | "tags" | "link" | "button" | "camera" | "chart" | "legend" | "markdown" | "uploader" | "modal";
295
401
  export interface ConfigContainerChild extends Partial<ConfigContainer> {
296
402
  id?: string;
297
- type?: string;
403
+ type?: ConfigElementType;
298
404
  templateName?: ContainerTemplate | HeaderTemplate;
299
405
  value?: string | number;
300
406
  defaultValue?: string | number;
@@ -420,4 +526,3 @@ export type ClientFeatureAttribute = {
420
526
  stringFormat?: AttributeFormatConfigurationDc;
421
527
  clientData?: unknown;
422
528
  };
423
- export {};