Source: control2/bubble/footer/BubbleFooter.js

(function() {
    /**
     * @typedef {Help4.control2.Control.Params} Help4.control2.bubble.footer.BubbleFooter.Params
     * @property {Help4.control2.bubble.Bubble} bubble - the corresponding bubble control
     */

    /**
     * Footer base class for bubbles.
     * @augments Help4.control2.Control
     */
    Help4.control2.bubble.footer.BubbleFooter = class extends Help4.control2.Control {
        /**
         * @override
         * @param {Help4.control2.bubble.footer.BubbleFooter.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}-footer`},
                    tag:       {init: 'footer'},

                    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-footer footer'
                },
                derived
            });
        }
    }
})();