Bump and prep 1.34.0
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / mw.rcfilters.js
1 /**
2 * @class
3 * @singleton
4 */
5 mw.rcfilters = {
6 Controller: require( './Controller.js' ),
7 UriProcessor: require( './UriProcessor.js' ),
8 dm: {
9 ChangesListViewModel: require( './dm/ChangesListViewModel.js' ),
10 FilterGroup: require( './dm/FilterGroup.js' ),
11 FilterItem: require( './dm/FilterItem.js' ),
12 FiltersViewModel: require( './dm/FiltersViewModel.js' ),
13 ItemModel: require( './dm/ItemModel.js' ),
14 SavedQueriesModel: require( './dm/SavedQueriesModel.js' ),
15 SavedQueryItemModel: require( './dm/SavedQueryItemModel.js' )
16 },
17 ui: {},
18 utils: {
19 addArrayElementsUnique: function ( arr, elements ) {
20 elements = Array.isArray( elements ) ? elements : [ elements ];
21
22 elements.forEach( function ( element ) {
23 if ( arr.indexOf( element ) === -1 ) {
24 arr.push( element );
25 }
26 } );
27
28 return arr;
29 },
30 normalizeParamOptions: function ( givenOptions, legalOptions ) {
31 var result = [];
32
33 if ( givenOptions.indexOf( 'all' ) > -1 ) {
34 // If anywhere in the values there's 'all', we
35 // treat it as if only 'all' was selected.
36 // Example: param=valid1,valid2,all
37 // Result: param=all
38 return [ 'all' ];
39 }
40
41 // Get rid of any dupe and invalid parameter, only output
42 // valid ones
43 // Example: param=valid1,valid2,invalid1,valid1
44 // Result: param=valid1,valid2
45 givenOptions.forEach( function ( value ) {
46 if (
47 legalOptions.indexOf( value ) > -1 &&
48 result.indexOf( value ) === -1
49 ) {
50 result.push( value );
51 }
52 } );
53
54 return result;
55 }
56 }
57 };
58
59 module.exports = mw.rcfilters;