{"version":3,"sources":["jsdelivr-header.js","/npm/abctable@0.1.2/dist/abctable.js"],"names":[],"mappings":"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","file":"/npm/abctable@0.1.2/dist/abctable.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/abctable@0.1.2/dist/abctable.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function(){angular.module('templates', []).run(['$templateCache', function($templateCache) {$templateCache.put('/src/template.html','<div class=\"abc-table\">\\r\\n    <div class=\"toolbar\" ng-hide=\"$ctrl.options.hideToolbar\">\\r\\n        <div class=\"items-count\">\\r\\n            <span>{{$ctrl.filteredData.length}} of </span><span>{{$ctrl.data.length}}</span>\\r\\n        </div>\\r\\n        <ul uib-pagination total-items=\"$ctrl.filteredData.length\" ng-model=\"$ctrl.currentPage\" items-per-page=\"$ctrl.options.pageSize\"\\r\\n            max-size=\"15\"></ul>\\r\\n    </div>\\r\\n    <div class=\"table-responsive\">\\r\\n        <table class=\"{{$ctrl.options.class}}\">\\r\\n            <tr  ng-hide=\"$ctrl.options.hideHeader\">\\r\\n                <th ng-repeat=\"column in $ctrl.columns\" ng-if=\"!column.hidden\" ng-init=\"$ctrl.initColumn(column)\" ng-style=\"column.style\">\\r\\n                    <input type=\"checkbox\" class=\"checkbox\" ng-if=\"column.type == \\'checkbox\\'\" ng-checked=\"$ctrl.isAllchecked()\" ng-click=\"$ctrl.checkAll()\"></input>\\r\\n                    <span ng-if=\"column.type != \\'checkbox\\'\" ng-click=\"$ctrl.sort(column.field)\" class=\"title\" ng-class=\"{\\'title-sorted\\': $ctrl.options.sort.field == column.field}\">{{column.title}}</span>\\r\\n                </th>\\r\\n            </tr>\\r\\n            <tr ng-if=\"$ctrl.options.showAggRow\">\\r\\n                <td ng-repeat=\"column in $ctrl.columns\" ng-if=\"!column.hidden\">\\r\\n                    <div ng-if=\"column.aggs.enabled\" ng-include=\"$ctrl.getAggsTemplateUrl(column)\"></div>\\r\\n                </td>\\r\\n            </tr>\\r\\n            <tr ng-if=\"$ctrl.options.showFilter\">\\r\\n                <td ng-repeat=\"column in $ctrl.columns\" ng-if=\"!column.hidden\">\\r\\n                    <div ng-if=\"column.filter.enabled\" ng-include=\"$ctrl.getFilterTemplateUrl(column)\"></div>\\r\\n                </td>\\r\\n            </tr>\\r\\n            <tr ng-repeat=\"item in ($ctrl.filteredData = ($ctrl.data | abcFilterData:$ctrl.columns:$ctrl.options.externalFilter | orderBy: $ctrl.options.sort.field:$ctrl.options.sort.reverse) | abcSlice:$ctrl.fromItem():$ctrl.toItem()) track by $index\"\\r\\n                ng-class=\"$ctrl.rowStyle(item)\" ng-init=\"rowIndex = $index; prev = $ctrl.filteredData[rowIndex - 1]; next = $ctrl.filteredData[rowIndex + 1]\">\\r\\n                <td ng-repeat=\"column in $ctrl.columns\"  ng-if=\"!column.hidden\" class=\"{{$ctrl.getCellClass(column, item)}}\" ng-dblclick=\"$ctrl.showEditMode(item, column)\">\\r\\n                    <ng-include src=\"$ctrl.getTemplateUrl(column, item)\"></ng-include>\\r\\n                </td>\\r\\n            </tr>\\r\\n        </table>\\r\\n    </div>\\r\\n</div>');\n$templateCache.put('/src/templates/aggs/currency.html','<span ng-if=\"!column.aggs.values\">\\r\\n    {{column.aggs.value | currency:column.symbol}}\\r\\n</span>\\r\\n<span ng-if=\"column.aggs.values\" ng-repeat=\"value in column.aggs.values track by $index\">\\r\\n    <br ng-if=\"$index > 0\" /> {{value | currency: column.symbol}}\\r\\n</span>');\n$templateCache.put('/src/templates/aggs/number.html','<span ng-if=\"!column.aggs.values\">\\r\\n    {{column.aggs.value | number}}\\r\\n</span>\\r\\n<span ng-if=\"column.aggs.values\" ng-repeat=\"value in column.aggs.values track by $index\">\\r\\n     <br ng-if=\"$index > 0\" /> {{value | number}}\\r\\n</span>');\n$templateCache.put('/src/templates/cells/checkbox.html','<input type=\"checkbox\" class=\"checkbox\" ng-model=\"item.checked\" ng-click=\"$ctrl.checkClick(rowIndex, item.checked, $event)\"></input>');\n$templateCache.put('/src/templates/cells/currency.html','<span>\\r\\n    {{item[column.field] | currency:column.symbol}}\\r\\n</span>');\n$templateCache.put('/src/templates/cells/date.html','<span>\\r\\n    {{item[column.field] | date: column.format}}\\r\\n</span>');\n$templateCache.put('/src/templates/cells/index.html','{{rowIndex + 1}}');\n$templateCache.put('/src/templates/cells/link.html','<span ng-if=\"column.showPreview\">\\r\\n    <a ng-if=\"!!item[column.field]\" abc-link-image-preview ng-href=\"{{item[column.field]}}\" target=\"_blank\">{{$ctrl.linkCellText(item, column)}}</a>\\r\\n</span>\\r\\n<span ng-if=\"!column.showPreview\">\\r\\n    <a ng-if=\"!!item[column.field]\" ng-href=\"{{item[column.field]}}\" target=\"_blank\">{{$ctrl.linkCellText(item, column)}}</a>\\r\\n</span>');\n$templateCache.put('/src/templates/cells/number.html','<span>\\r\\n    {{item[column.field] | number}}\\r\\n</span>');\n$templateCache.put('/src/templates/cells/text.html','<span>\\r\\n    {{item[column.field]}}\\r\\n</span>');\n$templateCache.put('/src/templates/edit/currency.html','<input class=\"form-control\" type=\"number\" ng-model=\"item.editValue\" ng-keydown=\"$ctrl.onSpecialKey(item, column, rowIndex, $index, $event)\" ng-blur=\"$ctrl.fieldUpdated(item, column)\" style=\"width: 100%;\" focus-me=\"$ctrl.isEditMode(item, column)\">');\n$templateCache.put('/src/templates/edit/link.html','<input class=\"form-control\" type=\"text\" ng-model=\"item.editValue\" ng-keydown=\"$ctrl.onSpecialKey(item, column, rowIndex, $index, $event)\" ng-blur=\"$ctrl.fieldUpdated(item, column)\" focus-me=\"$ctrl.isEditMode(item, column)\">');\n$templateCache.put('/src/templates/edit/number.html','<input class=\"form-control\" type=\"number\" ng-model=\"item.editValue\" ng-keydown=\"$ctrl.onSpecialKey(item, column, rowIndex, $index, $event)\" ng-blur=\"$ctrl.fieldUpdated(item, column)\" style=\"width: 100%;\" focus-me=\"$ctrl.isEditMode(item, column)\">');\n$templateCache.put('/src/templates/edit/select.html','<select class=\"form-control\" ng-model=\"item.editValue\" ng-keydown=\"$ctrl.onSpecialKey(item, column, rowIndex, $index, $event)\" ng-options=\"field for field in column.editValues\" ng-blur=\"$ctrl.fieldUpdated(item, column)\" focus-me=\"$ctrl.isEditMode(item, column)\"></select>\\r\\n');\n$templateCache.put('/src/templates/edit/text.html','<input class=\"form-control\" type=\"text\" ng-model=\"item.editValue\" ng-keydown=\"$ctrl.onSpecialKey(item, column, rowIndex, $index, $event)\" ng-blur=\"$ctrl.fieldUpdated(item, column)\" focus-me=\"$ctrl.isEditMode(item, column)\">');\n$templateCache.put('/src/templates/filters/checkbox.html','<label ng-click=\"$ctrl.filterCheck(column)\" style=\"cursor:pointer;\" title=\"{{column.filter.tooltip}}\">\\r\\n    <i class=\"fa fa-2x\" ng-class=\"{\\'fa-check-square-o\\': column.filter.value, \\'fa-square-o\\': !column.filter.value}\"></i>\\r\\n   {{column.filter.label}}\\r\\n</label>');\n$templateCache.put('/src/templates/filters/select.html','<ui-select ng-if=\"column.filter.list != null\" multiple ng-model=\"column.filter.values\" theme=\"bootstrap\" sortable=\"true\" on-select=\"$ctrl.filterSelect()\" on-remove=\"$ctrl.filterSelect()\">\\r\\n    <ui-select-match>{{$item}}</ui-select-match>\\r\\n    <ui-select-choices repeat=\"item in column.filter.list | filter: $select.search | limitTo: 100\">\\r\\n      <div ng-bind-html=\"item | highlight: $select.search\"></div>\\r\\n    </ui-select-choices>\\r\\n  </ui-select>\\r\\n\\r\\n  <ui-select ng-if=\"column.filter.list == null\" multiple tagging tagging-label=\"false\" ng-model=\"column.filter.values\" theme=\"bootstrap\" sortable=\"true\" on-select=\"$ctrl.filterSelect()\" on-remove=\"$ctrl.filterSelect()\">\\r\\n    <ui-select-match>{{$item}}</ui-select-match>\\r\\n    <ui-select-choices repeat=\"item in [] | filter: $select.search\">\\r\\n      <div ng-bind-html=\"item | highlight: $select.search\"></div>\\r\\n    </ui-select-choices>\\r\\n  </ui-select>');\n$templateCache.put('/src/templates/filters/text.html','<input type=\"text\" class=\"form-control\" ng-model=\"column.filter.value\">');}]);})();\n(function() {\r\n    'use strict';\r\n\r\n    angular.module('abcTable', [\r\n        'ui.select','ui.bootstrap','ngSanitize', 'templates'\r\n    ]);\r\n\r\n    \r\n})();\n\r\n(function() {\r\n'use strict';\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .factory('abcTemplatesService', abcTemplatesService);\r\n    \r\n    function abcTemplatesService() {\r\n        \r\n        var templatesPath = '/src/templates/';\r\n        \r\n        var service = {\r\n            getTemplateUrl: getTemplateUrl,\r\n            getFilterTemplateUrl: getFilterTemplateUrl,\r\n            getAggsTemplateUrl: getAggsTemplateUrl\r\n        };\r\n        \r\n        return service;\r\n\r\n        ////////////////\r\n        function getTemplateUrl(column, item, isEditMode) {\r\n\r\n            if (item.editField && isEditMode) {\r\n                return getEditTemplateUrl(column);\r\n            }\r\n\r\n            return getCellTemplateUrl(column);\r\n        }\r\n\r\n        function getCellTemplateUrl(column) {\r\n            if (column.templateUrl) {\r\n                return column.templateUrl;\r\n            }\r\n            if (column.type) {\r\n                return templatesPath + 'cells/' + column.type + '.html';\r\n            }\r\n            return templatesPath + 'cells/text.html';\r\n        }\r\n\r\n        function getEditTemplateUrl(column) {\r\n            if (column.editTemplateUrl) {\r\n                return column.editTemplateUrl;\r\n            }\r\n            if (column.editType) {\r\n                return templatesPath + 'edit/' + column.editType + '.html';\r\n            }\r\n            if (column.type) {\r\n                return templatesPath + 'edit/' + column.type + '.html';\r\n            }\r\n            return templatesPath + 'edit/text.html';\r\n        }\r\n\r\n        function getFilterTemplateUrl(column) {\r\n            if (column.filter.templateUrl) {\r\n                return column.filter.templateUrl;\r\n            }\r\n            if (column.filter.type) {\r\n                return templatesPath + 'filters/' + column.filter.type + '.html';\r\n            }\r\n            return templatesPath + 'filters/select.html';\r\n        }\r\n\r\n        function getAggsTemplateUrl(column) {\r\n            if (column.aggs.templateUrl) {\r\n                return column.aggs.templateUrl;\r\n            }\r\n            if (column.aggs.type) {\r\n                return templatesPath + 'aggs/' + column.aggs.type + '.html';\r\n            }\r\n            return templatesPath + 'aggs/number.html';\r\n        }\r\n    }\r\n})();\n\r\n(function () {\r\n    'use strict';\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .factory('abcFilteraggsService', abcFilteraggsService);\r\n\r\n    function abcFilteraggsService() {\r\n        var emptyLabel = '[EMPTY]';\r\n        var service = {\r\n            refreshFilters: refreshFilters,\r\n            refreshAggs: refreshAggs\r\n        };\r\n\r\n        return service;\r\n\r\n        ////////////////\r\n        function refreshFilters(data, columns) {\r\n            if (data) {\r\n                columns.forEach(function (column) {\r\n                    if (column.filter && column.filter.enabled && column.filter.fromData) {\r\n                        column.filter.list = [];\r\n                        data.forEach(function (item) {\r\n                            var value = item[column.field] + '';\r\n                            if (typeof column.filter.fromData == \"function\") {\r\n                                value = column.filter.fromData(value);\r\n                            }\r\n                            if (!value) {\r\n                                value = emptyLabel;\r\n                            }\r\n                            if (column.filter.list.indexOf(value) < 0) {\r\n                                if (value == emptyLabel) {\r\n                                    column.filter.list.unshift(value);\r\n                                }\r\n                                else {\r\n                                    column.filter.list.push(value);\r\n                                }\r\n\r\n                            }\r\n                        })\r\n                    }\r\n                })\r\n            }\r\n        }\r\n\r\n        function refreshAggs(data, columns) {\r\n            if (data) {\r\n                columns.forEach(function (column) {\r\n                    if (column.aggs && column.aggs.enabled && column.aggs.fromData) {\r\n                        column.aggs.value = 0;\r\n                        column.aggs.values = undefined;\r\n                        var objToProcess = {\r\n                            uniqueHelper: {},\r\n                            sum: 0,\r\n                            sum2: 0,\r\n                            count: data.length\r\n                        };\r\n                        var uniqueHelper = {};\r\n                        var sum = 0;\r\n                        data.forEach(function (item) {\r\n                            var value = item[column.field];\r\n                            if (typeof column.aggs.fromData == \"function\") {\r\n                                value = column.aggs.fromData(value, item);\r\n                            }\r\n                            if (column.aggs.operator instanceof Array) {\r\n                                column.aggs.operator.forEach(function (oper) {\r\n                                    processByOperator(oper, objToProcess, value);\r\n                                })\r\n                            }\r\n                            else {\r\n                                processByOperator(column.aggs.operator, objToProcess, value);\r\n                            }\r\n                            // switch (column.aggs.operator) {\r\n                            //     case \"unique\":\r\n                            //         uniqueHelper[value] = (uniqueHelper[value] || 0) + 1;\r\n                            //         break;\r\n                            //     case \"sum\":\r\n                            //         sum += parseInt(value, 10);\r\n                            //         break;\r\n                            //     case \"avg\":\r\n                            //         sum += parseInt(value, 10);\r\n                            //         break;\r\n                            // }\r\n                        })\r\n                        if (column.aggs.operator instanceof Array) {\r\n                            column.aggs.values = [];\r\n                            column.aggs.operator.forEach(function (oper) {\r\n                                var value = getValueByOperator(oper, objToProcess);\r\n                                column.aggs.values.push(value);\r\n                            })\r\n                        }\r\n                        else {\r\n                            column.aggs.value = getValueByOperator(column.aggs.operator, objToProcess);\r\n                        }\r\n\r\n\r\n                        // switch (column.aggs.operator) {\r\n                        //     case \"unique\":\r\n                        //         column.aggs.value = Object.keys(uniqueHelper).length;\r\n                        //         break;\r\n                        //     case \"sum\":\r\n                        //         column.aggs.value = sum;\r\n                        //         break;\r\n                        //     case \"avg\":\r\n                        //         column.aggs.value = parseInt(sum / data.length, 10);\r\n                        //         break;\r\n                        // }\r\n                    }\r\n                })\r\n            }\r\n        }\r\n\r\n        function processByOperator(operator, objToProcess, value) {\r\n            switch (operator) {\r\n                case \"unique\":\r\n                    objToProcess.uniqueHelper[value] = (objToProcess.uniqueHelper[value] || 0) + 1;\r\n                    break;\r\n                case \"sum\":\r\n                    objToProcess.sum += parseFloat(value);\r\n                    break;\r\n                case \"avg\":\r\n                    objToProcess.sum2 += parseFloat(value);\r\n                    break;\r\n            }\r\n        }\r\n\r\n        function getValueByOperator(operator, objToProcess) {\r\n            switch (operator) {\r\n                case \"unique\":\r\n                    return Object.keys(objToProcess.uniqueHelper).length;\r\n                case \"sum\":\r\n                    return objToProcess.sum;\r\n                case \"avg\":\r\n                    return parseInt(objToProcess.sum2 / objToProcess.count, 10);\r\n            }\r\n        }\r\n    }\r\n})();\n\r\n(function() {\r\n'use strict';\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .factory('abcCheckboxesService', abcCheckboxesService);\r\n\r\n    function abcCheckboxesService() {\r\n        \r\n        var allChecked = false,\r\n            lastCheckedIndex = null;\r\n        \r\n        var service = {\r\n            isAllchecked: isAllchecked,\r\n            checkAll: checkAll,\r\n            checkClick: checkClick,\r\n            getCheckedItems: getCheckedItems\r\n        };\r\n        \r\n        return service;\r\n\r\n                \r\n        ////////////////\r\n        function checkAll (data) {\r\n            allChecked = !allChecked;\r\n            var i = 0, length = data.length;\r\n            for (i = 0; i < length; i++) {\r\n                data[i].checked = allChecked;\r\n            }\r\n        }\r\n\r\n        function isAllchecked (data) {\r\n            allChecked = true;\r\n            for (var i = 0; i < data.length; i++) {\r\n                if (!data[i].checked) {\r\n                    allChecked = false;\r\n                    break;\r\n                }\r\n            }\r\n            return allChecked;\r\n        }\r\n\r\n        function checkClick (index, checked, data, event) {\r\n            //var index = $ctrl.fromItem() + $index;\r\n            if (event.shiftKey && lastCheckedIndex != null) {\r\n                selectAllBetween(lastCheckedIndex, index, data);\r\n\r\n            }\r\n\r\n            if (checked) {\r\n                lastCheckedIndex = index;\r\n            }\r\n            else {\r\n                lastCheckedIndex = null;\r\n            }\r\n        }\r\n\r\n        function selectAllBetween(start, end, data) {\r\n            var i,\r\n                s = Math.min(start, end),\r\n                e = Math.max(start, end);\r\n            for (i = s; i < e; i++) {\r\n                data[i].checked = true;\r\n            }\r\n        }\r\n\r\n        function getCheckedItems(data) {\r\n            return data.filter(function (item) {\r\n                return item.checked;\r\n            })\r\n        }\r\n    }\r\n})();\n(function () {\r\n    'use strict';\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .filter('abcSlice', slice)\r\n        .filter('abcFilterData', filterData);\r\n\r\n    function slice() {\r\n        return function (arr, start, end) {\r\n            if (arr) {\r\n                return arr.slice(start, end);\r\n            }\r\n            return [];\r\n\r\n        };\r\n    }\r\n\r\n    function filterData() {\r\n\r\n        var emptyLabel = '[EMPTY]';\r\n\r\n        function isValuesExist(filterValues, value) {\r\n            var showEmptyValues = false;\r\n            if (!filterValues || filterValues.length == 0) {\r\n                return true;\r\n            }\r\n\r\n            if (filterValues.indexOf(emptyLabel) >= 0 && !value) {\r\n                showEmptyValues = true;\r\n            }\r\n            return showEmptyValues || filterValues.indexOf(value + \"\") >= 0;\r\n        }\r\n\r\n        function isValueExist(filterValue, value) {\r\n            if (!filterValue) {\r\n                return true;\r\n            }\r\n\r\n            if (!value) {\r\n                value = \"\";\r\n            }\r\n\r\n            value = \"\" + value;\r\n\r\n            return value.toLowerCase().indexOf(filterValue.toLowerCase()) >= 0;\r\n        }\r\n\r\n        function isValueBool(filterValue, value) {\r\n            return !filterValue || !!value;\r\n        }\r\n\r\n        return function (items, columns, externalFilter) {\r\n            if (!items) {\r\n                return [];\r\n            }\r\n\r\n            var filteredItems = items.filter(function (item) {\r\n                var shown = true;\r\n                var value;\r\n                columns.forEach(function (column) {\r\n                    value = item[column.field];\r\n                    if (column.filter && shown) {\r\n                        switch (column.filter.type) {\r\n                            case \"select\":\r\n                                var testMethod = column.filter.method || isValuesExist;\r\n                                if (!testMethod(column.filter.values, value)) {\r\n                                    shown = false;\r\n                                }\r\n                                break;\r\n                            case \"text\":\r\n                                if (!isValueExist(column.filter.value, value))\r\n                                    shown = false;\r\n                                break;\r\n                            case \"checkbox\":\r\n                                var testMethod = column.filter.method || isValueBool;\r\n                                if (!testMethod(column.filter.value, value, item)) {\r\n                                    shown = false;\r\n                                }\r\n                                break;\r\n                        }\r\n                    }\r\n                })\r\n\r\n                if (shown && externalFilter) {\r\n                    shown = externalFilter(item);\r\n                }\r\n\r\n                return shown;\r\n            })\r\n\r\n            return filteredItems;\r\n        }\r\n    }\r\n})();\n(function () {\r\n    'use strict';\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .directive('focusMe', focusMe)\r\n        .directive('abcLinkImagePreview', linkImagePreview);\r\n\r\n    focusMe.$inject = ['$timeout', '$parse'];\r\n    function focusMe($timeout, $parse) {\r\n        return {\r\n            //scope: true,   // optionally create a child scope\r\n            link: function (scope, element, attrs) {\r\n                var model = $parse(attrs.focusMe);\r\n                scope.$watch(model, function (value) {\r\n                    if (value === true) {\r\n                        $timeout(function () {\r\n                            element[0].focus();\r\n                            if (element[0].select) {\r\n                                element[0].select();\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n                // // to address @blesh's comment, set attribute value to 'false'\r\n                // // on blur event:\r\n                // element.bind('blur', function () {\r\n                //     scope.$apply(model.assign(scope, false));\r\n                // });\r\n            }\r\n        };\r\n    }\r\n\r\n    function linkImagePreview() {\r\n        return {\r\n            restrict: 'A',\r\n            link: function (scope, element, attrs) {\r\n                var imgPreview;\r\n                element.bind('mouseover', function () {\r\n                    imgPreview = angular.element('<div>').addClass('abc-link-img-preview');\r\n                    var image = angular.element('<img>');\r\n                    imgPreview.append(image);\r\n                    document.body.appendChild(imgPreview[0]);\r\n                    var url = element.attr('href');\r\n                    image.attr('src', url);\r\n                });\r\n\r\n                element.bind('mousemove', function (e) {\r\n                    imgPreview[0].style.left = (e.pageX + 10) + 'px';\r\n                    imgPreview[0].style.top = (e.pageY + 10) + 'px';\r\n                })\r\n\r\n                element.bind('mouseout', function () {\r\n                    document.body.removeChild(imgPreview[0]);\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n})();\n(function () {\r\n    'use strict';\r\n\r\n\r\n    angular\r\n        .module('abcTable')\r\n        .component('abcTable', {\r\n            templateUrl: '/src/template.html',\r\n            controller: ABCTableController,\r\n            bindings: {\r\n                columns: '=',\r\n                data: '=',\r\n                options: '='\r\n            },\r\n        });\r\n\r\n    ABCTableController.$inject = ['$timeout', 'abcTemplatesService', 'abcCheckboxesService', 'abcFilteraggsService'];\r\n    function ABCTableController($timeout, abcTemplatesService, abcCheckboxesService, abcFilteraggsService) {\r\n        var $ctrl = this;\r\n        $ctrl.currentPage = 1;\r\n        $ctrl.filteredData = [];\r\n\r\n        $ctrl.$onInit = function () {\r\n            if (!$ctrl.options.sort) {\r\n                $ctrl.options.sort = {\r\n                    field: null,\r\n                    reverse: false\r\n                }\r\n            }\r\n            $ctrl.options.dataChanged = function () {\r\n                $timeout(function () {\r\n                    refreshFilters();\r\n                    refreshAggs();\r\n                }, 0);\r\n\r\n            }\r\n            $ctrl.options.getCheckedItems = function () {\r\n                return abcCheckboxesService.getCheckedItems($ctrl.data);\r\n            }\r\n        };\r\n\r\n        $ctrl.rowStyle = function (item) {\r\n            var defaultStyle = { 'info': item.checked, 'warning': !!item.editField };\r\n\r\n            if ($ctrl.options.rowStyle) {\r\n                Object.assign(defaultStyle, $ctrl.options.rowStyle(item));\r\n            }\r\n\r\n            return defaultStyle;\r\n        }\r\n\r\n        $ctrl.initColumn = function (column) {\r\n            if (column.type == 'checkbox') {\r\n                return;\r\n            }\r\n\r\n            if ($ctrl.options.showFilter) {\r\n                if (!column.filter) {\r\n                    column.filter = {\r\n                        enabled: true,\r\n                        type: 'select',\r\n                        list: [],\r\n                        fromData: true\r\n                    }\r\n                }\r\n                if (typeof column.filter.enabled == \"undefined\") {\r\n                    column.filter.enabled = true;\r\n                }\r\n\r\n                if (typeof column.filter.list == \"undefined\") {\r\n                    column.filter.list = null;\r\n                }\r\n\r\n                if (typeof column.filter.type == \"undefined\") {\r\n                    column.filter.type = 'select';\r\n                }\r\n\r\n            }\r\n        }\r\n\r\n        $ctrl.filterCheck = function (column) {\r\n            column.filter.value = !column.filter.value;\r\n            $timeout(function () {\r\n                refreshAggs();\r\n            }, 0);\r\n        }\r\n\r\n        $ctrl.filterSelect = function () {\r\n            refreshAggs();\r\n        }\r\n\r\n        $ctrl.sort = function (field) {\r\n            if ($ctrl.options.sort.field == field) {\r\n                $ctrl.options.sort.reverse = !$ctrl.options.sort.reverse;\r\n            }\r\n            else {\r\n                $ctrl.options.sort.field = field;\r\n                $ctrl.options.sort.reverse = false;\r\n            }\r\n\r\n        }\r\n\r\n        $ctrl.getCellClass = function (column, item) {\r\n\r\n            if (!column.cellClass) {\r\n                return undefined;\r\n            }\r\n            if (typeof column.cellClass == \"string\") {\r\n                return column.cellClass;\r\n            }\r\n\r\n            var resolvedClass = column.cellClass(item);\r\n            return resolvedClass;\r\n\r\n\r\n        }\r\n\r\n        //Templates\r\n        $ctrl.getTemplateUrl = function (column, item) {\r\n            return abcTemplatesService.getTemplateUrl(column, item, $ctrl.isEditMode(item, column));\r\n        }\r\n\r\n        $ctrl.getFilterTemplateUrl = function (column) {\r\n            return abcTemplatesService.getFilterTemplateUrl(column);\r\n        }\r\n\r\n        $ctrl.getAggsTemplateUrl = function (column) {\r\n            return abcTemplatesService.getAggsTemplateUrl(column);\r\n        }\r\n\r\n        //Checkboxes\r\n        $ctrl.checkAll = function () {\r\n            abcCheckboxesService.checkAll($ctrl.filteredData);\r\n        }\r\n\r\n        $ctrl.isAllchecked = function () {\r\n            return abcCheckboxesService.isAllchecked($ctrl.filteredData);\r\n        }\r\n\r\n        $ctrl.checkClick = function ($index, checked, event) {\r\n            var index = $ctrl.fromItem() + $index;\r\n            abcCheckboxesService.checkClick(index, checked, $ctrl.filteredData, event);\r\n        }\r\n\r\n        $ctrl.showEditMode = function (item, column) {\r\n            if (!column.allowEdit) {\r\n                return;\r\n            }\r\n\r\n            item.editField = column.field;\r\n            item.editValue = item[column.field];\r\n        }\r\n\r\n        $ctrl.hideEditMode = function (item) {\r\n            item.editField = null;\r\n            item.editValue = null;\r\n        }\r\n\r\n        $ctrl.isEditMode = function (item, column) {\r\n            return item.editField == column.field;\r\n        }\r\n\r\n        $ctrl.fromItem = function () {\r\n            return ($ctrl.currentPage - 1) * $ctrl.options.pageSize;\r\n        }\r\n\r\n        $ctrl.toItem = function () {\r\n            return Math.min($ctrl.currentPage * $ctrl.options.pageSize, $ctrl.filteredData.length);\r\n        }\r\n\r\n        $ctrl.onSpecialKey = function (item, column, rowIndex, colIndex, event) {\r\n            switch (event.keyCode) {\r\n                case 27:\r\n                    $ctrl.hideEditMode(item);\r\n                    break;\r\n                case 13:\r\n                    $ctrl.fieldUpdated(item, column);\r\n                    var nextItem = $ctrl.filteredData[$ctrl.fromItem() + rowIndex + 1];\r\n                    if (nextItem) {\r\n                        $ctrl.showEditMode(nextItem, column);\r\n                    }\r\n                    break;\r\n                case 9:\r\n                    $ctrl.fieldUpdated(item, column);\r\n                    var nextColumn = getNextEditableColumn($ctrl.columns, colIndex);\r\n                    if (nextColumn) {\r\n                        $ctrl.showEditMode(item, nextColumn);\r\n                    }\r\n                    break;\r\n                default:\r\n                    break;\r\n\r\n            }\r\n        }\r\n\r\n        function getNextEditableColumn(columns, index) {\r\n            var column = columns[index + 1];\r\n            if (!column) {\r\n                return null;\r\n            }\r\n            if (column.allowEdit && !column.hidden) {\r\n                return column;\r\n            } else {\r\n                return getNextEditableColumn(columns, index + 1);\r\n            }\r\n\r\n\r\n\r\n        }\r\n\r\n        $ctrl.fieldUpdated = function (item, column) {\r\n            if (item[column.field] != item.editValue) {\r\n                var oldValue = item[column.field];\r\n                item[column.field] = item.editValue;\r\n                if ($ctrl.options.valueChanged) {\r\n                    $ctrl.options.valueChanged(item.editValue, oldValue, item.editField, item);\r\n                }\r\n                refreshFilters();\r\n                refreshAggs();\r\n            }\r\n            $ctrl.hideEditMode(item);\r\n        }\r\n\r\n        $ctrl.linkCellText = function (item, column) {\r\n            if (column.linkTextField) {\r\n                return item[column.linkTextField];\r\n            }\r\n\r\n            return column.linkText;\r\n        }\r\n\r\n        function refreshFilters() {\r\n            abcFilteraggsService.refreshFilters($ctrl.filteredData, $ctrl.columns);\r\n        }\r\n\r\n        function refreshAggs() {\r\n            abcFilteraggsService.refreshAggs($ctrl.filteredData, $ctrl.columns);\r\n        }\r\n\r\n\r\n        $ctrl.$onChanges = function (changesObj) {\r\n\r\n        };\r\n        $ctrl.$onDestory = function () {\r\n        };\r\n    }\r\n})();"]}