@c8y/ngx-components 1023.92.0 → 1023.97.3
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/ai/agents/scada/index.d.ts +10 -0
- package/ai/agents/scada/index.d.ts.map +1 -0
- package/ai/ai-chat/index.d.ts +1 -1
- package/ai/ai-chat/index.d.ts.map +1 -1
- package/alarms/index.d.ts.map +1 -1
- package/computed-asset-properties/index.d.ts +89 -1
- package/computed-asset-properties/index.d.ts.map +1 -1
- package/context-dashboard/device/view/index.d.ts +24 -1
- package/context-dashboard/device/view/index.d.ts.map +1 -1
- package/context-dashboard/index.d.ts +27 -11
- package/context-dashboard/index.d.ts.map +1 -1
- package/echart/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +2 -2
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs +893 -0
- package/fesm2022/c8y-ngx-components-ai-agents-scada.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +1 -0
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +12 -5
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +2 -2
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs → c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CHZX7ALq.mjs} +10 -9
- package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-CHZX7ALq.mjs.map +1 -0
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DgWGXzEx.mjs} +2 -2
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-LrmlAh6V.mjs.map → c8y-ngx-components-computed-asset-properties-fieldbus-item-status-config.component-DgWGXzEx.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-yfc45-l_.mjs} +2 -2
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-f1u1TcCl.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-yfc45-l_.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +21 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +2 -2
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +69 -51
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +52 -36
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +112 -22
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-map.mjs +15 -0
- package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +292 -115
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +2 -2
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +12 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs +169 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-scada.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +2 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +90 -32
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs +1698 -0
- package/fesm2022/c8y-ngx-components-widgets-implementations-scada.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components.mjs +220 -45
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/global-context/index.d.ts +58 -3
- package/global-context/index.d.ts.map +1 -1
- package/index.d.ts +79 -22
- package/index.d.ts.map +1 -1
- package/locales/de.po +165 -3
- package/locales/es.po +165 -3
- package/locales/fr.po +165 -3
- package/locales/ja_JP.po +165 -3
- package/locales/ko.po +165 -3
- package/locales/locales.pot +156 -3
- package/locales/nl.po +165 -3
- package/locales/pl.po +165 -3
- package/locales/pt_BR.po +165 -3
- package/locales/zh_CN.po +165 -3
- package/locales/zh_TW.po +165 -3
- package/map/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/repository/configuration/index.d.ts +64 -39
- package/repository/configuration/index.d.ts.map +1 -1
- package/upgrade/index.d.ts +1 -0
- package/upgrade/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/index.d.ts +1 -0
- package/widgets/definitions/index.d.ts.map +1 -1
- package/widgets/definitions/scada/index.d.ts +6 -0
- package/widgets/definitions/scada/index.d.ts.map +1 -0
- package/widgets/device-management-exports/index.d.ts +6 -0
- package/widgets/device-management-exports/index.d.ts.map +1 -1
- package/widgets/exports/index.d.ts +8 -1
- package/widgets/exports/index.d.ts.map +1 -1
- package/widgets/implementations/html-widget/index.d.ts +30 -12
- package/widgets/implementations/html-widget/index.d.ts.map +1 -1
- package/widgets/implementations/scada/index.d.ts +415 -0
- package/widgets/implementations/scada/index.d.ts.map +1 -0
- package/fesm2022/c8y-ngx-components-computed-asset-properties-c8y-ngx-components-computed-asset-properties-Cy9R6Ixb.mjs.map +0 -1
|
@@ -3559,13 +3559,18 @@ class LiveModeConfigurationControlsComponent {
|
|
|
3559
3559
|
if (!value) {
|
|
3560
3560
|
return;
|
|
3561
3561
|
}
|
|
3562
|
+
// fillMissingDefaults already returns a fresh top-level object, and
|
|
3563
|
+
// patchFormFromContext clones `dateTimeContext` before handing it to
|
|
3564
|
+
// the form control — so we don't need to deep-clone the whole tree.
|
|
3565
|
+
// Skipping the clone also avoids a `structuredClone` throw when the
|
|
3566
|
+
// config contains non-cloneable values (e.g. SCADA stores function
|
|
3567
|
+
// references in widget settings).
|
|
3562
3568
|
const normalized = fillMissingDefaults({
|
|
3563
3569
|
...value,
|
|
3564
3570
|
refreshOption: REFRESH_OPTION.LIVE
|
|
3565
3571
|
});
|
|
3566
|
-
|
|
3567
|
-
this.
|
|
3568
|
-
this.patchFormFromContext(cloned);
|
|
3572
|
+
this.currentContext.set(normalized);
|
|
3573
|
+
this.patchFormFromContext(normalized);
|
|
3569
3574
|
}
|
|
3570
3575
|
constructor() {
|
|
3571
3576
|
// Popover messages for translation extraction
|
|
@@ -11010,7 +11015,7 @@ const CONTROL_PRESETS = {
|
|
|
11010
11015
|
/**
|
|
11011
11016
|
* For auto-refresh-only widgets (no history mode, no live time range support).
|
|
11012
11017
|
* The `config` mode is intentionally empty so the widget renders no controls in
|
|
11013
|
-
* the
|
|
11018
|
+
* the widget title bar.
|
|
11014
11019
|
*/
|
|
11015
11020
|
[PRESET_NAME.AUTO_REFRESH_ONLY]: {
|
|
11016
11021
|
dashboard: [CONTEXT_FEATURE.AUTO_REFRESH, CONTEXT_FEATURE.REFRESH],
|
|
@@ -11454,8 +11459,37 @@ class ContextControlsComponent {
|
|
|
11454
11459
|
this.displayMode = input(GLOBAL_CONTEXT_DISPLAY_MODE.DASHBOARD, ...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
11455
11460
|
this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
11456
11461
|
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
11457
|
-
|
|
11462
|
+
/**
|
|
11463
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
11464
|
+
*
|
|
11465
|
+
* When `true` (default), global `REFRESH` events emitted by the dashboard are translated
|
|
11466
|
+
* into `configChange` emissions with updated date/time context — allowing the widget to
|
|
11467
|
+
* react to automatic refresh intervals set in the dashboard controls.
|
|
11468
|
+
*
|
|
11469
|
+
* When `false`, those global refresh cycles are ignored and only actual user-initiated
|
|
11470
|
+
* context state changes (e.g. date range selection) trigger `configChange`.
|
|
11471
|
+
*
|
|
11472
|
+
* **This input does not affect the `refresh` output.**
|
|
11473
|
+
*/
|
|
11474
|
+
this.propagateAutoRefresh = input(true, ...(ngDevMode ? [{ debugName: "propagateAutoRefresh" }] : []));
|
|
11475
|
+
/**
|
|
11476
|
+
* @deprecated Use `propagateAutoRefresh` instead. Will be removed in a future version.
|
|
11477
|
+
*
|
|
11478
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
11479
|
+
* When set, takes precedence over `propagateAutoRefresh` for backward compatibility.
|
|
11480
|
+
*/
|
|
11481
|
+
this.emitRefresh = input(undefined, ...(ngDevMode ? [{ debugName: "emitRefresh" }] : []));
|
|
11482
|
+
/** @internal Resolves the effective value of `propagateAutoRefresh`, respecting the deprecated `emitRefresh` alias. */
|
|
11483
|
+
this._propagateAutoRefresh = computed(() => this.emitRefresh() ?? this.propagateAutoRefresh(), ...(ngDevMode ? [{ debugName: "_propagateAutoRefresh" }] : []));
|
|
11458
11484
|
this.configChange = output();
|
|
11485
|
+
/**
|
|
11486
|
+
* Emitted when the user manually triggers a refresh via the local context controls,
|
|
11487
|
+
* but the resulting context state did not change — so no `configChange` was emitted.
|
|
11488
|
+
*
|
|
11489
|
+
* The parent widget should react by reloading its data without updating the context.
|
|
11490
|
+
*
|
|
11491
|
+
* **This output does not depend on the `propagateAutoRefresh` and `emitRefresh` inputs.**
|
|
11492
|
+
*/
|
|
11459
11493
|
this.refresh = output();
|
|
11460
11494
|
this.lastEmittedState = signal({}, ...(ngDevMode ? [{ debugName: "lastEmittedState" }] : []));
|
|
11461
11495
|
this.visibleControls = computed(() => {
|
|
@@ -11512,7 +11546,7 @@ class ContextControlsComponent {
|
|
|
11512
11546
|
this.emitInitialNonDashboardState();
|
|
11513
11547
|
}
|
|
11514
11548
|
onAutoRefresh() {
|
|
11515
|
-
if (this.
|
|
11549
|
+
if (this._propagateAutoRefresh()) {
|
|
11516
11550
|
this.onRefresh();
|
|
11517
11551
|
}
|
|
11518
11552
|
}
|
|
@@ -11596,7 +11630,7 @@ class ContextControlsComponent {
|
|
|
11596
11630
|
return [from, to];
|
|
11597
11631
|
}
|
|
11598
11632
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ContextControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11599
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ContextControlsComponent, isStandalone: true, selector: "c8y-context-controls", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", 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 }, emitRefresh: { classPropertyName: "emitRefresh", publicName: "emitRefresh", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh" }, ngImport: i0, template: `
|
|
11633
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ContextControlsComponent, isStandalone: true, selector: "c8y-context-controls", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", 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 }, propagateAutoRefresh: { classPropertyName: "propagateAutoRefresh", publicName: "propagateAutoRefresh", isSignal: true, isRequired: false, transformFunction: null }, emitRefresh: { classPropertyName: "emitRefresh", publicName: "emitRefresh", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh" }, ngImport: i0, template: `
|
|
11600
11634
|
<form class="d-flex gap-16 h-auto min-width-0 widget-controls" [formGroup]="form">
|
|
11601
11635
|
<div class="input-group w-auto min-width-0">
|
|
11602
11636
|
@if (visibleControls()?.includes('aggregation')) {
|
|
@@ -11722,7 +11756,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
11722
11756
|
</form>
|
|
11723
11757
|
`
|
|
11724
11758
|
}]
|
|
11725
|
-
}], ctorParameters: () => [], propDecorators: { controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], displayMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayMode", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", 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"] }] } });
|
|
11759
|
+
}], ctorParameters: () => [], propDecorators: { controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], displayMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayMode", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], propagateAutoRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateAutoRefresh", 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"] }] } });
|
|
11726
11760
|
|
|
11727
11761
|
class HeaderTemplateService {
|
|
11728
11762
|
/**
|
|
@@ -11886,7 +11920,7 @@ class LinkButtonsComponent {
|
|
|
11886
11920
|
</div>
|
|
11887
11921
|
<ng-template #masterTooltipTemplate>{{ masterTooltipText() }}</ng-template>
|
|
11888
11922
|
</ng-template>
|
|
11889
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: ContextControlsComponent, selector: "c8y-context-controls", inputs: ["controls", "displayMode", "config", "isLoading", "emitRefresh"], outputs: ["configChange", "refresh"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11923
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: ContextControlsComponent, selector: "c8y-context-controls", inputs: ["controls", "displayMode", "config", "isLoading", "propagateAutoRefresh", "emitRefresh"], outputs: ["configChange", "refresh"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11890
11924
|
}
|
|
11891
11925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LinkButtonsComponent, decorators: [{
|
|
11892
11926
|
type: Component,
|
|
@@ -11959,9 +11993,37 @@ class GlobalContextConnectorComponent {
|
|
|
11959
11993
|
this.dashboardChildInput = input(undefined, ...(ngDevMode ? [{ debugName: "dashboardChildInput", alias: 'dashboardChild' }] : [{ alias: 'dashboardChild' }]));
|
|
11960
11994
|
this.dashboardChild = computed(() => this.dashboardChildInput() ?? this.injectedDashboardChild, ...(ngDevMode ? [{ debugName: "dashboardChild" }] : []));
|
|
11961
11995
|
this.linked = input(undefined, ...(ngDevMode ? [{ debugName: "linked" }] : []));
|
|
11962
|
-
/**
|
|
11963
|
-
|
|
11996
|
+
/**
|
|
11997
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
11998
|
+
*
|
|
11999
|
+
* When `true` (default), global `REFRESH` events emitted by the dashboard are translated
|
|
12000
|
+
* into `configChange` emissions with updated date/time context — allowing the widget to
|
|
12001
|
+
* react to automatic refresh intervals set in the dashboard controls.
|
|
12002
|
+
*
|
|
12003
|
+
* When `false`, those global refresh cycles are ignored and only actual user-initiated
|
|
12004
|
+
* context state changes (e.g. date range selection) trigger `configChange`.
|
|
12005
|
+
*
|
|
12006
|
+
* **This input does not affect the `refresh` output.**
|
|
12007
|
+
*/
|
|
12008
|
+
this.propagateAutoRefresh = input(true, ...(ngDevMode ? [{ debugName: "propagateAutoRefresh" }] : []));
|
|
12009
|
+
/**
|
|
12010
|
+
* @deprecated Use `propagateAutoRefresh` instead. Will be removed in a future version.
|
|
12011
|
+
*
|
|
12012
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
12013
|
+
* When set, takes precedence over `propagateAutoRefresh` for backward compatibility.
|
|
12014
|
+
*/
|
|
12015
|
+
this.emitRefresh = input(undefined, ...(ngDevMode ? [{ debugName: "emitRefresh" }] : []));
|
|
12016
|
+
/** @internal Resolves the effective value of `propagateAutoRefresh`, respecting the deprecated `emitRefresh` alias. */
|
|
12017
|
+
this._propagateAutoRefresh = computed(() => this.emitRefresh() ?? this.propagateAutoRefresh(), ...(ngDevMode ? [{ debugName: "_propagateAutoRefresh" }] : []));
|
|
11964
12018
|
this.configChange = output();
|
|
12019
|
+
/**
|
|
12020
|
+
* Emitted when the user manually triggers a refresh via the local context controls,
|
|
12021
|
+
* but the resulting context state did not change — so no `configChange` was emitted.
|
|
12022
|
+
*
|
|
12023
|
+
* The parent widget should react by reloading its data without updating the context.
|
|
12024
|
+
*
|
|
12025
|
+
* **This output does not depend on the `propagateAutoRefresh` and `emitRefresh` inputs.**
|
|
12026
|
+
*/
|
|
11965
12027
|
this.refresh = output();
|
|
11966
12028
|
this.linkedChange = output();
|
|
11967
12029
|
this.isLinked = signal(true, ...(ngDevMode ? [{ debugName: "isLinked" }] : []));
|
|
@@ -12046,8 +12108,9 @@ class GlobalContextConnectorComponent {
|
|
|
12046
12108
|
if (cached)
|
|
12047
12109
|
this.emitIfChanged(cached);
|
|
12048
12110
|
const stateChanges$ = this.eventService.on(GLOBAL_CONTEXT_EVENTS.STATE_CHANGE);
|
|
12111
|
+
// Only include refresh events if propagateAutoRefresh is true
|
|
12049
12112
|
let source$ = stateChanges$;
|
|
12050
|
-
if (this.
|
|
12113
|
+
if (this._propagateAutoRefresh()) {
|
|
12051
12114
|
const refresh$ = this.eventService.on(GLOBAL_CONTEXT_EVENTS.REFRESH).pipe(map$1(data => ({
|
|
12052
12115
|
...this.config(),
|
|
12053
12116
|
dateTimeContext: {
|
|
@@ -12096,7 +12159,7 @@ class GlobalContextConnectorComponent {
|
|
|
12096
12159
|
});
|
|
12097
12160
|
}
|
|
12098
12161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: GlobalContextConnectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12099
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", 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 }, dashboardChildInput: { classPropertyName: "dashboardChildInput", publicName: "dashboardChild", isSignal: true, isRequired: false, 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: `
|
|
12162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", 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 }, dashboardChildInput: { classPropertyName: "dashboardChildInput", publicName: "dashboardChild", isSignal: true, isRequired: false, transformFunction: null }, linked: { classPropertyName: "linked", publicName: "linked", isSignal: true, isRequired: false, transformFunction: null }, propagateAutoRefresh: { classPropertyName: "propagateAutoRefresh", publicName: "propagateAutoRefresh", 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: `
|
|
12100
12163
|
@if (hasActiveControls()) {
|
|
12101
12164
|
<c8y-link-buttons
|
|
12102
12165
|
[dashboardChild]="dashboardChild()"
|
|
@@ -12134,7 +12197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12134
12197
|
}
|
|
12135
12198
|
`
|
|
12136
12199
|
}]
|
|
12137
|
-
}], 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 }] }], dashboardChildInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: false }] }], 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"] }] } });
|
|
12200
|
+
}], 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 }] }], dashboardChildInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: false }] }], linked: [{ type: i0.Input, args: [{ isSignal: true, alias: "linked", required: false }] }], propagateAutoRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateAutoRefresh", 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"] }] } });
|
|
12138
12201
|
|
|
12139
12202
|
class LocalControlsComponent {
|
|
12140
12203
|
constructor() {
|
|
@@ -12146,11 +12209,38 @@ class LocalControlsComponent {
|
|
|
12146
12209
|
this.config = input.required(...(ngDevMode ? [{ debugName: "config" }] : []));
|
|
12147
12210
|
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
12148
12211
|
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
12149
|
-
|
|
12212
|
+
/**
|
|
12213
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
12214
|
+
*
|
|
12215
|
+
* When `true` (default), global `REFRESH` events emitted by the dashboard are translated
|
|
12216
|
+
* into `configChange` emissions with updated date/time context — allowing the widget to
|
|
12217
|
+
* react to automatic refresh intervals set in the dashboard controls.
|
|
12218
|
+
*
|
|
12219
|
+
* When `false`, those global refresh cycles are ignored and only actual user-initiated
|
|
12220
|
+
* context state changes (e.g. date range selection) trigger `configChange`.
|
|
12221
|
+
*
|
|
12222
|
+
* **This input does not affect the `refresh` output.**
|
|
12223
|
+
*/
|
|
12224
|
+
this.propagateAutoRefresh = input(true, ...(ngDevMode ? [{ debugName: "propagateAutoRefresh" }] : []));
|
|
12225
|
+
/**
|
|
12226
|
+
* @deprecated Use `propagateAutoRefresh` instead. Will be removed in a future version.
|
|
12227
|
+
*
|
|
12228
|
+
* Controls whether dashboard-wide auto-refresh cycles are forwarded as `configChange` events.
|
|
12229
|
+
* When set, takes precedence over `propagateAutoRefresh` for backward compatibility.
|
|
12230
|
+
*/
|
|
12231
|
+
this.emitRefresh = input(undefined, ...(ngDevMode ? [{ debugName: "emitRefresh" }] : []));
|
|
12150
12232
|
/** Explicit override; falls back to DI-injected DashboardChildComponent. */
|
|
12151
12233
|
this.dashboardChildInput = input(undefined, ...(ngDevMode ? [{ debugName: "dashboardChildInput", alias: 'dashboardChild' }] : [{ alias: 'dashboardChild' }]));
|
|
12152
12234
|
this.resolvedDashboardChild = computed(() => this.dashboardChildInput() ?? this.injectedDashboardChild ?? null, ...(ngDevMode ? [{ debugName: "resolvedDashboardChild" }] : []));
|
|
12153
12235
|
this.configChange = output();
|
|
12236
|
+
/**
|
|
12237
|
+
* Emitted when the user manually triggers a refresh via the local context controls,
|
|
12238
|
+
* but the resulting context state did not change — so no `configChange` was emitted.
|
|
12239
|
+
*
|
|
12240
|
+
* The parent widget should react by reloading its data without updating the context.
|
|
12241
|
+
*
|
|
12242
|
+
* **This output does not depend on the `propagateAutoRefresh` and `emitRefresh` inputs.**
|
|
12243
|
+
*/
|
|
12154
12244
|
this.refresh = output();
|
|
12155
12245
|
this.headerTemplate.register({
|
|
12156
12246
|
getDashboardChild: () => this.resolvedDashboardChild(),
|
|
@@ -12159,7 +12249,7 @@ class LocalControlsComponent {
|
|
|
12159
12249
|
});
|
|
12160
12250
|
}
|
|
12161
12251
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LocalControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: LocalControlsComponent, isStandalone: true, selector: "c8y-local-controls", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", 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 }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, emitRefresh: { classPropertyName: "emitRefresh", publicName: "emitRefresh", isSignal: true, isRequired: false, transformFunction: null }, dashboardChildInput: { classPropertyName: "dashboardChildInput", publicName: "dashboardChild", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh" }, host: { attributes: { "data-local-controls": "true" }, properties: { "class.disabled": "disabled()" } }, providers: [HeaderTemplateService], viewQueries: [{ propertyName: "headerTemplateRef", first: true, predicate: ["headerContent"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
|
|
12252
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: LocalControlsComponent, isStandalone: true, selector: "c8y-local-controls", inputs: { controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", 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 }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, propagateAutoRefresh: { classPropertyName: "propagateAutoRefresh", publicName: "propagateAutoRefresh", isSignal: true, isRequired: false, transformFunction: null }, emitRefresh: { classPropertyName: "emitRefresh", publicName: "emitRefresh", isSignal: true, isRequired: false, transformFunction: null }, dashboardChildInput: { classPropertyName: "dashboardChildInput", publicName: "dashboardChild", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { configChange: "configChange", refresh: "refresh" }, host: { attributes: { "data-local-controls": "true" }, properties: { "class.disabled": "disabled()" } }, providers: [HeaderTemplateService], viewQueries: [{ propertyName: "headerTemplateRef", first: true, predicate: ["headerContent"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
|
|
12163
12253
|
<ng-template #headerContent>
|
|
12164
12254
|
<div class="c8y-header-controls-group">
|
|
12165
12255
|
<c8y-context-controls
|
|
@@ -12167,7 +12257,7 @@ class LocalControlsComponent {
|
|
|
12167
12257
|
[displayMode]="displayMode()"
|
|
12168
12258
|
[config]="config()"
|
|
12169
12259
|
[isLoading]="isLoading()"
|
|
12170
|
-
[
|
|
12260
|
+
[propagateAutoRefresh]="emitRefresh() ?? propagateAutoRefresh()"
|
|
12171
12261
|
(configChange)="configChange.emit($event)"
|
|
12172
12262
|
(refresh)="refresh.emit()"
|
|
12173
12263
|
></c8y-context-controls>
|
|
@@ -12181,13 +12271,13 @@ class LocalControlsComponent {
|
|
|
12181
12271
|
[displayMode]="displayMode()"
|
|
12182
12272
|
[config]="config()"
|
|
12183
12273
|
[isLoading]="isLoading()"
|
|
12184
|
-
[
|
|
12274
|
+
[propagateAutoRefresh]="emitRefresh() ?? propagateAutoRefresh()"
|
|
12185
12275
|
(configChange)="configChange.emit($event)"
|
|
12186
12276
|
(refresh)="refresh.emit()"
|
|
12187
12277
|
></c8y-context-controls>
|
|
12188
12278
|
</div>
|
|
12189
12279
|
}
|
|
12190
|
-
`, isInline: true, styles: [".disabled-overlay{position:relative;cursor:not-allowed}.disabled-overlay:after{content:\"\";position:absolute;inset:0;z-index:10}\n"], dependencies: [{ kind: "component", type: ContextControlsComponent, selector: "c8y-context-controls", inputs: ["controls", "displayMode", "config", "isLoading", "emitRefresh"], outputs: ["configChange", "refresh"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12280
|
+
`, isInline: true, styles: [".disabled-overlay{position:relative;cursor:not-allowed}.disabled-overlay:after{content:\"\";position:absolute;inset:0;z-index:10}\n"], dependencies: [{ kind: "component", type: ContextControlsComponent, selector: "c8y-context-controls", inputs: ["controls", "displayMode", "config", "isLoading", "propagateAutoRefresh", "emitRefresh"], outputs: ["configChange", "refresh"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12191
12281
|
}
|
|
12192
12282
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: LocalControlsComponent, decorators: [{
|
|
12193
12283
|
type: Component,
|
|
@@ -12202,7 +12292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12202
12292
|
[displayMode]="displayMode()"
|
|
12203
12293
|
[config]="config()"
|
|
12204
12294
|
[isLoading]="isLoading()"
|
|
12205
|
-
[
|
|
12295
|
+
[propagateAutoRefresh]="emitRefresh() ?? propagateAutoRefresh()"
|
|
12206
12296
|
(configChange)="configChange.emit($event)"
|
|
12207
12297
|
(refresh)="refresh.emit()"
|
|
12208
12298
|
></c8y-context-controls>
|
|
@@ -12216,14 +12306,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
12216
12306
|
[displayMode]="displayMode()"
|
|
12217
12307
|
[config]="config()"
|
|
12218
12308
|
[isLoading]="isLoading()"
|
|
12219
|
-
[
|
|
12309
|
+
[propagateAutoRefresh]="emitRefresh() ?? propagateAutoRefresh()"
|
|
12220
12310
|
(configChange)="configChange.emit($event)"
|
|
12221
12311
|
(refresh)="refresh.emit()"
|
|
12222
12312
|
></c8y-context-controls>
|
|
12223
12313
|
</div>
|
|
12224
12314
|
}
|
|
12225
12315
|
`, styles: [".disabled-overlay{position:relative;cursor:not-allowed}.disabled-overlay:after{content:\"\";position:absolute;inset:0;z-index:10}\n"] }]
|
|
12226
|
-
}], ctorParameters: () => [], propDecorators: { headerTemplateRef: [{ type: i0.ViewChild, args: ['headerContent', { ...{ read: TemplateRef }, isSignal: true }] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], displayMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayMode", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], emitRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitRefresh", required: false }] }], dashboardChildInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: false }] }], configChange: [{ type: i0.Output, args: ["configChange"] }], refresh: [{ type: i0.Output, args: ["refresh"] }] } });
|
|
12316
|
+
}], ctorParameters: () => [], propDecorators: { headerTemplateRef: [{ type: i0.ViewChild, args: ['headerContent', { ...{ read: TemplateRef }, isSignal: true }] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }], displayMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayMode", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], propagateAutoRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "propagateAutoRefresh", required: false }] }], emitRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitRefresh", required: false }] }], dashboardChildInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "dashboardChild", required: false }] }], configChange: [{ type: i0.Output, args: ["configChange"] }], refresh: [{ type: i0.Output, args: ["refresh"] }] } });
|
|
12227
12317
|
|
|
12228
12318
|
/** @deprecated Use LocalControlsComponent or GlobalContextConnectorComponent instead */
|
|
12229
12319
|
|