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