File
Description
Component to display and manage link controls for global context items
Implements
Index
Properties
|
|
|
Methods
|
|
|
Inputs
|
|
|
Outputs
|
|
|
Accessors
|
|
|
|
linkStates
|
Type : literal type
|
Outputs
|
allLinksToggled
|
Type : EventEmitter
|
|
allControlsLinked
|
Type : unknown
|
Default value : computed<boolean>(() => {
const controls = this.visibleControls();
return controls.length > 0 && controls.every(control => control.isLinked);
})
|
|
masterTooltipText
|
Type : unknown
|
Default value : computed<string>(() => {
const controls = this.visibleControls();
const linkedControls = controls.filter(control => control.isLinked);
const controlConfigs = this.controlConfigsSignal();
const clickToToggleLabel = this.translateService.instant(gettext('(click to toggle)'));
if (linkedControls.length === 0) {
const usingWidgetCustomTimeSettingsLabel = this.translateService.instant(
gettext('Using widget custom time settings')
);
return `${usingWidgetCustomTimeSettingsLabel}\n${clickToToggleLabel}`;
}
const linkedNames = linkedControls.map(control => {
const config = controlConfigs[control.key];
return this.translateService.instant(config?.label);
});
const formatter = new Intl.ListFormat(
this.translateService.getCurrentLang()?.replace('_', '-'),
{ type: 'conjunction' }
);
const linkedNamesList = formatter.format(linkedNames);
const linkedToDashboardLabel = this.translateService.instant(gettext('Synced to dashboard:'));
return `${linkedToDashboardLabel}\n${linkedNamesList}\n${clickToToggleLabel}`;
})
|
|
showLinks
|
Type : unknown
|
Default value : computed<boolean>(() => {
const linkStates = this.linkStatesSignal();
return Object.keys(linkStates).length > 0;
})
|
|
someControlsLinked
|
Type : unknown
|
Default value : computed<boolean>(() => {
const controls = this.visibleControls();
return controls.length > 0 && controls.some(control => control.isLinked);
})
|
|
visibleControls
|
Type : unknown
|
Default value : computed<LinkControlInfo[]>(() => {
const linkStates = this.linkStatesSignal();
const controlConfigs = this.controlConfigsSignal();
return Object.entries(linkStates)
.filter(([key]) => controlConfigs[key])
.map(([key, isLinked]) => ({
key,
isLinked,
cssClass: (controlConfigs[key]?.cssClass || 'default').trim(),
icon: controlConfigs[key]?.icon || '',
disabled: !!controlConfigs[key]?.disabled,
disabledTooltip: controlConfigs[key]?.disabledTooltip,
autoUnlinked: !!controlConfigs[key]?.autoUnlinked
}));
})
|
Accessors
|
linkStates
|
getlinkStates()
|
setlinkStates(value: literal type)
|
Parameters :
| Name |
Type |
Optional |
| value |
literal type
|
No
|
|