@c8y/ngx-components 1023.66.4 → 1023.68.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.
Files changed (40) hide show
  1. package/asset-properties/index.d.ts +16 -42
  2. package/asset-properties/index.d.ts.map +1 -1
  3. package/echart/index.d.ts +10 -6
  4. package/echart/index.d.ts.map +1 -1
  5. package/echart/models/index.d.ts +2 -1
  6. package/echart/models/index.d.ts.map +1 -1
  7. package/fesm2022/c8y-ngx-components-asset-properties.mjs +67 -21
  8. package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-echart-models.mjs +12 -1
  10. package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-echart.mjs +111 -58
  12. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-operation-picker.mjs +217 -0
  14. package/fesm2022/c8y-ngx-components-operation-picker.mjs.map +1 -0
  15. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +11 -122
  16. package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +36 -27
  18. package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components.mjs +29 -1
  20. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  21. package/index.d.ts +65 -2
  22. package/index.d.ts.map +1 -1
  23. package/locales/de.po +3 -0
  24. package/locales/es.po +3 -0
  25. package/locales/fr.po +3 -0
  26. package/locales/ja_JP.po +3 -0
  27. package/locales/ko.po +3 -0
  28. package/locales/locales.pot +3 -0
  29. package/locales/nl.po +3 -0
  30. package/locales/pl.po +3 -0
  31. package/locales/pt_BR.po +3 -0
  32. package/locales/zh_CN.po +3 -0
  33. package/locales/zh_TW.po +3 -0
  34. package/operation-picker/index.d.ts +77 -0
  35. package/operation-picker/index.d.ts.map +1 -0
  36. package/package.json +1 -1
  37. package/widgets/implementations/asset-table/index.d.ts +1 -0
  38. package/widgets/implementations/asset-table/index.d.ts.map +1 -1
  39. package/widgets/implementations/datapoints-graph/index.d.ts +1 -0
  40. package/widgets/implementations/datapoints-graph/index.d.ts.map +1 -1
@@ -2,11 +2,11 @@ import * as i0 from '@angular/core';
2
2
  import { Injector, Type, TemplateRef, ElementRef, ViewContainerRef, OnInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges, InjectionToken } from '@angular/core';
3
3
  import * as _c8y_client from '@c8y/client';
4
4
  import { IIdentified, IManagedObject, IAlarm, IEvent, Paging } from '@c8y/client';
5
+ import { C8yPropertyType, C8yJsonSchema, BottomDrawerRef, ExtensionPointForPlugins, PluginsResolveService, GenericHookType, GenericHookOptions } from '@c8y/ngx-components';
5
6
  import { Observable, BehaviorSubject } from 'rxjs';
6
7
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
7
8
  import { CdkTree } from '@angular/cdk/tree';
8
9
  import { DataSource } from '@angular/cdk/collections';
9
- import { BottomDrawerRef, ExtensionPointForPlugins, PluginsResolveService, GenericHookType, GenericHookOptions } from '@c8y/ngx-components';
10
10
  import { Router } from '@angular/router';
11
11
  import { ControlValueAccessor } from '@angular/forms';
12
12
  import { AssetSelectionChangeEvent } from '@c8y/ngx-components/assets-navigator';
@@ -170,37 +170,6 @@ declare const RESULT_TYPES: {
170
170
  label: "Value, unit and time";
171
171
  };
172
172
  };
173
- type C8yPropertyType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null' | 'date' | 'enum' | 'file' | 'c8y_JsonSchema' | ['string', 'null'] | Array<C8yPropertyType>;
174
- type C8yPropertyFormat = 'datetime' | 'hidden' | 'textarea';
175
- interface C8yJsonSchemaProperty {
176
- type: C8yPropertyType;
177
- title?: string;
178
- label?: string;
179
- description?: string;
180
- key?: string;
181
- name?: string;
182
- minimum?: number;
183
- maximum?: number;
184
- minLength?: number;
185
- maxLength?: number;
186
- pattern?: string;
187
- required?: boolean;
188
- readOnly?: boolean;
189
- printFormat?: C8yPropertyFormat;
190
- 'x-schema-form'?: {
191
- type: string;
192
- };
193
- properties?: Record<string, C8yJsonSchemaProperty>;
194
- items?: C8yJsonSchemaProperty;
195
- 'x-show-if-any-available'?: {
196
- contextPath: string;
197
- }[];
198
- [key: string]: any;
199
- }
200
- interface C8yJsonSchema {
201
- properties: Record<string, C8yJsonSchemaProperty>;
202
- required?: string[];
203
- }
204
173
  interface BaseProperty {
205
174
  name: string;
206
175
  label: string;
@@ -233,11 +202,14 @@ type AssetPropertyTab = keyof Required<HiddenTabs>;
233
202
  */
234
203
  declare class AssetPropertiesService {
235
204
  private readonly FRAGMENTS_TO_OMIT;
205
+ private readonly MODEL_API_FEATURE_KEY;
236
206
  private inventoryService;
237
207
  private assetTypesRealtimeService;
238
208
  private groupService;
239
209
  private alert;
240
210
  private computedPropertiesService;
211
+ private featureCacheService;
212
+ private assetDefinitionsService;
241
213
  /**
242
214
  * Filters added properties to only include those compatible with the given asset.
243
215
  * Currently only checks compatibility for computed properties.
@@ -247,11 +219,13 @@ declare class AssetPropertiesService {
247
219
  */
248
220
  filterCompatibleProperties(allAddedProperties: AssetPropertyType[], asset: IManagedObject): Promise<AssetPropertyType[]>;
249
221
  /**
250
- * Retrieves properties for an asset from asset library.
222
+ * Retrieves properties for an asset.
223
+ * First, it tries to get properties from definitions API (if enabled),
224
+ * then falls back to asset library.
251
225
  * @param asset The asset for which to retrieve custom properties.
252
226
  * @returns A promise resolving to the list of custom properties.
253
227
  */
254
- requestAssetProperties(asset: IManagedObject): Promise<IManagedObject[]>;
228
+ getAssetProperties(asset: IManagedObject): Promise<AssetPropertyType[]>;
255
229
  /**
256
230
  * Retrieves the initial set of properties for an asset, based on its type.
257
231
  * @param asset The asset for which to retrieve properties.
@@ -270,18 +244,12 @@ declare class AssetPropertiesService {
270
244
  * @returns A promise resolving to the list of group properties.
271
245
  */
272
246
  getGroupProperties(asset: IManagedObject): Promise<AssetPropertyType[]>;
273
- /**
274
- * Retrieves properties for a regular asset.
275
- * @param asset The asset for which to retrieve properties.
276
- * @returns A promise resolving to the list of asset properties.
277
- */
278
- getAssetProperties(asset: IManagedObject): Promise<AssetPropertyType[]>;
279
247
  /**
280
248
  * Categorizes custom properties into simple and complex types.
281
249
  * @param properties The custom properties to categorize.
282
250
  * @returns The categorized custom properties.
283
251
  */
284
- categorizeCustomProperties(properties: IManagedObject[]): AssetPropertyType[];
252
+ categorizeCustomProperties(properties: IManagedObject[] | AssetPropertyType[]): AssetPropertyType[];
285
253
  /**
286
254
  * Categorizes and flattens hierarchical properties into simple and complex types.
287
255
  * @param properties The hierarchical properties to categorize and flatten.
@@ -329,6 +297,12 @@ declare class AssetPropertiesService {
329
297
  private extractFragments;
330
298
  private shouldSkipFragment;
331
299
  private addPropertyItem;
300
+ /**
301
+ * Converts asset definition from model API into AssetPropertyType array.
302
+ * @param assetDefinition The asset definition to convert.
303
+ * @returns The converted custom properties.
304
+ */
305
+ private categorizePropertiesFromDefinition;
332
306
  static ɵfac: i0.ɵɵFactoryDeclaration<AssetPropertiesService, never>;
333
307
  static ɵprov: i0.ɵɵInjectableDeclaration<AssetPropertiesService>;
334
308
  }
@@ -978,5 +952,5 @@ declare class AssetPropertySelectorComponent implements OnInit, ControlValueAcce
978
952
  }
979
953
 
980
954
  export { AssetPropertiesService, AssetPropertyActionDirective, AssetPropertyListComponent, AssetPropertySelectorComponent, AssetPropertySelectorDrawerComponent, AssetPropertyTabsComponent, ComputedPropertiesService, CustomPropertiesDrawerService, HOOK_COMPUTED_PROPERTY, RESULT_TYPES, defaultAssetProperties, defaultAssetPropertyListConfig, hookComputedProperty };
981
- export type { AssetPropertyListConfig, AssetPropertyTab, AssetPropertyType, BaseProperty, C8yJsonSchema, C8yJsonSchemaProperty, C8yPropertyType, ComputedPropertyComponent, ComputedPropertyContextType, ComputedPropertyContextValue, ComputedPropertyDefinition, HiddenTabs, NestedPropertyFields, ValueCallbackMetadata };
955
+ export type { AssetPropertyListConfig, AssetPropertyTab, AssetPropertyType, BaseProperty, ComputedPropertyComponent, ComputedPropertyContextType, ComputedPropertyContextValue, ComputedPropertyDefinition, HiddenTabs, NestedPropertyFields, ValueCallbackMetadata };
982
956
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../asset-properties/asset-properties.model.ts","../../asset-properties/asset-properties.service.ts","../../asset-properties/custom-properties-drawer.service.ts","../../asset-properties/asset-property-list/tree-data-source.ts","../../asset-properties/asset-property-list/asset-property-action.directive.ts","../../asset-properties/asset-property-list/asset-property-list.component.ts","../../asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.ts","../../asset-properties/computed-properties.service.ts","../../asset-properties/asset-property-tabs/asset-property-tabs.component.ts","../../asset-properties/asset-property-selector/asset-property-selector.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../asset-properties/asset-properties.model.ts","../../asset-properties/asset-properties.service.ts","../../asset-properties/custom-properties-drawer.service.ts","../../asset-properties/asset-property-list/tree-data-source.ts","../../asset-properties/asset-property-list/asset-property-action.directive.ts","../../asset-properties/asset-property-list/asset-property-list.component.ts","../../asset-properties/asset-property-selector-drawer/asset-property-selector-drawer.component.ts","../../asset-properties/computed-properties.service.ts","../../asset-properties/asset-property-tabs/asset-property-tabs.component.ts","../../asset-properties/asset-property-selector/asset-property-selector.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
package/echart/index.d.ts CHANGED
@@ -65,6 +65,7 @@ type GraphDisplayOptions = {
65
65
  sliderPositionMode?: 'compact' | 'default';
66
66
  smoothLines?: boolean;
67
67
  };
68
+ declare const CHART_DISPLAY_OPTION_DEFAULTS: Required<Pick<GraphDisplayOptions, 'displayMarkedLine' | 'displayMarkedPoint' | 'mergeMatchingDatapoints' | 'forceMergeDatapoints' | 'setYaxisStartToZero' | 'showLabelAndUnit' | 'showSlider' | 'smoothLines' | 'numberOfDecimalPlaces'>>;
68
69
  type AlarmDetailsExtended = AlarmDetails & {
69
70
  __hidden?: boolean;
70
71
  __severity?: SeverityType[];
@@ -299,18 +300,21 @@ declare class ChartsComponent implements OnChanges, OnInit, OnDestroy {
299
300
  loadMoreData(): void;
300
301
  debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
301
302
  /**
302
- * Toggles the visibility of a series in the chart based on the provided datapoint.
303
- * Uses explicit legendSelect/legendUnSelect based on __active state.
303
+ * Toggles datapoint series visibility via legendSelect/legendUnSelect.
304
+ * Also syncs mark-point (icon) visibility: hidden when the datapoint is hidden
305
+ * (icon has nothing to attach to), re-shown only if the alarm/event is still visible.
306
+ * Mark-lines (vertical lines) are left untouched — they stay visible regardless.
304
307
  * @param datapoint - The datapoint to toggle visibility for.
305
308
  */
306
309
  toggleDatapointSeriesVisibility(datapoint: DatapointsGraphKPIDetails): void;
307
310
  /**
308
- * Toggles the visibility of alarm/event series in the chart.
309
- * Uses explicit legendSelect/legendUnSelect based on __hidden state.
310
- * Targets specific device's series using type + deviceId.
311
+ * Toggles alarm/event series visibility via legendSelect/legendUnSelect.
312
+ * Matches all mark-line and mark-point series for the alarm type across every axis,
313
+ * because getAlarmOrEventSeries creates one series per datapoint axis.
311
314
  * @param alarmOrEvent - The alarm or event to toggle visibility for.
312
315
  */
313
316
  toggleAlarmEventSeriesVisibility(alarmOrEvent: AlarmOrEventExtended): void;
317
+ private get displayOptions();
314
318
  private getDefaultChartOptions;
315
319
  private getMarkedAreaData;
316
320
  private getMarkedLineData;
@@ -401,6 +405,6 @@ declare class SelectAggregatedDatapointComponent implements OnChanges {
401
405
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectAggregatedDatapointComponent, "c8y-select-aggregated-datapoint", never, { "activeDatapoints": { "alias": "activeDatapoints"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
402
406
  }
403
407
 
404
- export { CHART_VIEW_CONTEXT, ChartAlarmsService, ChartAlertsComponent, ChartEventsService, ChartHelpersService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS, SelectAggregatedDatapointComponent };
408
+ export { CHART_DISPLAY_OPTION_DEFAULTS, CHART_VIEW_CONTEXT, ChartAlarmsService, ChartAlertsComponent, ChartEventsService, ChartHelpersService, ChartsComponent, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS, SelectAggregatedDatapointComponent };
405
409
  export type { AlarmDetailsExtended, AlarmOrEventExtended, CustomSeriesOptions, DatapointAxisType, DatapointChartRenderType, DatapointLineType, DatapointRealtimeMeasurements, DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig, DatapointsGraphWidgetTimeProps, DateString, DpValuesItem, DpWithValues, EchartsCustomOptions, EchartsSeriesOptions, EventDetailsExtended, GraphDisplayOptions, LegendDisplayOptionItem, MarkLineData, MarkPointData, MeasurementSeries, SelectableDatapoint, SeriesDatapointInfo, SeriesValue, SeverityType, TimeContextProps, YAxisOptions, customSeriesMarkLineData, customSeriesMarkPointData };
406
410
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/chart-alerts/chart-alerts.component.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBM;;;;AAKA;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AAOA;;AAEA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAII;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;AAYL;AAED;;;;;;;;AAUE;AACA;AACD;;AChND;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC0DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAsDA;;;;;AAoKuB;;;AAA4B;AAiDnD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;AAIG;AACH;AAcA;;;;;AAKG;AACH;AAgCA;AAeA;AA0BA;;AA8DA;;;AAiNA;AAiEA;AAsDA;AAkBA;AAWA;AAYA;;;AA6BD;;AC3gCD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAqCP;;AC/CD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAuBP;;AChCD;AAEE;;;;AAIG;;;;;;;;;;;AAcH;AAcA;;;AAGD;;AC9BD;;AAQmC;AAEjC;;;;AAQD;;ACVD;;AAqBW;AACC;AAEV;;AAGA;;;AAiBA;;;AAgBD;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../echart/models/datapoints-graph-widget.model.ts","../../echart/models/chart.model.ts","../../echart/models/svg-icons.model.ts","../../echart/charts.component.ts","../../echart/services/chart-alarms.service.ts","../../echart/services/chart-events.service.ts","../../echart/services/chart-helpers.service.ts","../../echart/chart-alerts/chart-alerts.component.ts","../../echart/select-aggregated-datapoint/select-aggregated-datapoint.component.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;AAmBM;;;;AAKA;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AAOA;;AAEA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAIF;AAyBM;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;AAYL;AAED;;;;;;;;AAUE;AACA;AACD;;ACzOD;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;AC4DA;AA4BE;;AAEA;;;;;;;;AAQA;;;;;;AAMK;AACK;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEV;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAsDA;;;;;AA2JuB;;;AAA4B;AAiDnD;AAOA;AAIA;AAwBA;AA6BA;AAWA;;;;;;AAMG;AACH;AAoCA;;;;;AAKG;AACH;;AA6CA;AAeA;AA0BA;;AA8DA;;;AA6MA;AAiEA;AAsDA;AAkBA;AAWA;AAYA;;;AA6BD;;ACriCD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAqCP;;AC/CD;AAEc;AAAQ;AAEpB;;;;;AAKG;AACG;;;AAuBP;;AChCD;AAEE;;;;AAIG;;;;;;;;;;;AAcH;AAcA;;;AAGD;;AC9BD;;AAQmC;AAEjC;;;;AAQD;;ACVD;;AAqBW;AACC;AAEV;;AAGA;;;AAiBA;;;AAgBD;;;"}
@@ -58,6 +58,7 @@ type GraphDisplayOptions = {
58
58
  sliderPositionMode?: 'compact' | 'default';
59
59
  smoothLines?: boolean;
60
60
  };
61
+ declare const CHART_DISPLAY_OPTION_DEFAULTS: Required<Pick<GraphDisplayOptions, 'displayMarkedLine' | 'displayMarkedPoint' | 'mergeMatchingDatapoints' | 'forceMergeDatapoints' | 'setYaxisStartToZero' | 'showLabelAndUnit' | 'showSlider' | 'smoothLines' | 'numberOfDecimalPlaces'>>;
61
62
  type AlarmDetailsExtended = AlarmDetails & {
62
63
  __hidden?: boolean;
63
64
  __severity?: SeverityType[];
@@ -232,6 +233,6 @@ declare const ICONS_MAP: {
232
233
  WARNING: ICONS;
233
234
  };
234
235
 
235
- export { CHART_VIEW_CONTEXT, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS };
236
+ export { CHART_DISPLAY_OPTION_DEFAULTS, CHART_VIEW_CONTEXT, DATE_SELECTION_EXTENDED, ICONS_MAP, LEGEND_DISPLAY_OPTIONS, PRODUCT_EXPERIENCE_DATA_EXPLORER_AND_GRAPH, REALTIME_TEXTS, SEVERITY_LABELS };
236
237
  export type { AlarmDetailsExtended, AlarmOrEventExtended, CustomSeriesOptions, DatapointAxisType, DatapointChartRenderType, DatapointLineType, DatapointRealtimeMeasurements, DatapointsGraphKPIDetails, DatapointsGraphWidgetConfig, DatapointsGraphWidgetTimeProps, DateString, DpValuesItem, DpWithValues, EchartsCustomOptions, EchartsSeriesOptions, EventDetailsExtended, GraphDisplayOptions, LegendDisplayOptionItem, MarkLineData, MarkPointData, MeasurementSeries, SelectableDatapoint, SeriesDatapointInfo, SeriesValue, SeverityType, TimeContextProps, YAxisOptions, customSeriesMarkLineData, customSeriesMarkPointData };
237
238
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../../../echart/models/datapoints-graph-widget.model.ts","../../../echart/models/chart.model.ts","../../../echart/models/svg-icons.model.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;;;;;AAmBM;;;;AAKA;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AAOA;;AAEA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAII;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;AAYL;AAED;;;;;;;;AAUE;AACA;AACD;;AChND;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.d.ts","sources":["../../../echart/models/datapoints-graph-widget.model.ts","../../../echart/models/chart.model.ts","../../../echart/models/svg-icons.model.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":";;;;;;;;AAmBM;;;;AAKA;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AAOA;;AAEA;AACA;AACA;AACA;;;AAGA;;;;;;;;;;AAWI;;;;;;;;;;AAUJ;;;AAIF;AAyBM;;AAEJ;AACA;;AAGI;;;AAIN;;AAEG;;AAGG;AAIN;AACE;AACA;AACD;AAED;AACM;;AAEL;AAED;;;;AAIM;;;;;;;AAQL;AAED;;;;;AAUE;;;;;AAGD;;AAGC;;AAEA;;AAEE;;AAEF;;;AACD;;;;;;;AAQC;AACA;AACD;AAEK;AACA;AAEA;AAEA;AAEN;;;;AAKA;;;;;;;;;;;;;AAcM;AACA;AAEA;;;;AAKA;;;;;;;;;;;AAYL;AAED;;;;;;;;AAUE;AACA;AACD;;ACzOD;;;;;;AAMG;AACH;AACE;;;;AAIA;;;AACD;;;AAIA;;;AAIA;AAEK;AACA;AACJ;AACE;AACD;AACF;;AAGC;AACA;AACD;AAED;AACE;AACA;AACA;AACD;;AC3CD;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACD;AAED;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { InjectionToken, inject, Injectable, Directive, Injector, runInInjectionContext, Pipe, viewChildren, ViewContainerRef, effect, reflectComponentType, Input, Component, viewChild, EventEmitter, ContentChild, Output, forwardRef } from '@angular/core';
4
4
  import { InventoryService } from '@c8y/client';
5
5
  import * as i2 from '@c8y/ngx-components';
6
- import { hookGeneric, ExtensionPointForPlugins, GroupService, fromTriggerOnce, getInjectedHooks, stateToFactory, AssetTypesRealtimeService, AlertService, isPromise, IconDirective, C8yTranslatePipe, ListGroupModule, EmptyStateComponent, FormsModule as FormsModule$1, LoadMoreComponent, TabComponent, TabsOutletComponent, BottomDrawerRef, BottomDrawerService } from '@c8y/ngx-components';
6
+ import { hookGeneric, ExtensionPointForPlugins, GroupService, fromTriggerOnce, getInjectedHooks, stateToFactory, AssetTypesRealtimeService, AlertService, FeatureCacheService, AssetDefinitionsService, isPromise, IconDirective, C8yTranslatePipe, ListGroupModule, EmptyStateComponent, FormsModule as FormsModule$1, LoadMoreComponent, TabComponent, TabsOutletComponent, BottomDrawerRef, BottomDrawerService } from '@c8y/ngx-components';
7
7
  import { isEqual, omit, isArray, isObjectLike, isEmpty, find, forOwn, get, isUndefined, cloneDeep } from 'lodash-es';
8
8
  import { firstValueFrom, mergeMap, filter, take, map, distinctUntilChanged, shareReplay, BehaviorSubject, of, from, switchMap, isObservable, Subject, takeUntil, debounceTime } from 'rxjs';
9
9
  import * as i1 from '@angular/router';
@@ -767,11 +767,14 @@ class AssetPropertiesService {
767
767
  'c8y_Kpi_Migrated',
768
768
  /^c8y_Dashboard!\d+/
769
769
  ];
770
+ this.MODEL_API_FEATURE_KEY = 'dtm.asset-api';
770
771
  this.inventoryService = inject(InventoryService);
771
772
  this.assetTypesRealtimeService = inject(AssetTypesRealtimeService);
772
773
  this.groupService = inject(GroupService);
773
774
  this.alert = inject(AlertService);
774
775
  this.computedPropertiesService = inject(ComputedPropertiesService);
776
+ this.featureCacheService = inject(FeatureCacheService);
777
+ this.assetDefinitionsService = inject(AssetDefinitionsService);
775
778
  }
776
779
  /**
777
780
  * Filters added properties to only include those compatible with the given asset.
@@ -799,22 +802,39 @@ class AssetPropertiesService {
799
802
  return compatibleProperties;
800
803
  }
801
804
  /**
802
- * Retrieves properties for an asset from asset library.
805
+ * Retrieves properties for an asset.
806
+ * First, it tries to get properties from definitions API (if enabled),
807
+ * then falls back to asset library.
803
808
  * @param asset The asset for which to retrieve custom properties.
804
809
  * @returns A promise resolving to the list of custom properties.
805
810
  */
806
- async requestAssetProperties(asset) {
807
- if (asset && asset.type) {
808
- const assetType = await firstValueFrom(this.assetTypesRealtimeService.getAssetTypeByName$(asset.type));
809
- if (assetType) {
810
- const { data } = await this.inventoryService.childAdditionsList(assetType, {
811
- pageSize: 2000,
812
- query: "$filter=(has('c8y_IsAssetProperty'))"
813
- });
814
- return data;
811
+ async getAssetProperties(asset) {
812
+ if (!asset?.type) {
813
+ return [];
814
+ }
815
+ const isModelApiEnabled = await firstValueFrom(this.featureCacheService.getFeatureState(this.MODEL_API_FEATURE_KEY));
816
+ if (isModelApiEnabled) {
817
+ try {
818
+ const assetDefinition = await this.assetDefinitionsService.getByIdentifier(asset.type);
819
+ if (assetDefinition) {
820
+ return this.categorizePropertiesFromDefinition(assetDefinition);
821
+ }
822
+ }
823
+ catch {
824
+ // do nothing- fallback to asset library
815
825
  }
816
826
  }
817
- return [];
827
+ const assetType = await firstValueFrom(this.assetTypesRealtimeService.getAssetTypeByName$(asset.type));
828
+ if (assetType) {
829
+ const { data } = await this.inventoryService.childAdditionsList(assetType, {
830
+ pageSize: 2000,
831
+ query: "$filter=(has('c8y_IsAssetProperty'))"
832
+ });
833
+ return this.categorizeCustomProperties(data);
834
+ }
835
+ else {
836
+ return [];
837
+ }
818
838
  }
819
839
  /**
820
840
  * Retrieves the initial set of properties for an asset, based on its type.
@@ -852,15 +872,6 @@ class AssetPropertiesService {
852
872
  async getGroupProperties(asset) {
853
873
  return this.getManagedObjectProperties(asset);
854
874
  }
855
- /**
856
- * Retrieves properties for a regular asset.
857
- * @param asset The asset for which to retrieve properties.
858
- * @returns A promise resolving to the list of asset properties.
859
- */
860
- async getAssetProperties(asset) {
861
- const customProperties = this.categorizeCustomProperties(await this.requestAssetProperties(asset)) || [];
862
- return customProperties;
863
- }
864
875
  /**
865
876
  * Categorizes custom properties into simple and complex types.
866
877
  * @param properties The custom properties to categorize.
@@ -1071,6 +1082,41 @@ class AssetPropertiesService {
1071
1082
  }
1072
1083
  });
1073
1084
  }
1085
+ /**
1086
+ * Converts asset definition from model API into AssetPropertyType array.
1087
+ * @param assetDefinition The asset definition to convert.
1088
+ * @returns The converted custom properties.
1089
+ */
1090
+ categorizePropertiesFromDefinition(assetDefinition) {
1091
+ if (!assetDefinition?.jsonSchema?.properties) {
1092
+ return [];
1093
+ }
1094
+ const { properties, definitions } = assetDefinition.jsonSchema;
1095
+ const propertyObjects = [];
1096
+ for (const [propertyName, propertySchema] of Object.entries(properties)) {
1097
+ let resolvedSchema = propertySchema;
1098
+ // Resolve $ref if present
1099
+ if (propertySchema.$ref && definitions) {
1100
+ const refPath = propertySchema.$ref.replace('#/definitions/', '');
1101
+ resolvedSchema = definitions[refPath] || propertySchema;
1102
+ }
1103
+ if (!resolvedSchema || !resolvedSchema.type) {
1104
+ continue;
1105
+ }
1106
+ const propertyObject = {
1107
+ name: propertyName,
1108
+ label: resolvedSchema.title || propertyName,
1109
+ c8y_JsonSchema: {
1110
+ properties: {
1111
+ [propertyName]: resolvedSchema
1112
+ }
1113
+ },
1114
+ type: resolvedSchema.type
1115
+ };
1116
+ propertyObjects.push(propertyObject);
1117
+ }
1118
+ return this.categorizeCustomProperties(propertyObjects);
1119
+ }
1074
1120
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetPropertiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1075
1121
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: AssetPropertiesService, providedIn: 'root' }); }
1076
1122
  }