All files / web/bundles/pimdashboard/js widget-container.js

100% Statements 8/8
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 331110x               1110x                     2264x 2264x 2220x 2220x   44x     2264x          
define(
    [],
    function () {
        'use strict';
 
        /**
         * Widget container maintain a widget registry to use them on dashboard.
         */
        return {
            widgetsRegistry: {},
            /**
             * Get or create a widget
             *
             * @param {Object}   options
             * @param {Function} ClassFunction
             *
             * @return {Object} AbstractWidget instance
             */
            getWidget: function (options, ClassFunction) {
                var widget = this.widgetsRegistry[options.alias];
                if (!widget) {
                    widget = new ClassFunction(options);
                    this.widgetsRegistry[options.alias] = widget;
                } else {
                    widget.setElement(options.el);
                }
 
                return widget;
            }
        };
    }
);