Built motion from commit b598105.|2.0.4
[motion2.git] / public / bower_components / angular-datatables / dist / plugins / light-columnfilter / angular-datatables.light-columnfilter.js
1 /*!
2  * angular-datatables - v0.5.4
3  * https://github.com/l-lin/angular-datatables
4  * License: MIT
5  */
6 if (typeof module !== "undefined" && typeof exports !== "undefined" && module.exports === exports) {
7     module.exports = 'datatables.light-columnfilter';
8 }
9 (function(window, document, $, angular) {
10
11     'use strict';
12
13     // See https://github.com/thansen-solire/datatables-light-columnfilter
14     angular.module('datatables.light-columnfilter', ['datatables'])
15         .config(dtLightColumnFilterConfig)
16         .run(initLightColumnFilterPlugin);
17
18     /* @ngInject */
19     function dtLightColumnFilterConfig($provide) {
20         $provide.decorator('DTOptionsBuilder', dtOptionsBuilderDecorator);
21
22         function dtOptionsBuilderDecorator($delegate) {
23             var newOptions = $delegate.newOptions;
24             var fromSource = $delegate.fromSource;
25             var fromFnPromise = $delegate.fromFnPromise;
26
27             $delegate.newOptions = function() {
28                 return _decorateOptions(newOptions);
29             };
30             $delegate.fromSource = function(ajax) {
31                 return _decorateOptions(fromSource, ajax);
32             };
33             $delegate.fromFnPromise = function(fnPromise) {
34                 return _decorateOptions(fromFnPromise, fnPromise);
35             };
36
37             return $delegate;
38
39             function _decorateOptions(fn, params) {
40                 var options = fn(params);
41                 options.withLightColumnFilter = withLightColumnFilter;
42                 return options;
43
44                 /**
45                  * Add column filter support
46                  * @param lightColumnFilterOptions the plugins options
47                  * @returns {DTOptions} the options
48                  */
49                 function withLightColumnFilter(lightColumnFilterOptions) {
50                     options.hasLightColumnFilter = true;
51                     if (lightColumnFilterOptions) {
52                         options.lightColumnFilterOptions = lightColumnFilterOptions;
53                     }
54                     return options;
55                 }
56             }
57         }
58         dtOptionsBuilderDecorator.$inject = ['$delegate'];
59     }
60     dtLightColumnFilterConfig.$inject = ['$provide'];
61
62     /* @ngInject */
63     function initLightColumnFilterPlugin(DTRendererService) {
64         var lightColumnFilterPlugin = {
65             postRender: postRender
66         };
67         DTRendererService.registerPlugin(lightColumnFilterPlugin);
68
69         function postRender(options, result) {
70             if (options && options.hasLightColumnFilter) {
71                 new $.fn.dataTable.ColumnFilter(result.DataTable, options.lightColumnFilterOptions);
72             }
73         }
74     }
75     initLightColumnFilterPlugin.$inject = ['DTRendererService'];
76
77
78 })(window, document, jQuery, angular);