@c8y/ngx-components 1024.14.0 → 1024.15.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 (84) hide show
  1. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs +48 -9
  2. package/fesm2022/c8y-ngx-components-group-breadcrumbs.mjs.map +1 -1
  3. package/fesm2022/c8y-ngx-components-icon-selector-icons-arrows.mjs +8 -0
  4. package/fesm2022/c8y-ngx-components-icon-selector-icons-arrows.mjs.map +1 -1
  5. package/fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs +1 -1
  6. package/fesm2022/c8y-ngx-components-icon-selector-icons-data.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs +8 -5
  8. package/fesm2022/c8y-ngx-components-icon-selector-icons-dateAndTime.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs +7 -5
  10. package/fesm2022/c8y-ngx-components-icon-selector-icons-devicesAndSensors.mjs.map +1 -1
  11. package/fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs +2 -1
  12. package/fesm2022/c8y-ngx-components-icon-selector-icons-ecommerce.mjs.map +1 -1
  13. package/fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs +14 -14
  14. package/fesm2022/c8y-ngx-components-icon-selector-icons-editing.mjs.map +1 -1
  15. package/fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs +9 -12
  16. package/fesm2022/c8y-ngx-components-icon-selector-icons-filesAndFolders.mjs.map +1 -1
  17. package/fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs +3 -2
  18. package/fesm2022/c8y-ngx-components-icon-selector-icons-finance.mjs.map +1 -1
  19. package/fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs +2 -1
  20. package/fesm2022/c8y-ngx-components-icon-selector-icons-location.mjs.map +1 -1
  21. package/fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs +8 -5
  22. package/fesm2022/c8y-ngx-components-icon-selector-icons-messaging.mjs.map +1 -1
  23. package/fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs +6 -9
  24. package/fesm2022/c8y-ngx-components-icon-selector-icons-multimedia.mjs.map +1 -1
  25. package/fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs +14 -17
  26. package/fesm2022/c8y-ngx-components-icon-selector-icons-network.mjs.map +1 -1
  27. package/fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs +2 -4
  28. package/fesm2022/c8y-ngx-components-icon-selector-icons-office.mjs.map +1 -1
  29. package/fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs +1 -1
  30. package/fesm2022/c8y-ngx-components-icon-selector-icons-people.mjs.map +1 -1
  31. package/fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs +5 -5
  32. package/fesm2022/c8y-ngx-components-icon-selector-icons-programming.mjs.map +1 -1
  33. package/fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs +1 -2
  34. package/fesm2022/c8y-ngx-components-icon-selector-icons-security.mjs.map +1 -1
  35. package/fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs +3 -4
  36. package/fesm2022/c8y-ngx-components-icon-selector-icons-transport.mjs.map +1 -1
  37. package/fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs +33 -49
  38. package/fesm2022/c8y-ngx-components-icon-selector-icons-userInterface.mjs.map +1 -1
  39. package/fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs +0 -1
  40. package/fesm2022/c8y-ngx-components-icon-selector-icons-weather.mjs.map +1 -1
  41. package/fesm2022/c8y-ngx-components.mjs +184 -68
  42. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  43. package/locales/de.po +98 -98
  44. package/locales/ja_JP.po +1 -1
  45. package/locales/locales.pot +3 -0
  46. package/package.json +1 -1
  47. package/types/c8y-ngx-components-context-dashboard.d.ts +2 -2
  48. package/types/c8y-ngx-components-icon-selector-icons-arrows.d.ts +2 -2
  49. package/types/c8y-ngx-components-icon-selector-icons-arrows.d.ts.map +1 -1
  50. package/types/c8y-ngx-components-icon-selector-icons-data.d.ts +2 -2
  51. package/types/c8y-ngx-components-icon-selector-icons-dateAndTime.d.ts +2 -2
  52. package/types/c8y-ngx-components-icon-selector-icons-dateAndTime.d.ts.map +1 -1
  53. package/types/c8y-ngx-components-icon-selector-icons-devicesAndSensors.d.ts +2 -2
  54. package/types/c8y-ngx-components-icon-selector-icons-devicesAndSensors.d.ts.map +1 -1
  55. package/types/c8y-ngx-components-icon-selector-icons-ecommerce.d.ts +2 -2
  56. package/types/c8y-ngx-components-icon-selector-icons-ecommerce.d.ts.map +1 -1
  57. package/types/c8y-ngx-components-icon-selector-icons-editing.d.ts +2 -2
  58. package/types/c8y-ngx-components-icon-selector-icons-filesAndFolders.d.ts +2 -2
  59. package/types/c8y-ngx-components-icon-selector-icons-filesAndFolders.d.ts.map +1 -1
  60. package/types/c8y-ngx-components-icon-selector-icons-finance.d.ts +2 -2
  61. package/types/c8y-ngx-components-icon-selector-icons-finance.d.ts.map +1 -1
  62. package/types/c8y-ngx-components-icon-selector-icons-location.d.ts +2 -2
  63. package/types/c8y-ngx-components-icon-selector-icons-location.d.ts.map +1 -1
  64. package/types/c8y-ngx-components-icon-selector-icons-messaging.d.ts +2 -2
  65. package/types/c8y-ngx-components-icon-selector-icons-messaging.d.ts.map +1 -1
  66. package/types/c8y-ngx-components-icon-selector-icons-multimedia.d.ts +2 -2
  67. package/types/c8y-ngx-components-icon-selector-icons-multimedia.d.ts.map +1 -1
  68. package/types/c8y-ngx-components-icon-selector-icons-network.d.ts +2 -2
  69. package/types/c8y-ngx-components-icon-selector-icons-network.d.ts.map +1 -1
  70. package/types/c8y-ngx-components-icon-selector-icons-office.d.ts +2 -2
  71. package/types/c8y-ngx-components-icon-selector-icons-office.d.ts.map +1 -1
  72. package/types/c8y-ngx-components-icon-selector-icons-people.d.ts +2 -2
  73. package/types/c8y-ngx-components-icon-selector-icons-programming.d.ts +2 -2
  74. package/types/c8y-ngx-components-icon-selector-icons-security.d.ts +2 -2
  75. package/types/c8y-ngx-components-icon-selector-icons-security.d.ts.map +1 -1
  76. package/types/c8y-ngx-components-icon-selector-icons-transport.d.ts +2 -2
  77. package/types/c8y-ngx-components-icon-selector-icons-transport.d.ts.map +1 -1
  78. package/types/c8y-ngx-components-icon-selector-icons-userInterface.d.ts +2 -2
  79. package/types/c8y-ngx-components-icon-selector-icons-userInterface.d.ts.map +1 -1
  80. package/types/c8y-ngx-components-icon-selector-icons-weather.d.ts +2 -2
  81. package/types/c8y-ngx-components-icon-selector-icons-weather.d.ts.map +1 -1
  82. package/types/c8y-ngx-components-icon-selector-icons.d.ts +19 -19
  83. package/types/c8y-ngx-components.d.ts +86 -19
  84. package/types/c8y-ngx-components.d.ts.map +1 -1
@@ -209,7 +209,11 @@ declare class ApplicationOptions implements ApplicationOptions$1 {
209
209
  companyName?: string;
210
210
  /** URL template for documentation links (default: `'${docsBaseUrl}${partialUrl}'`). */
211
211
  guideHrefTemplate?: string;
212
- /** Base URL for documentation links (include `{{ version }}` placeholder, if you want versioned links). */
212
+ /**
213
+ * Base URL for documentation links (include `{{ version }}` placeholder, if you want versioned
214
+ * links). Set it to `null` or to an empty string to hide all documentation links, or to `'/'` to
215
+ * link to documentation served from the same host as the application.
216
+ */
213
217
  docsBaseUrl?: string;
214
218
  /** CSP string to be applied to `index.html` by replacing default values. */
215
219
  contentSecurityPolicy?: string;
@@ -2884,6 +2888,25 @@ declare class AssetHierarchyService {
2884
2888
  * Returns an empty array if the asset is not found or an error occurs.
2885
2889
  */
2886
2890
  getAncestorPaths(assetId: string): Promise<IManagedObject[][]>;
2891
+ /**
2892
+ * Resolves ancestor paths only when the asset has at most one direct parent
2893
+ * (the cheap, common single-path case). Returns null when the asset is directly
2894
+ * assigned to multiple parents — the caller should keep the lazy click-to-load
2895
+ * flow rather than auto-paying the full hierarchy traversal.
2896
+ *
2897
+ * Costs a single `inventory.detail` call to count direct parents; only proceeds
2898
+ * to the heavier `inventory.list` traversal for single-parent assets.
2899
+ *
2900
+ * @param assetId - The ID of the target asset
2901
+ * @returns Ancestor paths (root → asset) for single-parent assets, or `null`
2902
+ * when the asset has multiple direct parents.
2903
+ */
2904
+ getAncestorPathsForSingleParent(assetId: string): Promise<IManagedObject[][] | null>;
2905
+ /**
2906
+ * Fetches the given parents and walks every path from each root down to the
2907
+ * target asset.
2908
+ */
2909
+ private resolvePathsFromParents;
2887
2910
  /**
2888
2911
  * Gets all parent IDs of a managed object.
2889
2912
  */
@@ -8136,12 +8159,12 @@ declare class BreadcrumbService extends ExtensionPointForPlugins<Breadcrumb> {
8136
8159
  constructor(rootInjector: Injector, router: Router, plugins: PluginsResolveService);
8137
8160
  get state(): Set<Breadcrumb>;
8138
8161
  /**
8139
- * Adds a new item to the action bar in the header.
8162
+ * Adds a breadcrumb path to the breadcrumb trail.
8140
8163
  * @param item The item to add.
8141
8164
  */
8142
8165
  add(item: Breadcrumb): void;
8143
8166
  /**
8144
- * Removes an action bar item from the header.
8167
+ * Removes a breadcrumb path from the breadcrumb trail.
8145
8168
  * @param item The item to remove.
8146
8169
  */
8147
8170
  remove(item: Breadcrumb): void;
@@ -8152,6 +8175,18 @@ declare class BreadcrumbService extends ExtensionPointForPlugins<Breadcrumb> {
8152
8175
  selectPreferredByPath(path: string): void;
8153
8176
  sortByPreferredPath(breadcrumbs: Breadcrumb[]): Breadcrumb[];
8154
8177
  protected setupItemsObservable(): Observable<Breadcrumb[]>;
8178
+ /**
8179
+ * Removes breadcrumbs that resolve to the same crumbs. The same factory can be
8180
+ * picked up from more than one injector (e.g. provided directly and via a plugin
8181
+ * module), which would otherwise surface as duplicate paths in the dropdown.
8182
+ * Genuinely distinct paths (a node reachable through different parents) are kept.
8183
+ *
8184
+ * Only fully label-based crumbs are de-duplicated. Crumbs carrying a `component`
8185
+ * or `template` item are always kept: a `Type` or `TemplateRef` has no stable,
8186
+ * comparable identity here (minified differently across bundles, or a fresh
8187
+ * reference per render), so they cannot be reliably matched.
8188
+ */
8189
+ private dedupeByContent;
8155
8190
  static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbService, never>;
8156
8191
  static ɵprov: i0.ɵɵInjectableDeclaration<BreadcrumbService>;
8157
8192
  }
@@ -8272,6 +8307,16 @@ declare class DocsService extends ExtensionPointWithoutStateForPlugins<DocLink>
8272
8307
  */
8273
8308
  readonly DEFAULT_DOCS_BASE_URL = "https://cumulocity.com";
8274
8309
  constructor(options: OptionsService, app: AppStateService, rootInjector: Injector, router: Router, plugins: PluginsResolveService);
8310
+ /**
8311
+ * Indicates whether documentation links should be displayed at all. Setting `docsBaseUrl` to
8312
+ * `null` or to an empty string switches the links off, whereas `'/'` keeps them enabled and
8313
+ * resolves to links relative to the host the application is served from.
8314
+ */
8315
+ isDocsEnabled(): boolean;
8316
+ /**
8317
+ * Returns the base URL for documentation links, or `null` if the links are switched off with
8318
+ * `docsBaseUrl: null`.
8319
+ */
8275
8320
  getBaseUrl(uiVersion?: string | {
8276
8321
  ngx: string;
8277
8322
  }): string;
@@ -8286,6 +8331,10 @@ declare class DocsService extends ExtensionPointWithoutStateForPlugins<DocLink>
8286
8331
  ngx: string;
8287
8332
  }): string;
8288
8333
  get templateStr(): string;
8334
+ /**
8335
+ * Builds a link to a documentation page, or returns `null` if documentation links are switched
8336
+ * off. Absolute links are returned as they are.
8337
+ */
8289
8338
  getUserGuideLink(link: any): any;
8290
8339
  list(): Promise<DocLink[]>;
8291
8340
  get(): DocLink[];
@@ -12067,7 +12116,7 @@ declare class CoreSearchModule {
12067
12116
  static ɵinj: i0.ɵɵInjectorDeclaration<CoreSearchModule>;
12068
12117
  }
12069
12118
 
12070
- declare class BreadcrumbComponent implements Breadcrumb {
12119
+ declare class BreadcrumbComponent implements Breadcrumb, AfterViewInit, OnDestroy {
12071
12120
  private breadcrumbService;
12072
12121
  items: BreadcrumbItem[];
12073
12122
  private contentChildItems;
@@ -12098,24 +12147,39 @@ declare class BreadcrumbItemComponent {
12098
12147
  */
12099
12148
  path: string;
12100
12149
  injector: Injector;
12101
- template: any;
12150
+ template: TemplateRef<unknown>;
12102
12151
  constructor(_injector: EnvironmentInjector);
12103
12152
  static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbItemComponent, never>;
12104
12153
  static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbItemComponent, "c8y-breadcrumb-item", never, { "icon": { "alias": "icon"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "label": { "alias": "label"; "required": false; }; "path": { "alias": "path"; "required": false; }; "injector": { "alias": "injector"; "required": false; }; }, {}, never, ["*"], true, never>;
12105
12154
  }
12106
12155
 
12107
12156
  declare class BreadcrumbOutletComponent {
12108
- showAll: boolean;
12109
- breadcrumbs: Breadcrumb[];
12110
- dropdownOpen: boolean;
12157
+ readonly breadcrumbs: i0.InputSignal<Breadcrumb[]>;
12111
12158
  readonly GROUP_ICON = "c8y-group";
12159
+ /**
12160
+ * Breadcrumbs that represent a fully resolved path (every crumb has a label).
12161
+ * The group breadcrumb factory also emits an un-resolved breadcrumb that carries
12162
+ * a component placeholder (the "…" ellipsis) instead of labels; that one is not a
12163
+ * real alternate path and must not count towards the dropdown.
12164
+ */
12165
+ protected readonly resolvedBreadcrumbs: i0.Signal<Breadcrumb[]>;
12166
+ /**
12167
+ * The breadcrumb shown inline. Prefers a resolved path; falls back to the first
12168
+ * breadcrumb (the ellipsis breadcrumb) while ancestors are not loaded yet.
12169
+ */
12170
+ protected readonly inlineBreadcrumb: i0.Signal<Breadcrumb>;
12171
+ /** Resolved breadcrumbs other than the inline one — these populate the dropdown. */
12172
+ protected readonly alternateBreadcrumbs: i0.Signal<Breadcrumb[]>;
12173
+ /** The toggle is only relevant when the node belongs to more than one path. */
12174
+ protected readonly showToggle: i0.Signal<boolean>;
12175
+ protected readonly dropdownOpen: i0.Signal<boolean>;
12112
12176
  /**
12113
12177
  * For upgrade only. Old angularjs routes start with hash, new ones not.
12114
12178
  */
12115
- normalizePath(path: any): any;
12116
- ngOnChanges(): void;
12179
+ normalizePath(path: string | undefined): string;
12180
+ private isResolvedPath;
12117
12181
  static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbOutletComponent, never>;
12118
- static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbOutletComponent, "c8y-breadcrumb-outlet", never, { "breadcrumbs": { "alias": "breadcrumbs"; "required": false; }; "dropdownOpen": { "alias": "dropdownOpen"; "required": false; }; }, {}, never, never, true, never>;
12182
+ static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbOutletComponent, "c8y-breadcrumb-outlet", never, { "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12119
12183
  }
12120
12184
 
12121
12185
  /**
@@ -16954,22 +17018,26 @@ declare class LegalNoticesOutletModule {
16954
17018
  static ɵinj: i0.ɵɵInjectorDeclaration<LegalNoticesOutletModule>;
16955
17019
  }
16956
17020
 
16957
- declare class GuideHrefDirective {
17021
+ declare class GuideHrefDirective implements OnChanges {
16958
17022
  private elementRef;
17023
+ private docsService;
16959
17024
  c8yGuideHref: any;
16960
17025
  private htmlAnchor;
16961
- set baseHref(href: any);
16962
- constructor(elementRef: ElementRef);
17026
+ constructor(elementRef: ElementRef, docsService: DocsService);
17027
+ ngOnChanges(): void;
16963
17028
  static ɵfac: i0.ɵɵFactoryDeclaration<GuideHrefDirective, never>;
16964
17029
  static ɵdir: i0.ɵɵDirectiveDeclaration<GuideHrefDirective, "[c8y-guide-href]", never, { "c8yGuideHref": { "alias": "c8y-guide-href"; "required": false; }; }, {}, never, never, true, never>;
16965
17030
  }
16966
17031
 
16967
- declare class GuideDocsComponent implements OnInit, AfterContentInit, OnDestroy {
17032
+ declare class GuideDocsComponent implements AfterContentInit, OnDestroy {
16968
17033
  private docs;
16969
17034
  private el;
16970
17035
  private renderer;
16971
- baseUrl: string;
16972
- links: QueryList<GuideHrefDirective>;
17036
+ /**
17037
+ * Whether the projected content should be displayed. It only becomes `true` once the anchor
17038
+ * attributes have been resolved, and stays `false` if documentation links are switched off.
17039
+ */
17040
+ protected ready: boolean;
16973
17041
  /**
16974
17042
  * Provides access to translate directive, so it is possible to adjust anchor html tags, after
16975
17043
  * content is translated.
@@ -16979,7 +17047,6 @@ declare class GuideDocsComponent implements OnInit, AfterContentInit, OnDestroy
16979
17047
  set translateDirective(value: C8yTranslateDirective);
16980
17048
  private destroyed$;
16981
17049
  constructor(docs: DocsService, el: ElementRef, renderer: Renderer2, translateDirective: C8yTranslateDirective);
16982
- ngOnInit(): void;
16983
17050
  /**
16984
17051
  * After content is initialized we subscribe for translation events, then we are able to modify
16985
17052
  * anchor just as C8yGuideHrefDirective does.
@@ -16995,7 +17062,7 @@ declare class GuideDocsComponent implements OnInit, AfterContentInit, OnDestroy
16995
17062
  findGuideAnchors(el: HTMLElement): HTMLElement[];
16996
17063
  ngOnDestroy(): void;
16997
17064
  static ɵfac: i0.ɵɵFactoryDeclaration<GuideDocsComponent, [null, null, null, { optional: true; }]>;
16998
- static ɵcmp: i0.ɵɵComponentDeclaration<GuideDocsComponent, "[c8y-guide-docs]", never, {}, {}, ["translateDirective", "links"], ["*"], true, never>;
17065
+ static ɵcmp: i0.ɵɵComponentDeclaration<GuideDocsComponent, "[c8y-guide-docs]", never, {}, {}, ["translateDirective"], ["*"], true, never>;
16999
17066
  }
17000
17067
 
17001
17068
  declare class DocsModule {