@c8y/ngx-components 1023.10.1 → 1023.14.2
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/context-dashboard/index.d.ts +11 -2
- package/context-dashboard/index.d.ts.map +1 -1
- package/datapoint-explorer/index.d.ts +78 -1
- package/datapoint-explorer/index.d.ts.map +1 -1
- package/datapoint-explorer/view/index.d.ts +150 -14
- package/datapoint-explorer/view/index.d.ts.map +1 -1
- package/echart/index.d.ts +12 -2
- package/echart/index.d.ts.map +1 -1
- package/echart/models/index.d.ts +12 -2
- package/echart/models/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +17 -5
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +388 -64
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +329 -4
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs +6 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +6 -1
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +1093 -40
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +3 -4
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +86 -99
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +129 -17
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +16037 -15943
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/global-context/index.d.ts +180 -4
- package/global-context/index.d.ts.map +1 -1
- package/index.d.ts +10754 -10654
- package/index.d.ts.map +1 -1
- package/locales/de.po +26 -11
- package/locales/es.po +25 -10
- package/locales/fr.po +25 -10
- package/locales/ja_JP.po +22 -7
- package/locales/ko.po +24 -11
- package/locales/locales.pot +23 -8
- package/locales/nl.po +26 -10
- package/locales/pl.po +25 -10
- package/locales/pt_BR.po +25 -10
- package/locales/zh_CN.po +24 -9
- package/locales/zh_TW.po +26 -10
- package/package.json +1 -1
- package/widgets/definitions/alarms/alarm-list/index.d.ts +1 -2
- package/widgets/definitions/alarms/alarm-list/index.d.ts.map +1 -1
- package/widgets/implementations/alarms/index.d.ts +35 -28
- package/widgets/implementations/alarms/index.d.ts.map +1 -1
- package/widgets/implementations/datapoints-graph/index.d.ts +19 -5
- package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, NgModule } from '@angular/core';
|
|
2
|
+
import { inject, Injectable, NgModule, signal } from '@angular/core';
|
|
3
3
|
import { gettext } from '@c8y/ngx-components/gettext';
|
|
4
|
-
import { PreviewService, NavigatorNode, hookRoute, hookNavigator, hookPreview, ViewContext } from '@c8y/ngx-components';
|
|
5
|
-
import { map, first } from 'rxjs';
|
|
4
|
+
import { PreviewService, NavigatorNode, hookRoute, hookNavigator, hookPreview, ViewContext, AlertService, MOChunkLoaderService, DatapointSyncService } from '@c8y/ngx-components';
|
|
5
|
+
import { map, first, firstValueFrom } from 'rxjs';
|
|
6
|
+
import { InventoryService } from '@c8y/client';
|
|
7
|
+
import { ContextDashboardService, ContextDashboardType } from '@c8y/ngx-components/context-dashboard';
|
|
8
|
+
import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';
|
|
9
|
+
import { Router } from '@angular/router';
|
|
6
10
|
|
|
7
11
|
class DatapointExplorerNavigationFactory {
|
|
8
12
|
constructor() {
|
|
@@ -122,9 +126,330 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
122
126
|
}]
|
|
123
127
|
}] });
|
|
124
128
|
|
|
129
|
+
const DATA_EXPLORER_BASE_CONFIG = {
|
|
130
|
+
datapoints: [],
|
|
131
|
+
alarmsEventsConfigs: [],
|
|
132
|
+
dateFrom: null,
|
|
133
|
+
dateTo: null,
|
|
134
|
+
interval: 'hours',
|
|
135
|
+
aggregation: null,
|
|
136
|
+
realtime: false,
|
|
137
|
+
isAutoRefreshEnabled: false,
|
|
138
|
+
refreshInterval: 0,
|
|
139
|
+
displayMarkedLine: true,
|
|
140
|
+
displayMarkedPoint: true,
|
|
141
|
+
mergeMatchingDatapoints: false,
|
|
142
|
+
forceMergeDatapoints: false,
|
|
143
|
+
showLabelAndUnit: true,
|
|
144
|
+
showSlider: true,
|
|
145
|
+
displayDateSelection: false,
|
|
146
|
+
yAxisSplitLines: false,
|
|
147
|
+
xAxisSplitLines: false,
|
|
148
|
+
numberOfDecimalPlaces: 2
|
|
149
|
+
};
|
|
150
|
+
const REVERSE_KEY_MAP = {
|
|
151
|
+
d: 'datapoints',
|
|
152
|
+
a: 'alarmsEventsConfigs',
|
|
153
|
+
f: 'fragment',
|
|
154
|
+
s: 'series',
|
|
155
|
+
t: '__target',
|
|
156
|
+
m: '__template',
|
|
157
|
+
l: 'label',
|
|
158
|
+
r: 'filters',
|
|
159
|
+
y: 'timelineType',
|
|
160
|
+
df: 'dateFrom',
|
|
161
|
+
dt: 'dateTo',
|
|
162
|
+
ac: '__active',
|
|
163
|
+
c: 'color',
|
|
164
|
+
i: 'id',
|
|
165
|
+
tp: 'type'
|
|
166
|
+
};
|
|
167
|
+
const KEY_MAP = Object.fromEntries(Object.entries(REVERSE_KEY_MAP).map(([shortKey, longKey]) => [longKey, shortKey]));
|
|
168
|
+
|
|
169
|
+
class WorkspaceConfigurationService {
|
|
170
|
+
constructor() {
|
|
171
|
+
this.baseKey = 'c8y-configs';
|
|
172
|
+
this.baseDefaultKey = 'c8y-default-config-id';
|
|
173
|
+
this.contextIdSignal = signal(null, ...(ngDevMode ? [{ debugName: "contextIdSignal" }] : []));
|
|
174
|
+
this.alertService = inject(AlertService);
|
|
175
|
+
}
|
|
176
|
+
get LOCAL_STORAGE_KEY() {
|
|
177
|
+
const id = this.contextIdSignal();
|
|
178
|
+
return id !== null ? `${this.baseKey}-${id}` : this.baseKey;
|
|
179
|
+
}
|
|
180
|
+
get LOCAL_STORAGE_DEFAULT_ID_KEY() {
|
|
181
|
+
const id = this.contextIdSignal();
|
|
182
|
+
return id !== null ? `${this.baseDefaultKey}-${id}` : this.baseDefaultKey;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Generates a full datapoint explorer link from a bare config
|
|
186
|
+
*/
|
|
187
|
+
generateExplorerLink(config, label, id) {
|
|
188
|
+
const diffed = this.removeDefaults(config);
|
|
189
|
+
const minified = this.minifyKeys(diffed);
|
|
190
|
+
const compressed = compressToEncodedURIComponent(JSON.stringify(minified));
|
|
191
|
+
const url = `/datapointexplorer-v2?id=${id}&label=${encodeURIComponent(label)}&config=${compressed}`;
|
|
192
|
+
return url;
|
|
193
|
+
}
|
|
194
|
+
/** Load workspace configs from localStorage */
|
|
195
|
+
getConfigurations() {
|
|
196
|
+
const configurations = localStorage.getItem(this.LOCAL_STORAGE_KEY);
|
|
197
|
+
if (configurations) {
|
|
198
|
+
const parsedConfigs = JSON.parse(configurations);
|
|
199
|
+
return parsedConfigs.map(workspaceConfig => {
|
|
200
|
+
if (typeof workspaceConfig.config === 'string') {
|
|
201
|
+
return {
|
|
202
|
+
...workspaceConfig,
|
|
203
|
+
config: this.decodeConfig(workspaceConfig.config)
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
return workspaceConfig;
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return [];
|
|
210
|
+
}
|
|
211
|
+
getDefaultConfigurationId() {
|
|
212
|
+
return localStorage.getItem(this.LOCAL_STORAGE_DEFAULT_ID_KEY);
|
|
213
|
+
}
|
|
214
|
+
/** Save workspace configs in localStorage */
|
|
215
|
+
saveConfigurations(configurations, id) {
|
|
216
|
+
localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(configurations));
|
|
217
|
+
localStorage.setItem(this.LOCAL_STORAGE_DEFAULT_ID_KEY, id);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
*
|
|
221
|
+
* @param urlConfig - configuration from the URL, either compressed string or already decoded object
|
|
222
|
+
* @returns
|
|
223
|
+
*/
|
|
224
|
+
getConfigurationFromUrl(urlConfig) {
|
|
225
|
+
if (typeof urlConfig === 'string') {
|
|
226
|
+
const decodedConfig = this.decodeConfig(urlConfig);
|
|
227
|
+
const expandedConfig = this.expandKeys(decodedConfig);
|
|
228
|
+
return expandedConfig;
|
|
229
|
+
}
|
|
230
|
+
return this.expandKeys(urlConfig);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Encode a config for the URL:
|
|
234
|
+
* - Cleanup the __target objects to contain only name and id
|
|
235
|
+
* - Remove default values (diff from base)
|
|
236
|
+
* - Minify keys
|
|
237
|
+
* - Compress with lz-string
|
|
238
|
+
*/
|
|
239
|
+
encodeConfig(config) {
|
|
240
|
+
const normalized = this.cleanUpTargetObject(config);
|
|
241
|
+
const diffed = this.removeDefaults(normalized);
|
|
242
|
+
const minified = this.minifyKeys(diffed);
|
|
243
|
+
return compressToEncodedURIComponent(JSON.stringify(minified));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Decode a config from the URL:
|
|
247
|
+
* - Decompress
|
|
248
|
+
* - Expand keys
|
|
249
|
+
* - Merge with base config
|
|
250
|
+
*/
|
|
251
|
+
decodeConfig(urlConfig) {
|
|
252
|
+
if (!urlConfig)
|
|
253
|
+
return null;
|
|
254
|
+
try {
|
|
255
|
+
const decompressed = decompressFromEncodedURIComponent(urlConfig);
|
|
256
|
+
if (!decompressed)
|
|
257
|
+
return null;
|
|
258
|
+
const parsed = JSON.parse(decompressed);
|
|
259
|
+
const expanded = this.expandKeys(parsed);
|
|
260
|
+
return { ...DATA_EXPLORER_BASE_CONFIG, ...expanded };
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
this.alertService.danger(gettext('The decoded configuration is invalid and could not be loaded.'));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Minify keys recursively using KEY_MAP */
|
|
267
|
+
minifyKeys(config) {
|
|
268
|
+
if (Array.isArray(config))
|
|
269
|
+
return config.map(object => this.minifyKeys(object));
|
|
270
|
+
if (config !== Object(config))
|
|
271
|
+
return config;
|
|
272
|
+
return Object.fromEntries(Object.entries(config).map(([originalKey, originalValue]) => [
|
|
273
|
+
KEY_MAP[originalKey] || originalKey,
|
|
274
|
+
this.minifyKeys(originalValue)
|
|
275
|
+
]));
|
|
276
|
+
}
|
|
277
|
+
/** Expand keys recursively using REVERSE_KEY_MAP */
|
|
278
|
+
expandKeys(config) {
|
|
279
|
+
if (Array.isArray(config))
|
|
280
|
+
return config.map(o => this.expandKeys(o));
|
|
281
|
+
if (config !== Object(config))
|
|
282
|
+
return config;
|
|
283
|
+
return Object.fromEntries(Object.entries(config).map(([originalKey, originalValue]) => [
|
|
284
|
+
REVERSE_KEY_MAP[originalKey] || originalKey,
|
|
285
|
+
this.expandKeys(originalValue)
|
|
286
|
+
]));
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Remove properties from `config` that match `base` so only changed values remain.
|
|
290
|
+
*/
|
|
291
|
+
removeDefaults(config) {
|
|
292
|
+
const result = {};
|
|
293
|
+
for (const key in config) {
|
|
294
|
+
if (!(key in DATA_EXPLORER_BASE_CONFIG) || DATA_EXPLORER_BASE_CONFIG[key] !== config[key]) {
|
|
295
|
+
result[key] = config[key];
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Cleans up __target objects to only keep id and name and remove the rest.
|
|
302
|
+
*/
|
|
303
|
+
cleanUpTargetObject(config) {
|
|
304
|
+
const configCopy = { ...config };
|
|
305
|
+
// Cleanup the datapoints array
|
|
306
|
+
if (Array.isArray(configCopy.datapoints)) {
|
|
307
|
+
configCopy.datapoints = configCopy.datapoints.map((dp) => {
|
|
308
|
+
if (dp && typeof dp === 'object' && dp.__target && typeof dp.__target === 'object') {
|
|
309
|
+
const { id, name } = dp.__target;
|
|
310
|
+
const target = {};
|
|
311
|
+
if (id !== undefined)
|
|
312
|
+
target.id = id;
|
|
313
|
+
if (name !== undefined)
|
|
314
|
+
target.name = name;
|
|
315
|
+
return { ...dp, __target: target };
|
|
316
|
+
}
|
|
317
|
+
return dp;
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
// Cleanup the alarmEventsConfig array
|
|
321
|
+
if (Array.isArray(configCopy.alarmsEventsConfigs)) {
|
|
322
|
+
configCopy.alarmsEventsConfigs = configCopy.alarmsEventsConfigs.map((a) => {
|
|
323
|
+
if (a && typeof a === 'object' && a.__target && typeof a.__target === 'object') {
|
|
324
|
+
const { id, name } = a.__target;
|
|
325
|
+
const target = {};
|
|
326
|
+
if (id !== undefined)
|
|
327
|
+
target.id = id;
|
|
328
|
+
if (name !== undefined)
|
|
329
|
+
target.name = name;
|
|
330
|
+
return { ...a, __target: target };
|
|
331
|
+
}
|
|
332
|
+
return a;
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return configCopy;
|
|
336
|
+
}
|
|
337
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WorkspaceConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
338
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WorkspaceConfigurationService, providedIn: 'root' }); }
|
|
339
|
+
}
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: WorkspaceConfigurationService, decorators: [{
|
|
341
|
+
type: Injectable,
|
|
342
|
+
args: [{
|
|
343
|
+
providedIn: 'root'
|
|
344
|
+
}]
|
|
345
|
+
}] });
|
|
346
|
+
|
|
347
|
+
class DataExplorerService {
|
|
348
|
+
constructor() {
|
|
349
|
+
this.inventory = inject(InventoryService);
|
|
350
|
+
this.contextDashboardService = inject(ContextDashboardService);
|
|
351
|
+
this.workspaceConfigurationService = inject(WorkspaceConfigurationService);
|
|
352
|
+
this.moChunkLoader = inject(MOChunkLoaderService);
|
|
353
|
+
this.datapointSyncService = inject(DatapointSyncService);
|
|
354
|
+
this.router = inject(Router);
|
|
355
|
+
this.maxNumberOfManagedObjectsPerRequest = 50;
|
|
356
|
+
}
|
|
357
|
+
async fetchReportDashboard(reportId) {
|
|
358
|
+
return (await this.inventory.list({
|
|
359
|
+
pageSize: 1,
|
|
360
|
+
query: `has('c8y_Dashboard!name!report_${reportId}')`
|
|
361
|
+
})).data[0];
|
|
362
|
+
}
|
|
363
|
+
async fetchContextDashboard(dashboardId, contextAsset) {
|
|
364
|
+
const context = contextAsset.c8y_isDevice
|
|
365
|
+
? ContextDashboardType.Device
|
|
366
|
+
: ContextDashboardType.Group;
|
|
367
|
+
return firstValueFrom(this.contextDashboardService.getDashboard$(dashboardId, [context]));
|
|
368
|
+
}
|
|
369
|
+
async loadManagedObjectsInChunks(uniqIds) {
|
|
370
|
+
const { results, errors } = await this.moChunkLoader.processInChunks(uniqIds, this.maxNumberOfManagedObjectsPerRequest, ids => this.loadAChunkOfManagedObjects(ids));
|
|
371
|
+
return { result: results, errors };
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Navigate to datapoint explorer with given config.
|
|
375
|
+
* The goal of this method is to navigate to the data explorer with a provided config from any other application.
|
|
376
|
+
* @param config Configuration to use
|
|
377
|
+
* @param label Label to be displayed for the configuration
|
|
378
|
+
* @param id ID for the configuration
|
|
379
|
+
*/
|
|
380
|
+
navigateToDataExplorer(config, label, id) {
|
|
381
|
+
const url = this.getUrlForConfig(config, label, id);
|
|
382
|
+
this.router.navigateByUrl(url);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Generate a URL for the datapoint explorer with the given config.
|
|
386
|
+
* The goal of this method is to generate a shareable link to the data explorer.
|
|
387
|
+
* @param config Configuration to use
|
|
388
|
+
* @param label Label to be displayed for the configuration
|
|
389
|
+
* @param id ID for the configuration
|
|
390
|
+
* @returns The generated URL
|
|
391
|
+
*/
|
|
392
|
+
getUrlForConfig(config, label, id) {
|
|
393
|
+
return this.workspaceConfigurationService.generateExplorerLink(config, label, id);
|
|
394
|
+
}
|
|
395
|
+
processAlarmEventConfigs(config) {
|
|
396
|
+
const firstTarget = config.alarmsEventsConfigs.find(ae => ae.__target)?.__target;
|
|
397
|
+
config.alarmsEventsConfigs = config.alarmsEventsConfigs.map((ae, index) => {
|
|
398
|
+
if (ae.__active === undefined)
|
|
399
|
+
ae.__active = true;
|
|
400
|
+
if (!ae.__target && firstTarget)
|
|
401
|
+
ae.__target = firstTarget;
|
|
402
|
+
if (!ae.color)
|
|
403
|
+
ae.color = this.generateColor(index);
|
|
404
|
+
return ae;
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
processDatapoints(config) {
|
|
408
|
+
const firstTarget = config.datapoints.find(dp => dp.__target)?.__target;
|
|
409
|
+
config.datapoints = config.datapoints.map((dp, index) => {
|
|
410
|
+
// Default __active
|
|
411
|
+
if (dp.__active === undefined)
|
|
412
|
+
dp.__active = true;
|
|
413
|
+
if (!dp.__target && firstTarget)
|
|
414
|
+
dp.__target = firstTarget;
|
|
415
|
+
if (!dp.color && !dp.__template)
|
|
416
|
+
dp.color = this.generateColor(index);
|
|
417
|
+
if (!dp.label)
|
|
418
|
+
dp.label = `${dp.fragment} -> ${dp.series}`;
|
|
419
|
+
return dp;
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Generates a color from a fixed palette based on the index.
|
|
424
|
+
* Used to assign colors to alarm/event configs in the UI.
|
|
425
|
+
*/
|
|
426
|
+
generateColor(index) {
|
|
427
|
+
// Simple palette, can expand
|
|
428
|
+
const palette = ['#c87d33', '#8c145f', '#8cd7fd', '#59a036', '#fb00ff', '#8d4c22', '#fbb2d7'];
|
|
429
|
+
return palette[index % palette.length];
|
|
430
|
+
}
|
|
431
|
+
async loadAndAssignManagedObjects(config, uniqueIds) {
|
|
432
|
+
const managedObjectsResult = await this.loadManagedObjectsInChunks([...uniqueIds]);
|
|
433
|
+
const managedObjects = managedObjectsResult.result;
|
|
434
|
+
const errors = managedObjectsResult.errors;
|
|
435
|
+
config.datapoints = this.datapointSyncService.assignUpdatedValues(config.datapoints, managedObjects, errors);
|
|
436
|
+
}
|
|
437
|
+
async loadAChunkOfManagedObjects(uniqIds) {
|
|
438
|
+
return this.moChunkLoader.loadAChunkOfManagedObjectsBase(uniqIds, this.inventory, this.maxNumberOfManagedObjectsPerRequest, id => this.moChunkLoader.getStatusDetails(id));
|
|
439
|
+
}
|
|
440
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DataExplorerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
441
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DataExplorerService, providedIn: 'root' }); }
|
|
442
|
+
}
|
|
443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DataExplorerService, decorators: [{
|
|
444
|
+
type: Injectable,
|
|
445
|
+
args: [{
|
|
446
|
+
providedIn: 'root'
|
|
447
|
+
}]
|
|
448
|
+
}] });
|
|
449
|
+
|
|
125
450
|
/**
|
|
126
451
|
* Generated bundle index. Do not edit.
|
|
127
452
|
*/
|
|
128
453
|
|
|
129
|
-
export { DatapointExplorerModule, canActivateDatapointExplorer };
|
|
454
|
+
export { DataExplorerService, DatapointExplorerModule, canActivateDatapointExplorer };
|
|
130
455
|
//# sourceMappingURL=c8y-ngx-components-datapoint-explorer.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-datapoint-explorer.mjs","sources":["../../datapoint-explorer/datapoint-explorer-navigation-factory.ts","../../datapoint-explorer/datapoint-explorer.module.ts","../../datapoint-explorer/c8y-ngx-components-datapoint-explorer.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory, PreviewService } from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\n\n@Injectable()\nexport class DatapointExplorerNavigationFactory implements NavigatorNodeFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n get(): Observable<NavigatorNode[]> {\n return this.previewFeatureService.getState$('ui.datapoint-explorer.v2').pipe(\n map(state => {\n if (state) {\n return [\n new NavigatorNode({\n label: gettext('Data explorer'),\n featureId: 'dataPointExplorer',\n path: 'datapointexplorer-v2',\n icon: 'c8y-data-explorer',\n routerLinkExact: false,\n preventDuplicates: true\n })\n ];\n }\n return [];\n })\n );\n }\n}\n","import { inject, NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n hookNavigator,\n hookPreview,\n hookRoute,\n PreviewService,\n ViewContext\n} from '@c8y/ngx-components';\nimport { first, Observable } from 'rxjs';\nimport { DatapointExplorerNavigationFactory } from './datapoint-explorer-navigation-factory';\n\nexport function canActivateDatapointExplorer(): Observable<boolean> {\n const previewFeatureService = inject(PreviewService);\n return previewFeatureService.getState$('ui.datapoint-explorer.v2').pipe(first());\n}\n\n@NgModule({\n providers: [\n hookRoute([\n {\n path: 'datapointexplorer-v2',\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n canActivate: [canActivateDatapointExplorer]\n },\n {\n context: ViewContext.Group,\n path: 'data_explorer-v2',\n priority: 800,\n icon: 'c8y-data-explorer',\n label: gettext('Data Explorer'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n featureId: 'dataExplorer',\n canActivate: [canActivateDatapointExplorer]\n },\n {\n context: ViewContext.Device,\n path: 'data_explorer-v2',\n priority: 800,\n icon: 'c8y-data-explorer',\n label: gettext('Data Explorer'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n featureId: 'dataExplorer',\n canActivate: [canActivateDatapointExplorer]\n }\n ]),\n hookNavigator(DatapointExplorerNavigationFactory),\n hookPreview({\n key: 'ui.datapoint-explorer.v2',\n label: 'Data point explorer',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-explorer-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n ]\n})\nexport class DatapointExplorerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-datapoint-explorer.mjs","sources":["../../datapoint-explorer/datapoint-explorer-navigation-factory.ts","../../datapoint-explorer/datapoint-explorer.module.ts","../../datapoint-explorer/view/datapoint-explorer.model.ts","../../datapoint-explorer/view/configuration/workspace-configuration.service.ts","../../datapoint-explorer/view/datapoint-explorer.service.ts","../../datapoint-explorer/c8y-ngx-components-datapoint-explorer.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { NavigatorNode, NavigatorNodeFactory, PreviewService } from '@c8y/ngx-components';\nimport { map, Observable } from 'rxjs';\n\n@Injectable()\nexport class DatapointExplorerNavigationFactory implements NavigatorNodeFactory {\n private readonly previewFeatureService = inject(PreviewService);\n\n get(): Observable<NavigatorNode[]> {\n return this.previewFeatureService.getState$('ui.datapoint-explorer.v2').pipe(\n map(state => {\n if (state) {\n return [\n new NavigatorNode({\n label: gettext('Data explorer'),\n featureId: 'dataPointExplorer',\n path: 'datapointexplorer-v2',\n icon: 'c8y-data-explorer',\n routerLinkExact: false,\n preventDuplicates: true\n })\n ];\n }\n return [];\n })\n );\n }\n}\n","import { inject, NgModule } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n hookNavigator,\n hookPreview,\n hookRoute,\n PreviewService,\n ViewContext\n} from '@c8y/ngx-components';\nimport { first, Observable } from 'rxjs';\nimport { DatapointExplorerNavigationFactory } from './datapoint-explorer-navigation-factory';\n\nexport function canActivateDatapointExplorer(): Observable<boolean> {\n const previewFeatureService = inject(PreviewService);\n return previewFeatureService.getState$('ui.datapoint-explorer.v2').pipe(first());\n}\n\n@NgModule({\n providers: [\n hookRoute([\n {\n path: 'datapointexplorer-v2',\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n canActivate: [canActivateDatapointExplorer]\n },\n {\n context: ViewContext.Group,\n path: 'data_explorer-v2',\n priority: 800,\n icon: 'c8y-data-explorer',\n label: gettext('Data Explorer'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n featureId: 'dataExplorer',\n canActivate: [canActivateDatapointExplorer]\n },\n {\n context: ViewContext.Device,\n path: 'data_explorer-v2',\n priority: 800,\n icon: 'c8y-data-explorer',\n label: gettext('Data Explorer'),\n loadComponent: () =>\n import('@c8y/ngx-components/datapoint-explorer/view').then(\n m => m.DatapointExplorerComponent\n ),\n featureId: 'dataExplorer',\n canActivate: [canActivateDatapointExplorer]\n }\n ]),\n hookNavigator(DatapointExplorerNavigationFactory),\n hookPreview({\n key: 'ui.datapoint-explorer.v2',\n label: 'Data point explorer',\n description: () =>\n import('@c8y/style/markdown-files/datapoint-explorer-preview.md').then(m => m.default),\n settings: {\n reload: true\n }\n })\n ]\n})\nexport class DatapointExplorerModule {}\n","import { DatapointsGraphWidgetConfig } from '@c8y/ngx-components/echart';\nimport { TimeContext } from '@c8y/ngx-components/time-context';\n\nexport interface Settings {\n hideWorkspaceConfig?: boolean;\n hideExportSelector?: boolean;\n hideWidgetActions?: boolean;\n timeContext?: TimeContext;\n defaultConfigurationId?: string;\n}\n\nexport interface DataExplorerUrlConfig {\n datapoints?: BaseDatapointConfig[];\n alarmsEventsConfigs?: BaseAlarmEventConfig[];\n dateFrom?: Date | string | null;\n dateTo?: Date | string | null;\n\n // Allow any additional fields so it's forward-compatible\n [key: string]: any;\n}\n\nexport interface BaseDatapointConfig {\n fragment: string;\n series: string;\n __target?: {\n id?: string;\n [key: string]: any;\n };\n __template?: string;\n\n [key: string]: any;\n}\n\nexport interface BaseAlarmEventConfig {\n timelineType: string;\n label: string;\n\n filters: {\n type: string;\n [key: string]: any;\n };\n\n __target?: {\n id?: string;\n [key: string]: any;\n };\n [key: string]: any;\n}\n\nexport const DATA_EXPLORER_BASE_CONFIG: DatapointsGraphWidgetConfig = {\n datapoints: [],\n alarmsEventsConfigs: [],\n dateFrom: null,\n dateTo: null,\n interval: 'hours',\n aggregation: null,\n realtime: false,\n isAutoRefreshEnabled: false,\n refreshInterval: 0,\n displayMarkedLine: true,\n displayMarkedPoint: true,\n mergeMatchingDatapoints: false,\n forceMergeDatapoints: false,\n showLabelAndUnit: true,\n showSlider: true,\n displayDateSelection: false,\n yAxisSplitLines: false,\n xAxisSplitLines: false,\n numberOfDecimalPlaces: 2\n};\n\nexport const REVERSE_KEY_MAP = {\n d: 'datapoints',\n a: 'alarmsEventsConfigs',\n f: 'fragment',\n s: 'series',\n t: '__target',\n m: '__template',\n l: 'label',\n r: 'filters',\n y: 'timelineType',\n df: 'dateFrom',\n dt: 'dateTo',\n ac: '__active',\n c: 'color',\n i: 'id',\n tp: 'type'\n};\n\nexport const KEY_MAP = Object.fromEntries(\n Object.entries(REVERSE_KEY_MAP).map(([shortKey, longKey]) => [longKey, shortKey])\n);\n","import { inject, Injectable, signal, WritableSignal } from '@angular/core';\nimport { WorkspaceConfiguration } from './workspace-configuration.model';\nimport { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';\nimport {\n DATA_EXPLORER_BASE_CONFIG,\n DataExplorerUrlConfig,\n KEY_MAP,\n REVERSE_KEY_MAP\n} from '../datapoint-explorer.model';\nimport { DatapointsGraphWidgetConfig } from '@c8y/ngx-components/echart';\nimport { KPIDetails } from '@c8y/ngx-components/datapoint-selector';\nimport { IIdentified } from '@c8y/client';\nimport { AlertService } from '@c8y/ngx-components';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkspaceConfigurationService {\n private readonly baseKey = 'c8y-configs';\n private readonly baseDefaultKey = 'c8y-default-config-id';\n contextIdSignal: WritableSignal<number | string | null> = signal(null);\n\n private readonly alertService = inject(AlertService);\n\n get LOCAL_STORAGE_KEY(): string {\n const id = this.contextIdSignal();\n return id !== null ? `${this.baseKey}-${id}` : this.baseKey;\n }\n\n get LOCAL_STORAGE_DEFAULT_ID_KEY(): string {\n const id = this.contextIdSignal();\n return id !== null ? `${this.baseDefaultKey}-${id}` : this.baseDefaultKey;\n }\n\n /**\n * Generates a full datapoint explorer link from a bare config\n */\n generateExplorerLink(\n config: Partial<DatapointsGraphWidgetConfig> | DataExplorerUrlConfig,\n label: string,\n id: string\n ): string {\n const diffed = this.removeDefaults(config);\n const minified = this.minifyKeys(diffed);\n const compressed = compressToEncodedURIComponent(JSON.stringify(minified));\n const url = `/datapointexplorer-v2?id=${id}&label=${encodeURIComponent(label)}&config=${compressed}`;\n\n return url;\n }\n\n /** Load workspace configs from localStorage */\n getConfigurations(): WorkspaceConfiguration[] {\n const configurations = localStorage.getItem(this.LOCAL_STORAGE_KEY);\n if (configurations) {\n const parsedConfigs: WorkspaceConfiguration[] = JSON.parse(configurations);\n return parsedConfigs.map(workspaceConfig => {\n if (typeof workspaceConfig.config === 'string') {\n return {\n ...workspaceConfig,\n config: this.decodeConfig(workspaceConfig.config)\n };\n }\n return workspaceConfig;\n });\n }\n return [];\n }\n\n getDefaultConfigurationId(): string | null {\n return localStorage.getItem(this.LOCAL_STORAGE_DEFAULT_ID_KEY);\n }\n\n /** Save workspace configs in localStorage */\n saveConfigurations(configurations: WorkspaceConfiguration[], id: string): void {\n localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(configurations));\n localStorage.setItem(this.LOCAL_STORAGE_DEFAULT_ID_KEY, id);\n }\n\n /**\n *\n * @param urlConfig - configuration from the URL, either compressed string or already decoded object\n * @returns\n */\n getConfigurationFromUrl(\n urlConfig: DatapointsGraphWidgetConfig | string\n ): DatapointsGraphWidgetConfig {\n if (typeof urlConfig === 'string') {\n const decodedConfig = this.decodeConfig(urlConfig);\n const expandedConfig = this.expandKeys(decodedConfig);\n return expandedConfig;\n }\n\n return this.expandKeys(urlConfig);\n }\n\n /**\n * Encode a config for the URL:\n * - Cleanup the __target objects to contain only name and id\n * - Remove default values (diff from base)\n * - Minify keys\n * - Compress with lz-string\n */\n encodeConfig(config: DatapointsGraphWidgetConfig): string {\n const normalized = this.cleanUpTargetObject(config);\n const diffed = this.removeDefaults(normalized);\n const minified = this.minifyKeys(diffed);\n return compressToEncodedURIComponent(JSON.stringify(minified));\n }\n\n /**\n * Decode a config from the URL:\n * - Decompress\n * - Expand keys\n * - Merge with base config\n */\n decodeConfig(urlConfig: string): Partial<DatapointsGraphWidgetConfig> {\n if (!urlConfig) return null;\n try {\n const decompressed = decompressFromEncodedURIComponent(urlConfig);\n if (!decompressed) return null;\n const parsed = JSON.parse(decompressed);\n const expanded = this.expandKeys(parsed) as Partial<DatapointsGraphWidgetConfig>;\n return { ...DATA_EXPLORER_BASE_CONFIG, ...expanded };\n } catch {\n this.alertService.danger(\n gettext('The decoded configuration is invalid and could not be loaded.')\n );\n }\n }\n\n /** Minify keys recursively using KEY_MAP */\n private minifyKeys(\n config: Partial<DatapointsGraphWidgetConfig>\n ): Record<keyof typeof KEY_MAP, unknown> | unknown {\n if (Array.isArray(config)) return config.map(object => this.minifyKeys(object));\n if (config !== Object(config)) return config;\n\n return Object.fromEntries(\n Object.entries(config as Record<string, unknown>).map(([originalKey, originalValue]) => [\n KEY_MAP[originalKey] || originalKey,\n this.minifyKeys(originalValue)\n ])\n );\n }\n\n /** Expand keys recursively using REVERSE_KEY_MAP */\n private expandKeys(\n config: Partial<DatapointsGraphWidgetConfig>\n ): Record<keyof typeof REVERSE_KEY_MAP, unknown> | unknown {\n if (Array.isArray(config)) return config.map(o => this.expandKeys(o));\n if (config !== Object(config)) return config;\n\n return Object.fromEntries(\n Object.entries(config as Record<string, unknown>).map(([originalKey, originalValue]) => [\n REVERSE_KEY_MAP[originalKey] || originalKey,\n this.expandKeys(originalValue)\n ])\n );\n }\n\n /**\n * Remove properties from `config` that match `base` so only changed values remain.\n */\n private removeDefaults(\n config: DatapointsGraphWidgetConfig | DataExplorerUrlConfig\n ): DatapointsGraphWidgetConfig {\n const result = {};\n\n for (const key in config) {\n if (!(key in DATA_EXPLORER_BASE_CONFIG) || DATA_EXPLORER_BASE_CONFIG[key] !== config[key]) {\n result[key] = config[key];\n }\n }\n\n return result;\n }\n\n /**\n * Cleans up __target objects to only keep id and name and remove the rest.\n */\n private cleanUpTargetObject(config: DatapointsGraphWidgetConfig): DatapointsGraphWidgetConfig {\n const configCopy: any = { ...config };\n\n // Cleanup the datapoints array\n if (Array.isArray(configCopy.datapoints)) {\n configCopy.datapoints = configCopy.datapoints.map((dp: KPIDetails) => {\n if (dp && typeof dp === 'object' && dp.__target && typeof dp.__target === 'object') {\n const { id, name } = dp.__target;\n const target: IIdentified = {};\n if (id !== undefined) target.id = id;\n if (name !== undefined) target.name = name;\n return { ...dp, __target: target };\n }\n return dp;\n });\n }\n\n // Cleanup the alarmEventsConfig array\n if (Array.isArray(configCopy.alarmsEventsConfigs)) {\n configCopy.alarmsEventsConfigs = configCopy.alarmsEventsConfigs.map((a: KPIDetails) => {\n if (a && typeof a === 'object' && a.__target && typeof a.__target === 'object') {\n const { id, name } = a.__target;\n const target: IIdentified = {};\n if (id !== undefined) target.id = id;\n if (name !== undefined) target.name = name;\n return { ...a, __target: target };\n }\n return a;\n });\n }\n\n return configCopy;\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService } from '@c8y/client';\nimport { DatapointSyncService, MOChunkLoaderService } from '@c8y/ngx-components';\nimport {\n ContextDashboardService,\n ContextDashboardType\n} from '@c8y/ngx-components/context-dashboard';\nimport { firstValueFrom } from 'rxjs';\nimport { WorkspaceConfigurationService } from './configuration/workspace-configuration.service';\nimport { Router } from '@angular/router';\nimport { DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig } from '@c8y/ngx-components/echart';\nimport { DataExplorerUrlConfig } from './datapoint-explorer.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataExplorerService {\n private readonly inventory = inject(InventoryService);\n private readonly contextDashboardService = inject(ContextDashboardService);\n private readonly workspaceConfigurationService = inject(WorkspaceConfigurationService);\n private readonly moChunkLoader = inject(MOChunkLoaderService);\n private readonly datapointSyncService = inject(DatapointSyncService);\n private readonly router = inject(Router);\n private readonly maxNumberOfManagedObjectsPerRequest = 50;\n\n async fetchReportDashboard(reportId: string): Promise<IManagedObject> {\n return (\n await this.inventory.list({\n pageSize: 1,\n query: `has('c8y_Dashboard!name!report_${reportId}')`\n })\n ).data[0];\n }\n\n async fetchContextDashboard(\n dashboardId: string,\n contextAsset: IManagedObject\n ): Promise<IManagedObject> {\n const context = contextAsset.c8y_isDevice\n ? ContextDashboardType.Device\n : ContextDashboardType.Group;\n return firstValueFrom(this.contextDashboardService.getDashboard$(dashboardId, [context]));\n }\n\n async loadManagedObjectsInChunks(uniqIds: string[]) {\n const { results, errors } = await this.moChunkLoader.processInChunks(\n uniqIds,\n this.maxNumberOfManagedObjectsPerRequest,\n ids => this.loadAChunkOfManagedObjects(ids)\n );\n\n return { result: results, errors };\n }\n\n /**\n * Navigate to datapoint explorer with given config.\n * The goal of this method is to navigate to the data explorer with a provided config from any other application.\n * @param config Configuration to use\n * @param label Label to be displayed for the configuration\n * @param id ID for the configuration\n */\n navigateToDataExplorer(config: DataExplorerUrlConfig, label: string, id: string): void {\n const url = this.getUrlForConfig(config, label, id);\n this.router.navigateByUrl(url);\n }\n\n /**\n * Generate a URL for the datapoint explorer with the given config.\n * The goal of this method is to generate a shareable link to the data explorer.\n * @param config Configuration to use\n * @param label Label to be displayed for the configuration\n * @param id ID for the configuration\n * @returns The generated URL\n */\n getUrlForConfig(config: DataExplorerUrlConfig, label: string, id: string): string {\n return this.workspaceConfigurationService.generateExplorerLink(\n config as Partial<DatapointsGraphWidgetConfig>,\n label,\n id\n );\n }\n\n processAlarmEventConfigs(config: DatapointsGraphWidgetConfig): void {\n const firstTarget = config.alarmsEventsConfigs.find(ae => ae.__target)?.__target;\n\n config.alarmsEventsConfigs = config.alarmsEventsConfigs.map((ae, index) => {\n if (ae.__active === undefined) ae.__active = true;\n if (!ae.__target && firstTarget) ae.__target = firstTarget;\n if (!ae.color) ae.color = this.generateColor(index);\n return ae;\n });\n }\n\n processDatapoints(config: DatapointsGraphWidgetConfig): void {\n const firstTarget = config.datapoints.find(dp => dp.__target)?.__target;\n\n config.datapoints = config.datapoints.map((dp, index) => {\n // Default __active\n if (dp.__active === undefined) dp.__active = true;\n\n if (!dp.__target && firstTarget) dp.__target = firstTarget;\n\n if (!dp.color && !dp.__template) dp.color = this.generateColor(index);\n\n if (!dp.label) dp.label = `${dp.fragment} -> ${dp.series}`;\n\n return dp;\n });\n }\n\n /**\n * Generates a color from a fixed palette based on the index.\n * Used to assign colors to alarm/event configs in the UI.\n */\n generateColor(index: number): string {\n // Simple palette, can expand\n const palette = ['#c87d33', '#8c145f', '#8cd7fd', '#59a036', '#fb00ff', '#8d4c22', '#fbb2d7'];\n return palette[index % palette.length];\n }\n\n async loadAndAssignManagedObjects(\n config: DatapointsGraphWidgetConfig,\n uniqueIds: string[]\n ): Promise<void> {\n const managedObjectsResult = await this.loadManagedObjectsInChunks([...uniqueIds]);\n const managedObjects = managedObjectsResult.result;\n const errors = managedObjectsResult.errors;\n\n config.datapoints = this.datapointSyncService.assignUpdatedValues(\n config.datapoints,\n managedObjects,\n errors\n ) as DatapointsGraphKPIDetails[];\n }\n\n private async loadAChunkOfManagedObjects(uniqIds: string[]) {\n return this.moChunkLoader.loadAChunkOfManagedObjectsBase(\n uniqIds,\n this.inventory,\n this.maxNumberOfManagedObjectsPerRequest,\n id => this.moChunkLoader.getStatusDetails(id)\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@ var DATE_SELECTION_EXTENDED;
|
|
|
5
5
|
DATE_SELECTION_EXTENDED["CONFIG"] = "config";
|
|
6
6
|
DATE_SELECTION_EXTENDED["DASHBOARD_CONTEXT"] = "dashboard_context";
|
|
7
7
|
})(DATE_SELECTION_EXTENDED || (DATE_SELECTION_EXTENDED = {}));
|
|
8
|
+
const LEGEND_DISPLAY_OPTIONS = [
|
|
9
|
+
{ value: 'auto', label: gettext('Auto') },
|
|
10
|
+
{ value: 'dropdown', label: gettext('Show in dropdown as list') },
|
|
11
|
+
{ value: 'legend', label: gettext('Show in legend') }
|
|
12
|
+
];
|
|
8
13
|
const REALTIME_TEXTS = {
|
|
9
14
|
ACTIVE: gettext('Realtime active'),
|
|
10
15
|
INACTIVE: gettext('Realtime inactive')
|
|
@@ -62,5 +67,5 @@ const ICONS_MAP = {
|
|
|
62
67
|
* Generated bundle index. Do not edit.
|
|
63
68
|
*/
|
|
64
69
|
|
|
65
|
-
export { CHART_VIEW_CONTEXT, DATE_SELECTION_EXTENDED, ICONS_MAP, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS };
|
|
70
|
+
export { CHART_VIEW_CONTEXT, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS };
|
|
66
71
|
//# sourceMappingURL=c8y-ngx-components-echart-models.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-echart-models.mjs","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/models/c8y-ngx-components-echart-models.ts"],"sourcesContent":["import {\n AXIS_TYPES,\n CHART_LINE_TYPES,\n CHART_RENDER_TYPES,\n KPIDetails\n} from '@c8y/ngx-components/datapoint-selector';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { aggregationType, AlarmStatusType, IMeasurement, ISeries, Severity } from '@c8y/client';\nimport type { BarSeriesOption, LineSeriesOption, ScatterSeriesOption } from 'echarts';\nimport { AlarmDetails, EventDetails } from '@c8y/ngx-components/alarm-event-selector';\nimport { TooltipFormatterCallback } from 'echarts/types/src/util/types';\nimport { TopLevelFormatterParams } from 'echarts/types/src/component/tooltip/TooltipModel';\nimport {\n DateTimeContext,\n GlobalContextDisplayMode,\n RefreshOption,\n TimeInterval\n} from '@c8y/ngx-components/global-context';\n\nexport type DatapointsGraphKPIDetails = KPIDetails & {\n lineType?: DatapointLineType;\n renderType?: DatapointChartRenderType;\n};\n\nexport type DatapointsGraphWidgetConfig = {\n activeAlarmTypesOutOfRange?: string[];\n aggregatedDatapoint?: DatapointsGraphKPIDetails;\n alarmsEventsConfigs?: AlarmOrEventExtended[];\n datapoints?: DatapointsGraphKPIDetails[] | null;\n date?: DateTimeContext;\n dateFrom?: Date | string | null;\n dateTo?: Date | string | null;\n displayAggregationSelection?: boolean | null;\n displayDateSelection?: boolean | null;\n displayMarkedLine?: boolean;\n displayMarkedPoint?: boolean;\n mergeMatchingDatapoints?: boolean;\n forceMergeDatapoints?: boolean;\n realtime?: boolean | null;\n showLabelAndUnit?: boolean;\n showSlider?: boolean | null;\n sliderChange?: boolean | null;\n xAxisSplitLines?: boolean | null;\n yAxisSplitLines?: boolean | null;\n interval?: TimeInterval;\n dateTimeContext?: DateTimeContext;\n aggregation?: aggregationType | null;\n refreshOption?: RefreshOption;\n isAutoRefreshEnabled?: boolean;\n isRealtimeEnabled?: boolean;\n displayMode?: GlobalContextDisplayMode;\n refreshInterval?: number;\n numberOfDecimalPlaces?: number;\n};\n\nexport type GraphDisplayOptions = {\n displayMarkedLine: boolean;\n displayMarkedPoint: boolean;\n mergeMatchingDatapoints: boolean;\n forceMergeDatapoints: boolean;\n showLabelAndUnit: boolean;\n showSlider: boolean;\n showOnlyAlarmsOrEvents?: boolean;\n numberOfDecimalPlaces?: number;\n sliderPositionMode?: 'compact' | 'default';\n};\n\nexport type AlarmDetailsExtended = AlarmDetails & {\n __hidden?: boolean;\n __severity?: SeverityType[];\n __status?: AlarmStatusType[];\n};\n\nexport type EventDetailsExtended = EventDetails & {\n __hidden?: boolean;\n};\n\n/**\n * @description: Extended AlarmOrEvent type which includes properties from the incoming alarms/events. This interface can be used when the expected data can be either events or alarms.\n */\nexport type AlarmOrEventExtended = AlarmDetailsExtended | EventDetailsExtended;\n\nexport type DatapointsGraphWidgetTimeProps = Partial<\n Pick<DatapointsGraphWidgetConfig, 'interval' | 'dateFrom' | 'dateTo' | 'aggregation' | 'realtime'>\n>;\n\nexport enum DATE_SELECTION_EXTENDED {\n CONFIG = 'config',\n DASHBOARD_CONTEXT = 'dashboard_context'\n}\n\ntype DatapointApiValues = ISeries['values'];\nexport interface DpWithValues extends DatapointsGraphKPIDetails {\n values: DatapointApiValues;\n}\n\ntype DataPointValues = {\n min: number;\n max: number;\n};\nexport type DpValuesItem = {\n time: number;\n values: DataPointValues[];\n};\n\nexport interface MarkPointData {\n coord: [string, number | DataPointValues | null];\n name: string;\n itemType: string;\n itemStyle: { color: string };\n symbol?: string; // Symbol to display for the mark point (reference to ICONS_MAP)\n symbolSize?: number;\n}\n\nexport interface MarkLineData {\n xAxis: string | undefined;\n itemType: string;\n label: {\n show: boolean;\n formatter: TooltipFormatterCallback<TopLevelFormatterParams> | string;\n };\n itemStyle: { color: string };\n}\n\nexport interface TimeContextProps {\n temporaryUserSelectedFromDate?: string;\n temporaryUserSelectedToDate?: string;\n currentDateContextFromDate?: string;\n currentDateContextToDate?: string;\n realtime?: boolean;\n currentDateContextInterval?: 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'custom';\n aggregation?: aggregationType | null;\n}\n\nexport type DatapointLineType = (typeof CHART_LINE_TYPES)[number]['val'];\nexport type EchartsSeriesOptions = LineSeriesOption | ScatterSeriesOption | BarSeriesOption;\n\nexport type DatapointAxisType = (typeof AXIS_TYPES)[number]['val'];\n\nexport type DatapointChartRenderType = (typeof CHART_RENDER_TYPES)[number]['val'];\n\nexport const REALTIME_TEXTS = {\n ACTIVE: gettext('Realtime active'),\n INACTIVE: gettext('Realtime inactive')\n} as const;\n\nexport const PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH = {\n EVENTS: {\n DATA_EXPLORER_AND_GRAPH: 'data-explorer-and-graph'\n },\n COMPONENTS: {\n DATA_EXPLORER_DETAILS: 'data-explorer-details'\n },\n ACTIONS: {\n DATA_EXPLORER_CONFIG_INIT: 'data-explorer-config-init',\n DATA_EXPLORER_CONFIG_CHANGE: 'data-explorer-config-change',\n DATA_GRAPH_WIDGET_CONFIG: 'data-graph-widget-config'\n }\n};\n\nexport type DateString = string;\nexport type SeriesValue = [DateString, number];\n\nexport type DatapointRealtimeMeasurements = {\n measurement: IMeasurement;\n datapoint: DatapointsGraphKPIDetails;\n};\n\nexport type YAxisOptions = {\n showSplitLines: boolean;\n mergeMatchingDatapoints: boolean;\n forceMergeDatapoints: boolean;\n showLabelAndUnit: boolean;\n};\n\nexport interface SeriesDatapointInfo {\n datapointId?: string;\n datapointLabel?: string;\n datapointUnit?: string;\n}\n\nexport const SEVERITY_LABELS = {\n CRITICAL: gettext('Critical`alarm`') as 'CRITICAL',\n MAJOR: gettext('Major`alarm`') as 'MAJOR',\n MINOR: gettext('Minor`alarm`') as 'MINOR',\n WARNING: gettext('Warning`alarm`') as 'WARNING'\n} as const;\n\nexport type SeverityType = keyof typeof Severity;\n","import { ECBasicOption, TooltipFormatterCallback } from 'echarts/types/src/util/types';\nimport { MarkLineData, MarkPointData, SeriesValue } from './datapoints-graph-widget.model';\nimport { TopLevelFormatterParams } from 'echarts/types/src/component/tooltip/TooltipModel';\n\n/**\n * @param typeOfSeries is used for formatter to distinguish between events/alarms series\n * @param isDpTemplateSelected is used to distinguish if the series have a specific dp template selected. E.g. for case when a device has 2 measurements and 2 series are created for each measurement\n * @param id is used to distinguish between series\n * @param data is used to store the data for the series\n * @param itemStyle is used to set the color of the series\n */\ninterface ModifiedCustomSeriesOptions extends echarts.EChartsOption {\n typeOfSeries?: 'alarm' | 'event' | null;\n isDpTemplateSelected?: boolean;\n id: string;\n data: SeriesValue[];\n itemStyle: { color: string };\n}\n\nexport interface customSeriesMarkLineData {\n data: MarkLineData[];\n}\n\nexport interface customSeriesMarkPointData {\n data: MarkPointData[];\n}\n\nexport type CustomSeriesOptions = Omit<ModifiedCustomSeriesOptions, 'tooltip'>;\nexport interface EchartsCustomOptions extends ECBasicOption {\n tooltip: {\n formatter: TooltipFormatterCallback<TopLevelFormatterParams> | string;\n }[];\n}\n\nexport interface MeasurementSeries {\n min: number | null;\n max: number | null;\n}\n\nexport enum CHART_VIEW_CONTEXT {\n WIDGET_VIEW = 'widget_view',\n WIDGET_CONFIG = 'widget_config',\n DATAPOINT_EXPLORER = 'datapoint_explorer'\n}\n","enum ICONS {\n ALARM = 'path://M18.375 15.8462L20.4423 17.9135V18.9231H4V17.9135L6.06731 15.8462V10.75C6.06731 9.14744 6.47596 7.75321 7.29327 6.56731C8.11058 5.38141 9.24038 4.61218 10.6827 4.25962V3.53846C10.6827 3.12179 10.8269 2.76122 11.1154 2.45673C11.4038 2.15224 11.7724 2 12.2212 2C12.6699 2 13.0385 2.15224 13.3269 2.45673C13.6154 2.76122 13.7596 3.12179 13.7596 3.53846V4.25962C15.2019 4.61218 16.3317 5.38141 17.149 6.56731C17.9663 7.75321 18.375 9.14744 18.375 10.75V15.8462ZM12.2212 22C11.6442 22 11.1554 21.8077 10.7548 21.4231C10.3542 21.0385 10.1538 20.5577 10.1538 19.9808H14.2885C14.2885 20.5256 14.0801 20.9984 13.6635 21.399C13.2468 21.7997 12.766 22 12.2212 22Z',\n EVENT = 'path://M97.3013 63L128.939 95.1315C79.296 134.335 47.7653 191.526 47.7653 255.276C47.7653 319.027 79.296 376.218 128.917 415.421L97.28 447.574C37.76 400.552 0 331.93 0 255.276C0 178.622 37.76 110.001 97.3013 63ZM414.72 63C474.24 110.001 512 178.622 512 255.276C512 331.93 474.24 400.552 414.72 447.574L383.083 415.421C432.704 376.218 464.235 319.027 464.235 255.276C464.235 191.526 432.704 134.335 383.083 95.1315L414.72 63ZM160.405 127.092L192 159.181C162.24 182.681 143.317 217.013 143.317 255.276C143.317 293.539 162.219 327.871 192 351.372L160.405 383.461C120.725 352.119 95.552 306.379 95.552 255.276C95.552 204.174 120.725 158.433 160.405 127.092ZM351.595 127.092C391.296 158.433 416.448 204.174 416.448 255.276C416.448 306.379 391.275 352.119 351.595 383.461L320 351.372C349.781 327.871 368.683 293.539 368.683 255.276C368.683 217.013 349.781 182.703 320 159.181L351.595 127.092ZM256 192.722C291.505 192.722 320.287 221.504 320.287 257.009C320.287 292.514 291.505 321.296 256 321.296C220.495 321.296 191.713 292.514 191.713 257.009C191.713 221.504 220.495 192.722 256 192.722Z',\n ACKNOWLEDGED = 'path://M10.4795 2H13.4807V4.18054C14.1215 4.35248 14.7155 4.61821 15.2626 4.97773C15.8097 5.35287 16.2864 5.79836 16.6928 6.31419C17.0993 6.81438 17.4119 7.3771 17.6307 8.00234C17.8652 8.62759 17.9824 9.29191 17.9824 9.99531V13.7702L16.9742 12.762V12.7855L9.72919 5.54045C9.74482 5.54045 9.75264 5.54045 9.75264 5.54045L9.00234 4.79015C9.22118 4.64947 9.45565 4.53224 9.70574 4.43845C9.95584 4.34467 10.2138 4.25869 10.4795 4.18054V2ZM4.4068 3.03165L21.4291 20.0305L19.9988 21.4373L17.5604 18.9988H13.6917C13.7855 19.1551 13.8558 19.3193 13.9027 19.4912C13.9496 19.6475 13.973 19.8195 13.973 20.007C13.973 20.5541 13.7776 21.0231 13.3869 21.4138C12.9961 21.8046 12.5272 22 11.9801 22C11.4174 22 10.9406 21.8046 10.5498 21.4138C10.159 21.0231 9.96366 20.5541 9.96366 20.007C9.96366 19.8195 9.9871 19.6475 10.034 19.4912C10.0809 19.3193 10.1512 19.1551 10.245 18.9988H3.96131V17.9906L5.97773 15.9977V9.99531C5.97773 9.60453 6.00899 9.22939 6.07151 8.86987C6.14967 8.51036 6.25127 8.15866 6.37632 7.81477L3 4.43845L4.4068 3.03165Z',\n CLEARED = 'path://M9.09375 19.5977C9.09375 20.2617 9.32812 20.8281 9.79688 21.2969C10.2786 21.7656 10.8516 22 11.5156 22C12.1927 22 12.7656 21.7656 13.2344 21.2969C13.7161 20.8281 13.957 20.2617 13.957 19.5977H9.09375ZM16.8672 10.418C16.3203 10.5091 15.7995 10.6784 15.3047 10.9258C14.8229 11.1732 14.3867 11.4922 13.9961 11.8828C13.5013 12.3776 13.1172 12.944 12.8438 13.582C12.5833 14.2201 12.4531 14.8841 12.4531 15.5742C12.4531 16.0299 12.5052 16.4727 12.6094 16.9023C12.7266 17.332 12.8958 17.7422 13.1172 18.1328H3V16.375C4.04167 16.0495 4.74479 15.3919 5.10938 14.4023C5.47396 13.4128 5.76693 12.3385 5.98828 11.1797C6.20964 10.0208 6.48958 8.88802 6.82812 7.78125C7.16667 6.6875 7.83724 5.85417 8.83984 5.28125C9.11328 5.125 9.32812 4.91667 9.48438 4.65625C9.64062 4.38281 9.71875 4.08984 9.71875 3.77734C9.71875 3.28255 9.88802 2.86589 10.2266 2.52734C10.5781 2.17578 11.0013 2 11.4961 2C11.9909 2 12.4076 2.17578 12.7461 2.52734C13.0977 2.86589 13.2734 3.28255 13.2734 3.77734C13.2734 4.08984 13.3516 4.38281 13.5078 4.65625C13.6771 4.91667 13.8984 5.125 14.1719 5.28125C15.0443 5.78906 15.6562 6.51172 16.0078 7.44922C16.3724 8.38672 16.6589 9.3763 16.8672 10.418ZM11.4961 4.48047C11.6914 4.48047 11.8607 4.41536 12.0039 4.28516C12.1471 4.14193 12.2188 3.97266 12.2188 3.77734C12.2188 3.56901 12.1471 3.39974 12.0039 3.26953C11.8607 3.1263 11.6914 3.05469 11.4961 3.05469C11.3008 3.05469 11.1315 3.1263 10.9883 3.26953C10.8451 3.39974 10.7734 3.56901 10.7734 3.77734C10.7734 3.97266 10.8451 4.14193 10.9883 4.28516C11.1315 4.41536 11.3008 4.48047 11.4961 4.48047ZM16.9062 17.6055L19.9922 14.5195L19.2305 13.7773L16.9062 16.1016L15.8906 15.0859L15.1289 15.8477L16.9062 17.6055ZM17.5312 11.8633C18.5599 11.8633 19.4388 12.2279 20.168 12.957C20.8971 13.6862 21.2617 14.5651 21.2617 15.5938C21.2617 16.6224 20.8971 17.5013 20.168 18.2305C19.4388 18.9596 18.5599 19.3242 17.5312 19.3242C16.5026 19.3242 15.6237 18.9596 14.8945 18.2305C14.1654 17.5013 13.8008 16.6224 13.8008 15.5938C13.8008 14.5651 14.1654 13.6862 14.8945 12.957C15.6237 12.2279 16.5026 11.8633 17.5312 11.8633Z',\n MINOR = 'path://M21.9787 11.9894L11.9894 22L2 11.9894L11.9894 2L21.9787 11.9894ZM12.9052 16.5474V14.7157H11.0735V16.5474H12.9052ZM12.9052 12.9052V7.45261H11.0735V12.9052H12.9052Z',\n MAJOR = 'path://M12.8936 13.8936V10.234H11.1064V13.8936H12.8936ZM12.8936 17.5106V15.6809H11.1064V17.5106H12.8936ZM2 20.234L12 3L22 20.234H2Z',\n CRITICAL = 'path://M12.0117 22C10.6362 22 9.3388 21.7343 8.11958 21.2028C6.90035 20.687 5.83744 19.9758 4.93083 19.0692C4.02423 18.1626 3.31301 17.0996 2.79719 15.8804C2.26573 14.6768 2 13.3794 2 11.9883C2 10.6127 2.26573 9.31536 2.79719 8.09613C3.31301 6.89254 4.02423 5.83744 4.93083 4.93083C5.83744 4.02423 6.90035 3.3052 8.11958 2.77374C9.3388 2.25791 10.6362 2 12.0117 2C13.3873 2 14.6846 2.25791 15.9039 2.77374C17.1231 3.3052 18.186 4.02423 19.0926 4.93083C19.9992 5.83744 20.7104 6.89254 21.2263 8.09613C21.7577 9.31536 22.0234 10.6127 22.0234 11.9883C22.0234 13.3794 21.7577 14.6768 21.2263 15.8804C20.7104 17.0996 19.9992 18.1626 19.0926 19.0692C18.186 19.9758 17.1231 20.687 15.9039 21.2028C14.6846 21.7343 13.3873 22 12.0117 22ZM13.0199 6.99414H11.0035V12.9965H13.0199V6.99414ZM13.0199 14.9894H11.0035V17.0059H13.0199V14.9894Z',\n WARNING = 'path://M12 2C13.3772 2 14.6761 2.25822 15.8967 2.77465C17.1174 3.29108 18.1815 4.00313 19.0892 4.9108C19.9969 5.81847 20.7089 6.88263 21.2254 8.10329C21.7418 9.32394 22 10.6228 22 12C22 13.3772 21.7418 14.6761 21.2254 15.8967C20.7089 17.1174 19.9969 18.1815 19.0892 19.0892C18.1815 19.9969 17.1174 20.7089 15.8967 21.2254C14.6761 21.7418 13.3772 22 12 22C10.6228 22 9.32394 21.7418 8.10329 21.2254C6.88263 20.7089 5.81847 19.9969 4.9108 19.0892C4.00313 18.1815 3.29108 17.1174 2.77465 15.8967C2.25822 14.6761 2 13.3772 2 12C2 10.6228 2.25822 9.32394 2.77465 8.10329C3.29108 6.88263 4.00313 5.81847 4.9108 4.9108C5.81847 4.00313 6.88263 3.29108 8.10329 2.77465C9.32394 2.25822 10.6228 2 12 2Z'\n}\n\nexport const ICONS_MAP = {\n ALARM: ICONS.ALARM,\n EVENT: ICONS.EVENT,\n ACKNOWLEDGED: ICONS.ACKNOWLEDGED,\n CLEARED: ICONS.CLEARED,\n MINOR: ICONS.MINOR,\n MAJOR: ICONS.MAJOR,\n CRITICAL: ICONS.CRITICAL,\n WARNING: ICONS.WARNING\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAsFY;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACzC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAA,CAAA;AAuD5B,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC;AAClC,IAAA,QAAQ,EAAE,OAAO,CAAC,mBAAmB;;AAGhC,MAAM,0CAA0C,GAAG;AACxD,IAAA,MAAM,EAAE;AACN,QAAA,uBAAuB,EAAE;AAC1B,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,qBAAqB,EAAE;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,yBAAyB,EAAE,2BAA2B;AACtD,QAAA,2BAA2B,EAAE,6BAA6B;AAC1D,QAAA,wBAAwB,EAAE;AAC3B;;AAwBI,MAAM,eAAe,GAAG;AAC7B,IAAA,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAe;AAClD,IAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAY;AACzC,IAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAY;AACzC,IAAA,OAAO,EAAE,OAAO,CAAC,gBAAgB;;;IClJvB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AAC3C,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;;ACvC9B,IAAK,KASJ;AATD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,qpBAA6pB;AAC7pB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,6jCAAqkC;AACrkC,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,qgCAAohC;AACphC,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,2hEAAqiE;AACriE,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,2KAAmL;AACnL,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,qIAA6I;AAC7I,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,4zBAAu0B;AACv0B,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,qrBAA+rB;AACjsB,CAAC,EATI,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;AAWH,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,OAAO,EAAE,KAAK,CAAC;;;ACnBjB;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-echart-models.mjs","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/models/c8y-ngx-components-echart-models.ts"],"sourcesContent":["import {\n AXIS_TYPES,\n CHART_LINE_TYPES,\n CHART_RENDER_TYPES,\n KPIDetails\n} from '@c8y/ngx-components/datapoint-selector';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { aggregationType, AlarmStatusType, IMeasurement, ISeries, Severity } from '@c8y/client';\nimport type { BarSeriesOption, LineSeriesOption, ScatterSeriesOption } from 'echarts';\nimport { AlarmDetails, EventDetails } from '@c8y/ngx-components/alarm-event-selector';\nimport { TooltipFormatterCallback } from 'echarts/types/src/util/types';\nimport { TopLevelFormatterParams } from 'echarts/types/src/component/tooltip/TooltipModel';\nimport {\n DateTimeContext,\n GlobalContextDisplayMode,\n RefreshOption,\n TimeInterval\n} from '@c8y/ngx-components/global-context';\n\nexport type DatapointsGraphKPIDetails = KPIDetails & {\n lineType?: DatapointLineType;\n renderType?: DatapointChartRenderType;\n};\n\nexport type DatapointsGraphWidgetConfig = {\n activeAlarmTypesOutOfRange?: string[];\n aggregatedDatapoint?: DatapointsGraphKPIDetails;\n alarmsEventsConfigs?: AlarmOrEventExtended[];\n datapoints?: DatapointsGraphKPIDetails[] | null;\n dataPointLegendDisplay?: string | null;\n date?: DateTimeContext;\n dateFrom?: Date | string | null;\n dateTo?: Date | string | null;\n displayAggregationSelection?: boolean | null;\n displayDateSelection?: boolean | null;\n displayMarkedLine?: boolean;\n displayMarkedPoint?: boolean;\n mergeMatchingDatapoints?: boolean;\n forceMergeDatapoints?: boolean;\n realtime?: boolean | null;\n showLabelAndUnit?: boolean;\n showSlider?: boolean | null;\n sliderChange?: boolean | null;\n xAxisSplitLines?: boolean | null;\n yAxisSplitLines?: boolean | null;\n interval?: TimeInterval;\n dateTimeContext?: DateTimeContext;\n aggregation?: aggregationType | null;\n refreshOption?: RefreshOption;\n isAutoRefreshEnabled?: boolean;\n isRealtimeEnabled?: boolean;\n displayMode?: GlobalContextDisplayMode;\n refreshInterval?: number;\n numberOfDecimalPlaces?: number;\n};\n\nexport type GraphDisplayOptions = {\n displayMarkedLine: boolean;\n displayMarkedPoint: boolean;\n mergeMatchingDatapoints: boolean;\n forceMergeDatapoints: boolean;\n showLabelAndUnit: boolean;\n showSlider: boolean;\n showOnlyAlarmsOrEvents?: boolean;\n numberOfDecimalPlaces?: number;\n sliderPositionMode?: 'compact' | 'default';\n};\n\nexport type AlarmDetailsExtended = AlarmDetails & {\n __hidden?: boolean;\n __severity?: SeverityType[];\n __status?: AlarmStatusType[];\n};\n\nexport type EventDetailsExtended = EventDetails & {\n __hidden?: boolean;\n};\n\n/**\n * @description: Extended AlarmOrEvent type which includes properties from the incoming alarms/events. This interface can be used when the expected data can be either events or alarms.\n */\nexport type AlarmOrEventExtended = AlarmDetailsExtended | EventDetailsExtended;\n\nexport type DatapointsGraphWidgetTimeProps = Partial<\n Pick<DatapointsGraphWidgetConfig, 'interval' | 'dateFrom' | 'dateTo' | 'aggregation' | 'realtime'>\n>;\n\nexport enum DATE_SELECTION_EXTENDED {\n CONFIG = 'config',\n DASHBOARD_CONTEXT = 'dashboard_context'\n}\n\ntype DatapointApiValues = ISeries['values'];\nexport interface DpWithValues extends DatapointsGraphKPIDetails {\n values: DatapointApiValues;\n}\n\ntype DataPointValues = {\n min: number;\n max: number;\n};\nexport type DpValuesItem = {\n time: number;\n values: DataPointValues[];\n};\n\nexport interface LegendDisplayOptionItem {\n value: string;\n label: string;\n}\n\nexport const LEGEND_DISPLAY_OPTIONS: LegendDisplayOptionItem[] = [\n { value: 'auto', label: gettext('Auto') },\n { value: 'dropdown', label: gettext('Show in dropdown as list') },\n { value: 'legend', label: gettext('Show in legend') }\n];\n\nexport interface MarkPointData {\n coord: [string, number | DataPointValues | null];\n name: string;\n itemType: string;\n itemStyle: { color: string };\n symbol?: string; // Symbol to display for the mark point (reference to ICONS_MAP)\n symbolSize?: number;\n}\n\nexport interface MarkLineData {\n xAxis: string | undefined;\n itemType: string;\n label: {\n show: boolean;\n formatter: TooltipFormatterCallback<TopLevelFormatterParams> | string;\n };\n itemStyle: { color: string };\n}\n\nexport interface TimeContextProps {\n temporaryUserSelectedFromDate?: string;\n temporaryUserSelectedToDate?: string;\n currentDateContextFromDate?: string;\n currentDateContextToDate?: string;\n realtime?: boolean;\n currentDateContextInterval?: 'minutes' | 'hours' | 'days' | 'weeks' | 'months' | 'custom';\n aggregation?: aggregationType | null;\n}\n\nexport type DatapointLineType = (typeof CHART_LINE_TYPES)[number]['val'];\nexport type EchartsSeriesOptions = LineSeriesOption | ScatterSeriesOption | BarSeriesOption;\n\nexport type DatapointAxisType = (typeof AXIS_TYPES)[number]['val'];\n\nexport type DatapointChartRenderType = (typeof CHART_RENDER_TYPES)[number]['val'];\n\nexport const REALTIME_TEXTS = {\n ACTIVE: gettext('Realtime active'),\n INACTIVE: gettext('Realtime inactive')\n} as const;\n\nexport const PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH = {\n EVENTS: {\n DATA_EXPLORER_AND_GRAPH: 'data-explorer-and-graph'\n },\n COMPONENTS: {\n DATA_EXPLORER_DETAILS: 'data-explorer-details'\n },\n ACTIONS: {\n DATA_EXPLORER_CONFIG_INIT: 'data-explorer-config-init',\n DATA_EXPLORER_CONFIG_CHANGE: 'data-explorer-config-change',\n DATA_GRAPH_WIDGET_CONFIG: 'data-graph-widget-config'\n }\n};\n\nexport type DateString = string;\nexport type SeriesValue = [DateString, number];\n\nexport type DatapointRealtimeMeasurements = {\n measurement: IMeasurement;\n datapoint: DatapointsGraphKPIDetails;\n};\n\nexport type YAxisOptions = {\n showSplitLines: boolean;\n mergeMatchingDatapoints: boolean;\n forceMergeDatapoints: boolean;\n showLabelAndUnit: boolean;\n};\n\nexport interface SeriesDatapointInfo {\n datapointId?: string;\n datapointLabel?: string;\n datapointUnit?: string;\n}\n\nexport const SEVERITY_LABELS = {\n CRITICAL: gettext('Critical`alarm`') as 'CRITICAL',\n MAJOR: gettext('Major`alarm`') as 'MAJOR',\n MINOR: gettext('Minor`alarm`') as 'MINOR',\n WARNING: gettext('Warning`alarm`') as 'WARNING'\n} as const;\n\nexport type SeverityType = keyof typeof Severity;\n\nexport interface SelectableDatapoint {\n type: 'ALARM' | 'DATAPOINT' | 'EVENT';\n original: KPIDetails | AlarmDetailsExtended | EventDetailsExtended;\n}\n","import { ECBasicOption, TooltipFormatterCallback } from 'echarts/types/src/util/types';\nimport { MarkLineData, MarkPointData, SeriesValue } from './datapoints-graph-widget.model';\nimport { TopLevelFormatterParams } from 'echarts/types/src/component/tooltip/TooltipModel';\n\n/**\n * @param typeOfSeries is used for formatter to distinguish between events/alarms series\n * @param isDpTemplateSelected is used to distinguish if the series have a specific dp template selected. E.g. for case when a device has 2 measurements and 2 series are created for each measurement\n * @param id is used to distinguish between series\n * @param data is used to store the data for the series\n * @param itemStyle is used to set the color of the series\n */\ninterface ModifiedCustomSeriesOptions extends echarts.EChartsOption {\n typeOfSeries?: 'alarm' | 'event' | null;\n isDpTemplateSelected?: boolean;\n id: string;\n data: SeriesValue[];\n itemStyle: { color: string };\n}\n\nexport interface customSeriesMarkLineData {\n data: MarkLineData[];\n}\n\nexport interface customSeriesMarkPointData {\n data: MarkPointData[];\n}\n\nexport type CustomSeriesOptions = Omit<ModifiedCustomSeriesOptions, 'tooltip'>;\nexport interface EchartsCustomOptions extends ECBasicOption {\n tooltip: {\n formatter: TooltipFormatterCallback<TopLevelFormatterParams> | string;\n }[];\n}\n\nexport interface MeasurementSeries {\n min: number | null;\n max: number | null;\n}\n\nexport enum CHART_VIEW_CONTEXT {\n WIDGET_VIEW = 'widget_view',\n WIDGET_CONFIG = 'widget_config',\n DATAPOINT_EXPLORER = 'datapoint_explorer'\n}\n","enum ICONS {\n ALARM = 'path://M18.375 15.8462L20.4423 17.9135V18.9231H4V17.9135L6.06731 15.8462V10.75C6.06731 9.14744 6.47596 7.75321 7.29327 6.56731C8.11058 5.38141 9.24038 4.61218 10.6827 4.25962V3.53846C10.6827 3.12179 10.8269 2.76122 11.1154 2.45673C11.4038 2.15224 11.7724 2 12.2212 2C12.6699 2 13.0385 2.15224 13.3269 2.45673C13.6154 2.76122 13.7596 3.12179 13.7596 3.53846V4.25962C15.2019 4.61218 16.3317 5.38141 17.149 6.56731C17.9663 7.75321 18.375 9.14744 18.375 10.75V15.8462ZM12.2212 22C11.6442 22 11.1554 21.8077 10.7548 21.4231C10.3542 21.0385 10.1538 20.5577 10.1538 19.9808H14.2885C14.2885 20.5256 14.0801 20.9984 13.6635 21.399C13.2468 21.7997 12.766 22 12.2212 22Z',\n EVENT = 'path://M97.3013 63L128.939 95.1315C79.296 134.335 47.7653 191.526 47.7653 255.276C47.7653 319.027 79.296 376.218 128.917 415.421L97.28 447.574C37.76 400.552 0 331.93 0 255.276C0 178.622 37.76 110.001 97.3013 63ZM414.72 63C474.24 110.001 512 178.622 512 255.276C512 331.93 474.24 400.552 414.72 447.574L383.083 415.421C432.704 376.218 464.235 319.027 464.235 255.276C464.235 191.526 432.704 134.335 383.083 95.1315L414.72 63ZM160.405 127.092L192 159.181C162.24 182.681 143.317 217.013 143.317 255.276C143.317 293.539 162.219 327.871 192 351.372L160.405 383.461C120.725 352.119 95.552 306.379 95.552 255.276C95.552 204.174 120.725 158.433 160.405 127.092ZM351.595 127.092C391.296 158.433 416.448 204.174 416.448 255.276C416.448 306.379 391.275 352.119 351.595 383.461L320 351.372C349.781 327.871 368.683 293.539 368.683 255.276C368.683 217.013 349.781 182.703 320 159.181L351.595 127.092ZM256 192.722C291.505 192.722 320.287 221.504 320.287 257.009C320.287 292.514 291.505 321.296 256 321.296C220.495 321.296 191.713 292.514 191.713 257.009C191.713 221.504 220.495 192.722 256 192.722Z',\n ACKNOWLEDGED = 'path://M10.4795 2H13.4807V4.18054C14.1215 4.35248 14.7155 4.61821 15.2626 4.97773C15.8097 5.35287 16.2864 5.79836 16.6928 6.31419C17.0993 6.81438 17.4119 7.3771 17.6307 8.00234C17.8652 8.62759 17.9824 9.29191 17.9824 9.99531V13.7702L16.9742 12.762V12.7855L9.72919 5.54045C9.74482 5.54045 9.75264 5.54045 9.75264 5.54045L9.00234 4.79015C9.22118 4.64947 9.45565 4.53224 9.70574 4.43845C9.95584 4.34467 10.2138 4.25869 10.4795 4.18054V2ZM4.4068 3.03165L21.4291 20.0305L19.9988 21.4373L17.5604 18.9988H13.6917C13.7855 19.1551 13.8558 19.3193 13.9027 19.4912C13.9496 19.6475 13.973 19.8195 13.973 20.007C13.973 20.5541 13.7776 21.0231 13.3869 21.4138C12.9961 21.8046 12.5272 22 11.9801 22C11.4174 22 10.9406 21.8046 10.5498 21.4138C10.159 21.0231 9.96366 20.5541 9.96366 20.007C9.96366 19.8195 9.9871 19.6475 10.034 19.4912C10.0809 19.3193 10.1512 19.1551 10.245 18.9988H3.96131V17.9906L5.97773 15.9977V9.99531C5.97773 9.60453 6.00899 9.22939 6.07151 8.86987C6.14967 8.51036 6.25127 8.15866 6.37632 7.81477L3 4.43845L4.4068 3.03165Z',\n CLEARED = 'path://M9.09375 19.5977C9.09375 20.2617 9.32812 20.8281 9.79688 21.2969C10.2786 21.7656 10.8516 22 11.5156 22C12.1927 22 12.7656 21.7656 13.2344 21.2969C13.7161 20.8281 13.957 20.2617 13.957 19.5977H9.09375ZM16.8672 10.418C16.3203 10.5091 15.7995 10.6784 15.3047 10.9258C14.8229 11.1732 14.3867 11.4922 13.9961 11.8828C13.5013 12.3776 13.1172 12.944 12.8438 13.582C12.5833 14.2201 12.4531 14.8841 12.4531 15.5742C12.4531 16.0299 12.5052 16.4727 12.6094 16.9023C12.7266 17.332 12.8958 17.7422 13.1172 18.1328H3V16.375C4.04167 16.0495 4.74479 15.3919 5.10938 14.4023C5.47396 13.4128 5.76693 12.3385 5.98828 11.1797C6.20964 10.0208 6.48958 8.88802 6.82812 7.78125C7.16667 6.6875 7.83724 5.85417 8.83984 5.28125C9.11328 5.125 9.32812 4.91667 9.48438 4.65625C9.64062 4.38281 9.71875 4.08984 9.71875 3.77734C9.71875 3.28255 9.88802 2.86589 10.2266 2.52734C10.5781 2.17578 11.0013 2 11.4961 2C11.9909 2 12.4076 2.17578 12.7461 2.52734C13.0977 2.86589 13.2734 3.28255 13.2734 3.77734C13.2734 4.08984 13.3516 4.38281 13.5078 4.65625C13.6771 4.91667 13.8984 5.125 14.1719 5.28125C15.0443 5.78906 15.6562 6.51172 16.0078 7.44922C16.3724 8.38672 16.6589 9.3763 16.8672 10.418ZM11.4961 4.48047C11.6914 4.48047 11.8607 4.41536 12.0039 4.28516C12.1471 4.14193 12.2188 3.97266 12.2188 3.77734C12.2188 3.56901 12.1471 3.39974 12.0039 3.26953C11.8607 3.1263 11.6914 3.05469 11.4961 3.05469C11.3008 3.05469 11.1315 3.1263 10.9883 3.26953C10.8451 3.39974 10.7734 3.56901 10.7734 3.77734C10.7734 3.97266 10.8451 4.14193 10.9883 4.28516C11.1315 4.41536 11.3008 4.48047 11.4961 4.48047ZM16.9062 17.6055L19.9922 14.5195L19.2305 13.7773L16.9062 16.1016L15.8906 15.0859L15.1289 15.8477L16.9062 17.6055ZM17.5312 11.8633C18.5599 11.8633 19.4388 12.2279 20.168 12.957C20.8971 13.6862 21.2617 14.5651 21.2617 15.5938C21.2617 16.6224 20.8971 17.5013 20.168 18.2305C19.4388 18.9596 18.5599 19.3242 17.5312 19.3242C16.5026 19.3242 15.6237 18.9596 14.8945 18.2305C14.1654 17.5013 13.8008 16.6224 13.8008 15.5938C13.8008 14.5651 14.1654 13.6862 14.8945 12.957C15.6237 12.2279 16.5026 11.8633 17.5312 11.8633Z',\n MINOR = 'path://M21.9787 11.9894L11.9894 22L2 11.9894L11.9894 2L21.9787 11.9894ZM12.9052 16.5474V14.7157H11.0735V16.5474H12.9052ZM12.9052 12.9052V7.45261H11.0735V12.9052H12.9052Z',\n MAJOR = 'path://M12.8936 13.8936V10.234H11.1064V13.8936H12.8936ZM12.8936 17.5106V15.6809H11.1064V17.5106H12.8936ZM2 20.234L12 3L22 20.234H2Z',\n CRITICAL = 'path://M12.0117 22C10.6362 22 9.3388 21.7343 8.11958 21.2028C6.90035 20.687 5.83744 19.9758 4.93083 19.0692C4.02423 18.1626 3.31301 17.0996 2.79719 15.8804C2.26573 14.6768 2 13.3794 2 11.9883C2 10.6127 2.26573 9.31536 2.79719 8.09613C3.31301 6.89254 4.02423 5.83744 4.93083 4.93083C5.83744 4.02423 6.90035 3.3052 8.11958 2.77374C9.3388 2.25791 10.6362 2 12.0117 2C13.3873 2 14.6846 2.25791 15.9039 2.77374C17.1231 3.3052 18.186 4.02423 19.0926 4.93083C19.9992 5.83744 20.7104 6.89254 21.2263 8.09613C21.7577 9.31536 22.0234 10.6127 22.0234 11.9883C22.0234 13.3794 21.7577 14.6768 21.2263 15.8804C20.7104 17.0996 19.9992 18.1626 19.0926 19.0692C18.186 19.9758 17.1231 20.687 15.9039 21.2028C14.6846 21.7343 13.3873 22 12.0117 22ZM13.0199 6.99414H11.0035V12.9965H13.0199V6.99414ZM13.0199 14.9894H11.0035V17.0059H13.0199V14.9894Z',\n WARNING = 'path://M12 2C13.3772 2 14.6761 2.25822 15.8967 2.77465C17.1174 3.29108 18.1815 4.00313 19.0892 4.9108C19.9969 5.81847 20.7089 6.88263 21.2254 8.10329C21.7418 9.32394 22 10.6228 22 12C22 13.3772 21.7418 14.6761 21.2254 15.8967C20.7089 17.1174 19.9969 18.1815 19.0892 19.0892C18.1815 19.9969 17.1174 20.7089 15.8967 21.2254C14.6761 21.7418 13.3772 22 12 22C10.6228 22 9.32394 21.7418 8.10329 21.2254C6.88263 20.7089 5.81847 19.9969 4.9108 19.0892C4.00313 18.1815 3.29108 17.1174 2.77465 15.8967C2.25822 14.6761 2 13.3772 2 12C2 10.6228 2.25822 9.32394 2.77465 8.10329C3.29108 6.88263 4.00313 5.81847 4.9108 4.9108C5.81847 4.00313 6.88263 3.29108 8.10329 2.77465C9.32394 2.25822 10.6228 2 12 2Z'\n}\n\nexport const ICONS_MAP = {\n ALARM: ICONS.ALARM,\n EVENT: ICONS.EVENT,\n ACKNOWLEDGED: ICONS.ACKNOWLEDGED,\n CLEARED: ICONS.CLEARED,\n MINOR: ICONS.MINOR,\n MAJOR: ICONS.MAJOR,\n CRITICAL: ICONS.CRITICAL,\n WARNING: ICONS.WARNING\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;IAuFY;AAAZ,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,uBAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC;AACzC,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAA,CAAA;AAwB5B,MAAM,sBAAsB,GAA8B;IAC/D,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;IACzC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,0BAA0B,CAAC,EAAE;IACjE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;;AAuC9C,MAAM,cAAc,GAAG;AAC5B,IAAA,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC;AAClC,IAAA,QAAQ,EAAE,OAAO,CAAC,mBAAmB;;AAGhC,MAAM,0CAA0C,GAAG;AACxD,IAAA,MAAM,EAAE;AACN,QAAA,uBAAuB,EAAE;AAC1B,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,qBAAqB,EAAE;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,yBAAyB,EAAE,2BAA2B;AACtD,QAAA,2BAA2B,EAAE,6BAA6B;AAC1D,QAAA,wBAAwB,EAAE;AAC3B;;AAwBI,MAAM,eAAe,GAAG;AAC7B,IAAA,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAe;AAClD,IAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAY;AACzC,IAAA,KAAK,EAAE,OAAO,CAAC,cAAc,CAAY;AACzC,IAAA,OAAO,EAAE,OAAO,CAAC,gBAAgB;;;IC9JvB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AAC3C,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;;ACvC9B,IAAK,KASJ;AATD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,qpBAA6pB;AAC7pB,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,6jCAAqkC;AACrkC,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,qgCAAohC;AACphC,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,2hEAAqiE;AACriE,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,2KAAmL;AACnL,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,qIAA6I;AAC7I,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,4zBAAu0B;AACv0B,IAAA,KAAA,CAAA,SAAA,CAAA,GAAA,qrBAA+rB;AACjsB,CAAC,EATI,KAAK,KAAL,KAAK,GAAA,EAAA,CAAA,CAAA;AAWH,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChC,OAAO,EAAE,KAAK,CAAC,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,OAAO,EAAE,KAAK,CAAC;;;ACnBjB;;AAEG;;;;"}
|
|
@@ -30,6 +30,11 @@ var DATE_SELECTION_EXTENDED;
|
|
|
30
30
|
DATE_SELECTION_EXTENDED["CONFIG"] = "config";
|
|
31
31
|
DATE_SELECTION_EXTENDED["DASHBOARD_CONTEXT"] = "dashboard_context";
|
|
32
32
|
})(DATE_SELECTION_EXTENDED || (DATE_SELECTION_EXTENDED = {}));
|
|
33
|
+
const LEGEND_DISPLAY_OPTIONS = [
|
|
34
|
+
{ value: 'auto', label: gettext('Auto') },
|
|
35
|
+
{ value: 'dropdown', label: gettext('Show in dropdown as list') },
|
|
36
|
+
{ value: 'legend', label: gettext('Show in legend') }
|
|
37
|
+
];
|
|
33
38
|
const REALTIME_TEXTS = {
|
|
34
39
|
ACTIVE: gettext('Realtime active'),
|
|
35
40
|
INACTIVE: gettext('Realtime inactive')
|
|
@@ -2529,5 +2534,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
2529
2534
|
* Generated bundle index. Do not edit.
|
|
2530
2535
|
*/
|
|
2531
2536
|
|
|
2532
|
-
export { CHART_VIEW_CONTEXT, ChartAlarmsService, ChartEventsService, ChartHelpersService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS, SelectAggregatedDatapointComponent };
|
|
2537
|
+
export { CHART_VIEW_CONTEXT, ChartAlarmsService, ChartEventsService, ChartHelpersService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS, SelectAggregatedDatapointComponent };
|
|
2533
2538
|
//# sourceMappingURL=c8y-ngx-components-echart.mjs.map
|