| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 | 
							- module.exports = function (grunt) {
 
-   // Full list of files that must be included by RequireJS
 
-   includes = [
 
-     'jquery.select2',
 
-     'almond',
 
-     'jquery-mousewheel' // shimmed for non-full builds
 
-   ];
 
-   fullIncludes = [
 
-     'jquery',
 
-     'select2/compat/containerCss',
 
-     'select2/compat/dropdownCss',
 
-     'select2/compat/initSelection',
 
-     'select2/compat/inputData',
 
-     'select2/compat/matcher',
 
-     'select2/compat/query',
 
-     'select2/dropdown/attachContainer',
 
-     'select2/dropdown/stopPropagation',
 
-     'select2/selection/stopPropagation'
 
-   ].concat(includes);
 
-   var i18nModules = [];
 
-   var i18nPaths = {};
 
-   var i18nFiles = grunt.file.expand({
 
-     cwd: 'src/js'
 
-   }, 'select2/i18n/*.js');
 
-   var testFiles = grunt.file.expand('tests/**/*.html');
 
-   var testUrls = testFiles.map(function (filePath) {
 
-     return 'http://localhost:9999/' + filePath;
 
-   });
 
-   var testBuildNumber = "unknown";
 
-   if (process.env.TRAVIS_JOB_ID) {
 
-     testBuildNumber = "travis-" + process.env.TRAVIS_JOB_ID;
 
-   } else {
 
-     var currentTime = new Date();
 
-     testBuildNumber = "manual-" + currentTime.getTime();
 
-   }
 
-   for (var i = 0; i < i18nFiles.length; i++) {
 
-     var file = i18nFiles[i];
 
-     var name = file.split('.')[0];
 
-     i18nModules.push({
 
-       name: name
 
-     });
 
-     i18nPaths[name] = '../../' + name;
 
-   }
 
-   var minifiedBanner = '/*! Select2 <%= package.version %> | https://github.com/select2/select2/blob/master/LICENSE.md */';
 
-   grunt.initConfig({
 
-     package: grunt.file.readJSON('package.json'),
 
-     clean: {
 
-       docs: ['docs/_site']
 
-     },
 
-     concat: {
 
-       'dist': {
 
-         options: {
 
-           banner: grunt.file.read('src/js/wrapper.start.js'),
 
-         },
 
-         src: [
 
-           'dist/js/select2.js',
 
-           'src/js/wrapper.end.js'
 
-         ],
 
-         dest: 'dist/js/select2.js'
 
-       },
 
-       'dist.full': {
 
-         options: {
 
-           banner: grunt.file.read('src/js/wrapper.start.js'),
 
-         },
 
-         src: [
 
-           'dist/js/select2.full.js',
 
-           'src/js/wrapper.end.js'
 
-         ],
 
-         dest: 'dist/js/select2.full.js'
 
-       }
 
-     },
 
-     connect: {
 
-       tests: {
 
-         options: {
 
-           base: '.',
 
-           hostname: '127.0.0.1',
 
-           port: 9999
 
-         }
 
-       }
 
-     },
 
-     uglify: {
 
-       'dist': {
 
-         src: 'dist/js/select2.js',
 
-         dest: 'dist/js/select2.min.js',
 
-         options: {
 
-           banner: minifiedBanner
 
-         }
 
-       },
 
-       'dist.full': {
 
-         src: 'dist/js/select2.full.js',
 
-         dest: 'dist/js/select2.full.min.js',
 
-         options: {
 
-           banner: minifiedBanner
 
-         }
 
-       }
 
-     },
 
-     qunit: {
 
-       all: {
 
-         options: {
 
-           urls: testUrls
 
-         }
 
-       }
 
-     },
 
-     'saucelabs-qunit': {
 
-       all: {
 
-         options: {
 
-           build: testBuildNumber,
 
-           tags: ['tests', 'qunit'],
 
-           urls: testUrls,
 
-           testname: 'QUnit test for Select2',
 
-           browsers: [
 
-             {
 
-               browserName: 'internet explorer',
 
-               version: '8'
 
-             },
 
-             {
 
-               browserName: 'internet explorer',
 
-               version: '9'
 
-             },
 
-             {
 
-               browserName: 'internet explorer',
 
-               version: '10'
 
-             },
 
-             {
 
-               browserName: 'internet explorer',
 
-               version: '11'
 
-             },
 
-             {
 
-               browserName: 'firefox',
 
-               platform: 'linux'
 
-             },
 
-             {
 
-               browserName: 'chrome'
 
-             },
 
-             {
 
-               browserName: 'opera',
 
-               version: '12',
 
-               platform: 'linux'
 
-             }
 
-           ]
 
-         }
 
-       }
 
-     },
 
-     'gh-pages': {
 
-       options: {
 
-         base: 'docs',
 
-         branch: 'master',
 
-         clone: 'node_modules/grunt-gh-pages/repo',
 
-         message: 'Updated docs with master',
 
-         push: true,
 
-         repo: '[email protected]:select2/select2.github.io.git'
 
-       },
 
-       src: '**'
 
-     },
 
-     jekyll: {
 
-       options: {
 
-         src: 'docs',
 
-         dest: 'docs/_site'
 
-       },
 
-       build: {
 
-         d: null
 
-       },
 
-       serve: {
 
-         options: {
 
-           serve: true,
 
-           watch: true
 
-         }
 
-       }
 
-     },
 
-     jshint: {
 
-       options: {
 
-         jshintrc: true
 
-       },
 
-       code: {
 
-         src: ['src/js/**/*.js']
 
-       },
 
-       tests: {
 
-         src: ['tests/**/*.js']
 
-       }
 
-     },
 
-     sass: {
 
-       dist: {
 
-         options: {
 
-           outputStyle: 'compressed'
 
-         },
 
-         files: {
 
-           'dist/css/select2.min.css': [
 
-             'src/scss/core.scss',
 
-             'src/scss/theme/default/layout.css'
 
-           ]
 
-         }
 
-       },
 
-       dev: {
 
-         options: {
 
-           outputStyle: 'nested'
 
-         },
 
-         files: {
 
-           'dist/css/select2.css': [
 
-             'src/scss/core.scss',
 
-             'src/scss/theme/default/layout.css'
 
-           ]
 
-         }
 
-       }
 
-     },
 
-     symlink: {
 
-       docs: {
 
-         cwd: 'dist',
 
-         expand: true,
 
-         overwrite: false,
 
-         src: [
 
-           '*'
 
-         ],
 
-         dest: 'docs/dist',
 
-         filter: 'isDirectory'
 
-       }
 
-     },
 
-     requirejs: {
 
-       'dist': {
 
-         options: {
 
-           baseUrl: 'src/js',
 
-           optimize: 'none',
 
-           name: 'select2/core',
 
-           out: 'dist/js/select2.js',
 
-           include: includes,
 
-           namespace: 'S2',
 
-           paths: {
 
-             'almond': require.resolve('almond').slice(0, -3),
 
-             'jquery': 'jquery.shim',
 
-             'jquery-mousewheel': 'jquery.mousewheel.shim'
 
-           },
 
-           wrap: {
 
-             startFile: 'src/js/banner.start.js',
 
-             endFile: 'src/js/banner.end.js'
 
-           }
 
-         }
 
-       },
 
-       'dist.full': {
 
-         options: {
 
-           baseUrl: 'src/js',
 
-           optimize: 'none',
 
-           name: 'select2/core',
 
-           out: 'dist/js/select2.full.js',
 
-           include: fullIncludes,
 
-           namespace: 'S2',
 
-           paths: {
 
-             'almond': require.resolve('almond').slice(0, -3),
 
-             'jquery': 'jquery.shim',
 
-             'jquery-mousewheel': require.resolve('jquery-mousewheel').slice(0, -3)
 
-           },
 
-           wrap: {
 
-             startFile: 'src/js/banner.start.js',
 
-             endFile: 'src/js/banner.end.js'
 
-           }
 
-         }
 
-       },
 
-       'i18n': {
 
-         options: {
 
-           baseUrl: 'src/js/select2/i18n',
 
-           dir: 'dist/js/i18n',
 
-           paths: i18nPaths,
 
-           modules: i18nModules,
 
-           namespace: 'S2',
 
-           wrap: {
 
-             start: minifiedBanner + grunt.file.read('src/js/banner.start.js'),
 
-             end: grunt.file.read('src/js/banner.end.js')
 
-           }
 
-         }
 
-       }
 
-     },
 
-     watch: {
 
-       js: {
 
-         files: [
 
-           'src/js/select2/**/*.js',
 
-           'tests/**/*.js'
 
-         ],
 
-         tasks: [
 
-           'compile',
 
-           'test',
 
-           'minify'
 
-         ]
 
-       },
 
-       css: {
 
-         files: [
 
-           'src/scss/**/*.scss'
 
-         ],
 
-         tasks: [
 
-           'compile',
 
-           'minify'
 
-         ]
 
-       }
 
-     }
 
-   });
 
-   grunt.loadNpmTasks('grunt-contrib-clean');
 
-   grunt.loadNpmTasks('grunt-contrib-concat');
 
-   grunt.loadNpmTasks('grunt-contrib-connect');
 
-   grunt.loadNpmTasks('grunt-contrib-jshint');
 
-   grunt.loadNpmTasks('grunt-contrib-qunit');
 
-   grunt.loadNpmTasks('grunt-contrib-requirejs');
 
-   grunt.loadNpmTasks('grunt-contrib-symlink');
 
-   grunt.loadNpmTasks('grunt-contrib-uglify');
 
-   grunt.loadNpmTasks('grunt-contrib-watch');
 
-   grunt.loadNpmTasks('grunt-gh-pages');
 
-   grunt.loadNpmTasks('grunt-jekyll');
 
-   grunt.loadNpmTasks('grunt-saucelabs');
 
-   grunt.loadNpmTasks('grunt-sass');
 
-   grunt.registerTask('default', ['compile', 'test', 'minify']);
 
-   grunt.registerTask('compile', [
 
-     'requirejs:dist', 'requirejs:dist.full', 'requirejs:i18n',
 
-     'concat:dist', 'concat:dist.full',
 
-     'sass:dev'
 
-   ]);
 
-   grunt.registerTask('minify', ['uglify', 'sass:dist']);
 
-   grunt.registerTask('test', ['connect:tests', 'qunit', 'jshint']);
 
-   var ciTasks = [];
 
-   ciTasks.push('compile')
 
-   ciTasks.push('connect:tests');
 
-   // Can't run Sauce Labs tests in pull requests
 
-   if (process.env.TRAVIS_PULL_REQUEST == 'false') {
 
-     ciTasks.push('saucelabs-qunit');
 
-   }
 
-   ciTasks.push('qunit');
 
-   ciTasks.push('jshint');
 
-   grunt.registerTask('ci', ciTasks);
 
-   grunt.registerTask('docs', ['symlink:docs', 'jekyll:serve']);
 
-   grunt.registerTask('docs-release', ['default', 'clean:docs', 'gh-pages']);
 
- };
 
 
  |