7 Controller
: require( './Controller.js' ),
8 UriProcessor
: require( './UriProcessor.js' ),
10 ChangesListViewModel
: require( './dm/ChangesListViewModel.js' ),
11 FilterGroup
: require( './dm/FilterGroup.js' ),
12 FilterItem
: require( './dm/FilterItem.js' ),
13 FiltersViewModel
: require( './dm/FiltersViewModel.js' ),
14 ItemModel
: require( './dm/ItemModel.js' ),
15 SavedQueriesModel
: require( './dm/SavedQueriesModel.js' ),
16 SavedQueryItemModel
: require( './dm/SavedQueryItemModel.js' )
20 addArrayElementsUnique: function ( arr
, elements
) {
21 elements
= Array
.isArray( elements
) ? elements
: [ elements
];
23 elements
.forEach( function ( element
) {
24 if ( arr
.indexOf( element
) === -1 ) {
31 normalizeParamOptions: function ( givenOptions
, legalOptions
) {
34 if ( givenOptions
.indexOf( 'all' ) > -1 ) {
35 // If anywhere in the values there's 'all', we
36 // treat it as if only 'all' was selected.
37 // Example: param=valid1,valid2,all
42 // Get rid of any dupe and invalid parameter, only output
44 // Example: param=valid1,valid2,invalid1,valid1
45 // Result: param=valid1,valid2
46 givenOptions
.forEach( function ( value
) {
48 legalOptions
.indexOf( value
) > -1 &&
49 result
.indexOf( value
) === -1
60 module
.exports
= mw
.rcfilters
;