6 Controller
: require( './Controller.js' ),
7 UriProcessor
: require( './UriProcessor.js' ),
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' )
19 addArrayElementsUnique: function ( arr
, elements
) {
20 elements
= Array
.isArray( elements
) ? elements
: [ elements
];
22 elements
.forEach( function ( element
) {
23 if ( arr
.indexOf( element
) === -1 ) {
30 normalizeParamOptions: function ( givenOptions
, legalOptions
) {
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
41 // Get rid of any dupe and invalid parameter, only output
43 // Example: param=valid1,valid2,invalid1,valid1
44 // Result: param=valid1,valid2
45 givenOptions
.forEach( function ( value
) {
47 legalOptions
.indexOf( value
) > -1 &&
48 result
.indexOf( value
) === -1
59 module
.exports
= mw
.rcfilters
;