@c8y/ngx-components 1023.14.76 → 1023.14.92

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 (47) hide show
  1. package/ai/agent-chat/index.d.ts +1 -1
  2. package/ai/agent-chat/index.d.ts.map +1 -1
  3. package/ai/index.d.ts +1 -0
  4. package/ai/index.d.ts.map +1 -1
  5. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +19 -2
  6. package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
  7. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +2 -2
  8. package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
  9. package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
  10. package/fesm2022/c8y-ngx-components-echart.mjs +3 -2
  11. package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
  12. package/fesm2022/c8y-ngx-components-global-context.mjs +40 -17
  13. package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
  14. package/fesm2022/c8y-ngx-components-tenants.mjs +1 -1
  15. package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
  16. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +2 -2
  17. package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
  18. package/fesm2022/c8y-ngx-components-upgrade.mjs +13 -1
  19. package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
  20. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -1
  21. package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
  22. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +5 -0
  23. package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
  24. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +3 -5
  25. package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
  26. package/fesm2022/c8y-ngx-components.mjs +7 -1
  27. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  28. package/global-context/index.d.ts +11 -2
  29. package/global-context/index.d.ts.map +1 -1
  30. package/index.d.ts +5 -0
  31. package/index.d.ts.map +1 -1
  32. package/locales/de.po +104 -104
  33. package/locales/es.po +48 -93
  34. package/locales/fr.po +172 -185
  35. package/locales/ja_JP.po +201 -256
  36. package/locales/ko.po +52 -73
  37. package/locales/locales.pot +6 -9
  38. package/locales/nl.po +37 -53
  39. package/locales/pl.po +42 -59
  40. package/locales/pt_BR.po +43 -60
  41. package/locales/zh_CN.po +51 -70
  42. package/locales/zh_TW.po +60 -73
  43. package/package.json +1 -1
  44. package/upgrade/index.d.ts.map +1 -1
  45. package/widgets/implementations/alarms/index.d.ts.map +1 -1
  46. package/widgets/implementations/html-widget/index.d.ts.map +1 -1
  47. package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
@@ -8181,6 +8181,12 @@ class GlobalContextInlineComponent {
8181
8181
  this.refresh.emit(null);
8182
8182
  }
8183
8183
  }
8184
+ /**
8185
+ * Sets the auto-refresh form control value without affecting link states.
8186
+ * Used when AngularJS widgets update their config directly (e.g., drag X axis in DPE 1.0).
8187
+ * Note: This only updates the form value, NOT calling pauseAutoRefresh() which would
8188
+ * also unlink controls and break the global context flow for date changes.
8189
+ */
8184
8190
  setAutoRefreshEnabled(enabled) {
8185
8191
  const autoRefreshControl = this.form?.get('isAutoRefreshEnabled');
8186
8192
  if (autoRefreshControl && autoRefreshControl.value !== enabled) {
@@ -10596,6 +10602,12 @@ class GlobalContextWidgetWrapperComponent {
10596
10602
  }
10597
10603
  // Update the signal state immutably.
10598
10604
  this.internalConfig.update(cfg => merge({}, cfg, processedDiff));
10605
+ // Sync inline component's form when isAutoRefreshEnabled changes from external config.
10606
+ // This is needed for legacy AngularJS widgets that update config directly.
10607
+ // Example: drag X axis in the DPE 1.0 widget.
10608
+ if (processedDiff.isAutoRefreshEnabled !== undefined) {
10609
+ this.globalContextInlineComponent?.setAutoRefreshEnabled(processedDiff.isAutoRefreshEnabled);
10610
+ }
10599
10611
  // the widget enters config mode. This provides a consistent "reset" point for the user.
10600
10612
  if (!this.widgetInitialConfig && this.displayMode() === WIDGET_DISPLAY_MODE.CONFIG) {
10601
10613
  this.widgetInitialConfig = structuredClone(this.internalConfig());
@@ -10813,12 +10825,7 @@ const CONTROL_PRESETS = {
10813
10825
  CONTEXT_FEATURE.HISTORY_TIME,
10814
10826
  CONTEXT_FEATURE.AUTO_REFRESH
10815
10827
  ],
10816
- config: [
10817
- CONTEXT_FEATURE.LIVE_TIME,
10818
- CONTEXT_FEATURE.HISTORY_TIME,
10819
- CONTEXT_FEATURE.AUTO_REFRESH,
10820
- CONTEXT_FEATURE.AGGREGATION
10821
- ],
10828
+ config: [CONTEXT_FEATURE.LIVE_TIME, CONTEXT_FEATURE.HISTORY_TIME, CONTEXT_FEATURE.AUTO_REFRESH],
10822
10829
  view_and_config: [
10823
10830
  CONTEXT_FEATURE.LIVE_TIME,
10824
10831
  CONTEXT_FEATURE.HISTORY_TIME,
@@ -11560,8 +11567,11 @@ class GlobalContextConnectorComponent {
11560
11567
  this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
11561
11568
  this.dashboardChild = input.required(...(ngDevMode ? [{ debugName: "dashboardChild" }] : []));
11562
11569
  this.linked = input(undefined, ...(ngDevMode ? [{ debugName: "linked" }] : []));
11570
+ /** When false, refresh events are not emitted as configChange - only user-initiated state changes */
11571
+ this.emitRefresh = input(true, ...(ngDevMode ? [{ debugName: "emitRefresh" }] : []));
11563
11572
  this.configChange = output();
11564
11573
  this.refresh = output();
11574
+ this.linkedChange = output();
11565
11575
  this.isLinked = signal(true, ...(ngDevMode ? [{ debugName: "isLinked" }] : []));
11566
11576
  this.syncExternalLinkState();
11567
11577
  this.subscribeToGlobalContext();
@@ -11574,6 +11584,7 @@ class GlobalContextConnectorComponent {
11574
11584
  }
11575
11585
  onLinkToggle(linked) {
11576
11586
  this.isLinked.set(linked);
11587
+ this.linkedChange.emit(linked);
11577
11588
  if (linked) {
11578
11589
  const cached = this.eventService.getLatestValue(GLOBAL_CONTEXT_EVENTS.STATE_CHANGE);
11579
11590
  if (cached)
@@ -11628,15 +11639,20 @@ class GlobalContextConnectorComponent {
11628
11639
  if (cached)
11629
11640
  this.emitIfChanged(cached);
11630
11641
  const stateChanges$ = this.eventService.on(GLOBAL_CONTEXT_EVENTS.STATE_CHANGE);
11631
- const refresh$ = this.eventService.on(GLOBAL_CONTEXT_EVENTS.REFRESH).pipe(map$1(data => ({
11632
- ...this.config(),
11633
- dateTimeContext: {
11634
- dateFrom: data.dateFrom,
11635
- dateTo: data.dateTo,
11636
- interval: data.interval
11637
- }
11638
- })));
11639
- subscription = merge$1(stateChanges$, refresh$)
11642
+ // Only include refresh events if emitRefresh is true
11643
+ let source$ = stateChanges$;
11644
+ if (this.emitRefresh()) {
11645
+ const refresh$ = this.eventService.on(GLOBAL_CONTEXT_EVENTS.REFRESH).pipe(map$1(data => ({
11646
+ ...this.config(),
11647
+ dateTimeContext: {
11648
+ dateFrom: data.dateFrom,
11649
+ dateTo: data.dateTo,
11650
+ interval: data.interval
11651
+ }
11652
+ })));
11653
+ source$ = merge$1(stateChanges$, refresh$);
11654
+ }
11655
+ subscription = source$
11640
11656
  .pipe(takeUntilDestroyed(this.destroyRef), catchError(() => EMPTY))
11641
11657
  .subscribe(state => {
11642
11658
  if (state)
@@ -11646,6 +11662,13 @@ class GlobalContextConnectorComponent {
11646
11662
  }
11647
11663
  registerWithGlobalContext() {
11648
11664
  effect(() => {
11665
+ // Auto-unlink if not in dashboard mode
11666
+ const displayMode = this.config().displayMode;
11667
+ if (displayMode && displayMode !== GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD) {
11668
+ this.isLinked.set(false);
11669
+ this.globalContextService.unregister(this.componentId);
11670
+ return;
11671
+ }
11649
11672
  if (this.isLinked()) {
11650
11673
  const settings = controlsToSettings(this.controls(), GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD, this.config().refreshOption || REFRESH_OPTION.LIVE);
11651
11674
  this.globalContextService.register(this.componentId, settings);
@@ -11667,7 +11690,7 @@ class GlobalContextConnectorComponent {
11667
11690
  });
11668
11691
  }
11669
11692
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: GlobalContextConnectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11670
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: GlobalContextConnectorComponent, isStandalone: true, selector: "c8y-global-context-connector", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, dashboardChild: { classPropertyName: "dashboardChild", publicName: "dashboardChild", isSignal: true, isRequired: true, transformFunction: null }, linked: { classPropertyName: "linked", publicName: "linked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh" }, ngImport: i0, template: `
11693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: GlobalContextConnectorComponent, isStandalone: true, selector: "c8y-global-context-connector", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, dashboardChild: { classPropertyName: "dashboardChild", publicName: "dashboardChild", isSignal: true, isRequired: true, transformFunction: null }, linked: { classPropertyName: "linked", publicName: "linked", isSignal: true, isRequired: false, transformFunction: null }, emitRefresh: { classPropertyName: "emitRefresh", publicName: "emitRefresh", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh", linkedChange: "linkedChange" }, ngImport: i0, template: `
11671
11694
  <c8y-link-buttons
11672
11695
  [dashboardChild]="dashboardChild()"
11673
11696
  [isLinked]="isLinked()"
@@ -11715,7 +11738,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
11715
11738
  }
11716
11739
  `
11717
11740
  }]
11718
- }], ctorParameters: () => [], propDecorators: { controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], dashboardChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: true }] }], linked: [{ type: i0.Input, args: [{ isSignal: true, alias: "linked", required: false }] }], configChange: [{ type: i0.Output, args: ["configChange"] }], refresh: [{ type: i0.Output, args: ["refresh"] }] } });
11741
+ }], ctorParameters: () => [], propDecorators: { controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], dashboardChild: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: true }] }], linked: [{ type: i0.Input, args: [{ isSignal: true, alias: "linked", required: false }] }], emitRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitRefresh", required: false }] }], configChange: [{ type: i0.Output, args: ["configChange"] }], refresh: [{ type: i0.Output, args: ["refresh"] }], linkedChange: [{ type: i0.Output, args: ["linkedChange"] }] } });
11719
11742
 
11720
11743
  class LocalControlsComponent {
11721
11744
  constructor() {