(function() {
/**
* @typedef {Help4.control2.Control.Params} Help4.control2.bubble.header.BubbleHeader.Params
* @property {Help4.control2.bubble.Bubble} bubble - the corresponding bubble control
*/
/**
* Base class for bubble headers.
* @augments Help4.control2.Control
*/
Help4.control2.bubble.header.BubbleHeader = class extends Help4.control2.Control {
/**
* @override
* @param {Help4.control2.bubble.header.BubbleHeader.Params} [params]
* @param {Help4.jscore.ControlBase.Params} [derived]
*/
constructor(params, derived) {
params ||= {};
const {bubble} = params;
if (!bubble) throw new Error('bubble parameter is required!');
const {TYPES: T} = Help4.jscore.ControlBase;
super(params, {
params: {
id: {init: `${bubble.id}-header`},
tag: {init: 'header'},
role: {init: 'banner'},
autoEvent: {init: true}, // to monitor mouseout & mouseover events; XRAY-2615, XRAY-4628
bubble: {type: T.instance, init: bubble, mandatory: true, private: true}
},
config: {
css: 'control-bubble-header header'
},
derived
});
}
}
})();