{"version":3,"file":"select-search.510.e6e4d.js","mappings":"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U,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAA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","sources":["webpack://umms-html/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://umms-html/./FrontEndSrc/js/vendor/select2/dist/js/select2.js","webpack://umms-html/./FrontEndSrc/modules/macro/select-search/select-search.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\r\n * Select2 4.0.3\r\n * https://select2.github.io\r\n *\r\n * Released under the MIT license\r\n * https://github.com/select2/select2/blob/master/LICENSE.md\r\n */\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS\r\n factory(require('jquery'));\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function (jQuery) {\r\n // This is needed so we can catch the AMD loader configuration and use it\r\n // The inner file should be wrapped (by `banner.start.js`) in a function that\r\n // returns the AMD loader references.\r\n var S2 =\r\n(function () {\r\n // Restore the Select2 AMD loader so it can be used\r\n // Needed mostly in the language files, where the loader is not inserted\r\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\r\n var S2 = jQuery.fn.select2.amd;\r\n }\r\nvar S2;(function () { if (!S2 || !S2.requirejs) {\r\nif (!S2) { S2 = {}; } else { require = S2; }\r\n/**\r\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\r\n * Available via the MIT or new BSD license.\r\n * see: http://github.com/jrburke/almond for details\r\n */\r\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\r\n//be followed.\r\n/*jslint sloppy: true */\r\n/*global setTimeout: false */\r\n\r\nvar requirejs, require, define;\r\n(function (undef) {\r\n var main, req, makeMap, handlers,\r\n defined = {},\r\n waiting = {},\r\n config = {},\r\n defining = {},\r\n hasOwn = Object.prototype.hasOwnProperty,\r\n aps = [].slice,\r\n jsSuffixRegExp = /\\.js$/;\r\n\r\n function hasProp(obj, prop) {\r\n return hasOwn.call(obj, prop);\r\n }\r\n\r\n /**\r\n * Given a relative module name, like ./something, normalize it to\r\n * a real name that can be mapped to a path.\r\n * @param {String} name the relative name\r\n * @param {String} baseName a real name that the name arg is relative\r\n * to.\r\n * @returns {String} normalized name\r\n */\r\n function normalize(name, baseName) {\r\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\r\n foundI, foundStarMap, starI, i, j, part,\r\n baseParts = baseName && baseName.split(\"/\"),\r\n map = config.map,\r\n starMap = (map && map['*']) || {};\r\n\r\n //Adjust any relative paths.\r\n if (name && name.charAt(0) === \".\") {\r\n //If have a base name, try to normalize against it,\r\n //otherwise, assume it is a top-level require that will\r\n //be relative to baseUrl in the end.\r\n if (baseName) {\r\n name = name.split('/');\r\n lastIndex = name.length - 1;\r\n\r\n // Node .js allowance:\r\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\r\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\r\n }\r\n\r\n //Lop off the last part of baseParts, so that . matches the\r\n //\"directory\" and not name of the baseName's module. For instance,\r\n //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\r\n //want the directory, \"one/two\" for this normalization.\r\n name = baseParts.slice(0, baseParts.length - 1).concat(name);\r\n\r\n //start trimDots\r\n for (i = 0; i < name.length; i += 1) {\r\n part = name[i];\r\n if (part === \".\") {\r\n name.splice(i, 1);\r\n i -= 1;\r\n } else if (part === \"..\") {\r\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\r\n //End of the line. Keep at least one non-dot\r\n //path segment at the front so it can be mapped\r\n //correctly to disk. Otherwise, there is likely\r\n //no path mapping for a path starting with '..'.\r\n //This can still fail, but catches the most reasonable\r\n //uses of ..\r\n break;\r\n } else if (i > 0) {\r\n name.splice(i - 1, 2);\r\n i -= 2;\r\n }\r\n }\r\n }\r\n //end trimDots\r\n\r\n name = name.join(\"/\");\r\n } else if (name.indexOf('./') === 0) {\r\n // No baseName, so this is ID is resolved relative\r\n // to baseUrl, pull off the leading dot.\r\n name = name.substring(2);\r\n }\r\n }\r\n\r\n //Apply map config if available.\r\n if ((baseParts || starMap) && map) {\r\n nameParts = name.split('/');\r\n\r\n for (i = nameParts.length; i > 0; i -= 1) {\r\n nameSegment = nameParts.slice(0, i).join(\"/\");\r\n\r\n if (baseParts) {\r\n //Find the longest baseName segment match in the config.\r\n //So, do joins on the biggest to smallest lengths of baseParts.\r\n for (j = baseParts.length; j > 0; j -= 1) {\r\n mapValue = map[baseParts.slice(0, j).join('/')];\r\n\r\n //baseName segment has config, find if it has one for\r\n //this name.\r\n if (mapValue) {\r\n mapValue = mapValue[nameSegment];\r\n if (mapValue) {\r\n //Match, update name to the new value.\r\n foundMap = mapValue;\r\n foundI = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (foundMap) {\r\n break;\r\n }\r\n\r\n //Check for a star map match, but just hold on to it,\r\n //if there is a shorter segment match later in a matching\r\n //config, then favor over this star map.\r\n if (!foundStarMap && starMap && starMap[nameSegment]) {\r\n foundStarMap = starMap[nameSegment];\r\n starI = i;\r\n }\r\n }\r\n\r\n if (!foundMap && foundStarMap) {\r\n foundMap = foundStarMap;\r\n foundI = starI;\r\n }\r\n\r\n if (foundMap) {\r\n nameParts.splice(0, foundI, foundMap);\r\n name = nameParts.join('/');\r\n }\r\n }\r\n\r\n return name;\r\n }\r\n\r\n function makeRequire(relName, forceSync) {\r\n return function () {\r\n //A version of a require function that passes a moduleName\r\n //value for items that may need to\r\n //look up paths relative to the moduleName\r\n var args = aps.call(arguments, 0);\r\n\r\n //If first arg is not require('string'), and there is only\r\n //one arg, it is the array form without a callback. Insert\r\n //a null so that the following concat is correct.\r\n if (typeof args[0] !== 'string' && args.length === 1) {\r\n args.push(null);\r\n }\r\n return req.apply(undef, args.concat([relName, forceSync]));\r\n };\r\n }\r\n\r\n function makeNormalize(relName) {\r\n return function (name) {\r\n return normalize(name, relName);\r\n };\r\n }\r\n\r\n function makeLoad(depName) {\r\n return function (value) {\r\n defined[depName] = value;\r\n };\r\n }\r\n\r\n function callDep(name) {\r\n if (hasProp(waiting, name)) {\r\n var args = waiting[name];\r\n delete waiting[name];\r\n defining[name] = true;\r\n main.apply(undef, args);\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\r\n throw new Error('No ' + name);\r\n }\r\n return defined[name];\r\n }\r\n\r\n //Turns a plugin!resource to [plugin, resource]\r\n //with the plugin being undefined if the name\r\n //did not have a plugin prefix.\r\n function splitPrefix(name) {\r\n var prefix,\r\n index = name ? name.indexOf('!') : -1;\r\n if (index > -1) {\r\n prefix = name.substring(0, index);\r\n name = name.substring(index + 1, name.length);\r\n }\r\n return [prefix, name];\r\n }\r\n\r\n /**\r\n * Makes a name map, normalizing the name, and using a plugin\r\n * for normalization if necessary. Grabs a ref to plugin\r\n * too, as an optimization.\r\n */\r\n makeMap = function (name, relName) {\r\n var plugin,\r\n parts = splitPrefix(name),\r\n prefix = parts[0];\r\n\r\n name = parts[1];\r\n\r\n if (prefix) {\r\n prefix = normalize(prefix, relName);\r\n plugin = callDep(prefix);\r\n }\r\n\r\n //Normalize according\r\n if (prefix) {\r\n if (plugin && plugin.normalize) {\r\n name = plugin.normalize(name, makeNormalize(relName));\r\n } else {\r\n name = normalize(name, relName);\r\n }\r\n } else {\r\n name = normalize(name, relName);\r\n parts = splitPrefix(name);\r\n prefix = parts[0];\r\n name = parts[1];\r\n if (prefix) {\r\n plugin = callDep(prefix);\r\n }\r\n }\r\n\r\n //Using ridiculous property names for space reasons\r\n return {\r\n f: prefix ? prefix + '!' + name : name, //fullName\r\n n: name,\r\n pr: prefix,\r\n p: plugin\r\n };\r\n };\r\n\r\n function makeConfig(name) {\r\n return function () {\r\n return (config && config.config && config.config[name]) || {};\r\n };\r\n }\r\n\r\n handlers = {\r\n require: function (name) {\r\n return makeRequire(name);\r\n },\r\n exports: function (name) {\r\n var e = defined[name];\r\n if (typeof e !== 'undefined') {\r\n return e;\r\n } else {\r\n return (defined[name] = {});\r\n }\r\n },\r\n module: function (name) {\r\n return {\r\n id: name,\r\n uri: '',\r\n exports: defined[name],\r\n config: makeConfig(name)\r\n };\r\n }\r\n };\r\n\r\n main = function (name, deps, callback, relName) {\r\n var cjsModule, depName, ret, map, i,\r\n args = [],\r\n callbackType = typeof callback,\r\n usingExports;\r\n\r\n //Use name if no relName\r\n relName = relName || name;\r\n\r\n //Call the callback to define the module, if necessary.\r\n if (callbackType === 'undefined' || callbackType === 'function') {\r\n //Pull out the defined dependencies and pass the ordered\r\n //values to the callback.\r\n //Default to [require, exports, module] if no deps\r\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\r\n for (i = 0; i < deps.length; i += 1) {\r\n map = makeMap(deps[i], relName);\r\n depName = map.f;\r\n\r\n //Fast path CommonJS standard dependencies.\r\n if (depName === \"require\") {\r\n args[i] = handlers.require(name);\r\n } else if (depName === \"exports\") {\r\n //CommonJS module spec 1.1\r\n args[i] = handlers.exports(name);\r\n usingExports = true;\r\n } else if (depName === \"module\") {\r\n //CommonJS module spec 1.1\r\n cjsModule = args[i] = handlers.module(name);\r\n } else if (hasProp(defined, depName) ||\r\n hasProp(waiting, depName) ||\r\n hasProp(defining, depName)) {\r\n args[i] = callDep(depName);\r\n } else if (map.p) {\r\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\r\n args[i] = defined[depName];\r\n } else {\r\n throw new Error(name + ' missing ' + depName);\r\n }\r\n }\r\n\r\n ret = callback ? callback.apply(defined[name], args) : undefined;\r\n\r\n if (name) {\r\n //If setting exports via \"module\" is in play,\r\n //favor that over return value and exports. After that,\r\n //favor a non-undefined return value over exports use.\r\n if (cjsModule && cjsModule.exports !== undef &&\r\n cjsModule.exports !== defined[name]) {\r\n defined[name] = cjsModule.exports;\r\n } else if (ret !== undef || !usingExports) {\r\n //Use the return value from the function.\r\n defined[name] = ret;\r\n }\r\n }\r\n } else if (name) {\r\n //May just be an object definition for the module. Only\r\n //worry about defining if have a module name.\r\n defined[name] = callback;\r\n }\r\n };\r\n\r\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\r\n if (typeof deps === \"string\") {\r\n if (handlers[deps]) {\r\n //callback in this case is really relName\r\n return handlers[deps](callback);\r\n }\r\n //Just return the module wanted. In this scenario, the\r\n //deps arg is the module name, and second arg (if passed)\r\n //is just the relName.\r\n //Normalize module name, if it contains . or ..\r\n return callDep(makeMap(deps, callback).f);\r\n } else if (!deps.splice) {\r\n //deps is a config object, not an array.\r\n config = deps;\r\n if (config.deps) {\r\n req(config.deps, config.callback);\r\n }\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (callback.splice) {\r\n //callback is an array, which means it is a dependency list.\r\n //Adjust args if there are dependencies\r\n deps = callback;\r\n callback = relName;\r\n relName = null;\r\n } else {\r\n deps = undef;\r\n }\r\n }\r\n\r\n //Support require(['a'])\r\n callback = callback || function () {};\r\n\r\n //If relName is a function, it is an errback handler,\r\n //so remove it.\r\n if (typeof relName === 'function') {\r\n relName = forceSync;\r\n forceSync = alt;\r\n }\r\n\r\n //Simulate async callback;\r\n if (forceSync) {\r\n main(undef, deps, callback, relName);\r\n } else {\r\n //Using a non-zero value because of concern for what old browsers\r\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\r\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\r\n //If want a value immediately, use require('id') instead -- something\r\n //that works in almond on the global level, but not guaranteed and\r\n //unlikely to work in other AMD implementations.\r\n setTimeout(function () {\r\n main(undef, deps, callback, relName);\r\n }, 4);\r\n }\r\n\r\n return req;\r\n };\r\n\r\n /**\r\n * Just drops the config on the floor, but returns req in case\r\n * the config return value is used.\r\n */\r\n req.config = function (cfg) {\r\n return req(cfg);\r\n };\r\n\r\n /**\r\n * Expose module registry for debugging and tooling\r\n */\r\n requirejs._defined = defined;\r\n\r\n define = function (name, deps, callback) {\r\n if (typeof name !== 'string') {\r\n throw new Error('See almond README: incorrect module build, no module name');\r\n }\r\n\r\n //This module may not have dependencies\r\n if (!deps.splice) {\r\n //deps is not an array, so probably means\r\n //an object literal or factory function for\r\n //the value. Adjust args.\r\n callback = deps;\r\n deps = [];\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\r\n waiting[name] = [name, deps, callback];\r\n }\r\n };\r\n\r\n define.amd = {\r\n jQuery: true\r\n };\r\n}());\r\n\r\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\r\n}\r\n}());\r\nS2.define(\"almond\", function(){});\r\n\r\n/* global jQuery:false, $:false */\r\nS2.define('jquery',[],function () {\r\n var _$ = jQuery || $;\r\n\r\n if (_$ == null && console && console.error) {\r\n console.error(\r\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\r\n 'found. Make sure that you are including jQuery before Select2 on your ' +\r\n 'web page.'\r\n );\r\n }\r\n\r\n return _$;\r\n});\r\n\r\nS2.define('select2/utils',[\r\n 'jquery'\r\n], function ($) {\r\n var Utils = {};\r\n\r\n Utils.Extend = function (ChildClass, SuperClass) {\r\n var __hasProp = {}.hasOwnProperty;\r\n\r\n function BaseConstructor () {\r\n this.constructor = ChildClass;\r\n }\r\n\r\n for (var key in SuperClass) {\r\n if (__hasProp.call(SuperClass, key)) {\r\n ChildClass[key] = SuperClass[key];\r\n }\r\n }\r\n\r\n BaseConstructor.prototype = SuperClass.prototype;\r\n ChildClass.prototype = new BaseConstructor();\r\n ChildClass.__super__ = SuperClass.prototype;\r\n\r\n return ChildClass;\r\n };\r\n\r\n function getMethods (theClass) {\r\n var proto = theClass.prototype;\r\n\r\n var methods = [];\r\n\r\n for (var methodName in proto) {\r\n var m = proto[methodName];\r\n\r\n if (typeof m !== 'function') {\r\n continue;\r\n }\r\n\r\n if (methodName === 'constructor') {\r\n continue;\r\n }\r\n\r\n methods.push(methodName);\r\n }\r\n\r\n return methods;\r\n }\r\n\r\n Utils.Decorate = function (SuperClass, DecoratorClass) {\r\n var decoratedMethods = getMethods(DecoratorClass);\r\n var superMethods = getMethods(SuperClass);\r\n\r\n function DecoratedClass () {\r\n var unshift = Array.prototype.unshift;\r\n\r\n var argCount = DecoratorClass.prototype.constructor.length;\r\n\r\n var calledConstructor = SuperClass.prototype.constructor;\r\n\r\n if (argCount > 0) {\r\n unshift.call(arguments, SuperClass.prototype.constructor);\r\n\r\n calledConstructor = DecoratorClass.prototype.constructor;\r\n }\r\n\r\n calledConstructor.apply(this, arguments);\r\n }\r\n\r\n DecoratorClass.displayName = SuperClass.displayName;\r\n\r\n function ctr () {\r\n this.constructor = DecoratedClass;\r\n }\r\n\r\n DecoratedClass.prototype = new ctr();\r\n\r\n for (var m = 0; m < superMethods.length; m++) {\r\n var superMethod = superMethods[m];\r\n\r\n DecoratedClass.prototype[superMethod] =\r\n SuperClass.prototype[superMethod];\r\n }\r\n\r\n var calledMethod = function (methodName) {\r\n // Stub out the original method if it's not decorating an actual method\r\n var originalMethod = function () {};\r\n\r\n if (methodName in DecoratedClass.prototype) {\r\n originalMethod = DecoratedClass.prototype[methodName];\r\n }\r\n\r\n var decoratedMethod = DecoratorClass.prototype[methodName];\r\n\r\n return function () {\r\n var unshift = Array.prototype.unshift;\r\n\r\n unshift.call(arguments, originalMethod);\r\n\r\n return decoratedMethod.apply(this, arguments);\r\n };\r\n };\r\n\r\n for (var d = 0; d < decoratedMethods.length; d++) {\r\n var decoratedMethod = decoratedMethods[d];\r\n\r\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\r\n }\r\n\r\n return DecoratedClass;\r\n };\r\n\r\n var Observable = function () {\r\n this.listeners = {};\r\n };\r\n\r\n Observable.prototype.on = function (event, callback) {\r\n this.listeners = this.listeners || {};\r\n\r\n if (event in this.listeners) {\r\n this.listeners[event].push(callback);\r\n } else {\r\n this.listeners[event] = [callback];\r\n }\r\n };\r\n\r\n Observable.prototype.trigger = function (event) {\r\n var slice = Array.prototype.slice;\r\n var params = slice.call(arguments, 1);\r\n\r\n this.listeners = this.listeners || {};\r\n\r\n // Params should always come in as an array\r\n if (params == null) {\r\n params = [];\r\n }\r\n\r\n // If there are no arguments to the event, use a temporary object\r\n if (params.length === 0) {\r\n params.push({});\r\n }\r\n\r\n // Set the `_type` of the first object to the event\r\n params[0]._type = event;\r\n\r\n if (event in this.listeners) {\r\n this.invoke(this.listeners[event], slice.call(arguments, 1));\r\n }\r\n\r\n if ('*' in this.listeners) {\r\n this.invoke(this.listeners['*'], arguments);\r\n }\r\n };\r\n\r\n Observable.prototype.invoke = function (listeners, params) {\r\n for (var i = 0, len = listeners.length; i < len; i++) {\r\n listeners[i].apply(this, params);\r\n }\r\n };\r\n\r\n Utils.Observable = Observable;\r\n\r\n Utils.generateChars = function (length) {\r\n var chars = '';\r\n\r\n for (var i = 0; i < length; i++) {\r\n var randomChar = Math.floor(Math.random() * 36);\r\n chars += randomChar.toString(36);\r\n }\r\n\r\n return chars;\r\n };\r\n\r\n Utils.bind = function (func, context) {\r\n return function () {\r\n func.apply(context, arguments);\r\n };\r\n };\r\n\r\n Utils._convertData = function (data) {\r\n for (var originalKey in data) {\r\n var keys = originalKey.split('-');\r\n\r\n var dataLevel = data;\r\n\r\n if (keys.length === 1) {\r\n continue;\r\n }\r\n\r\n for (var k = 0; k < keys.length; k++) {\r\n var key = keys[k];\r\n\r\n // Lowercase the first letter\r\n // By default, dash-separated becomes camelCase\r\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\r\n\r\n if (!(key in dataLevel)) {\r\n dataLevel[key] = {};\r\n }\r\n\r\n if (k == keys.length - 1) {\r\n dataLevel[key] = data[originalKey];\r\n }\r\n\r\n dataLevel = dataLevel[key];\r\n }\r\n\r\n delete data[originalKey];\r\n }\r\n\r\n return data;\r\n };\r\n\r\n Utils.hasScroll = function (index, el) {\r\n // Adapted from the function created by @ShadowScripter\r\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\r\n // The original code can be found at\r\n // http://codereview.stackexchange.com/q/13338\r\n // and was designed to be used with the Sizzle selector engine.\r\n\r\n var $el = $(el);\r\n var overflowX = el.style.overflowX;\r\n var overflowY = el.style.overflowY;\r\n\r\n //Check both x and y declarations\r\n if (overflowX === overflowY &&\r\n (overflowY === 'hidden' || overflowY === 'visible')) {\r\n return false;\r\n }\r\n\r\n if (overflowX === 'scroll' || overflowY === 'scroll') {\r\n return true;\r\n }\r\n\r\n return ($el.innerHeight() < el.scrollHeight ||\r\n $el.innerWidth() < el.scrollWidth);\r\n };\r\n\r\n Utils.escapeMarkup = function (markup) {\r\n var replaceMap = {\r\n '\\\\': '\',\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': ''',\r\n '/': '/'\r\n };\r\n\r\n // Do not try to escape the markup if it's not a string\r\n if (typeof markup !== 'string') {\r\n return markup;\r\n }\r\n\r\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\r\n return replaceMap[match];\r\n });\r\n };\r\n\r\n // Append an array of jQuery nodes to a given element.\r\n Utils.appendMany = function ($element, $nodes) {\r\n // jQuery 1.7.x does not support $.fn.append() with an array\r\n // Fall back to a jQuery object collection using $.fn.add()\r\n if ($.fn.jquery.substr(0, 3) === '1.7') {\r\n var $jqNodes = $();\r\n\r\n $.map($nodes, function (node) {\r\n $jqNodes = $jqNodes.add(node);\r\n });\r\n\r\n $nodes = $jqNodes;\r\n }\r\n\r\n $element.append($nodes);\r\n };\r\n\r\n return Utils;\r\n});\r\n\r\nS2.define('select2/results',[\r\n 'jquery',\r\n './utils'\r\n], function ($, Utils) {\r\n function Results ($element, options, dataAdapter) {\r\n this.$element = $element;\r\n this.data = dataAdapter;\r\n this.options = options;\r\n\r\n Results.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(Results, Utils.Observable);\r\n\r\n Results.prototype.render = function () {\r\n var $results = $(\r\n '<ul class=\"select2-results__options\" role=\"tree\"></ul>'\r\n );\r\n\r\n if (this.options.get('multiple')) {\r\n $results.attr('aria-multiselectable', 'true');\r\n }\r\n\r\n this.$results = $results;\r\n\r\n return $results;\r\n };\r\n\r\n Results.prototype.clear = function () {\r\n this.$results.empty();\r\n };\r\n\r\n Results.prototype.displayMessage = function (params) {\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n this.clear();\r\n this.hideLoading();\r\n\r\n var $message = $(\r\n '<li role=\"treeitem\" aria-live=\"assertive\"' +\r\n ' class=\"select2-results__option\"></li>'\r\n );\r\n\r\n var message = this.options.get('translations').get(params.message);\r\n\r\n $message.append(\r\n escapeMarkup(\r\n message(params.args)\r\n )\r\n );\r\n\r\n $message[0].className += ' select2-results__message';\r\n\r\n this.$results.append($message);\r\n };\r\n\r\n Results.prototype.hideMessages = function () {\r\n this.$results.find('.select2-results__message').remove();\r\n };\r\n\r\n Results.prototype.append = function (data) {\r\n this.hideLoading();\r\n\r\n var $options = [];\r\n\r\n if (data.results == null || data.results.length === 0) {\r\n if (this.$results.children().length === 0) {\r\n this.trigger('results:message', {\r\n message: 'noResults'\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n data.results = this.sort(data.results);\r\n\r\n for (var d = 0; d < data.results.length; d++) {\r\n var item = data.results[d];\r\n\r\n var $option = this.option(item);\r\n\r\n $options.push($option);\r\n }\r\n\r\n this.$results.append($options);\r\n };\r\n\r\n Results.prototype.position = function ($results, $dropdown) {\r\n var $resultsContainer = $dropdown.find('.select2-results');\r\n $resultsContainer.append($results);\r\n };\r\n\r\n Results.prototype.sort = function (data) {\r\n var sorter = this.options.get('sorter');\r\n\r\n return sorter(data);\r\n };\r\n\r\n Results.prototype.highlightFirstItem = function () {\r\n var $options = this.$results\r\n .find('.select2-results__option[aria-selected]');\r\n\r\n var $selected = $options.filter('[aria-selected=true]');\r\n\r\n // Check if there are any selected options\r\n if ($selected.length > 0) {\r\n // If there are selected options, highlight the first\r\n $selected.first().trigger('mouseenter');\r\n } else {\r\n // If there are no selected options, highlight the first option\r\n // in the dropdown\r\n $options.first().trigger('mouseenter');\r\n }\r\n\r\n this.ensureHighlightVisible();\r\n };\r\n\r\n Results.prototype.setClasses = function () {\r\n var self = this;\r\n\r\n this.data.current(function (selected) {\r\n var selectedIds = $.map(selected, function (s) {\r\n return s.id.toString();\r\n });\r\n\r\n var $options = self.$results\r\n .find('.select2-results__option[aria-selected]');\r\n\r\n $options.each(function () {\r\n var $option = $(this);\r\n\r\n var item = $.data(this, 'data');\r\n\r\n // id needs to be converted to a string when comparing\r\n var id = '' + item.id;\r\n\r\n if ((item.element != null && item.element.selected) ||\r\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\r\n $option.attr('aria-selected', 'true');\r\n } else {\r\n $option.attr('aria-selected', 'false');\r\n }\r\n });\r\n\r\n });\r\n };\r\n\r\n Results.prototype.showLoading = function (params) {\r\n this.hideLoading();\r\n\r\n var loadingMore = this.options.get('translations').get('searching');\r\n\r\n var loading = {\r\n disabled: true,\r\n loading: true,\r\n text: loadingMore(params)\r\n };\r\n var $loading = this.option(loading);\r\n $loading.className += ' loading-results';\r\n\r\n this.$results.prepend($loading);\r\n };\r\n\r\n Results.prototype.hideLoading = function () {\r\n this.$results.find('.loading-results').remove();\r\n };\r\n\r\n Results.prototype.option = function (data) {\r\n var option = document.createElement('li');\r\n option.className = 'select2-results__option';\r\n\r\n var attrs = {\r\n 'role': 'treeitem',\r\n 'aria-selected': 'false'\r\n };\r\n\r\n if (data.disabled) {\r\n delete attrs['aria-selected'];\r\n attrs['aria-disabled'] = 'true';\r\n }\r\n\r\n if (data.id == null) {\r\n delete attrs['aria-selected'];\r\n }\r\n\r\n if (data._resultId != null) {\r\n option.id = data._resultId;\r\n }\r\n\r\n if (data.title) {\r\n option.title = data.title;\r\n }\r\n\r\n if (data.children) {\r\n attrs.role = 'group';\r\n attrs['aria-label'] = data.text;\r\n delete attrs['aria-selected'];\r\n }\r\n\r\n for (var attr in attrs) {\r\n var val = attrs[attr];\r\n\r\n option.setAttribute(attr, val);\r\n }\r\n\r\n if (data.children) {\r\n var $option = $(option);\r\n\r\n var label = document.createElement('strong');\r\n label.className = 'select2-results__group';\r\n\r\n var $label = $(label);\r\n this.template(data, label);\r\n\r\n var $children = [];\r\n\r\n for (var c = 0; c < data.children.length; c++) {\r\n var child = data.children[c];\r\n\r\n var $child = this.option(child);\r\n\r\n $children.push($child);\r\n }\r\n\r\n var $childrenContainer = $('<ul></ul>', {\r\n 'class': 'select2-results__options select2-results__options--nested'\r\n });\r\n\r\n $childrenContainer.append($children);\r\n\r\n $option.append(label);\r\n $option.append($childrenContainer);\r\n } else {\r\n this.template(data, option);\r\n }\r\n\r\n $.data(option, 'data', data);\r\n\r\n return option;\r\n };\r\n\r\n Results.prototype.bind = function (container, $container) {\r\n var self = this;\r\n\r\n var id = container.id + '-results';\r\n\r\n this.$results.attr('id', id);\r\n\r\n container.on('results:all', function (params) {\r\n self.clear();\r\n self.append(params.data);\r\n\r\n if (container.isOpen()) {\r\n self.setClasses();\r\n self.highlightFirstItem();\r\n }\r\n });\r\n\r\n container.on('results:append', function (params) {\r\n self.append(params.data);\r\n\r\n if (container.isOpen()) {\r\n self.setClasses();\r\n }\r\n });\r\n\r\n container.on('query', function (params) {\r\n self.hideMessages();\r\n self.showLoading(params);\r\n });\r\n\r\n container.on('select', function () {\r\n if (!container.isOpen()) {\r\n return;\r\n }\r\n\r\n self.setClasses();\r\n self.highlightFirstItem();\r\n });\r\n\r\n container.on('unselect', function () {\r\n if (!container.isOpen()) {\r\n return;\r\n }\r\n\r\n self.setClasses();\r\n self.highlightFirstItem();\r\n });\r\n\r\n container.on('open', function () {\r\n // When the dropdown is open, aria-expended=\"true\"\r\n self.$results.attr('aria-expanded', 'true');\r\n self.$results.attr('aria-hidden', 'false');\r\n\r\n self.setClasses();\r\n self.ensureHighlightVisible();\r\n });\r\n\r\n container.on('close', function () {\r\n // When the dropdown is closed, aria-expended=\"false\"\r\n self.$results.attr('aria-expanded', 'false');\r\n self.$results.attr('aria-hidden', 'true');\r\n self.$results.removeAttr('aria-activedescendant');\r\n });\r\n\r\n container.on('results:toggle', function () {\r\n var $highlighted = self.getHighlightedResults();\r\n\r\n if ($highlighted.length === 0) {\r\n return;\r\n }\r\n\r\n $highlighted.trigger('mouseup');\r\n });\r\n\r\n container.on('results:select', function () {\r\n var $highlighted = self.getHighlightedResults();\r\n\r\n if ($highlighted.length === 0) {\r\n return;\r\n }\r\n\r\n var data = $highlighted.data('data');\r\n\r\n if ($highlighted.attr('aria-selected') == 'true') {\r\n self.trigger('close', {});\r\n } else {\r\n self.trigger('select', {\r\n data: data\r\n });\r\n }\r\n });\r\n\r\n container.on('results:previous', function () {\r\n var $highlighted = self.getHighlightedResults();\r\n\r\n var $options = self.$results.find('[aria-selected]');\r\n\r\n var currentIndex = $options.index($highlighted);\r\n\r\n // If we are already at te top, don't move further\r\n if (currentIndex === 0) {\r\n return;\r\n }\r\n\r\n var nextIndex = currentIndex - 1;\r\n\r\n // If none are highlighted, highlight the first\r\n if ($highlighted.length === 0) {\r\n nextIndex = 0;\r\n }\r\n\r\n var $next = $options.eq(nextIndex);\r\n\r\n $next.trigger('mouseenter');\r\n\r\n var currentOffset = self.$results.offset().top;\r\n var nextTop = $next.offset().top;\r\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\r\n\r\n if (nextIndex === 0) {\r\n self.$results.scrollTop(0);\r\n } else if (nextTop - currentOffset < 0) {\r\n self.$results.scrollTop(nextOffset);\r\n }\r\n });\r\n\r\n container.on('results:next', function () {\r\n var $highlighted = self.getHighlightedResults();\r\n\r\n var $options = self.$results.find('[aria-selected]');\r\n\r\n var currentIndex = $options.index($highlighted);\r\n\r\n var nextIndex = currentIndex + 1;\r\n\r\n // If we are at the last option, stay there\r\n if (nextIndex >= $options.length) {\r\n return;\r\n }\r\n\r\n var $next = $options.eq(nextIndex);\r\n\r\n $next.trigger('mouseenter');\r\n\r\n var currentOffset = self.$results.offset().top +\r\n self.$results.outerHeight(false);\r\n var nextBottom = $next.offset().top + $next.outerHeight(false);\r\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\r\n\r\n if (nextIndex === 0) {\r\n self.$results.scrollTop(0);\r\n } else if (nextBottom > currentOffset) {\r\n self.$results.scrollTop(nextOffset);\r\n }\r\n });\r\n\r\n container.on('results:focus', function (params) {\r\n params.element.addClass('select2-results__option--highlighted');\r\n });\r\n\r\n container.on('results:message', function (params) {\r\n self.displayMessage(params);\r\n });\r\n\r\n if ($.fn.mousewheel) {\r\n this.$results.on('mousewheel', function (e) {\r\n var top = self.$results.scrollTop();\r\n\r\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\r\n\r\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\r\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\r\n\r\n if (isAtTop) {\r\n self.$results.scrollTop(0);\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n } else if (isAtBottom) {\r\n self.$results.scrollTop(\r\n self.$results.get(0).scrollHeight - self.$results.height()\r\n );\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n });\r\n }\r\n\r\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\r\n function (evt) {\r\n var $this = $(this);\r\n\r\n var data = $this.data('data');\r\n\r\n if ($this.attr('aria-selected') === 'true') {\r\n if (self.options.get('multiple')) {\r\n self.trigger('unselect', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n } else {\r\n self.trigger('close', {});\r\n }\r\n\r\n return;\r\n }\r\n\r\n self.trigger('select', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n });\r\n\r\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\r\n function (evt) {\r\n var data = $(this).data('data');\r\n\r\n self.getHighlightedResults()\r\n .removeClass('select2-results__option--highlighted');\r\n\r\n self.trigger('results:focus', {\r\n data: data,\r\n element: $(this)\r\n });\r\n });\r\n };\r\n\r\n Results.prototype.getHighlightedResults = function () {\r\n var $highlighted = this.$results\r\n .find('.select2-results__option--highlighted');\r\n\r\n return $highlighted;\r\n };\r\n\r\n Results.prototype.destroy = function () {\r\n this.$results.remove();\r\n };\r\n\r\n Results.prototype.ensureHighlightVisible = function () {\r\n var $highlighted = this.getHighlightedResults();\r\n\r\n if ($highlighted.length === 0) {\r\n return;\r\n }\r\n\r\n var $options = this.$results.find('[aria-selected]');\r\n\r\n var currentIndex = $options.index($highlighted);\r\n\r\n var currentOffset = this.$results.offset().top;\r\n var nextTop = $highlighted.offset().top;\r\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\r\n\r\n var offsetDelta = nextTop - currentOffset;\r\n nextOffset -= $highlighted.outerHeight(false) * 2;\r\n\r\n if (currentIndex <= 2) {\r\n this.$results.scrollTop(0);\r\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\r\n this.$results.scrollTop(nextOffset);\r\n }\r\n };\r\n\r\n Results.prototype.template = function (result, container) {\r\n var template = this.options.get('templateResult');\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n var content = template(result, container);\r\n\r\n if (content == null) {\r\n container.style.display = 'none';\r\n } else if (typeof content === 'string') {\r\n container.innerHTML = escapeMarkup(content);\r\n } else {\r\n $(container).append(content);\r\n }\r\n };\r\n\r\n return Results;\r\n});\r\n\r\nS2.define('select2/keys',[\r\n\r\n], function () {\r\n var KEYS = {\r\n BACKSPACE: 8,\r\n TAB: 9,\r\n ENTER: 13,\r\n SHIFT: 16,\r\n CTRL: 17,\r\n ALT: 18,\r\n ESC: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n DELETE: 46\r\n };\r\n\r\n return KEYS;\r\n});\r\n\r\nS2.define('select2/selection/base',[\r\n 'jquery',\r\n '../utils',\r\n '../keys'\r\n], function ($, Utils, KEYS) {\r\n function BaseSelection ($element, options) {\r\n this.$element = $element;\r\n this.options = options;\r\n\r\n BaseSelection.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(BaseSelection, Utils.Observable);\r\n\r\n BaseSelection.prototype.render = function () {\r\n var $selection = $(\r\n '<span class=\"select2-selection\" ' +\r\n ' aria-haspopup=\"true\" aria-expanded=\"false\" aria-controls=\"select2-health-service-results\">' +\r\n '</span>'\r\n );\r\n\r\n this._tabindex = 0;\r\n\r\n if (this.$element.data('old-tabindex') != null) {\r\n this._tabindex = this.$element.data('old-tabindex');\r\n } else if (this.$element.attr('tabindex') != null) {\r\n this._tabindex = this.$element.attr('tabindex');\r\n }\r\n\r\n $selection.attr('title', this.$element.attr('title'));\r\n $selection.attr('tabindex', this._tabindex);\r\n\r\n this.$selection = $selection;\r\n\r\n return $selection;\r\n };\r\n\r\n BaseSelection.prototype.bind = function (container, $container) {\r\n var self = this;\r\n\r\n var id = container.id + '-container';\r\n var resultsId = container.id + '-results';\r\n\r\n this.container = container;\r\n\r\n this.$selection.on('focus', function (evt) {\r\n self.trigger('focus', evt);\r\n });\r\n\r\n this.$selection.on('blur', function (evt) {\r\n self._handleBlur(evt);\r\n });\r\n\r\n this.$selection.on('keydown', function (evt) {\r\n self.trigger('keypress', evt);\r\n\r\n if (evt.which === KEYS.SPACE) {\r\n evt.preventDefault();\r\n }\r\n });\r\n\r\n container.on('results:focus', function (params) {\r\n self.$selection.attr('aria-activedescendant', params.data._resultId);\r\n });\r\n\r\n container.on('selection:update', function (params) {\r\n self.update(params.data);\r\n });\r\n\r\n container.on('open', function () {\r\n // When the dropdown is open, aria-expanded=\"true\"\r\n self.$selection.attr('aria-expanded', 'true');\r\n self.$selection.attr('aria-owns', resultsId);\r\n\r\n self._attachCloseHandler(container);\r\n });\r\n\r\n container.on('close', function () {\r\n // When the dropdown is closed, aria-expanded=\"false\"\r\n self.$selection.attr('aria-expanded', 'false');\r\n self.$selection.removeAttr('aria-activedescendant');\r\n self.$selection.removeAttr('aria-owns');\r\n\r\n self.$selection.focus();\r\n\r\n self._detachCloseHandler(container);\r\n });\r\n\r\n container.on('enable', function () {\r\n self.$selection.attr('tabindex', self._tabindex);\r\n });\r\n\r\n container.on('disable', function () {\r\n self.$selection.attr('tabindex', '-1');\r\n });\r\n };\r\n\r\n BaseSelection.prototype._handleBlur = function (evt) {\r\n var self = this;\r\n\r\n // This needs to be delayed as the active element is the body when the tab\r\n // key is pressed, possibly along with others.\r\n window.setTimeout(function () {\r\n // Don't trigger `blur` if the focus is still in the selection\r\n if (\r\n (document.activeElement == self.$selection[0]) ||\r\n ($.contains(self.$selection[0], document.activeElement))\r\n ) {\r\n return;\r\n }\r\n\r\n self.trigger('blur', evt);\r\n }, 1);\r\n };\r\n\r\n BaseSelection.prototype._attachCloseHandler = function (container) {\r\n var self = this;\r\n\r\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\r\n var $target = $(e.target);\r\n\r\n var $select = $target.closest('.select2');\r\n\r\n var $all = $('.select2.select2-container--open');\r\n\r\n $all.each(function () {\r\n var $this = $(this);\r\n\r\n if (this == $select[0]) {\r\n return;\r\n }\r\n\r\n var $element = $this.data('element');\r\n\r\n $element.select2('close');\r\n });\r\n });\r\n };\r\n\r\n BaseSelection.prototype._detachCloseHandler = function (container) {\r\n $(document.body).off('mousedown.select2.' + container.id);\r\n };\r\n\r\n BaseSelection.prototype.position = function ($selection, $container) {\r\n var $selectionContainer = $container.find('.selection');\r\n $selectionContainer.append($selection);\r\n };\r\n\r\n BaseSelection.prototype.destroy = function () {\r\n this._detachCloseHandler(this.container);\r\n };\r\n\r\n BaseSelection.prototype.update = function (data) {\r\n throw new Error('The `update` method must be defined in child classes.');\r\n };\r\n\r\n return BaseSelection;\r\n});\r\n\r\nS2.define('select2/selection/single',[\r\n 'jquery',\r\n './base',\r\n '../utils',\r\n '../keys'\r\n], function ($, BaseSelection, Utils, KEYS) {\r\n function SingleSelection () {\r\n SingleSelection.__super__.constructor.apply(this, arguments);\r\n }\r\n\r\n Utils.Extend(SingleSelection, BaseSelection);\r\n\r\n SingleSelection.prototype.render = function () {\r\n var $selection = SingleSelection.__super__.render.call(this);\r\n\r\n $selection.addClass('select2-selection--single');\r\n\r\n $selection.html(\r\n '<span class=\"select2-selection__rendered\"></span>' +\r\n '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\r\n '<b role=\"presentation\"></b>' +\r\n '</span>'\r\n );\r\n\r\n return $selection;\r\n };\r\n\r\n SingleSelection.prototype.bind = function (container, $container) {\r\n var self = this;\r\n\r\n SingleSelection.__super__.bind.apply(this, arguments);\r\n\r\n var id = container.id + '-container';\r\n\r\n this.$selection.find('.select2-selection__rendered').attr('id', id);\r\n this.$selection.attr('aria-labelledby', id);\r\n\r\n this.$selection.on('mousedown', function (evt) {\r\n // Only respond to left clicks\r\n if (evt.which !== 1) {\r\n return;\r\n }\r\n\r\n self.trigger('toggle', {\r\n originalEvent: evt\r\n });\r\n });\r\n\r\n this.$selection.on('focus', function (evt) {\r\n // User focuses on the container\r\n });\r\n\r\n this.$selection.on('blur', function (evt) {\r\n // User exits the container\r\n });\r\n\r\n container.on('focus', function (evt) {\r\n if (!container.isOpen()) {\r\n self.$selection.focus();\r\n }\r\n });\r\n\r\n container.on('selection:update', function (params) {\r\n self.update(params.data);\r\n });\r\n };\r\n\r\n SingleSelection.prototype.clear = function () {\r\n this.$selection.find('.select2-selection__rendered').empty();\r\n };\r\n\r\n SingleSelection.prototype.display = function (data, container) {\r\n var template = this.options.get('templateSelection');\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n return escapeMarkup(template(data, container));\r\n };\r\n\r\n SingleSelection.prototype.selectionContainer = function () {\r\n return $('<span></span>');\r\n };\r\n\r\n SingleSelection.prototype.update = function (data) {\r\n if (data.length === 0) {\r\n this.clear();\r\n return;\r\n }\r\n\r\n var selection = data[0];\r\n\r\n var $rendered = this.$selection.find('.select2-selection__rendered');\r\n var formatted = this.display(selection, $rendered);\r\n\r\n $rendered.empty().append(formatted);\r\n $rendered.prop('title', selection.title || selection.text);\r\n };\r\n\r\n return SingleSelection;\r\n});\r\n\r\nS2.define('select2/selection/multiple',[\r\n 'jquery',\r\n './base',\r\n '../utils'\r\n], function ($, BaseSelection, Utils) {\r\n function MultipleSelection ($element, options) {\r\n MultipleSelection.__super__.constructor.apply(this, arguments);\r\n }\r\n\r\n Utils.Extend(MultipleSelection, BaseSelection);\r\n\r\n MultipleSelection.prototype.render = function () {\r\n var $selection = MultipleSelection.__super__.render.call(this);\r\n\r\n $selection.addClass('select2-selection--multiple');\r\n\r\n $selection.html(\r\n '<ul class=\"select2-selection__rendered\"></ul>'\r\n );\r\n\r\n return $selection;\r\n };\r\n\r\n MultipleSelection.prototype.bind = function (container, $container) {\r\n var self = this;\r\n\r\n // Begin UMMREDESGN-1492\r\n var elementId = this.$element.attr('id');\r\n\r\n if (elementId) {\r\n var $label = $(document).find('label[for=\"' + elementId + '\"]');\r\n\r\n if ($label.length > 0) {\r\n var labelId = $label.attr('id');\r\n\r\n if (!labelId) {\r\n labelId = 'select2-label-' + elementId;\r\n $label.attr('id', labelId);\r\n }\r\n\r\n this.$selection.attr('aria-labelledby', labelId);\r\n this.$search.attr('aria-labelledby', labelId);\r\n }\r\n }\r\n // End UMMREDESGN-1492\r\n\r\n MultipleSelection.__super__.bind.apply(this, arguments);\r\n\r\n this.$selection.on('click', function (evt) {\r\n self.trigger('toggle', {\r\n originalEvent: evt\r\n });\r\n });\r\n\r\n this.$selection.on(\r\n 'click',\r\n '.select2-selection__choice__remove',\r\n function (evt) {\r\n // Ignore the event if it is disabled\r\n if (self.options.get('disabled')) {\r\n return;\r\n }\r\n\r\n var $remove = $(this);\r\n var $selection = $remove.parent();\r\n\r\n var data = $selection.data('data');\r\n\r\n self.trigger('unselect', {\r\n originalEvent: evt,\r\n data: data\r\n });\r\n }\r\n );\r\n };\r\n\r\n MultipleSelection.prototype.clear = function () {\r\n this.$selection.find('.select2-selection__rendered').empty();\r\n };\r\n\r\n MultipleSelection.prototype.display = function (data, container) {\r\n var template = this.options.get('templateSelection');\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n return escapeMarkup(template(data, container));\r\n };\r\n\r\n MultipleSelection.prototype.selectionContainer = function () {\r\n var $container = $(\r\n '<li class=\"select2-selection__choice\">' +\r\n '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\r\n '×' +\r\n '</span>' +\r\n '</li>'\r\n );\r\n\r\n return $container;\r\n };\r\n\r\n MultipleSelection.prototype.update = function (data) {\r\n this.clear();\r\n\r\n if (data.length === 0) {\r\n return;\r\n }\r\n\r\n var $selections = [];\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n var selection = data[d];\r\n\r\n var $selection = this.selectionContainer();\r\n var formatted = this.display(selection, $selection);\r\n\r\n $selection.append(formatted);\r\n $selection.prop('title', selection.title || selection.text);\r\n\r\n $selection.data('data', selection);\r\n\r\n $selections.push($selection);\r\n }\r\n\r\n var $rendered = this.$selection.find('.select2-selection__rendered');\r\n\r\n Utils.appendMany($rendered, $selections);\r\n };\r\n\r\n return MultipleSelection;\r\n});\r\n\r\nS2.define('select2/selection/placeholder',[\r\n '../utils'\r\n], function (Utils) {\r\n function Placeholder (decorated, $element, options) {\r\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\r\n\r\n decorated.call(this, $element, options);\r\n }\r\n\r\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\r\n if (typeof placeholder === 'string') {\r\n placeholder = {\r\n id: '',\r\n text: placeholder\r\n };\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\r\n var $placeholder = this.selectionContainer();\r\n\r\n $placeholder.html(this.display(placeholder));\r\n $placeholder.addClass('select2-selection__placeholder')\r\n .removeClass('select2-selection__choice');\r\n\r\n return $placeholder;\r\n };\r\n\r\n Placeholder.prototype.update = function (decorated, data) {\r\n var singlePlaceholder = (\r\n data.length == 1 && data[0].id != this.placeholder.id\r\n );\r\n var multipleSelections = data.length > 1;\r\n\r\n if (multipleSelections || singlePlaceholder) {\r\n return decorated.call(this, data);\r\n }\r\n\r\n this.clear();\r\n\r\n var $placeholder = this.createPlaceholder(this.placeholder);\r\n\r\n this.$selection.find('.select2-selection__rendered').append($placeholder);\r\n };\r\n\r\n return Placeholder;\r\n});\r\n\r\nS2.define('select2/selection/allowClear',[\r\n 'jquery',\r\n '../keys'\r\n], function ($, KEYS) {\r\n function AllowClear () { }\r\n\r\n AllowClear.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n if (this.placeholder == null) {\r\n if (this.options.get('debug') && window.console && console.error) {\r\n console.error(\r\n 'Select2: The `allowClear` option should be used in combination ' +\r\n 'with the `placeholder` option.'\r\n );\r\n }\r\n }\r\n\r\n this.$selection.on('mousedown', '.select2-selection__clear',\r\n function (evt) {\r\n self._handleClear(evt);\r\n });\r\n\r\n container.on('keypress', function (evt) {\r\n self._handleKeyboardClear(evt, container);\r\n });\r\n };\r\n\r\n AllowClear.prototype._handleClear = function (_, evt) {\r\n // Ignore the event if it is disabled\r\n if (this.options.get('disabled')) {\r\n return;\r\n }\r\n\r\n var $clear = this.$selection.find('.select2-selection__clear');\r\n\r\n // Ignore the event if nothing has been selected\r\n if ($clear.length === 0) {\r\n return;\r\n }\r\n\r\n evt.stopPropagation();\r\n\r\n var data = $clear.data('data');\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n var unselectData = {\r\n data: data[d]\r\n };\r\n\r\n // Trigger the `unselect` event, so people can prevent it from being\r\n // cleared.\r\n this.trigger('unselect', unselectData);\r\n\r\n // If the event was prevented, don't clear it out.\r\n if (unselectData.prevented) {\r\n return;\r\n }\r\n }\r\n\r\n this.$element.val(this.placeholder.id).trigger('change');\r\n\r\n this.trigger('toggle', {});\r\n };\r\n\r\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\r\n if (container.isOpen()) {\r\n return;\r\n }\r\n\r\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\r\n this._handleClear(evt);\r\n }\r\n };\r\n\r\n AllowClear.prototype.update = function (decorated, data) {\r\n decorated.call(this, data);\r\n\r\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\r\n data.length === 0) {\r\n return;\r\n }\r\n\r\n var $remove = $(\r\n '<span class=\"select2-selection__clear\">' +\r\n '×' +\r\n '</span>'\r\n );\r\n $remove.data('data', data);\r\n\r\n this.$selection.find('.select2-selection__rendered').prepend($remove);\r\n };\r\n\r\n return AllowClear;\r\n});\r\n\r\nS2.define('select2/selection/search',[\r\n 'jquery',\r\n '../utils',\r\n '../keys'\r\n], function ($, Utils, KEYS) {\r\n function Search (decorated, $element, options) {\r\n decorated.call(this, $element, options);\r\n }\r\n\r\n Search.prototype.render = function (decorated) {\r\n var $search = $(\r\n '<li class=\"select2-search select2-search--inline\">' +\r\n '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\r\n ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\r\n ' spellcheck=\"false\" aria-autocomplete=\"list\" />' +\r\n '</li>'\r\n );\r\n\r\n this.$searchContainer = $search;\r\n this.$search = $search.find('input');\r\n\r\n var $rendered = decorated.call(this);\r\n\r\n this._transferTabIndex();\r\n\r\n return $rendered;\r\n };\r\n\r\n Search.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('open', function () {\r\n self.$search.trigger('focus');\r\n });\r\n\r\n container.on('close', function () {\r\n self.$search.val('');\r\n self.$search.removeAttr('aria-activedescendant');\r\n self.$search.trigger('focus');\r\n });\r\n\r\n container.on('enable', function () {\r\n self.$search.prop('disabled', false);\r\n\r\n self._transferTabIndex();\r\n });\r\n\r\n container.on('disable', function () {\r\n self.$search.prop('disabled', true);\r\n });\r\n\r\n container.on('focus', function (evt) {\r\n self.$search.trigger('focus');\r\n });\r\n\r\n container.on('results:focus', function (params) {\r\n self.$search.attr('aria-activedescendant', params.id);\r\n });\r\n\r\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\r\n self.trigger('focus', evt);\r\n });\r\n\r\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\r\n self._handleBlur(evt);\r\n });\r\n\r\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\r\n evt.stopPropagation();\r\n\r\n self.trigger('keypress', evt);\r\n\r\n self._keyUpPrevented = evt.isDefaultPrevented();\r\n\r\n var key = evt.which;\r\n\r\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\r\n var $previousChoice = self.$searchContainer\r\n .prev('.select2-selection__choice');\r\n\r\n if ($previousChoice.length > 0) {\r\n var item = $previousChoice.data('data');\r\n\r\n self.searchRemoveChoice(item);\r\n\r\n evt.preventDefault();\r\n }\r\n }\r\n });\r\n\r\n // Try to detect the IE version should the `documentMode` property that\r\n // is stored on the document. This is only implemented in IE and is\r\n // slightly cleaner than doing a user agent check.\r\n // This property is not available in Edge, but Edge also doesn't have\r\n // this bug.\r\n var msie = document.documentMode;\r\n var disableInputEvents = msie && msie <= 11;\r\n\r\n // Workaround for browsers which do not support the `input` event\r\n // This will prevent double-triggering of events for browsers which support\r\n // both the `keyup` and `input` events.\r\n this.$selection.on(\r\n 'input.searchcheck',\r\n '.select2-search--inline',\r\n function (evt) {\r\n // IE will trigger the `input` event when a placeholder is used on a\r\n // search box. To get around this issue, we are forced to ignore all\r\n // `input` events in IE and keep using `keyup`.\r\n if (disableInputEvents) {\r\n self.$selection.off('input.search input.searchcheck');\r\n return;\r\n }\r\n\r\n // Unbind the duplicated `keyup` event\r\n self.$selection.off('keyup.search');\r\n }\r\n );\r\n\r\n this.$selection.on(\r\n 'keyup.search input.search',\r\n '.select2-search--inline',\r\n function (evt) {\r\n // IE will trigger the `input` event when a placeholder is used on a\r\n // search box. To get around this issue, we are forced to ignore all\r\n // `input` events in IE and keep using `keyup`.\r\n if (disableInputEvents && evt.type === 'input') {\r\n self.$selection.off('input.search input.searchcheck');\r\n return;\r\n }\r\n\r\n var key = evt.which;\r\n\r\n // We can freely ignore events from modifier keys\r\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\r\n return;\r\n }\r\n\r\n // Tabbing will be handled during the `keydown` phase\r\n if (key == KEYS.TAB) {\r\n return;\r\n }\r\n\r\n self.handleSearch(evt);\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * This method will transfer the tabindex attribute from the rendered\r\n * selection to the search box. This allows for the search box to be used as\r\n * the primary focus instead of the selection container.\r\n *\r\n * @private\r\n */\r\n Search.prototype._transferTabIndex = function (decorated) {\r\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\r\n this.$selection.attr('tabindex', '-1');\r\n };\r\n\r\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\r\n this.$search.attr('placeholder', placeholder.text);\r\n };\r\n\r\n Search.prototype.update = function (decorated, data) {\r\n var searchHadFocus = this.$search[0] == document.activeElement;\r\n\r\n this.$search.attr('placeholder', '');\r\n\r\n decorated.call(this, data);\r\n\r\n this.$selection.find('.select2-selection__rendered')\r\n .append(this.$searchContainer);\r\n\r\n this.resizeSearch();\r\n if (searchHadFocus) {\r\n this.$search.focus();\r\n }\r\n };\r\n\r\n Search.prototype.handleSearch = function () {\r\n this.resizeSearch();\r\n\r\n if (!this._keyUpPrevented) {\r\n var input = this.$search.val();\r\n\r\n this.trigger('query', {\r\n term: input\r\n });\r\n }\r\n\r\n this._keyUpPrevented = false;\r\n };\r\n\r\n Search.prototype.searchRemoveChoice = function (decorated, item) {\r\n this.trigger('unselect', {\r\n data: item\r\n });\r\n\r\n this.$search.val(item.text);\r\n this.handleSearch();\r\n };\r\n\r\n Search.prototype.resizeSearch = function () {\r\n this.$search.css('width', '25px');\r\n\r\n var width = '';\r\n\r\n if (this.$search.attr('placeholder') !== '') {\r\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\r\n } else {\r\n var minimumWidth = this.$search.val().length + 1;\r\n\r\n width = (minimumWidth * 0.75) + 'em';\r\n }\r\n\r\n this.$search.css('width', width);\r\n };\r\n\r\n return Search;\r\n});\r\n\r\nS2.define('select2/selection/eventRelay',[\r\n 'jquery'\r\n], function ($) {\r\n function EventRelay () { }\r\n\r\n EventRelay.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n var relayEvents = [\r\n 'open', 'opening',\r\n 'close', 'closing',\r\n 'select', 'selecting',\r\n 'unselect', 'unselecting'\r\n ];\r\n\r\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('*', function (name, params) {\r\n // Ignore events that should not be relayed\r\n if ($.inArray(name, relayEvents) === -1) {\r\n return;\r\n }\r\n\r\n // The parameters should always be an object\r\n params = params || {};\r\n\r\n // Generate the jQuery event for the Select2 event\r\n var evt = $.Event('select2:' + name, {\r\n params: params\r\n });\r\n\r\n self.$element.trigger(evt);\r\n\r\n // Only handle preventable events if it was one\r\n if ($.inArray(name, preventableEvents) === -1) {\r\n return;\r\n }\r\n\r\n params.prevented = evt.isDefaultPrevented();\r\n });\r\n };\r\n\r\n return EventRelay;\r\n});\r\n\r\nS2.define('select2/translation',[\r\n 'jquery',\r\n 'require'\r\n], function ($, require) {\r\n function Translation (dict) {\r\n this.dict = dict || {};\r\n }\r\n\r\n Translation.prototype.all = function () {\r\n return this.dict;\r\n };\r\n\r\n Translation.prototype.get = function (key) {\r\n return this.dict[key];\r\n };\r\n\r\n Translation.prototype.extend = function (translation) {\r\n this.dict = $.extend({}, translation.all(), this.dict);\r\n };\r\n\r\n // Static functions\r\n\r\n Translation._cache = {};\r\n\r\n Translation.loadPath = function (path) {\r\n if (!(path in Translation._cache)) {\r\n var translations = require(path);\r\n\r\n Translation._cache[path] = translations;\r\n }\r\n\r\n return new Translation(Translation._cache[path]);\r\n };\r\n\r\n return Translation;\r\n});\r\n\r\nS2.define('select2/diacritics',[\r\n\r\n], function () {\r\n var diacritics = {\r\n '\\u24B6': 'A',\r\n '\\uFF21': 'A',\r\n '\\u00C0': 'A',\r\n '\\u00C1': 'A',\r\n '\\u00C2': 'A',\r\n '\\u1EA6': 'A',\r\n '\\u1EA4': 'A',\r\n '\\u1EAA': 'A',\r\n '\\u1EA8': 'A',\r\n '\\u00C3': 'A',\r\n '\\u0100': 'A',\r\n '\\u0102': 'A',\r\n '\\u1EB0': 'A',\r\n '\\u1EAE': 'A',\r\n '\\u1EB4': 'A',\r\n '\\u1EB2': 'A',\r\n '\\u0226': 'A',\r\n '\\u01E0': 'A',\r\n '\\u00C4': 'A',\r\n '\\u01DE': 'A',\r\n '\\u1EA2': 'A',\r\n '\\u00C5': 'A',\r\n '\\u01FA': 'A',\r\n '\\u01CD': 'A',\r\n '\\u0200': 'A',\r\n '\\u0202': 'A',\r\n '\\u1EA0': 'A',\r\n '\\u1EAC': 'A',\r\n '\\u1EB6': 'A',\r\n '\\u1E00': 'A',\r\n '\\u0104': 'A',\r\n '\\u023A': 'A',\r\n '\\u2C6F': 'A',\r\n '\\uA732': 'AA',\r\n '\\u00C6': 'AE',\r\n '\\u01FC': 'AE',\r\n '\\u01E2': 'AE',\r\n '\\uA734': 'AO',\r\n '\\uA736': 'AU',\r\n '\\uA738': 'AV',\r\n '\\uA73A': 'AV',\r\n '\\uA73C': 'AY',\r\n '\\u24B7': 'B',\r\n '\\uFF22': 'B',\r\n '\\u1E02': 'B',\r\n '\\u1E04': 'B',\r\n '\\u1E06': 'B',\r\n '\\u0243': 'B',\r\n '\\u0182': 'B',\r\n '\\u0181': 'B',\r\n '\\u24B8': 'C',\r\n '\\uFF23': 'C',\r\n '\\u0106': 'C',\r\n '\\u0108': 'C',\r\n '\\u010A': 'C',\r\n '\\u010C': 'C',\r\n '\\u00C7': 'C',\r\n '\\u1E08': 'C',\r\n '\\u0187': 'C',\r\n '\\u023B': 'C',\r\n '\\uA73E': 'C',\r\n '\\u24B9': 'D',\r\n '\\uFF24': 'D',\r\n '\\u1E0A': 'D',\r\n '\\u010E': 'D',\r\n '\\u1E0C': 'D',\r\n '\\u1E10': 'D',\r\n '\\u1E12': 'D',\r\n '\\u1E0E': 'D',\r\n '\\u0110': 'D',\r\n '\\u018B': 'D',\r\n '\\u018A': 'D',\r\n '\\u0189': 'D',\r\n '\\uA779': 'D',\r\n '\\u01F1': 'DZ',\r\n '\\u01C4': 'DZ',\r\n '\\u01F2': 'Dz',\r\n '\\u01C5': 'Dz',\r\n '\\u24BA': 'E',\r\n '\\uFF25': 'E',\r\n '\\u00C8': 'E',\r\n '\\u00C9': 'E',\r\n '\\u00CA': 'E',\r\n '\\u1EC0': 'E',\r\n '\\u1EBE': 'E',\r\n '\\u1EC4': 'E',\r\n '\\u1EC2': 'E',\r\n '\\u1EBC': 'E',\r\n '\\u0112': 'E',\r\n '\\u1E14': 'E',\r\n '\\u1E16': 'E',\r\n '\\u0114': 'E',\r\n '\\u0116': 'E',\r\n '\\u00CB': 'E',\r\n '\\u1EBA': 'E',\r\n '\\u011A': 'E',\r\n '\\u0204': 'E',\r\n '\\u0206': 'E',\r\n '\\u1EB8': 'E',\r\n '\\u1EC6': 'E',\r\n '\\u0228': 'E',\r\n '\\u1E1C': 'E',\r\n '\\u0118': 'E',\r\n '\\u1E18': 'E',\r\n '\\u1E1A': 'E',\r\n '\\u0190': 'E',\r\n '\\u018E': 'E',\r\n '\\u24BB': 'F',\r\n '\\uFF26': 'F',\r\n '\\u1E1E': 'F',\r\n '\\u0191': 'F',\r\n '\\uA77B': 'F',\r\n '\\u24BC': 'G',\r\n '\\uFF27': 'G',\r\n '\\u01F4': 'G',\r\n '\\u011C': 'G',\r\n '\\u1E20': 'G',\r\n '\\u011E': 'G',\r\n '\\u0120': 'G',\r\n '\\u01E6': 'G',\r\n '\\u0122': 'G',\r\n '\\u01E4': 'G',\r\n '\\u0193': 'G',\r\n '\\uA7A0': 'G',\r\n '\\uA77D': 'G',\r\n '\\uA77E': 'G',\r\n '\\u24BD': 'H',\r\n '\\uFF28': 'H',\r\n '\\u0124': 'H',\r\n '\\u1E22': 'H',\r\n '\\u1E26': 'H',\r\n '\\u021E': 'H',\r\n '\\u1E24': 'H',\r\n '\\u1E28': 'H',\r\n '\\u1E2A': 'H',\r\n '\\u0126': 'H',\r\n '\\u2C67': 'H',\r\n '\\u2C75': 'H',\r\n '\\uA78D': 'H',\r\n '\\u24BE': 'I',\r\n '\\uFF29': 'I',\r\n '\\u00CC': 'I',\r\n '\\u00CD': 'I',\r\n '\\u00CE': 'I',\r\n '\\u0128': 'I',\r\n '\\u012A': 'I',\r\n '\\u012C': 'I',\r\n '\\u0130': 'I',\r\n '\\u00CF': 'I',\r\n '\\u1E2E': 'I',\r\n '\\u1EC8': 'I',\r\n '\\u01CF': 'I',\r\n '\\u0208': 'I',\r\n '\\u020A': 'I',\r\n '\\u1ECA': 'I',\r\n '\\u012E': 'I',\r\n '\\u1E2C': 'I',\r\n '\\u0197': 'I',\r\n '\\u24BF': 'J',\r\n '\\uFF2A': 'J',\r\n '\\u0134': 'J',\r\n '\\u0248': 'J',\r\n '\\u24C0': 'K',\r\n '\\uFF2B': 'K',\r\n '\\u1E30': 'K',\r\n '\\u01E8': 'K',\r\n '\\u1E32': 'K',\r\n '\\u0136': 'K',\r\n '\\u1E34': 'K',\r\n '\\u0198': 'K',\r\n '\\u2C69': 'K',\r\n '\\uA740': 'K',\r\n '\\uA742': 'K',\r\n '\\uA744': 'K',\r\n '\\uA7A2': 'K',\r\n '\\u24C1': 'L',\r\n '\\uFF2C': 'L',\r\n '\\u013F': 'L',\r\n '\\u0139': 'L',\r\n '\\u013D': 'L',\r\n '\\u1E36': 'L',\r\n '\\u1E38': 'L',\r\n '\\u013B': 'L',\r\n '\\u1E3C': 'L',\r\n '\\u1E3A': 'L',\r\n '\\u0141': 'L',\r\n '\\u023D': 'L',\r\n '\\u2C62': 'L',\r\n '\\u2C60': 'L',\r\n '\\uA748': 'L',\r\n '\\uA746': 'L',\r\n '\\uA780': 'L',\r\n '\\u01C7': 'LJ',\r\n '\\u01C8': 'Lj',\r\n '\\u24C2': 'M',\r\n '\\uFF2D': 'M',\r\n '\\u1E3E': 'M',\r\n '\\u1E40': 'M',\r\n '\\u1E42': 'M',\r\n '\\u2C6E': 'M',\r\n '\\u019C': 'M',\r\n '\\u24C3': 'N',\r\n '\\uFF2E': 'N',\r\n '\\u01F8': 'N',\r\n '\\u0143': 'N',\r\n '\\u00D1': 'N',\r\n '\\u1E44': 'N',\r\n '\\u0147': 'N',\r\n '\\u1E46': 'N',\r\n '\\u0145': 'N',\r\n '\\u1E4A': 'N',\r\n '\\u1E48': 'N',\r\n '\\u0220': 'N',\r\n '\\u019D': 'N',\r\n '\\uA790': 'N',\r\n '\\uA7A4': 'N',\r\n '\\u01CA': 'NJ',\r\n '\\u01CB': 'Nj',\r\n '\\u24C4': 'O',\r\n '\\uFF2F': 'O',\r\n '\\u00D2': 'O',\r\n '\\u00D3': 'O',\r\n '\\u00D4': 'O',\r\n '\\u1ED2': 'O',\r\n '\\u1ED0': 'O',\r\n '\\u1ED6': 'O',\r\n '\\u1ED4': 'O',\r\n '\\u00D5': 'O',\r\n '\\u1E4C': 'O',\r\n '\\u022C': 'O',\r\n '\\u1E4E': 'O',\r\n '\\u014C': 'O',\r\n '\\u1E50': 'O',\r\n '\\u1E52': 'O',\r\n '\\u014E': 'O',\r\n '\\u022E': 'O',\r\n '\\u0230': 'O',\r\n '\\u00D6': 'O',\r\n '\\u022A': 'O',\r\n '\\u1ECE': 'O',\r\n '\\u0150': 'O',\r\n '\\u01D1': 'O',\r\n '\\u020C': 'O',\r\n '\\u020E': 'O',\r\n '\\u01A0': 'O',\r\n '\\u1EDC': 'O',\r\n '\\u1EDA': 'O',\r\n '\\u1EE0': 'O',\r\n '\\u1EDE': 'O',\r\n '\\u1EE2': 'O',\r\n '\\u1ECC': 'O',\r\n '\\u1ED8': 'O',\r\n '\\u01EA': 'O',\r\n '\\u01EC': 'O',\r\n '\\u00D8': 'O',\r\n '\\u01FE': 'O',\r\n '\\u0186': 'O',\r\n '\\u019F': 'O',\r\n '\\uA74A': 'O',\r\n '\\uA74C': 'O',\r\n '\\u01A2': 'OI',\r\n '\\uA74E': 'OO',\r\n '\\u0222': 'OU',\r\n '\\u24C5': 'P',\r\n '\\uFF30': 'P',\r\n '\\u1E54': 'P',\r\n '\\u1E56': 'P',\r\n '\\u01A4': 'P',\r\n '\\u2C63': 'P',\r\n '\\uA750': 'P',\r\n '\\uA752': 'P',\r\n '\\uA754': 'P',\r\n '\\u24C6': 'Q',\r\n '\\uFF31': 'Q',\r\n '\\uA756': 'Q',\r\n '\\uA758': 'Q',\r\n '\\u024A': 'Q',\r\n '\\u24C7': 'R',\r\n '\\uFF32': 'R',\r\n '\\u0154': 'R',\r\n '\\u1E58': 'R',\r\n '\\u0158': 'R',\r\n '\\u0210': 'R',\r\n '\\u0212': 'R',\r\n '\\u1E5A': 'R',\r\n '\\u1E5C': 'R',\r\n '\\u0156': 'R',\r\n '\\u1E5E': 'R',\r\n '\\u024C': 'R',\r\n '\\u2C64': 'R',\r\n '\\uA75A': 'R',\r\n '\\uA7A6': 'R',\r\n '\\uA782': 'R',\r\n '\\u24C8': 'S',\r\n '\\uFF33': 'S',\r\n '\\u1E9E': 'S',\r\n '\\u015A': 'S',\r\n '\\u1E64': 'S',\r\n '\\u015C': 'S',\r\n '\\u1E60': 'S',\r\n '\\u0160': 'S',\r\n '\\u1E66': 'S',\r\n '\\u1E62': 'S',\r\n '\\u1E68': 'S',\r\n '\\u0218': 'S',\r\n '\\u015E': 'S',\r\n '\\u2C7E': 'S',\r\n '\\uA7A8': 'S',\r\n '\\uA784': 'S',\r\n '\\u24C9': 'T',\r\n '\\uFF34': 'T',\r\n '\\u1E6A': 'T',\r\n '\\u0164': 'T',\r\n '\\u1E6C': 'T',\r\n '\\u021A': 'T',\r\n '\\u0162': 'T',\r\n '\\u1E70': 'T',\r\n '\\u1E6E': 'T',\r\n '\\u0166': 'T',\r\n '\\u01AC': 'T',\r\n '\\u01AE': 'T',\r\n '\\u023E': 'T',\r\n '\\uA786': 'T',\r\n '\\uA728': 'TZ',\r\n '\\u24CA': 'U',\r\n '\\uFF35': 'U',\r\n '\\u00D9': 'U',\r\n '\\u00DA': 'U',\r\n '\\u00DB': 'U',\r\n '\\u0168': 'U',\r\n '\\u1E78': 'U',\r\n '\\u016A': 'U',\r\n '\\u1E7A': 'U',\r\n '\\u016C': 'U',\r\n '\\u00DC': 'U',\r\n '\\u01DB': 'U',\r\n '\\u01D7': 'U',\r\n '\\u01D5': 'U',\r\n '\\u01D9': 'U',\r\n '\\u1EE6': 'U',\r\n '\\u016E': 'U',\r\n '\\u0170': 'U',\r\n '\\u01D3': 'U',\r\n '\\u0214': 'U',\r\n '\\u0216': 'U',\r\n '\\u01AF': 'U',\r\n '\\u1EEA': 'U',\r\n '\\u1EE8': 'U',\r\n '\\u1EEE': 'U',\r\n '\\u1EEC': 'U',\r\n '\\u1EF0': 'U',\r\n '\\u1EE4': 'U',\r\n '\\u1E72': 'U',\r\n '\\u0172': 'U',\r\n '\\u1E76': 'U',\r\n '\\u1E74': 'U',\r\n '\\u0244': 'U',\r\n '\\u24CB': 'V',\r\n '\\uFF36': 'V',\r\n '\\u1E7C': 'V',\r\n '\\u1E7E': 'V',\r\n '\\u01B2': 'V',\r\n '\\uA75E': 'V',\r\n '\\u0245': 'V',\r\n '\\uA760': 'VY',\r\n '\\u24CC': 'W',\r\n '\\uFF37': 'W',\r\n '\\u1E80': 'W',\r\n '\\u1E82': 'W',\r\n '\\u0174': 'W',\r\n '\\u1E86': 'W',\r\n '\\u1E84': 'W',\r\n '\\u1E88': 'W',\r\n '\\u2C72': 'W',\r\n '\\u24CD': 'X',\r\n '\\uFF38': 'X',\r\n '\\u1E8A': 'X',\r\n '\\u1E8C': 'X',\r\n '\\u24CE': 'Y',\r\n '\\uFF39': 'Y',\r\n '\\u1EF2': 'Y',\r\n '\\u00DD': 'Y',\r\n '\\u0176': 'Y',\r\n '\\u1EF8': 'Y',\r\n '\\u0232': 'Y',\r\n '\\u1E8E': 'Y',\r\n '\\u0178': 'Y',\r\n '\\u1EF6': 'Y',\r\n '\\u1EF4': 'Y',\r\n '\\u01B3': 'Y',\r\n '\\u024E': 'Y',\r\n '\\u1EFE': 'Y',\r\n '\\u24CF': 'Z',\r\n '\\uFF3A': 'Z',\r\n '\\u0179': 'Z',\r\n '\\u1E90': 'Z',\r\n '\\u017B': 'Z',\r\n '\\u017D': 'Z',\r\n '\\u1E92': 'Z',\r\n '\\u1E94': 'Z',\r\n '\\u01B5': 'Z',\r\n '\\u0224': 'Z',\r\n '\\u2C7F': 'Z',\r\n '\\u2C6B': 'Z',\r\n '\\uA762': 'Z',\r\n '\\u24D0': 'a',\r\n '\\uFF41': 'a',\r\n '\\u1E9A': 'a',\r\n '\\u00E0': 'a',\r\n '\\u00E1': 'a',\r\n '\\u00E2': 'a',\r\n '\\u1EA7': 'a',\r\n '\\u1EA5': 'a',\r\n '\\u1EAB': 'a',\r\n '\\u1EA9': 'a',\r\n '\\u00E3': 'a',\r\n '\\u0101': 'a',\r\n '\\u0103': 'a',\r\n '\\u1EB1': 'a',\r\n '\\u1EAF': 'a',\r\n '\\u1EB5': 'a',\r\n '\\u1EB3': 'a',\r\n '\\u0227': 'a',\r\n '\\u01E1': 'a',\r\n '\\u00E4': 'a',\r\n '\\u01DF': 'a',\r\n '\\u1EA3': 'a',\r\n '\\u00E5': 'a',\r\n '\\u01FB': 'a',\r\n '\\u01CE': 'a',\r\n '\\u0201': 'a',\r\n '\\u0203': 'a',\r\n '\\u1EA1': 'a',\r\n '\\u1EAD': 'a',\r\n '\\u1EB7': 'a',\r\n '\\u1E01': 'a',\r\n '\\u0105': 'a',\r\n '\\u2C65': 'a',\r\n '\\u0250': 'a',\r\n '\\uA733': 'aa',\r\n '\\u00E6': 'ae',\r\n '\\u01FD': 'ae',\r\n '\\u01E3': 'ae',\r\n '\\uA735': 'ao',\r\n '\\uA737': 'au',\r\n '\\uA739': 'av',\r\n '\\uA73B': 'av',\r\n '\\uA73D': 'ay',\r\n '\\u24D1': 'b',\r\n '\\uFF42': 'b',\r\n '\\u1E03': 'b',\r\n '\\u1E05': 'b',\r\n '\\u1E07': 'b',\r\n '\\u0180': 'b',\r\n '\\u0183': 'b',\r\n '\\u0253': 'b',\r\n '\\u24D2': 'c',\r\n '\\uFF43': 'c',\r\n '\\u0107': 'c',\r\n '\\u0109': 'c',\r\n '\\u010B': 'c',\r\n '\\u010D': 'c',\r\n '\\u00E7': 'c',\r\n '\\u1E09': 'c',\r\n '\\u0188': 'c',\r\n '\\u023C': 'c',\r\n '\\uA73F': 'c',\r\n '\\u2184': 'c',\r\n '\\u24D3': 'd',\r\n '\\uFF44': 'd',\r\n '\\u1E0B': 'd',\r\n '\\u010F': 'd',\r\n '\\u1E0D': 'd',\r\n '\\u1E11': 'd',\r\n '\\u1E13': 'd',\r\n '\\u1E0F': 'd',\r\n '\\u0111': 'd',\r\n '\\u018C': 'd',\r\n '\\u0256': 'd',\r\n '\\u0257': 'd',\r\n '\\uA77A': 'd',\r\n '\\u01F3': 'dz',\r\n '\\u01C6': 'dz',\r\n '\\u24D4': 'e',\r\n '\\uFF45': 'e',\r\n '\\u00E8': 'e',\r\n '\\u00E9': 'e',\r\n '\\u00EA': 'e',\r\n '\\u1EC1': 'e',\r\n '\\u1EBF': 'e',\r\n '\\u1EC5': 'e',\r\n '\\u1EC3': 'e',\r\n '\\u1EBD': 'e',\r\n '\\u0113': 'e',\r\n '\\u1E15': 'e',\r\n '\\u1E17': 'e',\r\n '\\u0115': 'e',\r\n '\\u0117': 'e',\r\n '\\u00EB': 'e',\r\n '\\u1EBB': 'e',\r\n '\\u011B': 'e',\r\n '\\u0205': 'e',\r\n '\\u0207': 'e',\r\n '\\u1EB9': 'e',\r\n '\\u1EC7': 'e',\r\n '\\u0229': 'e',\r\n '\\u1E1D': 'e',\r\n '\\u0119': 'e',\r\n '\\u1E19': 'e',\r\n '\\u1E1B': 'e',\r\n '\\u0247': 'e',\r\n '\\u025B': 'e',\r\n '\\u01DD': 'e',\r\n '\\u24D5': 'f',\r\n '\\uFF46': 'f',\r\n '\\u1E1F': 'f',\r\n '\\u0192': 'f',\r\n '\\uA77C': 'f',\r\n '\\u24D6': 'g',\r\n '\\uFF47': 'g',\r\n '\\u01F5': 'g',\r\n '\\u011D': 'g',\r\n '\\u1E21': 'g',\r\n '\\u011F': 'g',\r\n '\\u0121': 'g',\r\n '\\u01E7': 'g',\r\n '\\u0123': 'g',\r\n '\\u01E5': 'g',\r\n '\\u0260': 'g',\r\n '\\uA7A1': 'g',\r\n '\\u1D79': 'g',\r\n '\\uA77F': 'g',\r\n '\\u24D7': 'h',\r\n '\\uFF48': 'h',\r\n '\\u0125': 'h',\r\n '\\u1E23': 'h',\r\n '\\u1E27': 'h',\r\n '\\u021F': 'h',\r\n '\\u1E25': 'h',\r\n '\\u1E29': 'h',\r\n '\\u1E2B': 'h',\r\n '\\u1E96': 'h',\r\n '\\u0127': 'h',\r\n '\\u2C68': 'h',\r\n '\\u2C76': 'h',\r\n '\\u0265': 'h',\r\n '\\u0195': 'hv',\r\n '\\u24D8': 'i',\r\n '\\uFF49': 'i',\r\n '\\u00EC': 'i',\r\n '\\u00ED': 'i',\r\n '\\u00EE': 'i',\r\n '\\u0129': 'i',\r\n '\\u012B': 'i',\r\n '\\u012D': 'i',\r\n '\\u00EF': 'i',\r\n '\\u1E2F': 'i',\r\n '\\u1EC9': 'i',\r\n '\\u01D0': 'i',\r\n '\\u0209': 'i',\r\n '\\u020B': 'i',\r\n '\\u1ECB': 'i',\r\n '\\u012F': 'i',\r\n '\\u1E2D': 'i',\r\n '\\u0268': 'i',\r\n '\\u0131': 'i',\r\n '\\u24D9': 'j',\r\n '\\uFF4A': 'j',\r\n '\\u0135': 'j',\r\n '\\u01F0': 'j',\r\n '\\u0249': 'j',\r\n '\\u24DA': 'k',\r\n '\\uFF4B': 'k',\r\n '\\u1E31': 'k',\r\n '\\u01E9': 'k',\r\n '\\u1E33': 'k',\r\n '\\u0137': 'k',\r\n '\\u1E35': 'k',\r\n '\\u0199': 'k',\r\n '\\u2C6A': 'k',\r\n '\\uA741': 'k',\r\n '\\uA743': 'k',\r\n '\\uA745': 'k',\r\n '\\uA7A3': 'k',\r\n '\\u24DB': 'l',\r\n '\\uFF4C': 'l',\r\n '\\u0140': 'l',\r\n '\\u013A': 'l',\r\n '\\u013E': 'l',\r\n '\\u1E37': 'l',\r\n '\\u1E39': 'l',\r\n '\\u013C': 'l',\r\n '\\u1E3D': 'l',\r\n '\\u1E3B': 'l',\r\n '\\u017F': 'l',\r\n '\\u0142': 'l',\r\n '\\u019A': 'l',\r\n '\\u026B': 'l',\r\n '\\u2C61': 'l',\r\n '\\uA749': 'l',\r\n '\\uA781': 'l',\r\n '\\uA747': 'l',\r\n '\\u01C9': 'lj',\r\n '\\u24DC': 'm',\r\n '\\uFF4D': 'm',\r\n '\\u1E3F': 'm',\r\n '\\u1E41': 'm',\r\n '\\u1E43': 'm',\r\n '\\u0271': 'm',\r\n '\\u026F': 'm',\r\n '\\u24DD': 'n',\r\n '\\uFF4E': 'n',\r\n '\\u01F9': 'n',\r\n '\\u0144': 'n',\r\n '\\u00F1': 'n',\r\n '\\u1E45': 'n',\r\n '\\u0148': 'n',\r\n '\\u1E47': 'n',\r\n '\\u0146': 'n',\r\n '\\u1E4B': 'n',\r\n '\\u1E49': 'n',\r\n '\\u019E': 'n',\r\n '\\u0272': 'n',\r\n '\\u0149': 'n',\r\n '\\uA791': 'n',\r\n '\\uA7A5': 'n',\r\n '\\u01CC': 'nj',\r\n '\\u24DE': 'o',\r\n '\\uFF4F': 'o',\r\n '\\u00F2': 'o',\r\n '\\u00F3': 'o',\r\n '\\u00F4': 'o',\r\n '\\u1ED3': 'o',\r\n '\\u1ED1': 'o',\r\n '\\u1ED7': 'o',\r\n '\\u1ED5': 'o',\r\n '\\u00F5': 'o',\r\n '\\u1E4D': 'o',\r\n '\\u022D': 'o',\r\n '\\u1E4F': 'o',\r\n '\\u014D': 'o',\r\n '\\u1E51': 'o',\r\n '\\u1E53': 'o',\r\n '\\u014F': 'o',\r\n '\\u022F': 'o',\r\n '\\u0231': 'o',\r\n '\\u00F6': 'o',\r\n '\\u022B': 'o',\r\n '\\u1ECF': 'o',\r\n '\\u0151': 'o',\r\n '\\u01D2': 'o',\r\n '\\u020D': 'o',\r\n '\\u020F': 'o',\r\n '\\u01A1': 'o',\r\n '\\u1EDD': 'o',\r\n '\\u1EDB': 'o',\r\n '\\u1EE1': 'o',\r\n '\\u1EDF': 'o',\r\n '\\u1EE3': 'o',\r\n '\\u1ECD': 'o',\r\n '\\u1ED9': 'o',\r\n '\\u01EB': 'o',\r\n '\\u01ED': 'o',\r\n '\\u00F8': 'o',\r\n '\\u01FF': 'o',\r\n '\\u0254': 'o',\r\n '\\uA74B': 'o',\r\n '\\uA74D': 'o',\r\n '\\u0275': 'o',\r\n '\\u01A3': 'oi',\r\n '\\u0223': 'ou',\r\n '\\uA74F': 'oo',\r\n '\\u24DF': 'p',\r\n '\\uFF50': 'p',\r\n '\\u1E55': 'p',\r\n '\\u1E57': 'p',\r\n '\\u01A5': 'p',\r\n '\\u1D7D': 'p',\r\n '\\uA751': 'p',\r\n '\\uA753': 'p',\r\n '\\uA755': 'p',\r\n '\\u24E0': 'q',\r\n '\\uFF51': 'q',\r\n '\\u024B': 'q',\r\n '\\uA757': 'q',\r\n '\\uA759': 'q',\r\n '\\u24E1': 'r',\r\n '\\uFF52': 'r',\r\n '\\u0155': 'r',\r\n '\\u1E59': 'r',\r\n '\\u0159': 'r',\r\n '\\u0211': 'r',\r\n '\\u0213': 'r',\r\n '\\u1E5B': 'r',\r\n '\\u1E5D': 'r',\r\n '\\u0157': 'r',\r\n '\\u1E5F': 'r',\r\n '\\u024D': 'r',\r\n '\\u027D': 'r',\r\n '\\uA75B': 'r',\r\n '\\uA7A7': 'r',\r\n '\\uA783': 'r',\r\n '\\u24E2': 's',\r\n '\\uFF53': 's',\r\n '\\u00DF': 's',\r\n '\\u015B': 's',\r\n '\\u1E65': 's',\r\n '\\u015D': 's',\r\n '\\u1E61': 's',\r\n '\\u0161': 's',\r\n '\\u1E67': 's',\r\n '\\u1E63': 's',\r\n '\\u1E69': 's',\r\n '\\u0219': 's',\r\n '\\u015F': 's',\r\n '\\u023F': 's',\r\n '\\uA7A9': 's',\r\n '\\uA785': 's',\r\n '\\u1E9B': 's',\r\n '\\u24E3': 't',\r\n '\\uFF54': 't',\r\n '\\u1E6B': 't',\r\n '\\u1E97': 't',\r\n '\\u0165': 't',\r\n '\\u1E6D': 't',\r\n '\\u021B': 't',\r\n '\\u0163': 't',\r\n '\\u1E71': 't',\r\n '\\u1E6F': 't',\r\n '\\u0167': 't',\r\n '\\u01AD': 't',\r\n '\\u0288': 't',\r\n '\\u2C66': 't',\r\n '\\uA787': 't',\r\n '\\uA729': 'tz',\r\n '\\u24E4': 'u',\r\n '\\uFF55': 'u',\r\n '\\u00F9': 'u',\r\n '\\u00FA': 'u',\r\n '\\u00FB': 'u',\r\n '\\u0169': 'u',\r\n '\\u1E79': 'u',\r\n '\\u016B': 'u',\r\n '\\u1E7B': 'u',\r\n '\\u016D': 'u',\r\n '\\u00FC': 'u',\r\n '\\u01DC': 'u',\r\n '\\u01D8': 'u',\r\n '\\u01D6': 'u',\r\n '\\u01DA': 'u',\r\n '\\u1EE7': 'u',\r\n '\\u016F': 'u',\r\n '\\u0171': 'u',\r\n '\\u01D4': 'u',\r\n '\\u0215': 'u',\r\n '\\u0217': 'u',\r\n '\\u01B0': 'u',\r\n '\\u1EEB': 'u',\r\n '\\u1EE9': 'u',\r\n '\\u1EEF': 'u',\r\n '\\u1EED': 'u',\r\n '\\u1EF1': 'u',\r\n '\\u1EE5': 'u',\r\n '\\u1E73': 'u',\r\n '\\u0173': 'u',\r\n '\\u1E77': 'u',\r\n '\\u1E75': 'u',\r\n '\\u0289': 'u',\r\n '\\u24E5': 'v',\r\n '\\uFF56': 'v',\r\n '\\u1E7D': 'v',\r\n '\\u1E7F': 'v',\r\n '\\u028B': 'v',\r\n '\\uA75F': 'v',\r\n '\\u028C': 'v',\r\n '\\uA761': 'vy',\r\n '\\u24E6': 'w',\r\n '\\uFF57': 'w',\r\n '\\u1E81': 'w',\r\n '\\u1E83': 'w',\r\n '\\u0175': 'w',\r\n '\\u1E87': 'w',\r\n '\\u1E85': 'w',\r\n '\\u1E98': 'w',\r\n '\\u1E89': 'w',\r\n '\\u2C73': 'w',\r\n '\\u24E7': 'x',\r\n '\\uFF58': 'x',\r\n '\\u1E8B': 'x',\r\n '\\u1E8D': 'x',\r\n '\\u24E8': 'y',\r\n '\\uFF59': 'y',\r\n '\\u1EF3': 'y',\r\n '\\u00FD': 'y',\r\n '\\u0177': 'y',\r\n '\\u1EF9': 'y',\r\n '\\u0233': 'y',\r\n '\\u1E8F': 'y',\r\n '\\u00FF': 'y',\r\n '\\u1EF7': 'y',\r\n '\\u1E99': 'y',\r\n '\\u1EF5': 'y',\r\n '\\u01B4': 'y',\r\n '\\u024F': 'y',\r\n '\\u1EFF': 'y',\r\n '\\u24E9': 'z',\r\n '\\uFF5A': 'z',\r\n '\\u017A': 'z',\r\n '\\u1E91': 'z',\r\n '\\u017C': 'z',\r\n '\\u017E': 'z',\r\n '\\u1E93': 'z',\r\n '\\u1E95': 'z',\r\n '\\u01B6': 'z',\r\n '\\u0225': 'z',\r\n '\\u0240': 'z',\r\n '\\u2C6C': 'z',\r\n '\\uA763': 'z',\r\n '\\u0386': '\\u0391',\r\n '\\u0388': '\\u0395',\r\n '\\u0389': '\\u0397',\r\n '\\u038A': '\\u0399',\r\n '\\u03AA': '\\u0399',\r\n '\\u038C': '\\u039F',\r\n '\\u038E': '\\u03A5',\r\n '\\u03AB': '\\u03A5',\r\n '\\u038F': '\\u03A9',\r\n '\\u03AC': '\\u03B1',\r\n '\\u03AD': '\\u03B5',\r\n '\\u03AE': '\\u03B7',\r\n '\\u03AF': '\\u03B9',\r\n '\\u03CA': '\\u03B9',\r\n '\\u0390': '\\u03B9',\r\n '\\u03CC': '\\u03BF',\r\n '\\u03CD': '\\u03C5',\r\n '\\u03CB': '\\u03C5',\r\n '\\u03B0': '\\u03C5',\r\n '\\u03C9': '\\u03C9',\r\n '\\u03C2': '\\u03C3'\r\n };\r\n\r\n return diacritics;\r\n});\r\n\r\nS2.define('select2/data/base',[\r\n '../utils'\r\n], function (Utils) {\r\n function BaseAdapter ($element, options) {\r\n BaseAdapter.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(BaseAdapter, Utils.Observable);\r\n\r\n BaseAdapter.prototype.current = function (callback) {\r\n throw new Error('The `current` method must be defined in child classes.');\r\n };\r\n\r\n BaseAdapter.prototype.query = function (params, callback) {\r\n throw new Error('The `query` method must be defined in child classes.');\r\n };\r\n\r\n BaseAdapter.prototype.bind = function (container, $container) {\r\n // Can be implemented in subclasses\r\n };\r\n\r\n BaseAdapter.prototype.destroy = function () {\r\n // Can be implemented in subclasses\r\n };\r\n\r\n BaseAdapter.prototype.generateResultId = function (container, data) {\r\n var id = container.id + '-result-';\r\n\r\n id += Utils.generateChars(4);\r\n\r\n if (data.id != null) {\r\n id += '-' + data.id.toString();\r\n } else {\r\n id += '-' + Utils.generateChars(4);\r\n }\r\n return id;\r\n };\r\n\r\n return BaseAdapter;\r\n});\r\n\r\nS2.define('select2/data/select',[\r\n './base',\r\n '../utils',\r\n 'jquery'\r\n], function (BaseAdapter, Utils, $) {\r\n function SelectAdapter ($element, options) {\r\n this.$element = $element;\r\n this.options = options;\r\n\r\n SelectAdapter.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(SelectAdapter, BaseAdapter);\r\n\r\n SelectAdapter.prototype.current = function (callback) {\r\n var data = [];\r\n var self = this;\r\n\r\n this.$element.find(':selected').each(function () {\r\n var $option = $(this);\r\n\r\n var option = self.item($option);\r\n\r\n data.push(option);\r\n });\r\n\r\n callback(data);\r\n };\r\n\r\n SelectAdapter.prototype.select = function (data) {\r\n var self = this;\r\n\r\n data.selected = true;\r\n\r\n // If data.element is a DOM node, use it instead\r\n if ($(data.element).is('option')) {\r\n data.element.selected = true;\r\n\r\n this.$element.trigger('change');\r\n\r\n return;\r\n }\r\n\r\n if (this.$element.prop('multiple')) {\r\n this.current(function (currentData) {\r\n var val = [];\r\n\r\n data = [data];\r\n data.push.apply(data, currentData);\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n var id = data[d].id;\r\n\r\n if ($.inArray(id, val) === -1) {\r\n val.push(id);\r\n }\r\n }\r\n\r\n self.$element.val(val);\r\n self.$element.trigger('change');\r\n });\r\n } else {\r\n var val = data.id;\r\n\r\n this.$element.val(val);\r\n this.$element.trigger('change');\r\n }\r\n };\r\n\r\n SelectAdapter.prototype.unselect = function (data) {\r\n var self = this;\r\n\r\n if (!this.$element.prop('multiple')) {\r\n return;\r\n }\r\n\r\n data.selected = false;\r\n\r\n if ($(data.element).is('option')) {\r\n data.element.selected = false;\r\n\r\n this.$element.trigger('change');\r\n\r\n return;\r\n }\r\n\r\n this.current(function (currentData) {\r\n var val = [];\r\n\r\n for (var d = 0; d < currentData.length; d++) {\r\n var id = currentData[d].id;\r\n\r\n if (id !== data.id && $.inArray(id, val) === -1) {\r\n val.push(id);\r\n }\r\n }\r\n\r\n self.$element.val(val);\r\n\r\n self.$element.trigger('change');\r\n });\r\n };\r\n\r\n SelectAdapter.prototype.bind = function (container, $container) {\r\n var self = this;\r\n\r\n this.container = container;\r\n\r\n container.on('select', function (params) {\r\n self.select(params.data);\r\n });\r\n\r\n container.on('unselect', function (params) {\r\n self.unselect(params.data);\r\n });\r\n };\r\n\r\n SelectAdapter.prototype.destroy = function () {\r\n // Remove anything added to child elements\r\n this.$element.find('*').each(function () {\r\n // Remove any custom data set by Select2\r\n $.removeData(this, 'data');\r\n });\r\n };\r\n\r\n SelectAdapter.prototype.query = function (params, callback) {\r\n var data = [];\r\n var self = this;\r\n\r\n var $options = this.$element.children();\r\n\r\n $options.each(function () {\r\n var $option = $(this);\r\n\r\n if (!$option.is('option') && !$option.is('optgroup')) {\r\n return;\r\n }\r\n\r\n var option = self.item($option);\r\n\r\n var matches = self.matches(params, option);\r\n\r\n if (matches !== null) {\r\n data.push(matches);\r\n }\r\n });\r\n\r\n callback({\r\n results: data\r\n });\r\n };\r\n\r\n SelectAdapter.prototype.addOptions = function ($options) {\r\n Utils.appendMany(this.$element, $options);\r\n };\r\n\r\n SelectAdapter.prototype.option = function (data) {\r\n var option;\r\n\r\n if (data.children) {\r\n option = document.createElement('optgroup');\r\n option.label = data.text;\r\n } else {\r\n option = document.createElement('option');\r\n\r\n if (option.textContent !== undefined) {\r\n option.textContent = data.text;\r\n } else {\r\n option.innerText = data.text;\r\n }\r\n }\r\n\r\n if (data.id) {\r\n option.value = data.id;\r\n }\r\n\r\n if (data.disabled) {\r\n option.disabled = true;\r\n }\r\n\r\n if (data.selected) {\r\n option.selected = true;\r\n }\r\n\r\n if (data.title) {\r\n option.title = data.title;\r\n }\r\n\r\n var $option = $(option);\r\n\r\n var normalizedData = this._normalizeItem(data);\r\n normalizedData.element = option;\r\n\r\n // Override the option's data with the combined data\r\n $.data(option, 'data', normalizedData);\r\n\r\n return $option;\r\n };\r\n\r\n SelectAdapter.prototype.item = function ($option) {\r\n var data = {};\r\n\r\n data = $.data($option[0], 'data');\r\n\r\n if (data != null) {\r\n return data;\r\n }\r\n\r\n if ($option.is('option')) {\r\n data = {\r\n id: $option.val(),\r\n text: $option.text(),\r\n disabled: $option.prop('disabled'),\r\n selected: $option.prop('selected'),\r\n title: $option.prop('title')\r\n };\r\n } else if ($option.is('optgroup')) {\r\n data = {\r\n text: $option.prop('label'),\r\n children: [],\r\n title: $option.prop('title')\r\n };\r\n\r\n var $children = $option.children('option');\r\n var children = [];\r\n\r\n for (var c = 0; c < $children.length; c++) {\r\n var $child = $($children[c]);\r\n\r\n var child = this.item($child);\r\n\r\n children.push(child);\r\n }\r\n\r\n data.children = children;\r\n }\r\n\r\n data = this._normalizeItem(data);\r\n data.element = $option[0];\r\n\r\n $.data($option[0], 'data', data);\r\n\r\n return data;\r\n };\r\n\r\n SelectAdapter.prototype._normalizeItem = function (item) {\r\n if (!$.isPlainObject(item)) {\r\n item = {\r\n id: item,\r\n text: item\r\n };\r\n }\r\n\r\n item = $.extend({}, {\r\n text: ''\r\n }, item);\r\n\r\n var defaults = {\r\n selected: false,\r\n disabled: false\r\n };\r\n\r\n if (item.id != null) {\r\n item.id = item.id.toString();\r\n }\r\n\r\n if (item.text != null) {\r\n item.text = item.text.toString();\r\n }\r\n\r\n if (item._resultId == null && item.id && this.container != null) {\r\n item._resultId = this.generateResultId(this.container, item);\r\n }\r\n\r\n return $.extend({}, defaults, item);\r\n };\r\n\r\n SelectAdapter.prototype.matches = function (params, data) {\r\n var matcher = this.options.get('matcher');\r\n\r\n return matcher(params, data);\r\n };\r\n\r\n return SelectAdapter;\r\n});\r\n\r\nS2.define('select2/data/array',[\r\n './select',\r\n '../utils',\r\n 'jquery'\r\n], function (SelectAdapter, Utils, $) {\r\n function ArrayAdapter ($element, options) {\r\n var data = options.get('data') || [];\r\n\r\n ArrayAdapter.__super__.constructor.call(this, $element, options);\r\n\r\n this.addOptions(this.convertToOptions(data));\r\n }\r\n\r\n Utils.Extend(ArrayAdapter, SelectAdapter);\r\n\r\n ArrayAdapter.prototype.select = function (data) {\r\n var $option = this.$element.find('option').filter(function (i, elm) {\r\n return elm.value == data.id.toString();\r\n });\r\n\r\n if ($option.length === 0) {\r\n $option = this.option(data);\r\n\r\n this.addOptions($option);\r\n }\r\n\r\n ArrayAdapter.__super__.select.call(this, data);\r\n };\r\n\r\n ArrayAdapter.prototype.convertToOptions = function (data) {\r\n var self = this;\r\n\r\n var $existing = this.$element.find('option');\r\n var existingIds = $existing.map(function () {\r\n return self.item($(this)).id;\r\n }).get();\r\n\r\n var $options = [];\r\n\r\n // Filter out all items except for the one passed in the argument\r\n function onlyItem (item) {\r\n return function () {\r\n return $(this).val() == item.id;\r\n };\r\n }\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n var item = this._normalizeItem(data[d]);\r\n\r\n // Skip items which were pre-loaded, only merge the data\r\n if ($.inArray(item.id, existingIds) >= 0) {\r\n var $existingOption = $existing.filter(onlyItem(item));\r\n\r\n var existingData = this.item($existingOption);\r\n var newData = $.extend(true, {}, item, existingData);\r\n\r\n var $newOption = this.option(newData);\r\n\r\n $existingOption.replaceWith($newOption);\r\n\r\n continue;\r\n }\r\n\r\n var $option = this.option(item);\r\n\r\n if (item.children) {\r\n var $children = this.convertToOptions(item.children);\r\n\r\n Utils.appendMany($option, $children);\r\n }\r\n\r\n $options.push($option);\r\n }\r\n\r\n return $options;\r\n };\r\n\r\n return ArrayAdapter;\r\n});\r\n\r\nS2.define('select2/data/ajax',[\r\n './array',\r\n '../utils',\r\n 'jquery'\r\n], function (ArrayAdapter, Utils, $) {\r\n function AjaxAdapter ($element, options) {\r\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\r\n\r\n if (this.ajaxOptions.processResults != null) {\r\n this.processResults = this.ajaxOptions.processResults;\r\n }\r\n\r\n AjaxAdapter.__super__.constructor.call(this, $element, options);\r\n }\r\n\r\n Utils.Extend(AjaxAdapter, ArrayAdapter);\r\n\r\n AjaxAdapter.prototype._applyDefaults = function (options) {\r\n var defaults = {\r\n data: function (params) {\r\n return $.extend({}, params, {\r\n q: params.term\r\n });\r\n },\r\n transport: function (params, success, failure) {\r\n var $request = $.ajax(params);\r\n\r\n $request.then(success);\r\n $request.fail(failure);\r\n\r\n return $request;\r\n }\r\n };\r\n\r\n return $.extend({}, defaults, options, true);\r\n };\r\n\r\n AjaxAdapter.prototype.processResults = function (results) {\r\n return results;\r\n };\r\n\r\n AjaxAdapter.prototype.query = function (params, callback) {\r\n var matches = [];\r\n var self = this;\r\n\r\n if (this._request != null) {\r\n // JSONP requests cannot always be aborted\r\n if ($.isFunction(this._request.abort)) {\r\n this._request.abort();\r\n }\r\n\r\n this._request = null;\r\n }\r\n\r\n var options = $.extend({\r\n type: 'GET'\r\n }, this.ajaxOptions);\r\n\r\n if (typeof options.url === 'function') {\r\n options.url = options.url.call(this.$element, params);\r\n }\r\n\r\n if (typeof options.data === 'function') {\r\n options.data = options.data.call(this.$element, params);\r\n }\r\n\r\n function request () {\r\n var $request = options.transport(options, function (data) {\r\n var results = self.processResults(data, params);\r\n\r\n if (self.options.get('debug') && window.console && console.error) {\r\n // Check to make sure that the response included a `results` key.\r\n if (!results || !results.results || !$.isArray(results.results)) {\r\n console.error(\r\n 'Select2: The AJAX results did not return an array in the ' +\r\n '`results` key of the response.'\r\n );\r\n }\r\n }\r\n\r\n callback(results);\r\n }, function () {\r\n // Attempt to detect if a request was aborted\r\n // Only works if the transport exposes a status property\r\n if ($request.status && $request.status === '0') {\r\n return;\r\n }\r\n\r\n self.trigger('results:message', {\r\n message: 'errorLoading'\r\n });\r\n });\r\n\r\n self._request = $request;\r\n }\r\n\r\n if (this.ajaxOptions.delay && params.term != null) {\r\n if (this._queryTimeout) {\r\n window.clearTimeout(this._queryTimeout);\r\n }\r\n\r\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\r\n } else {\r\n request();\r\n }\r\n };\r\n\r\n return AjaxAdapter;\r\n});\r\n\r\nS2.define('select2/data/tags',[\r\n 'jquery'\r\n], function ($) {\r\n function Tags (decorated, $element, options) {\r\n var tags = options.get('tags');\r\n\r\n var createTag = options.get('createTag');\r\n\r\n if (createTag !== undefined) {\r\n this.createTag = createTag;\r\n }\r\n\r\n var insertTag = options.get('insertTag');\r\n\r\n if (insertTag !== undefined) {\r\n this.insertTag = insertTag;\r\n }\r\n\r\n decorated.call(this, $element, options);\r\n\r\n if ($.isArray(tags)) {\r\n for (var t = 0; t < tags.length; t++) {\r\n var tag = tags[t];\r\n var item = this._normalizeItem(tag);\r\n\r\n var $option = this.option(item);\r\n\r\n this.$element.append($option);\r\n }\r\n }\r\n }\r\n\r\n Tags.prototype.query = function (decorated, params, callback) {\r\n var self = this;\r\n\r\n this._removeOldTags();\r\n\r\n if (params.term == null || params.page != null) {\r\n decorated.call(this, params, callback);\r\n return;\r\n }\r\n\r\n function wrapper (obj, child) {\r\n var data = obj.results;\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var option = data[i];\r\n\r\n var checkChildren = (\r\n option.children != null &&\r\n !wrapper({\r\n results: option.children\r\n }, true)\r\n );\r\n\r\n var checkText = option.text === params.term;\r\n\r\n if (checkText || checkChildren) {\r\n if (child) {\r\n return false;\r\n }\r\n\r\n obj.data = data;\r\n callback(obj);\r\n\r\n return;\r\n }\r\n }\r\n\r\n if (child) {\r\n return true;\r\n }\r\n\r\n var tag = self.createTag(params);\r\n\r\n if (tag != null) {\r\n var $option = self.option(tag);\r\n $option.attr('data-select2-tag', true);\r\n\r\n self.addOptions([$option]);\r\n\r\n self.insertTag(data, tag);\r\n }\r\n\r\n obj.results = data;\r\n\r\n callback(obj);\r\n }\r\n\r\n decorated.call(this, params, wrapper);\r\n };\r\n\r\n Tags.prototype.createTag = function (decorated, params) {\r\n var term = $.trim(params.term);\r\n\r\n if (term === '') {\r\n return null;\r\n }\r\n\r\n return {\r\n id: term,\r\n text: term\r\n };\r\n };\r\n\r\n Tags.prototype.insertTag = function (_, data, tag) {\r\n data.unshift(tag);\r\n };\r\n\r\n Tags.prototype._removeOldTags = function (_) {\r\n var tag = this._lastTag;\r\n\r\n var $options = this.$element.find('option[data-select2-tag]');\r\n\r\n $options.each(function () {\r\n if (this.selected) {\r\n return;\r\n }\r\n\r\n $(this).remove();\r\n });\r\n };\r\n\r\n return Tags;\r\n});\r\n\r\nS2.define('select2/data/tokenizer',[\r\n 'jquery'\r\n], function ($) {\r\n function Tokenizer (decorated, $element, options) {\r\n var tokenizer = options.get('tokenizer');\r\n\r\n if (tokenizer !== undefined) {\r\n this.tokenizer = tokenizer;\r\n }\r\n\r\n decorated.call(this, $element, options);\r\n }\r\n\r\n Tokenizer.prototype.bind = function (decorated, container, $container) {\r\n decorated.call(this, container, $container);\r\n\r\n this.$search = container.dropdown.$search || container.selection.$search ||\r\n $container.find('.select2-search__field');\r\n };\r\n\r\n Tokenizer.prototype.query = function (decorated, params, callback) {\r\n var self = this;\r\n\r\n function createAndSelect (data) {\r\n // Normalize the data object so we can use it for checks\r\n var item = self._normalizeItem(data);\r\n\r\n // Check if the data object already exists as a tag\r\n // Select it if it doesn't\r\n var $existingOptions = self.$element.find('option').filter(function () {\r\n return $(this).val() === item.id;\r\n });\r\n\r\n // If an existing option wasn't found for it, create the option\r\n if (!$existingOptions.length) {\r\n var $option = self.option(item);\r\n $option.attr('data-select2-tag', true);\r\n\r\n self._removeOldTags();\r\n self.addOptions([$option]);\r\n }\r\n\r\n // Select the item, now that we know there is an option for it\r\n select(item);\r\n }\r\n\r\n function select (data) {\r\n self.trigger('select', {\r\n data: data\r\n });\r\n }\r\n\r\n params.term = params.term || '';\r\n\r\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\r\n\r\n if (tokenData.term !== params.term) {\r\n // Replace the search term if we have the search box\r\n if (this.$search.length) {\r\n this.$search.val(tokenData.term);\r\n this.$search.focus();\r\n }\r\n\r\n params.term = tokenData.term;\r\n }\r\n\r\n decorated.call(this, params, callback);\r\n };\r\n\r\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\r\n var separators = options.get('tokenSeparators') || [];\r\n var term = params.term;\r\n var i = 0;\r\n\r\n var createTag = this.createTag || function (params) {\r\n return {\r\n id: params.term,\r\n text: params.term\r\n };\r\n };\r\n\r\n while (i < term.length) {\r\n var termChar = term[i];\r\n\r\n if ($.inArray(termChar, separators) === -1) {\r\n i++;\r\n\r\n continue;\r\n }\r\n\r\n var part = term.substr(0, i);\r\n var partParams = $.extend({}, params, {\r\n term: part\r\n });\r\n\r\n var data = createTag(partParams);\r\n\r\n if (data == null) {\r\n i++;\r\n continue;\r\n }\r\n\r\n callback(data);\r\n\r\n // Reset the term to not include the tokenized portion\r\n term = term.substr(i + 1) || '';\r\n i = 0;\r\n }\r\n\r\n return {\r\n term: term\r\n };\r\n };\r\n\r\n return Tokenizer;\r\n});\r\n\r\nS2.define('select2/data/minimumInputLength',[\r\n\r\n], function () {\r\n function MinimumInputLength (decorated, $e, options) {\r\n this.minimumInputLength = options.get('minimumInputLength');\r\n\r\n decorated.call(this, $e, options);\r\n }\r\n\r\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\r\n params.term = params.term || '';\r\n\r\n if (params.term.length < this.minimumInputLength) {\r\n this.trigger('results:message', {\r\n message: 'inputTooShort',\r\n args: {\r\n minimum: this.minimumInputLength,\r\n input: params.term,\r\n params: params\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n decorated.call(this, params, callback);\r\n };\r\n\r\n return MinimumInputLength;\r\n});\r\n\r\nS2.define('select2/data/maximumInputLength',[\r\n\r\n], function () {\r\n function MaximumInputLength (decorated, $e, options) {\r\n this.maximumInputLength = options.get('maximumInputLength');\r\n\r\n decorated.call(this, $e, options);\r\n }\r\n\r\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\r\n params.term = params.term || '';\r\n\r\n if (this.maximumInputLength > 0 &&\r\n params.term.length > this.maximumInputLength) {\r\n this.trigger('results:message', {\r\n message: 'inputTooLong',\r\n args: {\r\n maximum: this.maximumInputLength,\r\n input: params.term,\r\n params: params\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n decorated.call(this, params, callback);\r\n };\r\n\r\n return MaximumInputLength;\r\n});\r\n\r\nS2.define('select2/data/maximumSelectionLength',[\r\n\r\n], function (){\r\n function MaximumSelectionLength (decorated, $e, options) {\r\n this.maximumSelectionLength = options.get('maximumSelectionLength');\r\n\r\n decorated.call(this, $e, options);\r\n }\r\n\r\n MaximumSelectionLength.prototype.query =\r\n function (decorated, params, callback) {\r\n var self = this;\r\n\r\n this.current(function (currentData) {\r\n var count = currentData != null ? currentData.length : 0;\r\n if (self.maximumSelectionLength > 0 &&\r\n count >= self.maximumSelectionLength) {\r\n self.trigger('results:message', {\r\n message: 'maximumSelected',\r\n args: {\r\n maximum: self.maximumSelectionLength\r\n }\r\n });\r\n return;\r\n }\r\n decorated.call(self, params, callback);\r\n });\r\n };\r\n\r\n return MaximumSelectionLength;\r\n});\r\n\r\nS2.define('select2/dropdown',[\r\n 'jquery',\r\n './utils'\r\n], function ($, Utils) {\r\n function Dropdown ($element, options) {\r\n this.$element = $element;\r\n this.options = options;\r\n\r\n Dropdown.__super__.constructor.call(this);\r\n }\r\n\r\n Utils.Extend(Dropdown, Utils.Observable);\r\n\r\n Dropdown.prototype.render = function () {\r\n var $dropdown = $(\r\n '<span class=\"select2-dropdown\">' +\r\n '<span class=\"select2-results\"></span>' +\r\n '</span>'\r\n );\r\n\r\n $dropdown.attr('dir', this.options.get('dir'));\r\n\r\n this.$dropdown = $dropdown;\r\n\r\n return $dropdown;\r\n };\r\n\r\n Dropdown.prototype.bind = function () {\r\n // Should be implemented in subclasses\r\n };\r\n\r\n Dropdown.prototype.position = function ($dropdown, $container) {\r\n // Should be implmented in subclasses\r\n };\r\n\r\n Dropdown.prototype.destroy = function () {\r\n // Remove the dropdown from the DOM\r\n this.$dropdown.remove();\r\n };\r\n\r\n return Dropdown;\r\n});\r\n\r\nS2.define('select2/dropdown/search',[\r\n 'jquery',\r\n '../utils'\r\n], function ($, Utils) {\r\n function Search () { }\r\n\r\n Search.prototype.render = function (decorated) {\r\n var $rendered = decorated.call(this);\r\n\r\n var $search = $(\r\n '<span class=\"select2-search select2-search--dropdown\">' +\r\n '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\r\n ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\"' +\r\n ' spellcheck=\"false\" />' +\r\n '</span>'\r\n );\r\n\r\n this.$searchContainer = $search;\r\n this.$search = $search.find('input');\r\n\r\n $rendered.prepend($search);\r\n\r\n return $rendered;\r\n };\r\n\r\n Search.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n this.$search.on('keydown', function (evt) {\r\n self.trigger('keypress', evt);\r\n\r\n self._keyUpPrevented = evt.isDefaultPrevented();\r\n });\r\n\r\n // Workaround for browsers which do not support the `input` event\r\n // This will prevent double-triggering of events for browsers which support\r\n // both the `keyup` and `input` events.\r\n this.$search.on('input', function (evt) {\r\n // Unbind the duplicated `keyup` event\r\n $(this).off('keyup');\r\n });\r\n\r\n this.$search.on('keyup input', function (evt) {\r\n self.handleSearch(evt);\r\n });\r\n\r\n container.on('open', function () {\r\n self.$search.attr('tabindex', 0);\r\n\r\n self.$search.focus();\r\n\r\n window.setTimeout(function () {\r\n self.$search.focus();\r\n }, 0);\r\n });\r\n\r\n container.on('close', function () {\r\n self.$search.attr('tabindex', -1);\r\n\r\n self.$search.val('');\r\n });\r\n\r\n container.on('focus', function () {\r\n if (container.isOpen()) {\r\n self.$search.focus();\r\n }\r\n });\r\n\r\n container.on('results:all', function (params) {\r\n if (params.query.term == null || params.query.term === '') {\r\n var showSearch = self.showSearch(params);\r\n\r\n if (showSearch) {\r\n self.$searchContainer.removeClass('select2-search--hide');\r\n } else {\r\n self.$searchContainer.addClass('select2-search--hide');\r\n }\r\n }\r\n });\r\n };\r\n\r\n Search.prototype.handleSearch = function (evt) {\r\n if (!this._keyUpPrevented) {\r\n var input = this.$search.val();\r\n\r\n this.trigger('query', {\r\n term: input\r\n });\r\n }\r\n\r\n this._keyUpPrevented = false;\r\n };\r\n\r\n Search.prototype.showSearch = function (_, params) {\r\n return true;\r\n };\r\n\r\n return Search;\r\n});\r\n\r\nS2.define('select2/dropdown/hidePlaceholder',[\r\n\r\n], function () {\r\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\r\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\r\n\r\n decorated.call(this, $element, options, dataAdapter);\r\n }\r\n\r\n HidePlaceholder.prototype.append = function (decorated, data) {\r\n data.results = this.removePlaceholder(data.results);\r\n\r\n decorated.call(this, data);\r\n };\r\n\r\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\r\n if (typeof placeholder === 'string') {\r\n placeholder = {\r\n id: '',\r\n text: placeholder\r\n };\r\n }\r\n\r\n return placeholder;\r\n };\r\n\r\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\r\n var modifiedData = data.slice(0);\r\n\r\n for (var d = data.length - 1; d >= 0; d--) {\r\n var item = data[d];\r\n\r\n if (this.placeholder.id === item.id) {\r\n modifiedData.splice(d, 1);\r\n }\r\n }\r\n\r\n return modifiedData;\r\n };\r\n\r\n return HidePlaceholder;\r\n});\r\n\r\nS2.define('select2/dropdown/infiniteScroll',[\r\n 'jquery'\r\n], function ($) {\r\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\r\n this.lastParams = {};\r\n\r\n decorated.call(this, $element, options, dataAdapter);\r\n\r\n this.$loadingMore = this.createLoadingMore();\r\n this.loading = false;\r\n }\r\n\r\n InfiniteScroll.prototype.append = function (decorated, data) {\r\n this.$loadingMore.remove();\r\n this.loading = false;\r\n\r\n decorated.call(this, data);\r\n\r\n if (this.showLoadingMore(data)) {\r\n this.$results.append(this.$loadingMore);\r\n }\r\n };\r\n\r\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('query', function (params) {\r\n self.lastParams = params;\r\n self.loading = true;\r\n });\r\n\r\n container.on('query:append', function (params) {\r\n self.lastParams = params;\r\n self.loading = true;\r\n });\r\n\r\n this.$results.on('scroll', function () {\r\n var isLoadMoreVisible = $.contains(\r\n document.documentElement,\r\n self.$loadingMore[0]\r\n );\r\n\r\n if (self.loading || !isLoadMoreVisible) {\r\n return;\r\n }\r\n\r\n var currentOffset = self.$results.offset().top +\r\n self.$results.outerHeight(false);\r\n var loadingMoreOffset = self.$loadingMore.offset().top +\r\n self.$loadingMore.outerHeight(false);\r\n\r\n if (currentOffset + 50 >= loadingMoreOffset) {\r\n self.loadMore();\r\n }\r\n });\r\n };\r\n\r\n InfiniteScroll.prototype.loadMore = function () {\r\n this.loading = true;\r\n\r\n var params = $.extend({}, {page: 1}, this.lastParams);\r\n\r\n params.page++;\r\n\r\n this.trigger('query:append', params);\r\n };\r\n\r\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\r\n return data.pagination && data.pagination.more;\r\n };\r\n\r\n InfiniteScroll.prototype.createLoadingMore = function () {\r\n var $option = $(\r\n '<li ' +\r\n 'class=\"select2-results__option select2-results__option--load-more\"' +\r\n 'role=\"treeitem\" aria-disabled=\"true\"></li>'\r\n );\r\n\r\n var message = this.options.get('translations').get('loadingMore');\r\n\r\n $option.html(message(this.lastParams));\r\n\r\n return $option;\r\n };\r\n\r\n return InfiniteScroll;\r\n});\r\n\r\nS2.define('select2/dropdown/attachBody',[\r\n 'jquery',\r\n '../utils'\r\n], function ($, Utils) {\r\n function AttachBody (decorated, $element, options) {\r\n this.$dropdownParent = options.get('dropdownParent') || $(document.body);\r\n\r\n decorated.call(this, $element, options);\r\n }\r\n\r\n AttachBody.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n var setupResultsEvents = false;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('open', function () {\r\n self._showDropdown();\r\n self._attachPositioningHandler(container);\r\n\r\n if (!setupResultsEvents) {\r\n setupResultsEvents = true;\r\n\r\n container.on('results:all', function () {\r\n self._positionDropdown();\r\n self._resizeDropdown();\r\n });\r\n\r\n container.on('results:append', function () {\r\n self._positionDropdown();\r\n self._resizeDropdown();\r\n });\r\n }\r\n });\r\n\r\n container.on('close', function () {\r\n self._hideDropdown();\r\n self._detachPositioningHandler(container);\r\n });\r\n\r\n this.$dropdownContainer.on('mousedown', function (evt) {\r\n evt.stopPropagation();\r\n });\r\n };\r\n\r\n AttachBody.prototype.destroy = function (decorated) {\r\n decorated.call(this);\r\n\r\n this.$dropdownContainer.remove();\r\n };\r\n\r\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\r\n // Clone all of the container classes\r\n $dropdown.attr('class', $container.attr('class'));\r\n\r\n $dropdown.removeClass('select2');\r\n $dropdown.addClass('select2-container--open');\r\n\r\n $dropdown.css({\r\n position: 'absolute',\r\n top: -999999\r\n });\r\n\r\n this.$container = $container;\r\n };\r\n\r\n AttachBody.prototype.render = function (decorated) {\r\n var $container = $('<span></span>');\r\n\r\n var $dropdown = decorated.call(this);\r\n $container.append($dropdown);\r\n\r\n this.$dropdownContainer = $container;\r\n\r\n return $container;\r\n };\r\n\r\n AttachBody.prototype._hideDropdown = function (decorated) {\r\n this.$dropdownContainer.detach();\r\n };\r\n\r\n AttachBody.prototype._attachPositioningHandler =\r\n function (decorated, container) {\r\n var self = this;\r\n\r\n var scrollEvent = 'scroll.select2.' + container.id;\r\n var resizeEvent = 'resize.select2.' + container.id;\r\n var orientationEvent = 'orientationchange.select2.' + container.id;\r\n\r\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\r\n $watchers.each(function () {\r\n $(this).data('select2-scroll-position', {\r\n x: $(this).scrollLeft(),\r\n y: $(this).scrollTop()\r\n });\r\n });\r\n\r\n $watchers.on(scrollEvent, function (ev) {\r\n var position = $(this).data('select2-scroll-position');\r\n $(this).scrollTop(position.y);\r\n });\r\n\r\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\r\n function (e) {\r\n self._positionDropdown();\r\n self._resizeDropdown();\r\n });\r\n };\r\n\r\n AttachBody.prototype._detachPositioningHandler =\r\n function (decorated, container) {\r\n var scrollEvent = 'scroll.select2.' + container.id;\r\n var resizeEvent = 'resize.select2.' + container.id;\r\n var orientationEvent = 'orientationchange.select2.' + container.id;\r\n\r\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\r\n $watchers.off(scrollEvent);\r\n\r\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\r\n };\r\n\r\n AttachBody.prototype._positionDropdown = function () {\r\n var $window = $(window);\r\n\r\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\r\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\r\n\r\n var newDirection = null;\r\n\r\n var offset = this.$container.offset();\r\n\r\n offset.bottom = offset.top + this.$container.outerHeight(false);\r\n\r\n var container = {\r\n height: this.$container.outerHeight(false)\r\n };\r\n\r\n container.top = offset.top;\r\n container.bottom = offset.top + container.height;\r\n\r\n var dropdown = {\r\n height: this.$dropdown.outerHeight(false)\r\n };\r\n\r\n var viewport = {\r\n top: $window.scrollTop(),\r\n bottom: $window.scrollTop() + $window.height()\r\n };\r\n\r\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\r\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\r\n\r\n var css = {\r\n left: offset.left,\r\n top: container.bottom\r\n };\r\n\r\n // Determine what the parent element is to use for calciulating the offset\r\n var $offsetParent = this.$dropdownParent;\r\n\r\n // For statically positoned elements, we need to get the element\r\n // that is determining the offset\r\n if ($offsetParent.css('position') === 'static') {\r\n $offsetParent = $offsetParent.offsetParent();\r\n }\r\n\r\n var parentOffset = $offsetParent.offset();\r\n\r\n css.top -= parentOffset.top;\r\n css.left -= parentOffset.left;\r\n\r\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\r\n newDirection = 'below';\r\n }\r\n\r\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\r\n newDirection = 'above';\r\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\r\n newDirection = 'below';\r\n }\r\n\r\n if (newDirection == 'above' ||\r\n (isCurrentlyAbove && newDirection !== 'below')) {\r\n css.top = container.top - parentOffset.top - dropdown.height;\r\n }\r\n\r\n if (newDirection != null) {\r\n this.$dropdown\r\n .removeClass('select2-dropdown--below select2-dropdown--above')\r\n .addClass('select2-dropdown--' + newDirection);\r\n this.$container\r\n .removeClass('select2-container--below select2-container--above')\r\n .addClass('select2-container--' + newDirection);\r\n }\r\n\r\n this.$dropdownContainer.css(css);\r\n };\r\n\r\n AttachBody.prototype._resizeDropdown = function () {\r\n var css = {\r\n width: this.$container.outerWidth(false) + 'px'\r\n };\r\n\r\n if (this.options.get('dropdownAutoWidth')) {\r\n css.minWidth = css.width;\r\n css.position = 'relative';\r\n css.width = 'auto';\r\n }\r\n\r\n this.$dropdown.css(css);\r\n };\r\n\r\n AttachBody.prototype._showDropdown = function (decorated) {\r\n this.$dropdownContainer.appendTo(this.$dropdownParent);\r\n\r\n this._positionDropdown();\r\n this._resizeDropdown();\r\n };\r\n\r\n return AttachBody;\r\n});\r\n\r\nS2.define('select2/dropdown/minimumResultsForSearch',[\r\n\r\n], function () {\r\n function countResults (data) {\r\n var count = 0;\r\n\r\n for (var d = 0; d < data.length; d++) {\r\n var item = data[d];\r\n\r\n if (item.children) {\r\n count += countResults(item.children);\r\n } else {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\r\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\r\n\r\n if (this.minimumResultsForSearch < 0) {\r\n this.minimumResultsForSearch = Infinity;\r\n }\r\n\r\n decorated.call(this, $element, options, dataAdapter);\r\n }\r\n\r\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\r\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\r\n return false;\r\n }\r\n\r\n return decorated.call(this, params);\r\n };\r\n\r\n return MinimumResultsForSearch;\r\n});\r\n\r\nS2.define('select2/dropdown/selectOnClose',[\r\n\r\n], function () {\r\n function SelectOnClose () { }\r\n\r\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('close', function (params) {\r\n self._handleSelectOnClose(params);\r\n });\r\n };\r\n\r\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\r\n if (params && params.originalSelect2Event != null) {\r\n var event = params.originalSelect2Event;\r\n\r\n // Don't select an item if the close event was triggered from a select or\r\n // unselect event\r\n if (event._type === 'select' || event._type === 'unselect') {\r\n return;\r\n }\r\n }\r\n\r\n var $highlightedResults = this.getHighlightedResults();\r\n\r\n // Only select highlighted results\r\n if ($highlightedResults.length < 1) {\r\n return;\r\n }\r\n\r\n var data = $highlightedResults.data('data');\r\n\r\n // Don't re-select already selected resulte\r\n if (\r\n (data.element != null && data.element.selected) ||\r\n (data.element == null && data.selected)\r\n ) {\r\n return;\r\n }\r\n\r\n this.trigger('select', {\r\n data: data\r\n });\r\n };\r\n\r\n return SelectOnClose;\r\n});\r\n\r\nS2.define('select2/dropdown/closeOnSelect',[\r\n\r\n], function () {\r\n function CloseOnSelect () { }\r\n\r\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\r\n var self = this;\r\n\r\n decorated.call(this, container, $container);\r\n\r\n container.on('select', function (evt) {\r\n self._selectTriggered(evt);\r\n });\r\n\r\n container.on('unselect', function (evt) {\r\n self._selectTriggered(evt);\r\n });\r\n };\r\n\r\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\r\n var originalEvent = evt.originalEvent;\r\n\r\n // Don't close if the control key is being held\r\n if (originalEvent && originalEvent.ctrlKey) {\r\n return;\r\n }\r\n\r\n this.trigger('close', {\r\n originalEvent: originalEvent,\r\n originalSelect2Event: evt\r\n });\r\n };\r\n\r\n return CloseOnSelect;\r\n});\r\n\r\nS2.define('select2/i18n/en',[],function () {\r\n // English\r\n return {\r\n errorLoading: function () {\r\n return 'The results could not be loaded.';\r\n },\r\n inputTooLong: function (args) {\r\n var overChars = args.input.length - args.maximum;\r\n\r\n var message = 'Please delete ' + overChars + ' character';\r\n\r\n if (overChars != 1) {\r\n message += 's';\r\n }\r\n\r\n return message;\r\n },\r\n inputTooShort: function (args) {\r\n var remainingChars = args.minimum - args.input.length;\r\n\r\n var message = 'Please enter ' + remainingChars + ' or more characters';\r\n\r\n return message;\r\n },\r\n loadingMore: function () {\r\n return 'Loading more results…';\r\n },\r\n maximumSelected: function (args) {\r\n var message = 'You can only select ' + args.maximum + ' item';\r\n\r\n if (args.maximum != 1) {\r\n message += 's';\r\n }\r\n\r\n return message;\r\n },\r\n noResults: function () {\r\n return 'No results found';\r\n },\r\n searching: function () {\r\n return 'Searching…';\r\n }\r\n };\r\n});\r\n\r\nS2.define('select2/defaults',[\r\n 'jquery',\r\n 'require',\r\n\r\n './results',\r\n\r\n './selection/single',\r\n './selection/multiple',\r\n './selection/placeholder',\r\n './selection/allowClear',\r\n './selection/search',\r\n './selection/eventRelay',\r\n\r\n './utils',\r\n './translation',\r\n './diacritics',\r\n\r\n './data/select',\r\n './data/array',\r\n './data/ajax',\r\n './data/tags',\r\n './data/tokenizer',\r\n './data/minimumInputLength',\r\n './data/maximumInputLength',\r\n './data/maximumSelectionLength',\r\n\r\n './dropdown',\r\n './dropdown/search',\r\n './dropdown/hidePlaceholder',\r\n './dropdown/infiniteScroll',\r\n './dropdown/attachBody',\r\n './dropdown/minimumResultsForSearch',\r\n './dropdown/selectOnClose',\r\n './dropdown/closeOnSelect',\r\n\r\n './i18n/en'\r\n], function ($, require,\r\n\r\n ResultsList,\r\n\r\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\r\n SelectionSearch, EventRelay,\r\n\r\n Utils, Translation, DIACRITICS,\r\n\r\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\r\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\r\n\r\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\r\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\r\n\r\n EnglishTranslation) {\r\n function Defaults () {\r\n this.reset();\r\n }\r\n\r\n Defaults.prototype.apply = function (options) {\r\n options = $.extend(true, {}, this.defaults, options);\r\n\r\n if (options.dataAdapter == null) {\r\n if (options.ajax != null) {\r\n options.dataAdapter = AjaxData;\r\n } else if (options.data != null) {\r\n options.dataAdapter = ArrayData;\r\n } else {\r\n options.dataAdapter = SelectData;\r\n }\r\n\r\n if (options.minimumInputLength > 0) {\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n MinimumInputLength\r\n );\r\n }\r\n\r\n if (options.maximumInputLength > 0) {\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n MaximumInputLength\r\n );\r\n }\r\n\r\n if (options.maximumSelectionLength > 0) {\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n MaximumSelectionLength\r\n );\r\n }\r\n\r\n if (options.tags) {\r\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\r\n }\r\n\r\n if (options.tokenSeparators != null || options.tokenizer != null) {\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n Tokenizer\r\n );\r\n }\r\n\r\n if (options.query != null) {\r\n var Query = require(options.amdBase + 'compat/query');\r\n\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n Query\r\n );\r\n }\r\n\r\n if (options.initSelection != null) {\r\n var InitSelection = require(options.amdBase + 'compat/initSelection');\r\n\r\n options.dataAdapter = Utils.Decorate(\r\n options.dataAdapter,\r\n InitSelection\r\n );\r\n }\r\n }\r\n\r\n if (options.resultsAdapter == null) {\r\n options.resultsAdapter = ResultsList;\r\n\r\n if (options.ajax != null) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n InfiniteScroll\r\n );\r\n }\r\n\r\n if (options.placeholder != null) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n HidePlaceholder\r\n );\r\n }\r\n\r\n if (options.selectOnClose) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n SelectOnClose\r\n );\r\n }\r\n }\r\n\r\n if (options.dropdownAdapter == null) {\r\n if (options.multiple) {\r\n options.dropdownAdapter = Dropdown;\r\n } else {\r\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\r\n\r\n options.dropdownAdapter = SearchableDropdown;\r\n }\r\n\r\n if (options.minimumResultsForSearch !== 0) {\r\n options.dropdownAdapter = Utils.Decorate(\r\n options.dropdownAdapter,\r\n MinimumResultsForSearch\r\n );\r\n }\r\n\r\n if (options.closeOnSelect) {\r\n options.dropdownAdapter = Utils.Decorate(\r\n options.dropdownAdapter,\r\n CloseOnSelect\r\n );\r\n }\r\n\r\n if (\r\n options.dropdownCssClass != null ||\r\n options.dropdownCss != null ||\r\n options.adaptDropdownCssClass != null\r\n ) {\r\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\r\n\r\n options.dropdownAdapter = Utils.Decorate(\r\n options.dropdownAdapter,\r\n DropdownCSS\r\n );\r\n }\r\n\r\n options.dropdownAdapter = Utils.Decorate(\r\n options.dropdownAdapter,\r\n AttachBody\r\n );\r\n }\r\n\r\n if (options.selectionAdapter == null) {\r\n if (options.multiple) {\r\n options.selectionAdapter = MultipleSelection;\r\n } else {\r\n options.selectionAdapter = SingleSelection;\r\n }\r\n\r\n // Add the placeholder mixin if a placeholder was specified\r\n if (options.placeholder != null) {\r\n options.selectionAdapter = Utils.Decorate(\r\n options.selectionAdapter,\r\n Placeholder\r\n );\r\n }\r\n\r\n if (options.allowClear) {\r\n options.selectionAdapter = Utils.Decorate(\r\n options.selectionAdapter,\r\n AllowClear\r\n );\r\n }\r\n\r\n if (options.multiple) {\r\n options.selectionAdapter = Utils.Decorate(\r\n options.selectionAdapter,\r\n SelectionSearch\r\n );\r\n }\r\n\r\n if (\r\n options.containerCssClass != null ||\r\n options.containerCss != null ||\r\n options.adaptContainerCssClass != null\r\n ) {\r\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\r\n\r\n options.selectionAdapter = Utils.Decorate(\r\n options.selectionAdapter,\r\n ContainerCSS\r\n );\r\n }\r\n\r\n options.selectionAdapter = Utils.Decorate(\r\n options.selectionAdapter,\r\n EventRelay\r\n );\r\n }\r\n\r\n if (typeof options.language === 'string') {\r\n // Check if the language is specified with a region\r\n if (options.language.indexOf('-') > 0) {\r\n // Extract the region information if it is included\r\n var languageParts = options.language.split('-');\r\n var baseLanguage = languageParts[0];\r\n\r\n options.language = [options.language, baseLanguage];\r\n } else {\r\n options.language = [options.language];\r\n }\r\n }\r\n\r\n if ($.isArray(options.language)) {\r\n var languages = new Translation();\r\n options.language.push('en');\r\n\r\n var languageNames = options.language;\r\n\r\n for (var l = 0; l < languageNames.length; l++) {\r\n var name = languageNames[l];\r\n var language = {};\r\n\r\n try {\r\n // Try to load it with the original name\r\n language = Translation.loadPath(name);\r\n } catch (e) {\r\n try {\r\n // If we couldn't load it, check if it wasn't the full path\r\n name = this.defaults.amdLanguageBase + name;\r\n language = Translation.loadPath(name);\r\n } catch (ex) {\r\n // The translation could not be loaded at all. Sometimes this is\r\n // because of a configuration problem, other times this can be\r\n // because of how Select2 helps load all possible translation files.\r\n if (options.debug && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: The language file for \"' + name + '\" could not be ' +\r\n 'automatically loaded. A fallback will be used instead.'\r\n );\r\n }\r\n\r\n continue;\r\n }\r\n }\r\n\r\n languages.extend(language);\r\n }\r\n\r\n options.translations = languages;\r\n } else {\r\n var baseTranslation = Translation.loadPath(\r\n this.defaults.amdLanguageBase + 'en'\r\n );\r\n var customTranslation = new Translation(options.language);\r\n\r\n customTranslation.extend(baseTranslation);\r\n\r\n options.translations = customTranslation;\r\n }\r\n\r\n return options;\r\n };\r\n\r\n Defaults.prototype.reset = function () {\r\n function stripDiacritics (text) {\r\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\r\n function match(a) {\r\n return DIACRITICS[a] || a;\r\n }\r\n\r\n return text.replace(/[^\\u0000-\\u007E]/g, match);\r\n }\r\n\r\n function matcher (params, data) {\r\n // Always return the object if there is nothing to compare\r\n if ($.trim(params.term) === '') {\r\n return data;\r\n }\r\n\r\n // Do a recursive check for options with children\r\n if (data.children && data.children.length > 0) {\r\n // Clone the data object if there are children\r\n // This is required as we modify the object to remove any non-matches\r\n var match = $.extend(true, {}, data);\r\n\r\n // Check each child of the option\r\n for (var c = data.children.length - 1; c >= 0; c--) {\r\n var child = data.children[c];\r\n\r\n var matches = matcher(params, child);\r\n\r\n // If there wasn't a match, remove the object in the array\r\n if (matches == null) {\r\n match.children.splice(c, 1);\r\n }\r\n }\r\n\r\n // If any children matched, return the new object\r\n if (match.children.length > 0) {\r\n return match;\r\n }\r\n\r\n // If there were no matching children, check just the plain object\r\n return matcher(params, match);\r\n }\r\n\r\n var original = stripDiacritics(data.text).toUpperCase();\r\n var term = stripDiacritics(params.term).toUpperCase();\r\n\r\n // Check if the text contains the term\r\n if (original.indexOf(term) > -1) {\r\n return data;\r\n }\r\n\r\n // If it doesn't contain the term, don't return anything\r\n return null;\r\n }\r\n\r\n this.defaults = {\r\n amdBase: './',\r\n amdLanguageBase: './i18n/',\r\n closeOnSelect: true,\r\n debug: false,\r\n dropdownAutoWidth: false,\r\n escapeMarkup: Utils.escapeMarkup,\r\n language: EnglishTranslation,\r\n matcher: matcher,\r\n minimumInputLength: 0,\r\n maximumInputLength: 0,\r\n maximumSelectionLength: 0,\r\n minimumResultsForSearch: 0,\r\n selectOnClose: false,\r\n sorter: function (data) {\r\n return data;\r\n },\r\n templateResult: function (result) {\r\n return result.text;\r\n },\r\n templateSelection: function (selection) {\r\n return selection.text;\r\n },\r\n theme: 'default',\r\n width: 'resolve'\r\n };\r\n };\r\n\r\n Defaults.prototype.set = function (key, value) {\r\n var camelKey = $.camelCase(key);\r\n\r\n var data = {};\r\n data[camelKey] = value;\r\n\r\n var convertedData = Utils._convertData(data);\r\n\r\n $.extend(this.defaults, convertedData);\r\n };\r\n\r\n var defaults = new Defaults();\r\n\r\n return defaults;\r\n});\r\n\r\nS2.define('select2/options',[\r\n 'require',\r\n 'jquery',\r\n './defaults',\r\n './utils'\r\n], function (require, $, Defaults, Utils) {\r\n function Options (options, $element) {\r\n this.options = options;\r\n\r\n if ($element != null) {\r\n this.fromElement($element);\r\n }\r\n\r\n this.options = Defaults.apply(this.options);\r\n\r\n if ($element && $element.is('input')) {\r\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\r\n\r\n this.options.dataAdapter = Utils.Decorate(\r\n this.options.dataAdapter,\r\n InputCompat\r\n );\r\n }\r\n }\r\n\r\n Options.prototype.fromElement = function ($e) {\r\n var excludedData = ['select2'];\r\n\r\n if (this.options.multiple == null) {\r\n this.options.multiple = $e.prop('multiple');\r\n }\r\n\r\n if (this.options.disabled == null) {\r\n this.options.disabled = $e.prop('disabled');\r\n }\r\n\r\n if (this.options.language == null) {\r\n if ($e.prop('lang')) {\r\n this.options.language = $e.prop('lang').toLowerCase();\r\n } else if ($e.closest('[lang]').prop('lang')) {\r\n this.options.language = $e.closest('[lang]').prop('lang');\r\n }\r\n }\r\n\r\n if (this.options.dir == null) {\r\n if ($e.prop('dir')) {\r\n this.options.dir = $e.prop('dir');\r\n } else if ($e.closest('[dir]').prop('dir')) {\r\n this.options.dir = $e.closest('[dir]').prop('dir');\r\n } else {\r\n this.options.dir = 'ltr';\r\n }\r\n }\r\n\r\n $e.prop('disabled', this.options.disabled);\r\n $e.prop('multiple', this.options.multiple);\r\n\r\n if ($e.data('select2Tags')) {\r\n if (this.options.debug && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\r\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\r\n 'removed in future versions of Select2.'\r\n );\r\n }\r\n\r\n $e.data('data', $e.data('select2Tags'));\r\n $e.data('tags', true);\r\n }\r\n\r\n if ($e.data('ajaxUrl')) {\r\n if (this.options.debug && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\r\n '`data-ajax--url` and support for the old attribute will be removed' +\r\n ' in future versions of Select2.'\r\n );\r\n }\r\n\r\n $e.attr('ajax--url', $e.data('ajaxUrl'));\r\n $e.data('ajax--url', $e.data('ajaxUrl'));\r\n }\r\n\r\n var dataset = {};\r\n\r\n // Prefer the element's `dataset` attribute if it exists\r\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\r\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\r\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\r\n } else {\r\n dataset = $e.data();\r\n }\r\n\r\n var data = $.extend(true, {}, dataset);\r\n\r\n data = Utils._convertData(data);\r\n\r\n for (var key in data) {\r\n if ($.inArray(key, excludedData) > -1) {\r\n continue;\r\n }\r\n\r\n if ($.isPlainObject(this.options[key])) {\r\n $.extend(this.options[key], data[key]);\r\n } else {\r\n this.options[key] = data[key];\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n Options.prototype.get = function (key) {\r\n return this.options[key];\r\n };\r\n\r\n Options.prototype.set = function (key, val) {\r\n this.options[key] = val;\r\n };\r\n\r\n return Options;\r\n});\r\n\r\nS2.define('select2/core',[\r\n 'jquery',\r\n './options',\r\n './utils',\r\n './keys'\r\n], function ($, Options, Utils, KEYS) {\r\n var Select2 = function ($element, options) {\r\n if ($element.data('select2') != null) {\r\n $element.data('select2').destroy();\r\n }\r\n\r\n this.$element = $element;\r\n\r\n this.id = this._generateId($element);\r\n\r\n options = options || {};\r\n\r\n this.options = new Options(options, $element);\r\n\r\n Select2.__super__.constructor.call(this);\r\n\r\n // Set up the tabindex\r\n\r\n var tabindex = $element.attr('tabindex') || 0;\r\n $element.data('old-tabindex', tabindex);\r\n $element.attr('tabindex', '-1');\r\n\r\n // Set up containers and adapters\r\n\r\n var DataAdapter = this.options.get('dataAdapter');\r\n this.dataAdapter = new DataAdapter($element, this.options);\r\n\r\n var $container = this.render();\r\n\r\n this._placeContainer($container);\r\n\r\n var SelectionAdapter = this.options.get('selectionAdapter');\r\n this.selection = new SelectionAdapter($element, this.options);\r\n this.$selection = this.selection.render();\r\n\r\n this.selection.position(this.$selection, $container);\r\n\r\n var DropdownAdapter = this.options.get('dropdownAdapter');\r\n this.dropdown = new DropdownAdapter($element, this.options);\r\n this.$dropdown = this.dropdown.render();\r\n\r\n this.dropdown.position(this.$dropdown, $container);\r\n\r\n var ResultsAdapter = this.options.get('resultsAdapter');\r\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\r\n this.$results = this.results.render();\r\n\r\n this.results.position(this.$results, this.$dropdown);\r\n\r\n // Bind events\r\n\r\n var self = this;\r\n\r\n // Bind the container to all of the adapters\r\n this._bindAdapters();\r\n\r\n // Register any DOM event handlers\r\n this._registerDomEvents();\r\n\r\n // Register any internal event handlers\r\n this._registerDataEvents();\r\n this._registerSelectionEvents();\r\n this._registerDropdownEvents();\r\n this._registerResultsEvents();\r\n this._registerEvents();\r\n\r\n // Set the initial state\r\n this.dataAdapter.current(function (initialData) {\r\n self.trigger('selection:update', {\r\n data: initialData\r\n });\r\n });\r\n\r\n // Hide the original select\r\n $element.addClass('select2-hidden-accessible');\r\n $element.attr('aria-hidden', 'true');\r\n\r\n // Synchronize any monitored attributes\r\n this._syncAttributes();\r\n\r\n $element.data('select2', this);\r\n };\r\n\r\n Utils.Extend(Select2, Utils.Observable);\r\n\r\n Select2.prototype._generateId = function ($element) {\r\n var id = '';\r\n\r\n if ($element.attr('id') != null) {\r\n id = $element.attr('id');\r\n } else if ($element.attr('name') != null) {\r\n id = $element.attr('name') + '-' + Utils.generateChars(2);\r\n } else {\r\n id = Utils.generateChars(4);\r\n }\r\n\r\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\r\n id = 'select2-' + id;\r\n\r\n return id;\r\n };\r\n\r\n Select2.prototype._placeContainer = function ($container) {\r\n $container.insertAfter(this.$element);\r\n\r\n var width = this._resolveWidth(this.$element, this.options.get('width'));\r\n\r\n if (width != null) {\r\n $container.css('width', width);\r\n }\r\n };\r\n\r\n Select2.prototype._resolveWidth = function ($element, method) {\r\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\r\n\r\n if (method == 'resolve') {\r\n var styleWidth = this._resolveWidth($element, 'style');\r\n\r\n if (styleWidth != null) {\r\n return styleWidth;\r\n }\r\n\r\n return this._resolveWidth($element, 'element');\r\n }\r\n\r\n if (method == 'element') {\r\n var elementWidth = $element.outerWidth(false);\r\n\r\n if (elementWidth <= 0) {\r\n return 'auto';\r\n }\r\n\r\n return elementWidth + 'px';\r\n }\r\n\r\n if (method == 'style') {\r\n var style = $element.attr('style');\r\n\r\n if (typeof(style) !== 'string') {\r\n return null;\r\n }\r\n\r\n var attrs = style.split(';');\r\n\r\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\r\n var attr = attrs[i].replace(/\\s/g, '');\r\n var matches = attr.match(WIDTH);\r\n\r\n if (matches !== null && matches.length >= 1) {\r\n return matches[1];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n return method;\r\n };\r\n\r\n Select2.prototype._bindAdapters = function () {\r\n this.dataAdapter.bind(this, this.$container);\r\n this.selection.bind(this, this.$container);\r\n\r\n this.dropdown.bind(this, this.$container);\r\n this.results.bind(this, this.$container);\r\n };\r\n\r\n Select2.prototype._registerDomEvents = function () {\r\n var self = this;\r\n\r\n this.$element.on('change.select2', function () {\r\n self.dataAdapter.current(function (data) {\r\n self.trigger('selection:update', {\r\n data: data\r\n });\r\n });\r\n });\r\n\r\n this.$element.on('focus.select2', function (evt) {\r\n self.trigger('focus', evt);\r\n });\r\n\r\n this._syncA = Utils.bind(this._syncAttributes, this);\r\n this._syncS = Utils.bind(this._syncSubtree, this);\r\n\r\n if (this.$element[0].attachEvent) {\r\n this.$element[0].attachEvent('onpropertychange', this._syncA);\r\n }\r\n\r\n var observer = window.MutationObserver ||\r\n window.WebKitMutationObserver ||\r\n window.MozMutationObserver\r\n ;\r\n\r\n if (observer != null) {\r\n this._observer = new observer(function (mutations) {\r\n $.each(mutations, self._syncA);\r\n $.each(mutations, self._syncS);\r\n });\r\n this._observer.observe(this.$element[0], {\r\n attributes: true,\r\n childList: true,\r\n subtree: false\r\n });\r\n } else if (this.$element[0].addEventListener) {\r\n this.$element[0].addEventListener(\r\n 'DOMAttrModified',\r\n self._syncA,\r\n false\r\n );\r\n this.$element[0].addEventListener(\r\n 'DOMNodeInserted',\r\n self._syncS,\r\n false\r\n );\r\n this.$element[0].addEventListener(\r\n 'DOMNodeRemoved',\r\n self._syncS,\r\n false\r\n );\r\n }\r\n };\r\n\r\n Select2.prototype._registerDataEvents = function () {\r\n var self = this;\r\n\r\n this.dataAdapter.on('*', function (name, params) {\r\n self.trigger(name, params);\r\n });\r\n };\r\n\r\n Select2.prototype._registerSelectionEvents = function () {\r\n var self = this;\r\n var nonRelayEvents = ['toggle', 'focus'];\r\n\r\n this.selection.on('toggle', function () {\r\n self.toggleDropdown();\r\n });\r\n\r\n this.selection.on('focus', function (params) {\r\n self.focus(params);\r\n });\r\n\r\n this.selection.on('*', function (name, params) {\r\n if ($.inArray(name, nonRelayEvents) !== -1) {\r\n return;\r\n }\r\n\r\n self.trigger(name, params);\r\n });\r\n };\r\n\r\n Select2.prototype._registerDropdownEvents = function () {\r\n var self = this;\r\n\r\n this.dropdown.on('*', function (name, params) {\r\n self.trigger(name, params);\r\n });\r\n };\r\n\r\n Select2.prototype._registerResultsEvents = function () {\r\n var self = this;\r\n\r\n this.results.on('*', function (name, params) {\r\n self.trigger(name, params);\r\n });\r\n };\r\n\r\n Select2.prototype._registerEvents = function () {\r\n var self = this;\r\n\r\n this.on('open', function () {\r\n self.$container.addClass('select2-container--open');\r\n });\r\n\r\n this.on('close', function () {\r\n self.$container.removeClass('select2-container--open');\r\n });\r\n\r\n this.on('enable', function () {\r\n self.$container.removeClass('select2-container--disabled');\r\n });\r\n\r\n this.on('disable', function () {\r\n self.$container.addClass('select2-container--disabled');\r\n });\r\n\r\n this.on('blur', function () {\r\n self.$container.removeClass('select2-container--focus');\r\n });\r\n\r\n this.on('query', function (params) {\r\n if (!self.isOpen()) {\r\n self.trigger('open', {});\r\n }\r\n\r\n this.dataAdapter.query(params, function (data) {\r\n self.trigger('results:all', {\r\n data: data,\r\n query: params\r\n });\r\n });\r\n });\r\n\r\n this.on('query:append', function (params) {\r\n this.dataAdapter.query(params, function (data) {\r\n self.trigger('results:append', {\r\n data: data,\r\n query: params\r\n });\r\n });\r\n });\r\n\r\n this.on('keypress', function (evt) {\r\n var key = evt.which;\r\n\r\n if (self.isOpen()) {\r\n if (key === KEYS.ESC || key === KEYS.TAB ||\r\n (key === KEYS.UP && evt.altKey)) {\r\n self.close();\r\n\r\n evt.preventDefault();\r\n } else if (key === KEYS.ENTER) {\r\n self.trigger('results:select', {});\r\n\r\n evt.preventDefault();\r\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\r\n self.trigger('results:toggle', {});\r\n\r\n evt.preventDefault();\r\n } else if (key === KEYS.UP) {\r\n self.trigger('results:previous', {});\r\n\r\n evt.preventDefault();\r\n } else if (key === KEYS.DOWN) {\r\n self.trigger('results:next', {});\r\n\r\n evt.preventDefault();\r\n }\r\n } else {\r\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\r\n (key === KEYS.DOWN && evt.altKey)) {\r\n self.open();\r\n\r\n evt.preventDefault();\r\n }\r\n }\r\n });\r\n };\r\n\r\n Select2.prototype._syncAttributes = function () {\r\n this.options.set('disabled', this.$element.prop('disabled'));\r\n\r\n if (this.options.get('disabled')) {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n\r\n this.trigger('disable', {});\r\n } else {\r\n this.trigger('enable', {});\r\n }\r\n };\r\n\r\n Select2.prototype._syncSubtree = function (evt, mutations) {\r\n var changed = false;\r\n var self = this;\r\n\r\n // Ignore any mutation events raised for elements that aren't options or\r\n // optgroups. This handles the case when the select element is destroyed\r\n if (\r\n evt && evt.target && (\r\n evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n if (!mutations) {\r\n // If mutation events aren't supported, then we can only assume that the\r\n // change affected the selections\r\n changed = true;\r\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\r\n for (var n = 0; n < mutations.addedNodes.length; n++) {\r\n var node = mutations.addedNodes[n];\r\n\r\n if (node.selected) {\r\n changed = true;\r\n }\r\n }\r\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\r\n changed = true;\r\n }\r\n\r\n // Only re-pull the data if we think there is a change\r\n if (changed) {\r\n this.dataAdapter.current(function (currentData) {\r\n self.trigger('selection:update', {\r\n data: currentData\r\n });\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Override the trigger method to automatically trigger pre-events when\r\n * there are events that can be prevented.\r\n */\r\n Select2.prototype.trigger = function (name, args) {\r\n var actualTrigger = Select2.__super__.trigger;\r\n var preTriggerMap = {\r\n 'open': 'opening',\r\n 'close': 'closing',\r\n 'select': 'selecting',\r\n 'unselect': 'unselecting'\r\n };\r\n\r\n if (args === undefined) {\r\n args = {};\r\n }\r\n\r\n if (name in preTriggerMap) {\r\n var preTriggerName = preTriggerMap[name];\r\n var preTriggerArgs = {\r\n prevented: false,\r\n name: name,\r\n args: args\r\n };\r\n\r\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\r\n\r\n if (preTriggerArgs.prevented) {\r\n args.prevented = true;\r\n\r\n return;\r\n }\r\n }\r\n\r\n actualTrigger.call(this, name, args);\r\n };\r\n\r\n Select2.prototype.toggleDropdown = function () {\r\n if (this.options.get('disabled')) {\r\n return;\r\n }\r\n\r\n if (this.isOpen()) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n };\r\n\r\n Select2.prototype.open = function () {\r\n if (this.isOpen()) {\r\n return;\r\n }\r\n\r\n this.trigger('query', {});\r\n };\r\n\r\n Select2.prototype.close = function () {\r\n if (!this.isOpen()) {\r\n return;\r\n }\r\n\r\n this.trigger('close', {});\r\n };\r\n\r\n Select2.prototype.isOpen = function () {\r\n return this.$container.hasClass('select2-container--open');\r\n };\r\n\r\n Select2.prototype.hasFocus = function () {\r\n return this.$container.hasClass('select2-container--focus');\r\n };\r\n\r\n Select2.prototype.focus = function (data) {\r\n // No need to re-trigger focus events if we are already focused\r\n if (this.hasFocus()) {\r\n return;\r\n }\r\n\r\n this.$container.addClass('select2-container--focus');\r\n this.trigger('focus', {});\r\n };\r\n\r\n Select2.prototype.enable = function (args) {\r\n if (this.options.get('debug') && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\r\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\r\n ' instead.'\r\n );\r\n }\r\n\r\n if (args == null || args.length === 0) {\r\n args = [true];\r\n }\r\n\r\n var disabled = !args[0];\r\n\r\n this.$element.prop('disabled', disabled);\r\n };\r\n\r\n Select2.prototype.data = function () {\r\n if (this.options.get('debug') &&\r\n arguments.length > 0 && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\r\n 'should consider setting the value instead using `$element.val()`.'\r\n );\r\n }\r\n\r\n var data = [];\r\n\r\n this.dataAdapter.current(function (currentData) {\r\n data = currentData;\r\n });\r\n\r\n return data;\r\n };\r\n\r\n Select2.prototype.val = function (args) {\r\n if (this.options.get('debug') && window.console && console.warn) {\r\n console.warn(\r\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\r\n ' removed in later Select2 versions. Use $element.val() instead.'\r\n );\r\n }\r\n\r\n if (args == null || args.length === 0) {\r\n return this.$element.val();\r\n }\r\n\r\n var newVal = args[0];\r\n\r\n if ($.isArray(newVal)) {\r\n newVal = $.map(newVal, function (obj) {\r\n return obj.toString();\r\n });\r\n }\r\n\r\n this.$element.val(newVal).trigger('change');\r\n };\r\n\r\n Select2.prototype.destroy = function () {\r\n this.$container.remove();\r\n\r\n if (this.$element[0].detachEvent) {\r\n this.$element[0].detachEvent('onpropertychange', this._syncA);\r\n }\r\n\r\n if (this._observer != null) {\r\n this._observer.disconnect();\r\n this._observer = null;\r\n } else if (this.$element[0].removeEventListener) {\r\n this.$element[0]\r\n .removeEventListener('DOMAttrModified', this._syncA, false);\r\n this.$element[0]\r\n .removeEventListener('DOMNodeInserted', this._syncS, false);\r\n this.$element[0]\r\n .removeEventListener('DOMNodeRemoved', this._syncS, false);\r\n }\r\n\r\n this._syncA = null;\r\n this._syncS = null;\r\n\r\n this.$element.off('.select2');\r\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\r\n\r\n this.$element.removeClass('select2-hidden-accessible');\r\n this.$element.attr('aria-hidden', 'false');\r\n this.$element.removeData('select2');\r\n\r\n this.dataAdapter.destroy();\r\n this.selection.destroy();\r\n this.dropdown.destroy();\r\n this.results.destroy();\r\n\r\n this.dataAdapter = null;\r\n this.selection = null;\r\n this.dropdown = null;\r\n this.results = null;\r\n };\r\n\r\n Select2.prototype.render = function () {\r\n var $container = $(\r\n '<span class=\"select2 select2-container\">' +\r\n '<span class=\"selection\"></span>' +\r\n '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\r\n '</span>'\r\n );\r\n\r\n $container.attr('dir', this.options.get('dir'));\r\n\r\n this.$container = $container;\r\n\r\n this.$container.addClass('select2-container--' + this.options.get('theme'));\r\n\r\n $container.data('element', this.$element);\r\n\r\n return $container;\r\n };\r\n\r\n return Select2;\r\n});\r\n\r\nS2.define('jquery-mousewheel',[\r\n 'jquery'\r\n], function ($) {\r\n // Used to shim jQuery.mousewheel for non-full builds.\r\n return $;\r\n});\r\n\r\nS2.define('jquery.select2',[\r\n 'jquery',\r\n 'jquery-mousewheel',\r\n\r\n './select2/core',\r\n './select2/defaults'\r\n], function ($, _, Select2, Defaults) {\r\n if ($.fn.select2 == null) {\r\n // All methods that should return the element\r\n var thisMethods = ['open', 'close', 'destroy'];\r\n\r\n $.fn.select2 = function (options) {\r\n options = options || {};\r\n\r\n if (typeof options === 'object') {\r\n this.each(function () {\r\n var instanceOptions = $.extend(true, {}, options);\r\n\r\n var instance = new Select2($(this), instanceOptions);\r\n });\r\n\r\n return this;\r\n } else if (typeof options === 'string') {\r\n var ret;\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n\r\n this.each(function () {\r\n var instance = $(this).data('select2');\r\n\r\n if (instance == null && window.console && console.error) {\r\n console.error(\r\n 'The select2(\\'' + options + '\\') method was called on an ' +\r\n 'element that is not using Select2.'\r\n );\r\n }\r\n\r\n ret = instance[options].apply(instance, args);\r\n });\r\n\r\n // Check if we should be returning `this`\r\n if ($.inArray(options, thisMethods) > -1) {\r\n return this;\r\n }\r\n\r\n return ret;\r\n } else {\r\n throw new Error('Invalid arguments for Select2: ' + options);\r\n }\r\n };\r\n }\r\n\r\n if ($.fn.select2.defaults == null) {\r\n $.fn.select2.defaults = Defaults;\r\n }\r\n\r\n return Select2;\r\n});\r\n\r\n // Return the AMD loader configuration so it can be used outside of this file\r\n return {\r\n define: S2.define,\r\n require: S2.require\r\n };\r\n}());\r\n\r\n // Autoload the jQuery bindings\r\n // We know that all of the modules exist above this, so we're safe\r\n var select2 = S2.require('jquery.select2');\r\n\r\n // Hold the AMD module references on the jQuery function that was just loaded\r\n // This allows Select2 to use the internal loader outside of this file, such\r\n // as in the language files.\r\n jQuery.fn.select2.amd = S2;\r\n\r\n // Return the Select2 instance for anyone who is importing it.\r\n return select2;\r\n}));\r\n","'use strict';\r\n\r\nimport '../../../js/vendor/select2/dist/js/select2.js';\r\n\r\nclass SelectSearch {\r\n ui;\r\n wrap;\r\n\r\n constructor(options) {\r\n if (options.wrap) {\r\n this.wrap = options.wrap;\r\n }\r\n\r\n if (this.wrap) {\r\n this.ui = {\r\n selects: $('.js-select-search select'),\r\n selectSingle: $('.js-select-search-single select'), // UMMRET-1065\r\n selectsRole: $('select[role=\"listbox\"]')\r\n };\r\n this.bindUIActions();\r\n }\r\n }\r\n\r\n bindUIActions() {\r\n $(window).on('load', () => this.initializeSelects());\r\n $(window).on('load', () => {\r\n this.ui.selectsRole.each((index, select) => {\r\n $(select).attr('aria-selected', 'false');\r\n });\r\n });\r\n\r\n this.ui.selectsRole.on('click', (e) => {\r\n // console.log('clicked');\r\n // console.log(e.currentTarget);\r\n });\r\n\r\n this.ui.selects.on('select2:unselect', (e) => {\r\n $(e.currentTarget).data('disable-open', true);\r\n });\r\n\r\n this.ui.selects.on('select2:opening', (e) => {\r\n if($(e.currentTarget).data('disable-open')) {\r\n e.preventDefault();\r\n }\r\n $(e.currentTarget).data('disable-open', false);\r\n });\r\n\r\n // UMMRET-1065\r\n this.ui.selectSingle.on('select2:unselect', (e) => {\r\n $(e.currentTarget).data('disable-open', true);\r\n });\r\n\r\n this.ui.selectSingle.on('select2:opening', (e) => {\r\n if($(e.currentTarget).data('disable-open')) {\r\n $(e.currentTarget).data('disable-open', true);\r\n e.preventDefault();\r\n }\r\n $(e.currentTarget).data('disable-open', false);\r\n });\r\n }\r\n\r\n initializeSelects() {\r\n $(this.ui.selects).each((index, select) => {\r\n const $parent = $(select).closest('.js-select-search');\r\n\r\n $(select).select2({\r\n placeholder: $parent.data('placeholder'),\r\n dropdownParent: $parent,\r\n closeOnSelect: false, // UMMSFAD-111 leave filter panel open for multiple filter selection\r\n theme: 'umms'\r\n });\r\n\r\n $parent.removeClass('is-not-loaded').addClass('is-loaded');\r\n });\r\n\r\n // UMMRET-1065\r\n $(this.ui.selectSingle).each((index, select) => {\r\n const $parent = $(select).closest('.js-select-search-single');\r\n\r\n $(select).select2({\r\n // adds clear button next to selected item, only use if form does not submit on selection\r\n // allowClear: true,\r\n closeOnSelect: true,\r\n dropdownParent: $parent,\r\n minimumResultsForSearch: 'Infinity', // removes text input field from selection dropdown\r\n placeholder: $parent.data('placeholder'),\r\n theme: 'umms'\r\n });\r\n\r\n $parent.removeClass('is-not-loaded').addClass('is-loaded');\r\n //$(this).setAttribute('aria-label', 'SelectSpecialty');\r\n });\r\n\r\n //UMMREDESGN-1516 set aria label for select input\r\n if($('.site-search .select2-search__field').length) {\r\n const $inputField = $('.site-search .select2-search__field');\r\n const ariaLabel = $inputField.closest('.select-search').find('.select-search__select').attr('aria-label');\r\n\r\n if (ariaLabel !== '') {\r\n $inputField.attr('aria-label', ariaLabel);\r\n }\r\n }\r\n }\r\n\r\n refreshSelects() {\r\n this.ui.selects.select2('destroy');\r\n this.ui.selectSingle.select2('destroy'); // UMMRET-1065\r\n this.initializeSelects();\r\n }\r\n}\r\n\r\nexport default SelectSearch;\r\n"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","define","jQuery","S2","fn","select2","amd","requirejs","require","undef","main","req","makeMap","handlers","defined","waiting","config","defining","hasOwn","prototype","hasOwnProperty","aps","slice","jsSuffixRegExp","hasProp","prop","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","baseParts","split","map","starMap","charAt","length","nodeIdCompat","test","replace","concat","splice","join","indexOf","substring","makeRequire","relName","forceSync","args","arguments","push","apply","makeLoad","depName","callDep","Error","splitPrefix","prefix","index","makeConfig","plugin","parts","makeNormalize","f","n","pr","p","e","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","_$","$","console","error","Utils","getMethods","theClass","proto","methods","methodName","Extend","ChildClass","SuperClass","__hasProp","BaseConstructor","this","constructor","__super__","Decorate","DecoratorClass","decoratedMethods","superMethods","DecoratedClass","unshift","Array","argCount","calledConstructor","displayName","m","superMethod","calledMethod","originalMethod","decoratedMethod","d","Observable","listeners","on","event","trigger","params","_type","invoke","len","generateChars","chars","Math","floor","random","toString","bind","func","context","_convertData","data","originalKey","keys","dataLevel","k","toLowerCase","hasScroll","el","$el","overflowX","style","overflowY","innerHeight","scrollHeight","innerWidth","scrollWidth","escapeMarkup","markup","replaceMap","String","match","appendMany","$element","$nodes","jquery","substr","$jqNodes","node","add","append","Results","options","dataAdapter","render","$results","get","attr","clear","empty","displayMessage","hideLoading","$message","message","className","hideMessages","find","remove","$options","results","sort","item","$option","option","children","position","$dropdown","sorter","highlightFirstItem","$selected","filter","first","ensureHighlightVisible","setClasses","self","current","selected","selectedIds","s","each","element","inArray","showLoading","loading","disabled","text","loadingMore","$loading","prepend","document","createElement","attrs","_resultId","title","role","val","setAttribute","label","template","$children","c","child","$child","$childrenContainer","container","$container","isOpen","removeAttr","$highlighted","getHighlightedResults","currentIndex","nextIndex","$next","eq","currentOffset","offset","top","nextTop","nextOffset","scrollTop","outerHeight","nextBottom","addClass","mousewheel","bottom","deltaY","isAtTop","isAtBottom","height","preventDefault","stopPropagation","evt","$this","originalEvent","removeClass","destroy","offsetDelta","result","content","display","innerHTML","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","DELETE","KEYS","BaseSelection","$selection","_tabindex","resultsId","_handleBlur","which","update","_attachCloseHandler","focus","_detachCloseHandler","window","activeElement","contains","body","$select","target","closest","off","SingleSelection","html","selectionContainer","selection","$rendered","formatted","MultipleSelection","elementId","$label","labelId","$search","parent","$selections","Placeholder","decorated","placeholder","normalizePlaceholder","_","createPlaceholder","$placeholder","singlePlaceholder","AllowClear","_handleClear","_handleKeyboardClear","$clear","unselectData","prevented","$remove","Search","$searchContainer","_transferTabIndex","_keyUpPrevented","isDefaultPrevented","$previousChoice","prev","searchRemoveChoice","msie","documentMode","disableInputEvents","type","handleSearch","searchHadFocus","resizeSearch","input","term","css","width","EventRelay","relayEvents","preventableEvents","Event","Translation","dict","all","extend","translation","_cache","loadPath","path","translations","BaseAdapter","query","generateResultId","SelectAdapter","select","is","currentData","unselect","removeData","matches","addOptions","textContent","innerText","normalizedData","_normalizeItem","isPlainObject","matcher","ArrayAdapter","convertToOptions","elm","$existing","existingIds","onlyItem","$existingOption","existingData","newData","$newOption","replaceWith","AjaxAdapter","ajaxOptions","_applyDefaults","processResults","defaults","q","transport","success","failure","$request","ajax","then","fail","_request","isFunction","abort","request","isArray","status","url","delay","_queryTimeout","clearTimeout","Tags","tags","createTag","insertTag","t","tag","_removeOldTags","page","wrapper","checkChildren","trim","_lastTag","Tokenizer","tokenizer","dropdown","tokenData","separators","termChar","MinimumInputLength","$e","minimumInputLength","minimum","MaximumInputLength","maximumInputLength","maximum","MaximumSelectionLength","maximumSelectionLength","count","Dropdown","showSearch","HidePlaceholder","removePlaceholder","modifiedData","InfiniteScroll","lastParams","$loadingMore","createLoadingMore","showLoadingMore","isLoadMoreVisible","documentElement","loadMore","pagination","more","AttachBody","$dropdownParent","setupResultsEvents","_showDropdown","_attachPositioningHandler","_positionDropdown","_resizeDropdown","_hideDropdown","_detachPositioningHandler","$dropdownContainer","detach","scrollEvent","resizeEvent","orientationEvent","$watchers","parents","x","scrollLeft","y","ev","$window","isCurrentlyAbove","hasClass","isCurrentlyBelow","newDirection","viewport","enoughRoomAbove","enoughRoomBelow","left","$offsetParent","offsetParent","parentOffset","outerWidth","minWidth","appendTo","countResults","MinimumResultsForSearch","minimumResultsForSearch","Infinity","SelectOnClose","_handleSelectOnClose","originalSelect2Event","$highlightedResults","CloseOnSelect","_selectTriggered","ctrlKey","errorLoading","inputTooLong","overChars","inputTooShort","maximumSelected","noResults","searching","ResultsList","SelectionSearch","DIACRITICS","SelectData","ArrayData","AjaxData","DropdownSearch","EnglishTranslation","Defaults","reset","tokenSeparators","Query","amdBase","initSelection","InitSelection","resultsAdapter","selectOnClose","dropdownAdapter","multiple","SearchableDropdown","closeOnSelect","dropdownCssClass","dropdownCss","adaptDropdownCssClass","DropdownCSS","selectionAdapter","allowClear","containerCssClass","containerCss","adaptContainerCssClass","ContainerCSS","language","baseLanguage","languages","languageNames","l","amdLanguageBase","ex","debug","warn","baseTranslation","customTranslation","stripDiacritics","a","dropdownAutoWidth","original","toUpperCase","templateResult","templateSelection","theme","set","camelCase","convertedData","Options","fromElement","InputCompat","excludedData","dir","dataset","Select2","_generateId","tabindex","DataAdapter","_placeContainer","SelectionAdapter","DropdownAdapter","ResultsAdapter","_bindAdapters","_registerDomEvents","_registerDataEvents","_registerSelectionEvents","_registerDropdownEvents","_registerResultsEvents","_registerEvents","initialData","_syncAttributes","insertAfter","_resolveWidth","method","WIDTH","styleWidth","elementWidth","_syncA","_syncS","_syncSubtree","attachEvent","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","_observer","mutations","observe","attributes","childList","subtree","addEventListener","nonRelayEvents","toggleDropdown","altKey","close","open","changed","nodeName","addedNodes","removedNodes","actualTrigger","preTriggerMap","preTriggerName","preTriggerArgs","hasFocus","enable","newVal","detachEvent","disconnect","removeEventListener","thisMethods","instanceOptions","instance","SelectSearch","wrap","ui","selects","selectSingle","selectsRole","bindUIActions","initializeSelects","currentTarget","$parent","dropdownParent","$inputField","ariaLabel"],"sourceRoot":""}