all files / items/ ribbon-colorpicker.js

99.07% Statements 107/108
87.5% Branches 42/48
100% Functions 21/21
99.07% Lines 106/107
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176   182×   8338×   94×   171× 171×     171× 171× 171×                             10× 10×                   21× 21×         171× 171×     171×   171× 171× 171×           87× 87× 87×           87× 87× 87× 87× 87× 87× 87×     87×         20× 20× 20×     20× 20× 20× 45× 20× 20× 20× 20×       15× 15×     13× 13×   12× 11×             171× 171× 171× 171×        
define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-inputs", "../base/index", "../base/constant"], function (require, exports, ej2_base_1, ej2_inputs_1, index_1, constant_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var RibbonColorPicker = (function () {
        function RibbonColorPicker(parent) {
            this.parent = parent;
        }
        RibbonColorPicker.prototype.getModuleName = function () {
            return 'ribbonColorPicker';
        };
        RibbonColorPicker.prototype.destroy = function () {
            this.parent = null;
        };
        RibbonColorPicker.prototype.createColorPicker = function (item, itemEle) {
            var _this = this;
            var inputEle = this.parent.createElement('input', {
                id: item.id
            });
            itemEle.appendChild(inputEle);
            var colorPickerSettings = item.colorPickerSettings;
            var colorPicker = new ej2_inputs_1.ColorPicker({
                locale: this.parent.locale,
                enableRtl: this.parent.enableRtl,
                enablePersistence: this.parent.enablePersistence,
                columns: colorPickerSettings.columns,
                cssClass: (constant_1.RIBBON_CONTROL + constant_1.SPACE + (colorPickerSettings.cssClass ? colorPickerSettings.cssClass : '')).trim(),
                disabled: item.disabled,
                enableOpacity: colorPickerSettings.enableOpacity,
                mode: colorPickerSettings.mode,
                modeSwitcher: colorPickerSettings.modeSwitcher,
                noColor: colorPickerSettings.noColor,
                presetColors: colorPickerSettings.presetColors,
                showButtons: colorPickerSettings.showButtons,
                value: colorPickerSettings.value,
                beforeClose: function () {
                    colorPicker.element.parentElement.classList.remove(constant_1.RIBBON_POPUP_OPEN);
                    if (colorPickerSettings.beforeClose) {
                        colorPickerSettings.beforeClose.call(_this);
                    }
                },
                beforeOpen: colorPickerSettings.beforeOpen,
                beforeTileRender: colorPickerSettings.beforeTileRender,
                created: colorPickerSettings.created,
                change: function (e) {
                    colorPickerSettings.value = e.value.toString();
                    if (colorPickerSettings.change) {
                        colorPickerSettings.change.call(_this, e);
                    }
                },
                open: function () {
                    colorPicker.element.parentElement.classList.add(constant_1.RIBBON_POPUP_OPEN);
                    if (colorPickerSettings.open) {
                        colorPickerSettings.open.call(_this);
                    }
                },
                select: colorPickerSettings.select
            }, inputEle);
            Eif (colorPickerSettings.htmlAttributes) {
                Iif (colorPickerSettings.htmlAttributes.id) {
                    delete colorPickerSettings.htmlAttributes.id;
                }
                index_1.setCustomAttributes(inputEle, colorPickerSettings.htmlAttributes);
            }
            var wrapper = colorPicker.element.parentElement;
            ej2_base_1.EventHandler.add(wrapper, 'mouseenter', this.toggleWrapperHover.bind(this, wrapper, true), this);
            ej2_base_1.EventHandler.add(wrapper, 'mouseleave', this.toggleWrapperHover.bind(this, wrapper, false), this);
        };
        RibbonColorPicker.prototype.toggleWrapperHover = function (wrapper, isAdd) {
            if (isAdd) {
                wrapper.classList.add(constant_1.RIBBON_HOVER);
            }
            else {
                wrapper.classList.remove(constant_1.RIBBON_HOVER);
            }
        };
        RibbonColorPicker.prototype.addOverFlowEvents = function (item, itemEle, overflowButton) {
            var _this = this;
            var colorPickerSettings = item.colorPickerSettings;
            if (colorPickerSettings.label && this.parent.activeLayout === 'Simplified') {
                var label = this.parent.createElement('div', {
                    className: 'e-ribbon-colorpicker-label',
                    id: item.id + '_label',
                    innerHTML: colorPickerSettings.label
                });
                itemEle.insertBefore(label, itemEle.firstChild);
            }
            var colorPickerEle = itemEle.querySelector('#' + item.id);
            colorPickerEle.setAttribute('data-control', item.type.toString());
            var colorPickerObj = ej2_base_1.getComponent(colorPickerEle, ej2_inputs_1.ColorPicker);
            colorPickerObj.setProperties({ cssClass: colorPickerObj.cssClass + constant_1.SPACE + constant_1.RIBBON_POPUP_CONTROL });
            var splitBtn = colorPickerObj['splitBtn'];
            var target;
            colorPickerObj.beforeClose = function (e) {
                target = e.event ? e.event.target : null;
                colorPickerObj.element.parentElement.classList.remove(constant_1.RIBBON_POPUP_OPEN);
                if (item.colorPickerSettings.beforeClose) {
                    item.colorPickerSettings.beforeClose.call(_this);
                }
            };
            splitBtn.close = function () {
                if (target && !target.closest('.e-ribbon-group-overflow-ddb')) {
                    Eif (overflowButton.element.classList.contains('e-active')) {
                        overflowButton.toggle();
                    }
                }
            };
        };
        RibbonColorPicker.prototype.removeOverFlowEvents = function (item, itemEle) {
            var _this = this;
            var colorPickerSettings = item.colorPickerSettings;
            if (colorPickerSettings.label) {
                var label = itemEle.querySelector('#' + item.id + '_label');
                Eif (label) {
                    label.remove();
                }
            }
            var colorPickerEle = itemEle.querySelector('#' + item.id);
            var colorPickerObj = ej2_base_1.getComponent(colorPickerEle, ej2_inputs_1.ColorPicker);
            var cssClass = colorPickerObj.cssClass.split(constant_1.SPACE);
            cssClass = cssClass.filter(function (value) { return value !== constant_1.RIBBON_POPUP_CONTROL; });
            colorPickerObj.setProperties({ cssClass: cssClass.join(constant_1.SPACE) });
            var splitBtn = colorPickerObj['splitBtn'];
            splitBtn.close = null;
            colorPickerObj.beforeClose = function () {
                colorPickerObj.element.parentElement.classList.remove(constant_1.RIBBON_POPUP_OPEN);
                Eif (item.colorPickerSettings.beforeClose) {
                    item.colorPickerSettings.beforeClose.call(_this);
                }
            };
        };
        RibbonColorPicker.prototype.getColorPickerObj = function (controlId) {
            var inputEle = index_1.getItemElement(this.parent, controlId);
            return inputEle ? ej2_base_1.getComponent(inputEle, ej2_inputs_1.ColorPicker) : null;
        };
        RibbonColorPicker.prototype.getValue = function (controlId, value, type) {
            var colorPickerObj = this.getColorPickerObj(controlId);
            return colorPickerObj ? colorPickerObj.getValue(value, type) : '';
        };
        RibbonColorPicker.prototype.toggle = function (controlId) {
            var colorPickerObj = this.getColorPickerObj(controlId);
            if (!colorPickerObj) {
                return;
            }
            if (!colorPickerObj.disabled) {
                colorPickerObj.toggle();
            }
        };
        RibbonColorPicker.prototype.updateColorPicker = function (prop, id) {
            var itemProp = index_1.getItem(this.parent.tabs, id);
            if (!itemProp) {
                return;
            }
            ej2_base_1.merge(itemProp.item.checkBoxSettings, prop);
            var inputEle = index_1.getItemElement(this.parent, id, itemProp);
            if (!inputEle) {
                return;
            }
            if (prop.cssClass) {
                prop.cssClass = (constant_1.RIBBON_CONTROL + constant_1.SPACE + prop.cssClass).trim();
            }
            delete prop.beforeClose;
            delete prop.open;
            var colorPickerObj = ej2_base_1.getComponent(inputEle, ej2_inputs_1.ColorPicker);
            colorPickerObj.setProperties(prop);
        };
        RibbonColorPicker.prototype.unwireColorPickerEvents = function (element) {
            var colorPickerObj = ej2_base_1.getComponent(element, ej2_inputs_1.ColorPicker);
            var wrapper = colorPickerObj.element.parentElement;
            ej2_base_1.EventHandler.remove(wrapper, 'mouseenter', this.toggleWrapperHover);
            ej2_base_1.EventHandler.remove(wrapper, 'mouseleave', this.toggleWrapperHover);
        };
        return RibbonColorPicker;
    }());
    exports.RibbonColorPicker = RibbonColorPicker;
});