widget-common-container 0.0.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/.angular/cache/19.2.26/ng-packagr/0997d7866dbb7999756bcd6dce071e827244865f4ff149c26d049d1515686b01 +1 -0
- package/.angular/cache/19.2.26/ng-packagr/882519e10fb587011272af89a34932495c0e2cc97d0c030536d1033ee55ce561 +1 -0
- package/.angular/cache/19.2.26/ng-packagr/8b15b546ec32b4e82b20945f62d23ba911050bdc6a4a60d34875eea6fe236635 +1 -0
- package/.angular/cache/19.2.26/ng-packagr/9711df1afdc00e2ac901d2b22d9559a220e74d16c0bf6d3917e410c565aed496 +1 -0
- package/.angular/cache/19.2.26/ng-packagr/tsbuildinfo/inspark-widget-common.tsbuildinfo +1 -0
- package/.editorconfig +13 -0
- package/.eslintrc.json +28 -0
- package/README.md +27 -0
- package/angular.json +46 -0
- package/e2e/protractor.conf.js +28 -0
- package/e2e/src/app.e2e-spec.ts +14 -0
- package/e2e/src/app.po.ts +11 -0
- package/e2e/tsconfig.e2e.json +13 -0
- package/package.json +75 -0
- package/projects/widget-common/copy.json +8 -0
- package/projects/widget-common/karma.conf.js +31 -0
- package/projects/widget-common/ng-package.json +7 -0
- package/projects/widget-common/package-lock.json +78 -0
- package/projects/widget-common/package.json +23 -0
- package/projects/widget-common/src/assets/error.svg +6 -0
- package/projects/widget-common/src/assets/falsevalue.svg +6 -0
- package/projects/widget-common/src/assets/icon.svg +6 -0
- package/projects/widget-common/src/assets/none.svg +6 -0
- package/projects/widget-common/src/assets/success.svg +6 -0
- package/projects/widget-common/src/assets/warning.svg +6 -0
- package/projects/widget-common/src/lib/common.ts +23 -0
- package/projects/widget-common/src/lib/communication.service.ts +59 -0
- package/projects/widget-common/src/lib/echart/echart.component.html +2 -0
- package/projects/widget-common/src/lib/echart/echart.component.scss +40 -0
- package/projects/widget-common/src/lib/echart/echart.component.ts +703 -0
- package/projects/widget-common/src/lib/echart/en.ts +156 -0
- package/projects/widget-common/src/lib/echart/ru.ts +156 -0
- package/projects/widget-common/src/lib/forge/ParamAssign.ts +187 -0
- package/projects/widget-common/src/lib/forge/Script.service.ts +86 -0
- package/projects/widget-common/src/lib/forge/extenstion.ts +263 -0
- package/projects/widget-common/src/lib/forge/forge.component.html +2 -0
- package/projects/widget-common/src/lib/forge/forge.component.scss +6 -0
- package/projects/widget-common/src/lib/forge/forge.component.ts +184 -0
- package/projects/widget-common/src/lib/forge/forge.interface.ts +4 -0
- package/projects/widget-common/src/lib/loader.ts +19 -0
- package/projects/widget-common/src/lib/pie-chart/pie-chart.component.html +1 -0
- package/projects/widget-common/src/lib/pie-chart/pie-chart.component.scss +3 -0
- package/projects/widget-common/src/lib/pie-chart/pie-chart.component.ts +252 -0
- package/projects/widget-common/src/lib/shared.module.ts +40 -0
- package/projects/widget-common/src/lib/sprintf.ts +212 -0
- package/projects/widget-common/src/lib/widget-container/widget-container.component.ts +53 -0
- package/projects/widget-common/src/lib/widget.api.ts +24 -0
- package/projects/widget-common/src/lib/widget.component.ts +87 -0
- package/projects/widget-common/src/lib/widget.dialog.ts +14 -0
- package/projects/widget-common/src/lib/widget.generator.ts +1532 -0
- package/projects/widget-common/src/lib/widget.interface.ts +871 -0
- package/projects/widget-common/src/lib/widget.utils.ts +634 -0
- package/projects/widget-common/src/public_api.ts +9 -0
- package/projects/widget-common/src/scss/main.scss +24 -0
- package/projects/widget-common/src/test.ts +22 -0
- package/projects/widget-common/tsconfig.lib.json +38 -0
- package/projects/widget-common/tsconfig.lib.prod.json +6 -0
- package/projects/widget-common/tsconfig.spec.json +17 -0
- package/projects/widget-common/tslint.json +17 -0
- package/projects/widget-common/versions/full/copy.json +15 -0
- package/projects/widget-common/versions/full/package.json +7 -0
- package/projects/widget-common/versions/full/public_api.ts +19 -0
- package/projects/widget-common/versions/interfaces/copy.json +15 -0
- package/projects/widget-common/versions/interfaces/package.json +7 -0
- package/projects/widget-common/versions/interfaces/public_api.ts +9 -0
- package/src/app/app.component.html +20 -0
- package/src/app/app.component.scss +0 -0
- package/src/app/app.component.spec.ts +31 -0
- package/src/app/app.component.ts +10 -0
- package/src/app/app.module.ts +16 -0
- package/src/assets/.gitkeep +0 -0
- package/src/browserslist +11 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +16 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +14 -0
- package/src/karma.conf.js +31 -0
- package/src/main.ts +12 -0
- package/src/polyfills.ts +80 -0
- package/src/styles.scss +1 -0
- package/src/test.ts +20 -0
- package/src/tsconfig.app.json +11 -0
- package/src/tsconfig.spec.json +18 -0
- package/src/tslint.json +17 -0
- package/tsconfig.json +34 -0
- package/tslint.json +131 -0
- package/update_full.js +27 -0
|
@@ -0,0 +1,871 @@
|
|
|
1
|
+
export enum ITEM_TYPE {
|
|
2
|
+
'single' = 1, // Единичные значения параметров
|
|
3
|
+
'series' = 2, // Ряды данных
|
|
4
|
+
'events' = 3, // Лента событий
|
|
5
|
+
'sysinfo' = 4, // Системные событий
|
|
6
|
+
'interval' = 5, // Значения параметров на заданном интервале
|
|
7
|
+
'table' = 6, // Таблица значений параметров
|
|
8
|
+
'custom' = 7, // Поле не требующее обработки сервера
|
|
9
|
+
'object' = 8, // Объект
|
|
10
|
+
'objstate' = 9, // Объект
|
|
11
|
+
'liftinfo' = 10, // Классификатор + объекты
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// нет контроля, норма, отклонение, критическое, хз todo Скорей всего нужно перенести в css
|
|
15
|
+
export const STATE_COLORS = ['#FFFAFA', '#00e4c8', '#ffd452', '#c95e46', '#f71800', '#008B8B', '#5F9EA0'];
|
|
16
|
+
|
|
17
|
+
// Типы параметров
|
|
18
|
+
export enum PARAM_TYPE {
|
|
19
|
+
'signal' = 1, // сигнальный
|
|
20
|
+
'value' = 2, // мгновенное значение
|
|
21
|
+
'increment' = 3, // нарастающий итог
|
|
22
|
+
'pulse_counter' = 4, // счетчик импульсов
|
|
23
|
+
'string' = 5, // строковый
|
|
24
|
+
'image' = 6, // изображение
|
|
25
|
+
'text' = 7, // текстовый
|
|
26
|
+
'coordinates' = 8, // Координаты
|
|
27
|
+
|
|
28
|
+
'custom_string' = 11,
|
|
29
|
+
'custom_archer' = 12,
|
|
30
|
+
'custom_external' = 13, // загрузка параметров через внешний файл
|
|
31
|
+
'custom_file' = 14, // загрузка файлов
|
|
32
|
+
'custom_json' = 15, // Текст JSON
|
|
33
|
+
'custom_select' = 16, // Список
|
|
34
|
+
'custom_forge' = 17, // Работа с Autodesk Forge
|
|
35
|
+
'custom_dashboard' = 18,
|
|
36
|
+
'custom_objstate' = 19,
|
|
37
|
+
'custom_fuxa' = 20,
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
// группа виртуальных объектов для работы конфигуратора
|
|
41
|
+
'virtual_object' = 90,
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const PARAM_TYPE_ITOS = {
|
|
46
|
+
1: 'param_type_signal',
|
|
47
|
+
2: 'param_type_value',
|
|
48
|
+
3: 'param_type_increment'
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Типы значений
|
|
52
|
+
export enum VALUE_TYPE {
|
|
53
|
+
'absolute' = 1,
|
|
54
|
+
'relative' = 2,
|
|
55
|
+
'signal' = 3,
|
|
56
|
+
'increment' = 4,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
// Возможные пересечения типа параметров и типа значения
|
|
61
|
+
export const INTERVAL_PARAM_VALUE = {
|
|
62
|
+
[PARAM_TYPE.signal]: [VALUE_TYPE.signal],
|
|
63
|
+
[PARAM_TYPE.value]: [VALUE_TYPE.absolute, VALUE_TYPE.relative],
|
|
64
|
+
[PARAM_TYPE.increment]: [VALUE_TYPE.absolute, VALUE_TYPE.relative, VALUE_TYPE.increment]
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const SINGLE_PARAM_VALUE = {
|
|
68
|
+
[PARAM_TYPE.signal]: [VALUE_TYPE.signal],
|
|
69
|
+
[PARAM_TYPE.value]: [VALUE_TYPE.absolute, VALUE_TYPE.relative],
|
|
70
|
+
[PARAM_TYPE.increment]: [VALUE_TYPE.absolute, VALUE_TYPE.relative]
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
export interface Border {
|
|
75
|
+
state: { id: number, name: string, color: string, comment: string };
|
|
76
|
+
intervals: { from: number, to: number }[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
export interface ItemSingle extends IWidgetParam<ParamConfigSingle> {
|
|
81
|
+
value: any;
|
|
82
|
+
data: SingleValue;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ItemInterval extends IWidgetParam<ParamConfigInterval> {
|
|
86
|
+
value: any;
|
|
87
|
+
data: IntervalValue;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface ItemSysInfo extends IWidgetParam<ParamConfigSysInfo> {
|
|
91
|
+
data: SysInfoValue;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface ItemLiftInfo extends IWidgetParam<ParamConfigLiftInfo> {
|
|
95
|
+
data: LiftInfoValue;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface ItemSeries extends IWidgetParam<ParamConfigSeries> {
|
|
99
|
+
value: any;
|
|
100
|
+
data: SeriesValue;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface ItemTable extends IWidgetParam {
|
|
104
|
+
values: TableValues;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface ItemCustom extends IWidgetParam<ParamConfigCustom> {
|
|
108
|
+
value: any;
|
|
109
|
+
files?: any; // For Archer
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface ItemParent {
|
|
113
|
+
[k: string]: WidgetItem | WidgetItem[] | ParamConfig;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export type WidgetItem = any | ItemSingle | ItemTable | ItemSeries | ItemInterval | ItemParent
|
|
117
|
+
| EventValues | SysInfoValue | ObjStateValues | LiftInfoValue;
|
|
118
|
+
|
|
119
|
+
export interface WidgetItems {
|
|
120
|
+
[k: string]: WidgetItem;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
export enum SiteTheme {
|
|
125
|
+
'dark' = 'dark',
|
|
126
|
+
'light' = 'light'
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
export type IWidgetParamTable<TConfig = any> = IWidgetParam<TConfig>[][];
|
|
131
|
+
|
|
132
|
+
// структура для конфигуратора
|
|
133
|
+
export interface ParamConfigurator<TConfig = any> {
|
|
134
|
+
name: string;
|
|
135
|
+
title: string;
|
|
136
|
+
itemType: ITEM_TYPE;
|
|
137
|
+
paramType: PARAM_TYPE;
|
|
138
|
+
value?: IWidgetParam<TConfig>; // Для обычных значений
|
|
139
|
+
values?: IWidgetParamTable<TConfig>; // Для табличных значений
|
|
140
|
+
items?: ParamConfigurator[];
|
|
141
|
+
isArray?: boolean;
|
|
142
|
+
maxItems?: number;
|
|
143
|
+
parent: ParamConfigurator;
|
|
144
|
+
views?: string[]; // Варианты представлений параметра
|
|
145
|
+
viewConfig?: IWidgetParamConfig;
|
|
146
|
+
config?: ParamConfigInterval | ParamConfigSeries | ParamConfigSingle | ParamConfigEvents | ParamConfigCustom;
|
|
147
|
+
filter?: any;
|
|
148
|
+
generateConfig?: GenerateConfig;
|
|
149
|
+
param?: WidgetParamChildren;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export interface GenerateConfig extends GenerateConfigItem {
|
|
153
|
+
count?: number;
|
|
154
|
+
items?: GenerateConfigItem[];
|
|
155
|
+
pictureId?: boolean;
|
|
156
|
+
|
|
157
|
+
// Для таблиц
|
|
158
|
+
columns?: number;
|
|
159
|
+
rows?: number;
|
|
160
|
+
visibleRow?: boolean;
|
|
161
|
+
visibleCol?: boolean;
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
// Для событий
|
|
165
|
+
duration?: SeriesDuration;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
export interface GenerateConfigItem {
|
|
169
|
+
// Для всех параметров
|
|
170
|
+
pageLink?: boolean;
|
|
171
|
+
editable?: boolean;
|
|
172
|
+
data?: boolean;
|
|
173
|
+
param?: boolean;
|
|
174
|
+
locked?: boolean;
|
|
175
|
+
isIcon?: boolean;
|
|
176
|
+
iconSet?: boolean;
|
|
177
|
+
title?: string;
|
|
178
|
+
view?: string; // Тип отображения
|
|
179
|
+
isWorkingDevice?: boolean;
|
|
180
|
+
state?: number;
|
|
181
|
+
ctrability?: boolean;
|
|
182
|
+
value?: any;
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
// Для мгновенных
|
|
186
|
+
borders?: boolean;
|
|
187
|
+
|
|
188
|
+
// Для кастомных
|
|
189
|
+
paragraphCount?: number;
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
// устроства
|
|
193
|
+
isOnline?: boolean;
|
|
194
|
+
|
|
195
|
+
// Для арчера
|
|
196
|
+
files?: { [k: string]: string };
|
|
197
|
+
archer?: any;
|
|
198
|
+
|
|
199
|
+
// для списка
|
|
200
|
+
selectValue?: number | string;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// @ts-ignore
|
|
204
|
+
export enum PARAM_STATE {
|
|
205
|
+
'falsevalue' = -1,
|
|
206
|
+
'none' = 0,
|
|
207
|
+
'success' = 1,
|
|
208
|
+
'warning' = 2,
|
|
209
|
+
'error' = 3,
|
|
210
|
+
'maintenance' = 4,
|
|
211
|
+
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export const PARAM_STATE_INT = [];
|
|
215
|
+
|
|
216
|
+
PARAM_STATE_INT['-1'] = 'falsevalue';
|
|
217
|
+
PARAM_STATE_INT[0] = 'none';
|
|
218
|
+
PARAM_STATE_INT[1] = 'success';
|
|
219
|
+
PARAM_STATE_INT[2] = 'warning';
|
|
220
|
+
PARAM_STATE_INT[3] = 'error';
|
|
221
|
+
PARAM_STATE_INT[4] = 'maintenance';
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
export interface IWidgetDeviceParam {
|
|
225
|
+
controller?: { id: number, serialnumber: string, isOnline?: boolean };
|
|
226
|
+
object?: { id: number, shortname: string, fullname: string, timezone: number, latitude: number, longitude: number };
|
|
227
|
+
param: IWidgetDeviceParamData;
|
|
228
|
+
zone?: { id: number; name: string };
|
|
229
|
+
room?: { id: number; name: string };
|
|
230
|
+
unit?: { id: number; name: string };
|
|
231
|
+
classifier?: { id: number; name: string };
|
|
232
|
+
isWorking?: boolean;
|
|
233
|
+
state?: { id?: number, name?: string, comment?: string };
|
|
234
|
+
sysState?: {
|
|
235
|
+
comment: string;
|
|
236
|
+
id: number;
|
|
237
|
+
color: string;
|
|
238
|
+
name: string
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export interface IWidgetDeviceParamData {
|
|
243
|
+
id?: number;
|
|
244
|
+
calc?: boolean;
|
|
245
|
+
name?: string;
|
|
246
|
+
type?: PARAM_TYPE;
|
|
247
|
+
value?: any;
|
|
248
|
+
valueDate?: string;
|
|
249
|
+
measure?: IWidgetDeviceParamMeasure;
|
|
250
|
+
ctrability?: boolean;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export interface IWidgetDeviceParamMeasure {
|
|
254
|
+
title: string;
|
|
255
|
+
unit: string;
|
|
256
|
+
id: number;
|
|
257
|
+
icon: IWidgetIconInfo;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Структура для хранения информации о параметры для виджетов
|
|
261
|
+
export interface IWidgetParam<TConfig = any> {
|
|
262
|
+
id?: number;
|
|
263
|
+
device: IWidgetDeviceParam;
|
|
264
|
+
calc?: boolean;
|
|
265
|
+
widgetId: number;
|
|
266
|
+
refName: string;
|
|
267
|
+
itemType: ITEM_TYPE;
|
|
268
|
+
paramType?: PARAM_TYPE;
|
|
269
|
+
title: string;
|
|
270
|
+
config: TConfig;
|
|
271
|
+
filter?: any;
|
|
272
|
+
viewConfig?: IWidgetParamConfig;
|
|
273
|
+
icons?: {
|
|
274
|
+
falsevalue: string;
|
|
275
|
+
none: string;
|
|
276
|
+
success: string;
|
|
277
|
+
warning: string;
|
|
278
|
+
error: string;
|
|
279
|
+
};
|
|
280
|
+
files?: any;
|
|
281
|
+
custom?: any;
|
|
282
|
+
custom_data?: any;
|
|
283
|
+
borders?: Border[];
|
|
284
|
+
dashboardLink?: { dashname?: string, id?: number };
|
|
285
|
+
isEditing?: boolean; // Параметр, обозначающий, что поле редактируется
|
|
286
|
+
canEditable?: boolean; // Может ли параметр редактироваться
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export type ColumnWidthType = 'auto' | 'fit-content' | 'fix';
|
|
290
|
+
|
|
291
|
+
export type ColumnSizeUnity = 'px' | '%';
|
|
292
|
+
|
|
293
|
+
export interface IRowConfig {
|
|
294
|
+
name: string;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export interface IColConfig {
|
|
298
|
+
name: string;
|
|
299
|
+
widthType?: ColumnWidthType;
|
|
300
|
+
size?: { value: number; unit: ColumnSizeUnity };
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
export interface IWidgetParamConfig {
|
|
304
|
+
formatValue?: string;
|
|
305
|
+
view?: string;
|
|
306
|
+
/**
|
|
307
|
+
* @deprecated Use table.rowConfig
|
|
308
|
+
*/
|
|
309
|
+
rows?: number;
|
|
310
|
+
/**
|
|
311
|
+
* @deprecated Use table.rowConfig
|
|
312
|
+
*/
|
|
313
|
+
cols?: number;
|
|
314
|
+
/**
|
|
315
|
+
* @deprecated Use table.rowConfig
|
|
316
|
+
*/
|
|
317
|
+
rowsName?: string[]; // @deprecated
|
|
318
|
+
/**
|
|
319
|
+
* @deprecated Use table.colConfig
|
|
320
|
+
*/
|
|
321
|
+
colsName?: string[]; // @deprecated
|
|
322
|
+
/**
|
|
323
|
+
* @deprecated Use table.visibleRow
|
|
324
|
+
*/
|
|
325
|
+
visibleRow?: boolean; // @deprecated
|
|
326
|
+
/**
|
|
327
|
+
* @deprecated Use table.visibleCol
|
|
328
|
+
*/
|
|
329
|
+
visibleCol?: boolean; // @deprecated
|
|
330
|
+
table?: {
|
|
331
|
+
rowConfig?: IRowConfig[];
|
|
332
|
+
colConfig?: IColConfig[];
|
|
333
|
+
visibleRow?: boolean;
|
|
334
|
+
visibleCol?: boolean;
|
|
335
|
+
rows?: number;
|
|
336
|
+
cols?: number;
|
|
337
|
+
};
|
|
338
|
+
files?: { [k: string]: any };
|
|
339
|
+
selectValue?: number | string;
|
|
340
|
+
|
|
341
|
+
name?: string; // Для хранение внутреннего названия
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
export enum SeriesDuration {
|
|
346
|
+
'day' = 'day',
|
|
347
|
+
'week' = 'week',
|
|
348
|
+
'month' = 'month'
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Тип ленты событий
|
|
352
|
+
export enum LineType {
|
|
353
|
+
'eventlog' = 1,
|
|
354
|
+
'setvaluelog' = 2,
|
|
355
|
+
'commandlog' = 3
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
export enum ChartTypes {
|
|
360
|
+
'lineChart' = 'lineChart',
|
|
361
|
+
'candlestickBarChart' = 'candlestickBarChart',
|
|
362
|
+
'stackedAreaChart' = 'stackedAreaChart',
|
|
363
|
+
'histogramChart' = 'histogramChart',
|
|
364
|
+
'pieChart' = 'pieChart',
|
|
365
|
+
'intervalPieChart' = 'intervalPieChart'
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
export enum ChartViews {
|
|
369
|
+
'lineChart' = 'lineChart',
|
|
370
|
+
'lineWeekend' = 'lineWeekend',
|
|
371
|
+
'candlestickBarChart' = 'candlestickBarChart',
|
|
372
|
+
'stackedAreaChart' = 'stackedAreaChart',
|
|
373
|
+
'histogramChart' = 'histogramChart',
|
|
374
|
+
'pieChart' = 'pieChart',
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
export const ChartViewToType = {
|
|
379
|
+
[ChartViews.lineChart]: ChartTypes.lineChart,
|
|
380
|
+
[ChartViews.candlestickBarChart]: ChartTypes.candlestickBarChart,
|
|
381
|
+
[ChartViews.stackedAreaChart]: ChartTypes.stackedAreaChart,
|
|
382
|
+
[ChartViews.histogramChart]: ChartTypes.histogramChart,
|
|
383
|
+
[ChartViews.lineWeekend]: ChartTypes.lineChart,
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
export const ChartTypeToView = {
|
|
387
|
+
[ChartTypes.lineChart]: ChartViews.lineChart,
|
|
388
|
+
[ChartTypes.candlestickBarChart]: ChartViews.candlestickBarChart,
|
|
389
|
+
[ChartTypes.stackedAreaChart]: ChartViews.stackedAreaChart,
|
|
390
|
+
[ChartTypes.histogramChart]: ChartViews.histogramChart,
|
|
391
|
+
[ChartTypes.lineChart]: ChartViews.lineWeekend,
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
export interface ParamConfigSingle {
|
|
395
|
+
valueType?: number;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
export interface ParamConfigInterval {
|
|
400
|
+
dailyRange: string;
|
|
401
|
+
stateMap: boolean;
|
|
402
|
+
valueType: number;
|
|
403
|
+
duration: SeriesDuration;
|
|
404
|
+
count: number;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
export interface ParamConfigSeries {
|
|
409
|
+
duration?: SeriesDuration; // временной интервал
|
|
410
|
+
count?: number; // смещение временного интервала от текущей даты в единицах <duration> (1 day, 2 week ...)
|
|
411
|
+
charttype?: ChartTypes;
|
|
412
|
+
viewtype?: ChartViews;
|
|
413
|
+
generator?: boolean;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
export interface ParamConfigEvents {
|
|
417
|
+
lineType?: number; // События, команды, уставки
|
|
418
|
+
attrList?: string[]; // Список и относительное расположение выдаваемых атрибутов
|
|
419
|
+
titleList?: string[]; // Список и относительное расположение заголовков выдаваемых атрибутов
|
|
420
|
+
objectIds?: string[]; // Идентификаторы объектов
|
|
421
|
+
eventIds?: string[]; // Идентификаторы событий
|
|
422
|
+
commands?: string[]; // Идентификаторы команд
|
|
423
|
+
|
|
424
|
+
// Можно использовать либо этот параметр
|
|
425
|
+
size?: number; // Максимальное количество выдаваемых строк в ленте
|
|
426
|
+
|
|
427
|
+
// Либо этот
|
|
428
|
+
duration?: SeriesDuration; // временной интервал
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export interface ParamConfigObjState {
|
|
432
|
+
rubricId: number;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
export interface ParamConfigCustom {
|
|
437
|
+
value?: string;
|
|
438
|
+
type?: PARAM_TYPE;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export interface ParamConfigSysInfo {
|
|
442
|
+
rubricId: number;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
export interface ParamConfigLiftInfo {
|
|
446
|
+
deviceClassifierId: number;
|
|
447
|
+
objectIds: number[];
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
export type ParamConfig =
|
|
451
|
+
ParamConfigInterval
|
|
452
|
+
| ParamConfigSeries
|
|
453
|
+
| ParamConfigSingle
|
|
454
|
+
| ParamConfigEvents
|
|
455
|
+
| ParamConfigCustom
|
|
456
|
+
| ParamConfigSysInfo
|
|
457
|
+
| ParamConfigLiftInfo;
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
/**
|
|
461
|
+
значение - value
|
|
462
|
+
карта состояний - states
|
|
463
|
+
карта значений - value
|
|
464
|
+
*/
|
|
465
|
+
export interface SingleValue {
|
|
466
|
+
id?: number;
|
|
467
|
+
locked: boolean;
|
|
468
|
+
manually: boolean;
|
|
469
|
+
date: number;
|
|
470
|
+
value: any;
|
|
471
|
+
state: ParamState;
|
|
472
|
+
unit: { id: number, name: string, available: boolean, unavailabilityDate: number };
|
|
473
|
+
isProcessing?: boolean;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
среднее значение - value
|
|
479
|
+
минимальное значение - min
|
|
480
|
+
максимальное значение - max
|
|
481
|
+
карта состояний - states
|
|
482
|
+
среднее абсолютное значение - value
|
|
483
|
+
среднее относительное значение – percent
|
|
484
|
+
последнее абсолютное значение - value
|
|
485
|
+
последнее относительное значение - percent
|
|
486
|
+
*/
|
|
487
|
+
export interface IntervalValue {
|
|
488
|
+
value: number; // числовое значение, либо 1,0
|
|
489
|
+
percent: number; // relative и increment
|
|
490
|
+
min: number; // absolute
|
|
491
|
+
max: number; // absolute
|
|
492
|
+
states: ParamStates[]; // absolute signal
|
|
493
|
+
state: ParamState;
|
|
494
|
+
beginInterval: number;
|
|
495
|
+
endInterval: number;
|
|
496
|
+
switchCount: number; // signal
|
|
497
|
+
valueMap: Array<{ interval: number; value: number }>;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
export interface ControllersInfo {
|
|
501
|
+
total: number;
|
|
502
|
+
online: number;
|
|
503
|
+
offline: number;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
export interface LiftsInfo {
|
|
507
|
+
total: number;
|
|
508
|
+
online: number;
|
|
509
|
+
offline: number;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
export interface SysInfoValue {
|
|
513
|
+
date: number;
|
|
514
|
+
controllersInfo: ControllersInfo;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export interface LiftInfoValue {
|
|
518
|
+
date: number;
|
|
519
|
+
liftsInfo: LiftsInfo;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
export type SeriesValue = Array<SeriesCandleValue | SeriesLineValue>;
|
|
524
|
+
|
|
525
|
+
// График свечек
|
|
526
|
+
export interface SeriesCandleValue {
|
|
527
|
+
close: number;
|
|
528
|
+
high: number;
|
|
529
|
+
low: number;
|
|
530
|
+
open: number;
|
|
531
|
+
timestmp: number;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
// Все остальные графики
|
|
535
|
+
export interface SeriesLineValue {
|
|
536
|
+
value: number;
|
|
537
|
+
timestmp: number;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export type TableValues = Array<Array<ItemSingle>>;
|
|
541
|
+
|
|
542
|
+
// События
|
|
543
|
+
|
|
544
|
+
export interface CustomValue {
|
|
545
|
+
value: string;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Интерфейс для ленты событий с типом 1
|
|
550
|
+
*/
|
|
551
|
+
export interface EventValue {
|
|
552
|
+
shortname: string;
|
|
553
|
+
serialnumber: string;
|
|
554
|
+
eventid: number;
|
|
555
|
+
name: string;
|
|
556
|
+
timestmp: number;
|
|
557
|
+
msg: string;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
export interface EventValues {
|
|
561
|
+
data: {
|
|
562
|
+
rowList: Array<EventValue>;
|
|
563
|
+
};
|
|
564
|
+
config: ParamConfigEvents;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
export interface ObjStateValuesState {
|
|
568
|
+
id: number;
|
|
569
|
+
name: string;
|
|
570
|
+
count: number;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
export interface ObjStateValues {
|
|
574
|
+
data: {
|
|
575
|
+
date: number;
|
|
576
|
+
states: ObjStateValuesState[];
|
|
577
|
+
};
|
|
578
|
+
config: ParamConfigObjState;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
// У корневых элементов необходимо указать item_type
|
|
582
|
+
export interface WidgetParam {
|
|
583
|
+
title: string;
|
|
584
|
+
item_type: ITEM_TYPE;
|
|
585
|
+
param_type?: PARAM_TYPE;
|
|
586
|
+
items?: WidgetParamsChildren | WidgetParamsChildren[] | WidgetParamChildren[];
|
|
587
|
+
views?: string[]; // Перечисление возможных видов параметра
|
|
588
|
+
available?: any[]; // Ограничение для генератора случайных чисел
|
|
589
|
+
custom_data?: any; // Пользовательские данные, которые пробрасываются напрямую
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
export interface WidgetParamChildren {
|
|
593
|
+
title?: string;
|
|
594
|
+
item_type?: ITEM_TYPE;
|
|
595
|
+
param_type?: PARAM_TYPE;
|
|
596
|
+
items?: WidgetParamsChildren | WidgetParamsChildren[] | WidgetParamChildren[];
|
|
597
|
+
views?: string[]; // Перечисление возможных видов параметра
|
|
598
|
+
available?: any[]; // Ограничение для генератора случайных чисел
|
|
599
|
+
custom_data?: any; // Пользовательские данные, которые пробрасываются напрямую
|
|
600
|
+
viewConfig?: IWidgetParamConfig;
|
|
601
|
+
max?: number;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
export interface WidgetArrayParam {
|
|
605
|
+
max?: number;
|
|
606
|
+
item_type?: ITEM_TYPE;
|
|
607
|
+
param_type?: PARAM_TYPE;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
export interface WidgetParamsChildren {
|
|
611
|
+
[k: string]: WidgetParamChildren;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
export interface WidgetParams {
|
|
615
|
+
[k: string]: WidgetParam;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
export interface WidgetSizePosition {
|
|
619
|
+
x?: number;
|
|
620
|
+
y?: number;
|
|
621
|
+
w: number;
|
|
622
|
+
h: number;
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
export enum WidgetCustomFieldType {
|
|
626
|
+
boolean,
|
|
627
|
+
dashboardLink,
|
|
628
|
+
string
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
export interface WidgetCustomField {
|
|
632
|
+
name: string;
|
|
633
|
+
type: WidgetCustomFieldType;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
export interface WidgetSize {
|
|
637
|
+
sm: WidgetSizePosition;
|
|
638
|
+
lg: WidgetSizePosition;
|
|
639
|
+
slg?: WidgetSizePosition;
|
|
640
|
+
mobile: WidgetSizePosition;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
export interface ParamState {
|
|
644
|
+
color: string;
|
|
645
|
+
comment: string;
|
|
646
|
+
idIcon: number;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
export interface ParamStates {
|
|
650
|
+
interval: number;
|
|
651
|
+
state: {
|
|
652
|
+
id: number;
|
|
653
|
+
name: string;
|
|
654
|
+
color: string;
|
|
655
|
+
comment: string;
|
|
656
|
+
};
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
// В коде конфиг ввиде объекта
|
|
660
|
+
export interface IWidget<TDashboard = ServiceDashboardClass> {
|
|
661
|
+
id?: number;
|
|
662
|
+
widgetclass: IWidgetClass;
|
|
663
|
+
dashboard: TDashboard;
|
|
664
|
+
title: string;
|
|
665
|
+
conflict?: boolean;
|
|
666
|
+
hidden?: boolean;
|
|
667
|
+
config?: IWidgetConfig;
|
|
668
|
+
path?: string; // Путь при загрузке виджета(для дашей которые загружаются в дашах)
|
|
669
|
+
/**
|
|
670
|
+
* Format: int32
|
|
671
|
+
* @description Порядок размещения в рамках одного дашборда (порядок загрузки)
|
|
672
|
+
*/
|
|
673
|
+
placement?: number;
|
|
674
|
+
/**
|
|
675
|
+
* Format: date-time
|
|
676
|
+
* @description Дата конфигурирования
|
|
677
|
+
*/
|
|
678
|
+
configdate?: string;
|
|
679
|
+
/**
|
|
680
|
+
* Format: int32
|
|
681
|
+
* @description Координата X начального положения конкретног виджета в сетке
|
|
682
|
+
*/
|
|
683
|
+
posx?: number;
|
|
684
|
+
/**
|
|
685
|
+
* Format: int32
|
|
686
|
+
* @description Координата Y начального положения конкретног виджета в сетке
|
|
687
|
+
*/
|
|
688
|
+
posy?: number;
|
|
689
|
+
/** @description Признак наличия конфликта, нужна ручная настройка */
|
|
690
|
+
/**
|
|
691
|
+
* Format: int32
|
|
692
|
+
* @description Ширина начального положения виджета в сетке
|
|
693
|
+
*/
|
|
694
|
+
width?: number;
|
|
695
|
+
/**
|
|
696
|
+
* Format: int32
|
|
697
|
+
* @description Высота начального положения виджета в сетке
|
|
698
|
+
*/
|
|
699
|
+
height?: number;
|
|
700
|
+
/** @description Настройки внутреннего представления виджета в формате json (например substitution, valformat) */
|
|
701
|
+
/**
|
|
702
|
+
* Format: date-time
|
|
703
|
+
* @description Дата создания записи
|
|
704
|
+
*/
|
|
705
|
+
createdate?: string;
|
|
706
|
+
/**
|
|
707
|
+
* Format: date-time
|
|
708
|
+
* @description Дата последнего изменения записи
|
|
709
|
+
*/
|
|
710
|
+
lastdate?: string;
|
|
711
|
+
icon?: IWidgetIconInfo;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
export interface IWidgetIconInfo {
|
|
715
|
+
/**
|
|
716
|
+
* Format: int32
|
|
717
|
+
* @description Идентификатор иконки
|
|
718
|
+
*/
|
|
719
|
+
id?: number;
|
|
720
|
+
/** @description Наименование иконки */
|
|
721
|
+
name?: string;
|
|
722
|
+
iconset?: IWidgetIconSetInfo;
|
|
723
|
+
/** @description Путь к файлу в локальном хранилище */
|
|
724
|
+
filepath?: string;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
/** @description Набор изображений */
|
|
728
|
+
export interface IWidgetIconSetInfo {
|
|
729
|
+
/**
|
|
730
|
+
* Format: int32
|
|
731
|
+
* @description Идентификатор
|
|
732
|
+
*/
|
|
733
|
+
id?: number;
|
|
734
|
+
/** @description Наименование */
|
|
735
|
+
name: string;
|
|
736
|
+
/**
|
|
737
|
+
* Format: int32
|
|
738
|
+
* @description Тип файлов, включаемых в набор (1 - иконка, 2 - картинка, 3 - видео)
|
|
739
|
+
*/
|
|
740
|
+
imagetype: number;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
export enum DashboardType {
|
|
744
|
+
WEB = 'WEB',
|
|
745
|
+
MOBILE = 'MOBILE',
|
|
746
|
+
ANALYTIC = 'ANALYTIC',
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
export interface ServiceDashboardClass<TConfig = string> {
|
|
750
|
+
/**
|
|
751
|
+
* Format: int32
|
|
752
|
+
* @description Идентификатор
|
|
753
|
+
*/
|
|
754
|
+
id?: number;
|
|
755
|
+
/** @description Наименование */
|
|
756
|
+
dashname: string;
|
|
757
|
+
/** @description Признак скрытого дашборда (не показывается) */
|
|
758
|
+
hidden?: boolean;
|
|
759
|
+
objrubric: Objrubric;
|
|
760
|
+
/** @description Конфигурация для отображения дашборда (структура - ответственность клиента) */
|
|
761
|
+
config?: TConfig;
|
|
762
|
+
/**
|
|
763
|
+
* @description Тип дашборда, WEB - для ЛК, MOBILE - для мобильного клиента)
|
|
764
|
+
* @enum {string}
|
|
765
|
+
*/
|
|
766
|
+
type: DashboardType;
|
|
767
|
+
icon?: IWidgetIconInfo;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
export interface Objrubric {
|
|
771
|
+
id?: number;
|
|
772
|
+
shortname?: string;
|
|
773
|
+
fullname?: string;
|
|
774
|
+
comment?: string;
|
|
775
|
+
objrubric?: Objrubric;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
export interface IWidgetConfig {
|
|
780
|
+
widget: {
|
|
781
|
+
picture?: {
|
|
782
|
+
setId?: number;
|
|
783
|
+
pictureId?: number
|
|
784
|
+
},
|
|
785
|
+
floatingHeader?: boolean;
|
|
786
|
+
};
|
|
787
|
+
position?: WidgetSize;
|
|
788
|
+
items: { [k: string]: IWidgetParamConfig };
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
export interface IWidgetClass {
|
|
792
|
+
id: number;
|
|
793
|
+
storeId?: string; // ссылка на файл
|
|
794
|
+
version?: string;
|
|
795
|
+
name?: string;
|
|
796
|
+
description?: string;
|
|
797
|
+
web?: boolean;
|
|
798
|
+
analytic?: boolean;
|
|
799
|
+
mobile?: boolean;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
export interface SocketEventData {
|
|
803
|
+
refName: string;
|
|
804
|
+
rowList: EventValue[];
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
export interface SocketSingleData extends SingleValue {
|
|
808
|
+
refName: string;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
export interface SocketIntervalData extends IntervalValue {
|
|
812
|
+
refName: string;
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
export type WidgetDataList = Array<SocketSingleData | SocketIntervalData | SocketEventData>;
|
|
816
|
+
|
|
817
|
+
export interface WidgetSocketData {
|
|
818
|
+
dataList: WidgetDataList;
|
|
819
|
+
exwidget: number;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
export enum ControllerState {
|
|
823
|
+
ONLINE = 'ONLINE',
|
|
824
|
+
OFFLINE = 'OFFLINE',
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
export interface ControllerPayload {
|
|
828
|
+
controllerId: number;
|
|
829
|
+
state: ControllerState;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
export interface WidgetSocketDataCommand {
|
|
833
|
+
command: string;
|
|
834
|
+
widgetDataList: WidgetSocketData[];
|
|
835
|
+
message?: string;
|
|
836
|
+
error?: string;
|
|
837
|
+
payload?: ControllerPayload | any;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
export interface WidgetSocketAnalyticDataCommand {
|
|
841
|
+
cdpData: SingleValue | null;
|
|
842
|
+
ccpData: SingleValue | null;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
export interface IWidgetFile {
|
|
847
|
+
name: string;
|
|
848
|
+
id: string;
|
|
849
|
+
parent: string;
|
|
850
|
+
content: any;
|
|
851
|
+
url: string;
|
|
852
|
+
error?: Error;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
// Обертка для среды разработки
|
|
856
|
+
export const Component = (opts) => {
|
|
857
|
+
return (component) => {
|
|
858
|
+
return component;
|
|
859
|
+
};
|
|
860
|
+
};
|
|
861
|
+
|
|
862
|
+
export interface ModalOptions {
|
|
863
|
+
header: string;
|
|
864
|
+
width?: string;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
export interface CustomSelectData {
|
|
868
|
+
items: Array<{ value: any, title: string }>;
|
|
869
|
+
defaultValue?: any;
|
|
870
|
+
required: true;
|
|
871
|
+
}
|