all files / grid/renderer/ string-filter-ui.js

95.35% Statements 41/43
87.5% Branches 14/16
83.33% Functions 10/12
95.35% Lines 41/43
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   23× 23× 23×                                 27×                              
define(["require", "exports", "@syncfusion/ej2-dropdowns", "@syncfusion/ej2-data", "@syncfusion/ej2-base", "../base/util"], function (require, exports, ej2_dropdowns_1, ej2_data_1, ej2_base_1, util_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var StringFilterUI = (function () {
        function StringFilterUI(parent, serviceLocator, filterSettings) {
            this.parent = parent;
            this.serLocator = serviceLocator;
            this.filterSettings = filterSettings;
        }
        StringFilterUI.prototype.create = function (args) {
            var data;
            var floptr;
            this.instance = ej2_base_1.createElement('input', { className: 'e-flmenu-input', id: 'strui-' + args.column.uid });
            args.target.appendChild(this.instance);
            this.dialogObj = args.dialogObj;
            this.actObj = new ej2_dropdowns_1.AutoComplete(this.getAutoCompleteOptions(args));
            this.actObj.appendTo(this.instance);
        };
        StringFilterUI.prototype.getAutoCompleteOptions = function (args) {
            var _this = this;
            var isForeignColumn = args.column.isForeignColumn();
            var dataSource = isForeignColumn ? args.column.dataSource : this.parent.dataSource;
            var fields = { value: isForeignColumn ? args.column.foreignKeyValue : args.column.field };
            return {
                dataSource: dataSource instanceof ej2_data_1.DataManager ? dataSource : new ej2_data_1.DataManager(dataSource),
                fields: fields,
                locale: this.parent.locale,
                enableRtl: this.parent.enableRtl,
                query: this.parent.query.clone(),
                sortOrder: 'Ascending',
                open: this.openPopup.bind(this),
                cssClass: 'e-popup-flmenu',
                focus: function () {
                    _this.actObj.filterType = args.getOptrInstance.getFlOperator();
                },
                autofill: true,
                placeholder: args.localizeText.getConstant('EnterValue'),
                actionComplete: function (e) {
                    e.result = e.result.filter(function (obj, index, arr) {
                        return arr.map(function (mapObj) {
                            return mapObj[_this.actObj.fields.value];
                        }).indexOf(obj[_this.actObj.fields.value]) === index;
                    });
                }
            };
        };
        StringFilterUI.prototype.write = function (args) {
            var columns = this.filterSettings.columns;
            if (args.filteredValue !== '' && !ej2_base_1.isNullOrUndefined(args.filteredValue)) {
                var struiObj = document.querySelector('#strui-' + args.column.uid).ej2_instances[0];
                struiObj.value = args.filteredValue;
            }
        };
        StringFilterUI.prototype.read = function (element, column, filterOptr, filterObj) {
            var actuiObj = document.querySelector('#strui-' + column.uid).ej2_instances[0];
            if (ej2_base_1.Browser.isDevice) {
                actuiObj.hidePopup();
                actuiObj.focusOut();
            }
            var filterValue = actuiObj.value;
            if (ej2_base_1.isNullOrUndefined(filterValue) || filterValue === '') {
                filterValue = null;
            }
            filterObj.filterByColumn(column.field, filterOptr, filterValue, 'and', false);
        };
        StringFilterUI.prototype.openPopup = function (args) {
            util_1.getZIndexCalcualtion(args, this.dialogObj);
        };
        return StringFilterUI;
    }());
    exports.StringFilterUI = StringFilterUI;
});